如果多核CPU每个核心都有一个专用的MMU,多个进程可以并行运行。我想知道如果多核CPU共享MMU会发生什么。
我猜,如果多核CPU共享MMU,多个进程可以并行运行。 MMU 在不同时间查看多个不同的页表。这是真的?能详细解释一下吗?
如果多核CPU共享MMU,多个进程可以并行运行吗?
如果CPU共享相同的MMU(相同的页表等);那么所有 CPU 都必须具有相同的虚拟内存,如果没有其他任何东西,这将导致多个进程(具有不同的虚拟地址空间)并行运行变得不可能。
但是;很容易有一些东西(例如分段)将整个虚拟地址空间分成“区域”。例如;如果process1只能访问虚拟地址空间的前1GiB,process2只能访问后1GiB,processN只能访问第NGiB;那么多个进程可以共享相同的虚拟地址空间,而不会发生冲突或安全问题。如果区域的大小是恒定的;这在功能上相当于每个区域都有一个单独的 MMU。
我想知道如果多核CPU共享MMU会发生什么。
会发生的情况是:
没有人会买它,因为这是一个狡猾的笑话(因为它不能并行运行多个进程),所以它最终会成为博物馆里每个人都嘲笑的一些芯片;或
第一个版本的行为与“每个 CPU 单独的 MMU”相同,第二个版本将是“每个 CPU 单独的 MMU”以提高性能。
换句话说,“公司争夺利润”往往会破坏糟糕产品的生存能力。