2012-01-24 71 views
0

我已阅读关于虚拟内存。我有一个疑问。假设有两个进程P和Q.两者都将具有相同的虚拟内存寻址。他们都有他们的页面表。将会有一个系统范围的页表。那么如果我们使用系统范围的页表,那么这两个进程如何在RAM上区分?虚拟内存中的两个进程

+0

你是指虚拟地址空间吗? –

+1

谷歌MMU! –

+0

通过他们的进程ID? – Kevin

回答

1

每个进程都有一个虚拟地址空间,它具有到物理内存的映射,但也可以虚拟化为磁盘。

0

如果有一个全系统的页表中使用所有的时间,则该无法工作,因为将只有一个虚拟映射和2个处理将步骤上的每个其他存储器。然而,每个进程保留一个页表(简单来说),并在内核调度一个进程运行时在这些页之间进行切换。这样每个进程就可以拥有映射到不同物理地址的相同虚拟地址,并且没有问题。

1

这是因为虚拟地址被分成用户和内核空间。引导过程开始之后,寻呼装置允许哪一个突然跳跃到内核空间的虚拟地址,最后它传递控制到用户空间。系统范围的页面表是针对内核的,每个进程都有自己的页表。

当它运行到内核,它使用的内核页表和切换回用户时,它使用用户进程的页表。

每个进程都有自己的页表,因此它区分了两个进程