博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网络中,FIFO、LRU、OPT这三种置换算法的缺页次数
阅读量:4984 次
发布时间:2019-06-12

本文共 1249 字,大约阅读时间需要 4 分钟。

FIFO、LRU、OPT这三种置换算法的缺页次数

转载 
由于要考计算机四级网络,这里遇到了问题,就搜了一些资料来解疑。

考虑下述页面走向:

          1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6

     当内存块数量分别为3时,试问FIFO、LRU、OPT这三种置换算法的缺页次数各是多少?

   答:缺页定义为所有内存块最初都是空的,所以第一次用到的页面都产生一次缺页。

       当内存块数量为3时:

 

 

 

发生缺页中断的次数为16。

  在FIFO算法中,先进入内存的页面被先换出。当页6要调入时,内存的状态为4、1、5,考查页6之前调入的页面,分别为5、1、2、4,可见4为最先进入内存的,本次应换出,然后把页6调入内存。

 

 

发生缺页中断的次数为15。

 

LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的。该算法的初衷是有内存管理而被提出来的,其目的是为解决“如何节省利用容量不大的内存为最多的进程提供资源”时如何减少过多的让进程去读取外存。 

   这里以链表法来实现LRU: 
   一点介绍 
   操作系统为每个进程维护一条链表,链表的每个结点记录一张页面的地址。调用一次页面,则把该页面的结点从链中取出,放到链尾;要装入新页,则把链头的页面调出,同时生成调入页面的结点,放到链尾。 

 

  在LRU算法中,最近最少使用的页面被先换出。当页6要调入时,内存的状态为5、2、1,考查页6之前调入的页面,分别为5、1、2,可见2为最近一段时间内使用最少的,本次应换出,然后把页6调入内存。

 

 

 

发生缺页中断的次数为11。

    在OPT算法中,在最远的将来才被访问的页面被先换出。当页6要调入时,内存的状态为1、2、5,考查页6后面要调入的页面,分别为2、1、2、…,可见5为最近一段时间内使用最少的,本次应换出,然后把页6调入内存。

 

最不经常使用(Least Frequently Used --LFU) 页置换算法,要求在页置换时置换引用计数最小的页,因为经常使用的页应该有一个较大的引用次数。但是有些页在开始时使用次数很多,但以后就不再使用,这类页将会长时间留在内存中,因此可以将引用计数寄存器定时右移一位,形成指数衰减的平均使用次数。

 

注意LFU与LRU的区别,LFU一定是使用次数最少并且最近的被淘汰,而LRU被淘汰的是离上一次使用时间最长的。。

OPT算法因为要知道后面请求的页框,因此我觉得这个算法有个小小的bug,如果在某个请求中,若在该请求的页框之后的页框序列中至少存在一个和当前内存块中不匹配的页框,则按照内存块的顺序(从上往下)替换没有出现的页框。比如上面那个OPT例子。对于最后一个页框请求,因为6未命中,且6之后没有请求的序列,因此应该替换3,所以替换后的序列为6 , 2 ,1   当然,这只是针对做题而言。

下面是最佳页面置换算法:

 

 

转自

转载于:https://www.cnblogs.com/babyfei/p/8625228.html

你可能感兴趣的文章
c#操作excel后关闭excel.exe的方法
查看>>
智遥工作流——会签与多人审批区别
查看>>
201. Bitwise AND of Numbers Range -- 连续整数按位与的和
查看>>
less框架
查看>>
《超市智能化管理系统设计与实现》论文笔记(四)
查看>>
大数据框架-HDFS
查看>>
jQueryNotes仿QQ空间添加标记
查看>>
新浪新闻全站
查看>>
三、frpc 完整配置文件
查看>>
去掉A标签的中的图片边框与DIV中的文字设置垂直居中
查看>>
hg 添加用户
查看>>
Android直播实现 Android端推流、播放
查看>>
MySql(二)_NHibernateHelper管理会话工厂
查看>>
常用类 Object 字符串
查看>>
LeetCode算法题python解法:23. Merge k Sorted Lists
查看>>
最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用7
查看>>
【剑指Offer】33丑数
查看>>
python入门:常用模块—shutil 模块
查看>>
【BZOJ4152】The Captain
查看>>
【HTML学习手册】HTML介绍(一)
查看>>