与内核模式不同,由于使用虚拟内存,用户模式使用地址转换。因此,当访问发生时,似乎必须在转换内存地址时进行权衡(即使没有TLB未命中)。
由于内核模式直接访问RAM而没有任何地址转换,如果我们在内核模式而不是用户模式下运行代码,RAM中是否有任何性能提升?
答案 0 :(得分:3)
如果我们在内核模式而不是用户模式下运行代码,RAM是否有任何性能提升?
可能不是。始终使用MMU。它只是针对内核模式和用户模式进行了不同的配置(因此内核代码的“地址转换”可能是某些“身份”功能)。
CPU cache考虑因素比MMU更重要。高速缓存未命中可能需要几百个周期或几纳秒(从RAM模块获取数据)。此外,context switches代价高昂。
但是你需要基准 。查看结尾Answers section of P.Norvig page。
(实际上,内核地址空间没有任何主要page faults;我想 - 但实际上并不知道 - 在某些硬件上它可能有次页面错误)< / p>
另请阅读Unikernel方法。