缺页中断

操作系统课堂笔记整理


文/峰峰吖


缺页中断:要访问的页不在主存,需要操作系统将其调入主存后再进行访问。

缺页率:在进行内存访问时,若所访问的页已在主存,则称此次访问成功;若所访问的页不在主存,则称此次访问失败,并产生缺页中断。若程序P在运行过程中访问页面的总次数为S,其中产生缺页中断的访问次数为F,则其缺页率为:F/s.

解:根据所给页面走向,采用FIFO淘汰算法的页面置换情况如下:这里的页面走向,即为系统要调用的页号。

在请求分页系统中,可以通过查询页表中的状态位来确定所要访问的页面是否存在于内存中。

每当所要访问的页面不在内存时,会产生一次缺页中断,此时操作系统会根据页表中的外存地址在外存中找到所缺的一页,将其调入内存。

缺页本身是一种中断,与一般的中断一样,需要经过4个处理步骤:

1. 保护CPU现场

2. 分析中断原因

3. 转入缺页中断处理程序进行处理

4. 恢复CPU现场,继续执行


缺页中断时由于所要访问的页面不存在与内存时,有硬件所产生的一种特殊的中断,因此,与一般的中断存在区别:

        1. 在指令执行期间产生和处理缺页中断信号

   2. 一条指令在执行期间,可能产生多次缺页中断

   3. 缺页中断返回时,执行产生中断的那一条指令,而一般的中断返回时,执行下一条指令


页面置换算法

进程运行过程中,如果发生缺页中断,而此时内存中有没有空闲的物理块是,为了能够把所缺的页面装入内存,系统必须从内存中选择一页调出到磁盘的对换区。

但此时应该把那个页面换出,则需要根据一定的页面置换算法来确定。

例题:

进程中断例题

①先进先出置换算法(First In First Out, FIFO)

置换最先调入内存的页面,即置换在内存中驻留时间最久的页面。按照进入内存的先后次序排列成队列,从队尾进入,从队首删除。但是该算法会淘汰经常访问的页面,不适应进程实际运行的规律,目前已经很少使用。

FIFO置换算法


②最近最久未使用置换算法(Least Recently Used, LRU)

置换最近一段时间以来最长时间未访问过的页面。根据程序局部性原理,刚被访问的页面,可能马上又要被访问;而较长时间内没有被访问的页面,可能最近不会被访问。

 

LRU置换算法

LRU算法普偏地适用于各种类型的程序,但是系统要时时刻刻对各页的访问历史情况加以记录和更新,开销太大,因此LRU算法必须要有硬件的支持。


计算缺页中断率

缺页中断率:缺页中断次数(先填空的+淘汰的次数)除以页面引用次数。(就是人家给你的数的总数)*100%

总结:LRU算法是也从上往下放数字,有相同的进程数就要调到最上面,其他的全部往下移,甚至被淘汰(就这点与FIFO不同)没有的就把最下面的挤出去(淘汰,发生缺页中断)

缺页中断次数越少越好,不浪费空间资源,进程能够最优进行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 内存管理中有一种页面置换算法叫最近最少使用(LRU)算法,编写程序模拟LRU的运行过程,依次输入分配给某进程的缓存...
    stevewang阅读 6,349评论 1 3
  • 8.1虚拟存储的需求背景 虚拟内存是非连续内存分配的一个延续,非连续内存分配在存储空间内可以连续也可以不连续。虚拟...
    龟龟51阅读 5,979评论 2 6
  • 一、虚拟存储技术 所谓虚拟存储技术是指:当进程运行时,先将其一部分装入内存,另一部分暂留在磁盘,当要执行的指令或访...
    yjaal阅读 3,627评论 0 6
  • 今天的丰盛日记,今天清早上班,把要做的几件事情一一列出来,做完一件就打钩,特别有成就感,最令自己高兴的事情是我之前...
    细雨湿苍苔阅读 205评论 2 5
  • 长夜难眠,我看《普林斯顿数学指南》,就跟看到《葵花宝典》的东方不败一样。加油(ง •̀_•́)ง为了梦想,为了因为...
    铃音子阅读 196评论 0 0