简介

期末考试中常考的页面置换算法可能有三种,分别是先进先出(FIFO),最佳置换(OPT)和最久未使用(LRU)

本篇文章会用一道例题来讲解这三种算法的思路和解题过程;

题目

假设有这样一个操作系统,其内存中有3个空闲页面框(题目也有可能是描述成M3,M是Memory的简写)。进程依次请求页面号为以下序列:7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2。在开始时,所有页面框都是空的。对于每种页面置换算法(FIFO、LRU、OPT),计算并记录发生的页故障次数,和缺页率,用表格展示在解答过程中;

分析

内存有三个空闲框,说明一次性可以最多接受三个序列;

是否缺页指的是:在内存块中是否被替换掉的+原本内存块中存在的;

FIFO:先进先出,只需要找到离下一次序列号进来的时候上一次最多的替换掉;

LRU:最久未使用

OPT:最佳置换,只需要在序列栏对比内存中已经存在的,往后看离的最远的替换掉内存块中的序列

答案

FIFO(先进先出算法解答)

描述 7 0 1 2 0 3 0 4 2 3 0 3 2
M1 7 7 7                    
M2   0 0                    
M3     1                    
是否缺页                          

上述表格,因为前三次序列,并不存在置换,所以直接填进表格里面,从第四次开始分析;

第四次:进来2,那么7作为先进来的序列就需要替换掉,所以就变成2,0,1,缺页标记为是

第五次:进来0, 0在序列中已经存在,所以这一页不变,还是2,0,1,缺页标记为否

第六次: 进来3,3在序列中不存在,所以替换掉0,结果变成2,3,1,缺页标记为是

第七次:进来0,0在序列中不存在,所以替换掉1,结果变成2,3,0,缺页标记为是;

...后续的结果像上面这样推导就行了;所以最后的答案在下表中描述为:

 

描述 7 0 1 2 0 3 0 4 2 3 0 3 2
M1 7 7 7 2   2 2 4 4 4 0    
M2   0 0 0   3 3 3 2 2 2    
M3     1 1   1 0 0 0 3 3    
是否缺页                    

所以缺页次数一共是:1次,总次数为13,缺页率为1/13

 

OPT(最佳置换算法)

描述 7 0 1 2 0 3 0 4 2 3 0 3 2
M1 7 7 7                    
M2   0 0                    
M3     1                    
是否缺页                          

根据描述,最佳置换算法需要在序列中对比内存块找到最近不会使用的;

第四次:进来2,此时内存块中是7,0,1;7和1在未来都不会使用(因为你看后续的所有序列号),所以随便换一个,就变成了2,0,1

第五次:进来0,0在内存中已经存在,所以不发生置换,此时还是2,0,1

第六次:进来3,后续中会用到2和0,所以去掉1,变成了2,0,3

第七次:进来0,0在内存中存在,所以还是2,0,3

第八次:进来4,后续序列中,先进来2和3,所以把0替换掉,变成2,3,4

第九次:进来2,不发生替换,还是2,3,4

第十次:进来3,不发生替换,结果2,3,4

第十一次:进来0,在未来3和2会用到,踢掉4,结果是3,2,0

第十二次:不发生置换

第十三次:不发生置换

所以上述分析在下方表格为:

描述 7 0 1 2 0 3 0 4 2 3 0 3 2
M1 7 7 7 2   2   2     2    
M2   0 0 0   0   4     0    
M3     1 1   3   3     3    
是否缺页                  

所以总的缺页次数为:3 次,总次数为13次。缺页率为:3/13

LRU(最久未使用算法)

该算法和OPT类似,只不过OPT是往序列后面看,LRU是往序列前面看最久未使用的;

描述 7 0 1 2 0 3 0 4 2 3 0 3 2
M1 7 7 7                    
M2   0 0                    
M3     1                    
是否缺页                          

第四次:进来2,此时内存中是序列号7,0,1,从2往前数发现7是最久未使用的,所以替换掉7,变成2,0,1

第五次:进来0,此时不发生置换,还是2,0,1

第六次:进来3,替换掉1,变成2,0,3

后续跟着规律往下填就行,结果如下:

描述 7 0 1 2 0 3 0 4 2 3 0 3 2
M1 7 7 7 2   2   4 4 4 0    
M2   0 0 0   0   0 0 3 3    
M3     1 1   3   3 2 2 2    
是否缺页                  

所以此时缺页次数为:2 次,总次数为13,缺页率为:9/13

 

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐