1

我正在研究分页内存管理,并且在某个时刻,我发现页表的每个条目都有一个相关联的位,以指示帧是否是有效或无效的帧,以供与此相关联的进程访问页表。

我的问题是:如果一个进程有一个专用的页表,其条目对应于其逻辑页和内存中的物理帧之间的映射,为什么我们需要添加一个外部位来指示一个帧是否被一个条目引用进程自己的页表是否可以访问?

我自己的解释是,由于某些未知的原因,一个进程可能在其自己的页表中具有可能未使用或由于某种原因变得无效的条目。

4

1 回答 1

1

页表中的位因系统而异。但是,页表条目必须适应以下三种状态:

  1. 该条目映射到一个有效的物理页框(一切就绪)。
  2. 条目有效但当前没有映射物理页面(访问触发页面错误)
  3. 该条目无效(即页面尚未映射到地址空间)。

页表必须有位设置(或其他方式,例如空值)来表示这三种状态。

为了说明状态#3,链接器导致在程序加载时不映射第一页,以捕获对空指针的引用。

于 2016-04-17T02:28:10.610 回答