2017-04-15 193 views
1

我正在阅读有关请求分页的页面错误。当 1)该存储器访问是非法的 2)的页面是有效的,但不存在于主内存页面故障发生操作系统中的页面错误(无效的寻址或页面不在主内存中)

我阅读了有效无效位,你可以告诉我们,如果内存是不是在逻辑 地址空间,因为相应的位会被标记为无效。

相同的有效无效位用于识别上述2条件。

我的问题操作系统如何知道被访问的内存是否非法 或者页面是否有效,但是只有一个有效无效位在主内存中? 谢谢!

+0

欢迎任何疑问。 –

回答

0

需求分页如果valid-invalid bit设置为(1),则表示关联的page既合法又记忆。然而,如果valid-invalid bit未设置(0),它指的是下述:

  1. 要么page无效。这意味着该页面不在处理中logical address space
  2. 对应的pagedisk上。

无效页面访问导致页面错误陷阱。我们通过以下方式处理它。通过Silberschatz,高尔文,加涅从操作系统原则引述

  1. 我们检查的内部表(通常保持与所述过程控制块),用于此过程,以确定所述参考是否是一个有效的 或无效内存访问。
  2. 如果参考无效,我们终止过程。如果它是有效的,但是我们还没有带入那个页面,我们现在将它分页。
  3. 我们找到一个空闲帧(例如从空闲帧列表中取一个)。
  4. 我们安排磁盘操作以将所需页面读入新分配的帧。
  5. 当磁盘读取完成后,我们修改与进程和页表一起保存的内部表,以指示页面现在在内存中为 。
  6. 我们重新启动被陷阱中断的指令。该过程现在可以访问页面,就好像它一直在 内存中一样。