详解页式管理置换算法FIFO_LRU_OPT
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
页式管理
OPT、LRU、FIFO置换算法详解
指令:
1,2,3,4,
2,1,5,6,
2,1,2,3,
7,6,3,2,
1,2,3,6
若内存最多容纳4个页面,则……
一、OPT(理想型淘汰)算法
该算法无法实现。
置换规则:
(1)淘汰内存中以后不再访问的页面;
(2)如果没有(1),则淘汰将要访问指令之后的将来最迟被访问的指令的页面。
分析:
(1)当访问5时,内存1,2,3,4,发生第5次中断,淘汰不再访问的4,换入5,内存1,2,3,5;
(2)当访问6时,内存1,2,3,5,发生第6次中断,淘汰不再访问的5,换入6,内存1,2,3,6;
(3)当访问7时,内存1,2,3,6,发生第7次中断,由于之后的指令(1、2、3、6)都是现在内存页面都存在的指令,无法淘汰,但可以根据指令访问顺序,先淘汰将来最迟被访问的1,换入7,置换后的内存7,2,3,6;
(4)当访问1时,内存7,2,3,6,发生第8次中断,淘汰不再访问的7,换入1,内存1,2,3,6;
即OPT算法一共会出现8次缺页中断。
二、LRU(最近最久未使用)算法
该算法利用堆栈实现,每次访问都调整堆栈中页面顺序。
把被访问页面从栈移出再压入栈顶。
置换规则:
(1)栈顶始终为最新访问过的页面;
(2)栈底始终为最近最久未被访问的页面;
(3)访问存在的页面要调到栈顶。
分析:
(1)访问第5个指令2时,由于内存页面中已经存在2,所以不置换,但调整2在栈中顺序,即将2调到栈顶,其它页面依次后置。
调整前内存4,3,2,1,调整后内存2,4,3,1;(2)访问第7个指令5时,发生第5次中断,原内存1,2,4,3,淘汰栈底3,栈顶调入5,调整后内存5,1,2,4;
(3)访问第8个指令6时,发生第6次中断,原内存5,1,2,4,,淘汰栈底4,栈顶调入6,调整后内存6,5,1,2;
……
即LRU算法一共会出现10次缺页中断。
三、FIFO(先进先出)算法
该算法利用队列实现。
FIFO与LRU的区别是FIFO遇到内存中存在的页面不需要调换页面顺序。
置换规则:
(1)淘汰队尾;
(2)即将访问的页调入队头;
(3)访问存在的页面不用调到队头。
页面3 1 2 2 2 3 4 5 6 6 2 1 3 3 7 6 6 2 2 页面4 1 1 1 2 3 4 5 5 6 2 1 1 3 7 7 6 6 是否中断Y Y Y Y N N Y Y Y Y N Y Y Y N Y Y N Y N
分析:
(1)访问第5个指令2时,由于内存页面中已经存在2,所以不置换,与LRU不同的是,不需要调换顺序,保持内存原样4,3,2,1;
(2)访问第7个指令5时,发生第5次中断,原内存1,2,3,4,由于内存页面中不存在5,所以将队尾4淘汰,队头调入5,调整后内存5,1,2,3;
(3)访问第8个指令6时,发生第6次中断,原内存5,4,3,2,由于内存页面中不存在6,所以将队尾2淘汰,队头调入6,调整后内存6,5,4,3;
……
即FIFO算法一共会出现14次缺页中断。
由于编者水平有限,文档中难免有错误和不妥之处,恳请广大读者批
评指正。
珠海观音山下2018年5月9日。