页表是否包含RAM中所有进程的所有页面或所有进程的页面的条目

时间:2013-11-10 18:34:16

标签: operating-system paging

我正在经历分页机制,这个问题令我困惑,问题是PAGE TABLE包含页面条目。流程分为几页。假设1个进程包含8个页面,RAM中总共有10个进程。因此,页表将包含单个进程的总共8个页表条目或所有进程的10 * 8页条目?

请解释一下,这个问题在任何教科书中都没有明确提及。

提前致谢。

2 个答案:

答案 0 :(得分:2)

每个进程都有自己的页表。由于每个进程具有相同的地址空间,因此将一个虚拟地址映射到不同的物理地址是不可行的。在x86架构中,页面目录基址寄存器(cr3)在每个上下文切换期间设置,以便处理器可以将当前正在运行的进程的虚拟地址转换为物理地址。

答案 1 :(得分:0)

实际上,我还没有完全理解你的问题。 在一般情况下,没有固定规则将流程分为8页左右。但是,该过程按字节划分为页面。页面大小可以是4 KB或4 MB(在某些情况下,需要在页表中设置一个位以启用4 MB页面大小)。 然后在分成页面后,还有另一个概念:单级分页或多级分页。

在单级分页的情况下,页表将包含相同数量的页表条目,因为可以在虚拟内存中分配页数。

并且在多级分页中,页表还根据每页表可以分配的字节大小进一步划分为多个页表。

有关进一步阅读分页的信息,请参阅this link