我正在经历分页机制,这个问题令我困惑,问题是PAGE TABLE包含页面条目。流程分为几页。假设1个进程包含8个页面,RAM中总共有10个进程。因此,页表将包含单个进程的总共8个页表条目或所有进程的10 * 8页条目?
请解释一下,这个问题在任何教科书中都没有明确提及。
提前致谢。
答案 0 :(得分:2)
每个进程都有自己的页表。由于每个进程具有相同的地址空间,因此将一个虚拟地址映射到不同的物理地址是不可行的。在x86架构中,页面目录基址寄存器(cr3)在每个上下文切换期间设置,以便处理器可以将当前正在运行的进程的虚拟地址转换为物理地址。
答案 1 :(得分:0)
实际上,我还没有完全理解你的问题。 在一般情况下,没有固定规则将流程分为8页左右。但是,该过程按字节划分为页面。页面大小可以是4 KB或4 MB(在某些情况下,需要在页表中设置一个位以启用4 MB页面大小)。 然后在分成页面后,还有另一个概念:单级分页或多级分页。
在单级分页的情况下,页表将包含相同数量的页表条目,因为可以在虚拟内存中分配页数。
并且在多级分页中,页表还根据每页表可以分配的字节大小进一步划分为多个页表。
有关进一步阅读分页的信息,请参阅this link