在单核计算机上,一次执行一个线程。在每次上下文切换时,调度程序都会检查要调度的新线程是否与前一个线程位于同一进程中。如果是这样,则无需对 MMU(页表)执行任何操作。在另一种情况下,需要使用新的进程页面表更新页面表。
我想知道在多核计算机上事情是如何发生的。我猜想每个核心上都有一个专用的MMU,如果同一进程的两个线程同时在2个核心上运行,则每个核心的MMU仅引用相同的页表。这是真的 ?您能为我指出有关该主题的良好引用资料吗?
最佳答案
看看这个方案。这是 Corei7 cpu 上单个核心的所有功能的高级 View 。该图片取自《计算机系统:程序员的视角》,Bryant 和 Hallaron。您可以访问 here 中的图表,第 9.21 节。
关于multithreading - 多核CPU共享MMU和页表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9929755/