文章目录
- 缺页中断率
- 影响缺页中断率的因素
- 抖动(颠簸)
- 页面置换算法
- 1、最佳页面淘汰算法(OPT)
- 2、先进先出页面淘汰算法(FIFO)
- 3、最近最久未使用页面淘汰算法(LRU)
缺页中断率
对于进程P的一个长度为A的页面访问序列,如果进程P在运行中发生缺页中断的次数为F,则f = F/A称为缺页中断率。
影响缺页中断率的因素
1、进程分得的主存页框数:页框数多则缺页中断率低,页框数少则缺页中断率高。
2、页面大小:页面大则缺页中断率低,页面小则缺页中断率高。
3、页面替换算法的优劣决定缺页率。
4、程序特性:程序局部性好,则缺页中断率低;否则缺页中断率高。
抖动(颠簸)
在请求分页虚拟存储管理系统中,刚被淘汰的页面立即又要访问,而调入不久即被淘汰,淘汰不久再被调入,如此反复,使得系统的页面调度非常频繁,以致大部分时间消耗在页面调度上,而不是执行计算任务,这种现象称为“抖动”(或者“颠簸”)。
页面置换算法
1、最佳页面淘汰算法(OPT)
调入一页而必须淘汰一个旧页时,所淘汰的页是以后不再访问的页或距现在最长时间后再访问的页。
OPT可用于衡量各种具体算法的标准。
例:
某程序在内存中分配三个页框,初始为空,页面走向为4,3,2,1,4,3,5,4,3,2,1,5。用最佳页面淘汰算法分析页面置换过程。
缺页中断率=7/12=58.3%
最佳置换算法可以保证最低的缺页率,但实际上,只有在进程执行的过程中才能知道接下来会访问到的是哪个页面。操作系统无法提前预判页面访问序列。因此,最佳置换算法是无法实现的。
2、先进先出页面淘汰算法(FIFO)
先进先出页面淘汰算法总是淘汰最先调入主存的那一页,或者说在主存中驻留时间最长的那一页(常驻的除外)。
例:
某程序在内存中分配三个页框,初始为空,页面走向为4,3,2,1,4,3,5,4,3,2,1,5。用先进先出页面淘汰算法分析页面置换过程。
缺页中断率=9/12=75%
缺页中断率=10/12=83.33%
Belady异常——当为进程分配的物理块数增大时,缺页次数不减反增的异常现象。
只有FIFO算法会产生Belady异常。另外,FIFO算法虽然实现简单,但是该算法与进程实际运行时的规律不适应,因为先进入的页面也有可能最经常被访问。因此,算法性能差。
页缓冲技术:
FIFO替换算法的一种改进,策略如下: 淘汰了的页面进入两个队列——修改页面和非修改页面队列。
修改页面队列中的页不时地成批写出并加入到非修改页面队列;
非修改页面队列中的页面被再次引用时回收,或者淘汰掉以作替换。
3、最近最久未使用页面淘汰算法(LRU)
淘汰的页面是在最近一段时间里较久未被访问的那一页。
例:
某程序在内存中分配三个页框,初始为空,页面走向为4,3,2,1,4,3,5,4,3,2,1,5。用最近最久未使用页面淘汰算法分析页面置换过程。
缺页中断率=10/12=83.3%