为什么每个进程有一个页表

问题描述 投票:10回答:2

起初,我认为整个系统只有一个页表。但是每个进程实际上有一个页表吗?具有多个页面表而不是一个页面表的意义是什么?

我正在实现os161的一部分

operating-system os161
2个回答
13
投票

页表通常具有固定数量的条目,因此仅描述了整个虚拟地址空间的一部分。这就是为什么您需要多个它们来覆盖整个地址空间的原因。现在,在许多操作系统中,进程具有单独的虚拟地址空间(换句话说,不与他人共享),这有助于保护进程之间的相互保护。这是拥有多个页表的另一个原因。


0
投票

页表从虚拟页地址转换为物理页地址。由于每个进程都有自己的虚拟地址空间,并且通常将同一虚拟地址映射到不同的物理地址,因此需要单独的页表。奇怪的是,多个进程可能会将不同的虚拟地址映射到同一物理内存。这可用于实现共享库或进程间通信。

© www.soinside.com 2019 - 2024. All rights reserved.