起初我以为整个系统只有一个页面表。但是每个进程实际上有一个页表?有多个页表而不是一个页表有什么意义。
我正在实施os161
的一部分答案 0 :(得分:13)
页表通常具有固定数量的条目,因此仅描述整个虚拟地址空间的一部分。这就是为什么你需要多个覆盖整个地址空间的原因。现在,在许多操作系统中,进程具有单独的(换句话说,不与其他人共享)虚拟地址空间,这有助于保护进程彼此之间的连接。这是拥有多个页表的另一个原因。
答案 1 :(得分:0)
页表从虚拟页地址转换为物理页地址。由于每个进程都有其自己的虚拟地址空间,并且通常将同一虚拟地址映射到其他物理地址,因此需要单独的页表。奇怪的是,多个进程可能会将不同的虚拟地址映射到同一物理内存。这可用于实现共享库或进程间通信。