Operating system 操作系统中的页面错误。(地址无效或页面不在主存中)

Operating system 操作系统中的页面错误。(地址无效或页面不在主存中),operating-system,paging,page-fault,demand-paging,Operating System,Paging,Page Fault,Demand Paging,我正在阅读有关请求分页中的页面错误的信息。页面错误发生在 1) 正在访问的内存是非法的 2) 该页有效,但不存在于主存中 我读到,通过有效位和无效位,您可以判断内存是否处于逻辑状态 地址空间,因为相应的位将被标记为无效 相同的有效位用于识别上述2种情况 我的问题是,操作系统如何知道被访问的内存是否非法 或者如果页面是有效的,但不在主内存中,只有一个有效位? 谢谢大家! 在请求分页中如果设置了有效无效位(1),则表示关联的页面既合法又在内存中。但是,如果未设置有效位(0),则表示: 页面无效。这意

我正在阅读有关请求分页中的页面错误的信息。页面错误发生在 1) 正在访问的内存是非法的 2) 该页有效,但不存在于主存中

我读到,通过有效位和无效位,您可以判断内存是否处于逻辑状态 地址空间,因为相应的位将被标记为无效

相同的有效位用于识别上述2种情况

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

请求分页中如果设置了
有效无效位
(1),则表示关联的
页面
既合法又在内存中。但是,如果未设置有效位(0),则表示:

  • 页面
    无效。这意味着页面未处于进程
    逻辑地址空间
  • 相应的
    页面
    位于
    磁盘上
  • 无效的页面访问会导致页面错误陷阱。我们用下面的方法处理它。引用Silberschatz,Galvin,Gagne的操作系统原理

  • 我们检查该流程的内部表(通常与流程控制块一起保存),以确定引用是否有效 或无效的内存访问
  • 如果引用无效,我们将终止进程。如果它是有效的,但我们还没有把那一页带进来,我们现在就把它带进来
  • 我们找到一个自由帧(例如,从自由帧列表中选择一个)
  • 我们安排一个磁盘操作,将所需的页面读取到新分配的帧中
  • 当磁盘读取完成时,我们修改了与进程一起保存的内部表和页面表,以指示页面现在已完成 在记忆中
  • 我们重新启动被陷阱中断的指令。进程现在可以访问该页面,就好像它一直处于 记忆

  • 如有任何疑问,请随时咨询。