如果多核CPU共享MMU,多个进程可以并行运行吗?

问题描述 投票:0回答:1

如果多核CPU每个核心都有一个专用的MMU,多个进程可以并行运行。我想知道如果多核CPU共享MMU会发生什么。

我猜,如果多核CPU共享MMU,多个进程可以并行运行。 MMU 在不同时间查看多个不同的页表。这是真的?能详细解释一下吗?

multithreading operating-system cpu-architecture multicore mmu
1个回答
0
投票

如果多核CPU共享MMU,多个进程可以并行运行吗?

如果CPU共享相同的MMU(相同的页表等);那么所有 CPU 都必须具有相同的虚拟内存,如果没有其他任何东西,这将导致多个进程(具有不同的虚拟地址空间)并行运行变得不可能。

但是;很容易有一些东西(例如分段)将整个虚拟地址空间分成“区域”。例如;如果process1只能访问虚拟地址空间的前1GiB,process2只能访问后1GiB,processN只能访问第NGiB;那么多个进程可以共享相同的虚拟地址空间,而不会发生冲突或安全问题。如果区域的大小是恒定的;这在功能上相当于每个区域都有一个单独的 MMU。

我想知道如果多核CPU共享MMU会发生什么。

会发生的情况是:

  • 没有人会买它,因为这是一个狡猾的笑话(因为它不能并行运行多个进程),所以它最终会成为博物馆里每个人都嘲笑的一些芯片;或

  • 第一个版本的行为与“每个 CPU 单独的 MMU”相同,第二个版本将是“每个 CPU 单独的 MMU”以提高性能。

换句话说,“公司争夺利润”往往会破坏糟糕产品的生存能力。

© www.soinside.com 2019 - 2024. All rights reserved.