在单核计算机上,一次正在执行一个线程。在每个上下文切换上,调度程序都会检查要调度的新线程是否与上一个线程处于同一进程中。如果是这样,则无需执行有关MMU(页面表)的任何操作。在其他情况下,需要使用新的流程页面表来更新页面表。

我想知道多核计算机上的情况如何。我猜每个内核上都有一个专用的MMU,如果同一进程的两个线程同时在2个内核上运行,则每个内核的MMU都简单地引用同一页表。这是真的 ?您能为我指出有关该主题的好引用文献吗?

最佳答案

看一下这个方案。这是Corei7 cpu上单个内核中所有组件的高级 View 。图片是从《计算机系统:程序员的观点》中拍摄的,Bryant和Hallaron。您可以访问here第9.21节中的图。

关于multithreading - 多核CPU是否共享MMU和页表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9929755/

10-10 10:31