我正在阅读需求分页中的页面错误。页面错误发生在 1)访问的内存是非法的 2)页面有效但主存不存在
我读到有效无效位,您可以判断内存是否不合逻辑 地址空间,因为相应的位将被标记为无效。
相同的有效无效位用于识别上述2个条件。
我的问题是如何知道被访问的内存是否非法 或者如果页面有效但在主内存中只有一个有效无效位? 谢谢!
答案 0 :(得分:0)
在需求分页中,如果valid-invalid bit
设置为(1),则表示关联的page
合法且在内存中。但是,如果未设置valid-invalid bit
(0),则表示以下内容:
page
无效。这意味着页面不在进程中logical address space
。 或强> page
位于disk
。无效页面访问会导致页面错误陷阱。我们以下列方式处理它。引自Silberschatz,Galvin,Gagne的操作系统原则
- 我们检查此进程的内部表(通常与进程控制块一起保存)以确定引用是否有效 或无效的内存访问。
- 如果引用无效,我们将终止该过程。如果它有效,但我们尚未引入该页面,我们现在将其分页。
- 我们找到一个空闲帧(例如,从空闲帧列表中取一个)。
- 我们安排磁盘操作以将所需页面读入新分配的帧中。
- 当磁盘读取完成后,我们修改与进程和页面表一起保存的内部表,以指示该页面现在是 在记忆中。
- 我们重新启动被陷阱中断的指令。该进程现在可以访问该页面,就像它一直在进行一样 存储器中。
醇>