为什么我们为页表中的每个条目都有一个验证位?

时间:2016-04-16 20:07:53

标签: memory-management operating-system paging data-protection page-tables

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

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

我自己的解释是,对于某些未知原因,我可能会在其自己的页表中出现由于某种原因可能无法使用或无效的条目。

1 个答案:

答案 0 :(得分:0)

页表中的位因系统而异。但是,页表条目必须包含三种状态:

  1. 该条目映射到有效的物理页面框架(所有准备就绪)。
  2. 该条目有效但当前没有映射物理页面(访问会触发页面错误)
  3. 该条目无效(即页面尚未映射到地址空间)。
  4. 页表必须具有位设置(或其他一些方法,例如空值)来表示这三种状态。

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