页中断

[TOC]

缺页中断的过程:

  • 首先硬件会陷入内核,在堆栈中保存程序计数器,并将当前指令的各种状态信息保存在CPU中的特殊寄存器
  • 操作系统查找出发生缺页中断的虚拟页面。这个虚拟页面通常保存在一个硬件寄存器中,如果没有,操作系统会检索程序计数器,取出产生缺页中断的指令,分析出发生缺页中断的虚拟页面
  • 操作系统找到内存中一个空闲的页框,如果没有空闲的页框则需要通过页面置换算法找到一个需要换出的页框
  • 如果需要置换的页框中内容已经被修改,则需要将修改的内容保存到磁盘上,此时会发生一个磁盘调用,发生上下文切换
  • 页框保存完毕后,操作系统根据虚拟地址对应到磁盘上的位置,将磁盘上的页复制到也狂中,此时会发生一个磁盘调用,发生上下文切换
  • 当磁盘中的页面保存完毕,会向操作系统发生一个中断,操作系统更新内存中的页表项,将虚拟页面映射的页框号更新写入的页框
    恢复到缺页中断发前的状态,将程序计数器重新指向引起缺页中断的指令