操作系统中的页面错误。(无效的寻址或页面不在主存储器中)

时间:2017-04-15 07:05:26

标签: operating-system paging page-fault demand-paging

我正在阅读需求分页中的页面错误。页面错误发生在 1)访问的内存是非法的 2)页面有效但主存不存在

我读到有效无效位,您可以判断内存是否不合逻辑 地址空间,因为相应的位将被标记为无效。

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

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

1 个答案:

答案 0 :(得分:0)

需求分页中,如果valid-invalid bit设置为(1),则表示关联的page合法且在内存中。但是,如果未设置valid-invalid bit(0),则表示以下内容:

  1. page无效。这意味着页面不在进程中logical address space
  2. 相应的page位于disk
  3. 无效页面访问会导致页面错误陷阱。我们以下列方式处理它。引自Silberschatz,Galvin,Gagne的操作系统原则

      
        
    1. 我们检查此进程的内部表(通常与进程控制块一起保存)以确定引用是否有效   或无效的内存访问。
    2.   
    3. 如果引用无效,我们将终止该过程。如果它有效,但我们尚未引入该页面,我们现在将其分页。
    4.   
    5. 我们找到一个空闲帧(例如,从空闲帧列表中取一个)。
    6.   
    7. 我们安排磁盘操作以将所需页面读入新分配的帧中。
    8.   
    9. 当磁盘读取完成后,我们修改与进程和页面表一起保存的内部表,以指示该页面现在是   在记忆中。
    10.   
    11. 我们重新启动被陷阱中断的指令。该进程现在可以访问该页面,就像它一直在进行一样   存储器中。
    12.