具有多核系统UMA NUMA的进程地址空间

时间:2015-01-02 04:38:08

标签: multithreading multicore virtual-memory numa smp

当涉及多核处理器架构时,我对进程地址空间的概念存在疑问,因为两个处理器共享一个共同的物理地址空间(我猜这就是他们所谓的UMA)。

因此,如果32位处理器可以访问4GB的地址范围,并且任何32位进程在执行期间拥有此空间,那么如何在两个内核上运行两个不同的进程...因为我认为这两个处理器会有共同的处理器地址空间。处理器地址空间是否会分成多个进程。在线程的情况下,单个线程可以在单个处理器上运行,因为它们位于相同的地址空间中,但是在多个进程的情况下。

NUMA会是什么情况。

1 个答案:

答案 0 :(得分:1)

UMA(“统一内存访问”)和NUMA(“非统一内存访问”)是指来自差异核心的内存性能。使用UMA,内存的不同部分的性能是相同的(即“均匀”),而NUMA不同的内核具有不同的内存区域性能特征。

这与地址空间问题无关。

在CPU中有两个重要的地址空间:物理地址空间和虚拟地址空间。操作系统为每个进程创建一个虚拟地址空间,映射到物理地址空间的不同部分。因此,具有4GB物理内存的CPU可能具有32位地址空间的多个进程,但是在同一虚拟地址处为每个进程映射了不同的物理内存位。例如,地址0x00400000可能在两个进程中都有效,但映射到完全不同的底层物理内存地址。这些进程也可能共享内存,例如操作系统页面和在同一地址加载的共享库可能由相同的物理内存支持。

在没有虚拟地址空间的较小系统中,您假设是正确的:所有软件共享相同的地址空间。