页面置换算法
先进先出置换算法(FIFO)
该算法淘汰最早进入主存的页面。最早进入的页面,不再使用的可能性比最近调入的页面要大。
特点:实现简单。只要把各调入主存的页按其进入主存的先后顺序练成一个队列即可,总是淘汰队首的那一页。
最近最久未使用算法(LRU)
该算法选择在最近一段时间内最久没有使用过的页淘汰掉。它依据的是程序局部性原理。最近最久未使用算法是利用一个特殊的栈来保存当前使用的各个页的页号。每当访问某页时,考察栈内是否有与此相同的页号,若有则将该页的页号从栈中抽出,再将它压入栈顶。最近最不常使用算法(LFU)
该算法选择当前时间为止被访问次数最少的页置换。
其实现方法是为每页设置一个访问计数器,每当页面被访问时,该页面的访问计数器就加“1”;放生缺页时,淘汰计数器值最小的页,同时将所有计数器清“0”。
理想页面置换算法(OPT)
该算法置换主存中永远不需要的页,或移出最长时间不需要访问的页。
这个算法一般不可能实现,只具有理论意义。
最近未使用页面置换算法(NRU)
第0类:没有被访问,没有被修改;第1类:没有被访问,已被修改;第2类:已被访问,没有被修改;第3类:已被访问,已被修改。第二次机会页面置换算法(SC)
寻找一个最近的时钟间隔以来没有被访问过的页面。时钟页面置换算法(Clock)
将所有的页面保存在一个类似时钟面的环形链表中,一个表针指向最老的页面。
缺页中断率
缺页中断率=中断次数/页面访问总次数
影响缺页中断率的因素:1 分配给程序的内存块数2 页面的大小3 程序编制方法4 页面置换算法
例题
在一个页式虚拟存储管理系统中,一个程序的页面走向为6、0、1、2、0、3、0、4、2、3,分别采用OPT、FIFO和LRU算法进行计算。设分配给改程序的存储块数M=3,每调进一个新页就发生一次缺页中断,求缺页中断次数F和缺页率f。
结果
①最佳算法
F=6;f=60%.
②先进先出算法
F=9;f=90%.
③最近最久未使用算法
F=8;f=80%.