lru缺页算法
1. lru算法是什么
lru算法是一种页面置换算法,在对于内存中但是又不用的数据块,叫做LRU,操作系统会根据那些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。
LRU算法:最近最少使用,简单来说就是将数据块中,每次使用过的数据放在数据块的最前端,然后将存在的时间最长的,也就是数据块的末端的数据剔除掉这就是LRU算法。
如果进程被调度,该进程需要使用的外存页(数据)不存在于数据块中,这个现象就叫做缺页。如果这个数据此时不在,就会将这个数据从加入到数据块首部。
数据块插入与剔除:每次有新数据到来时,会将其放入数据块首部,当数据每次被访问时,岩键肢将这个数据插入数据块的首部如果数据块满了,每次新进的数据都会将数据块尾部的数据挤出数据块。
差距
为了尽量减少与理想算法的差距,产生了各种精妙的算法,最少使用页面置换算法便是其中一个。LRU算法的提出,是基于这样一个事实:在前面几条指令中使用频繁的页面很可能在后面的几条指令中频繁使用。
反过来说,已经亮铅很久没有使用的页面很可能在未来较长的一段时间内不会被用到。这个,就是着名的局部性原理——比内存速度还要快的cache,也是基于同样的原理运行的。因此,我们只需要在每次调换时,找到最少使用的那个页面调出内存。这就是LRU算法的全部内容。
LRU在电子系统中的解释:
Line Replaceable Unit—LRU,电子系统中常采用模块化设计,这种可更换的模块单元则被叫做LRU,中文名称是“线性可粗世更换单元”。
2. 实现LRU算法的硬件支持是什么
寄存器、栈
实现LRU算法的硬件支持是寄存器、栈。寄存器用于记录某进程在内存中各页的使用情况;栈用于保存当前使用的各个页面的页面号。LRU是最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。
(2)lru缺页算法扩展阅读:
大部分操作系统为最大化页面命中率而广泛采用的一种页面置换算法是LRU算法。该算法的思路是,发生缺页中断时,选择未使用时间最长的页面置换出去。从程序运行的原理来看,最近最少使用算法是比较接近理想的一种页面置换算法,这种算法既充分利用了内存中页面调用的历史信息,又正确反映了程序的局部问题。
3. 用FIFO和LRU算法,计算访问过程中所发生的缺页次数和缺页率
11144446666333322226
02222111222277771111
00333355511116666633
**** ***** ** ** **
缺页次数为15 缺页率为15/20=0.75
以上是M为3时的FIFO访问
太多就不一一写了
把方法告诉你:
LRU算法:最近最少使用,即把最后一次访问燃碰时间距当前时间间隔最长的置换出去。
FIFO算法:先进先出算法,想想队列,把先进的置换出去。
只要访春逗问某页面序列时发生置换,即为缺页。
缺页皮森谈数/总的访问数=缺页率
这样说 可以理解不?
4. LRU算法,缺页是什么概念
根据LRU算法,需要替换上次使用距现在最远的页面.
首先2,3,2这三页进入内存(进程只分配到3个页面,切顺序为由内到外,第二
个2进入时不缺页,所以共缺页2次),1进入时,内存不满且内存中没有1这个页面即第1个进入内存,所以顺序是2,3,1(缺页1次);下一个进入的是
5,替换3(缺页1次),得到2,1,5;下一个进入的是2,内存中有2号页面,进行下一个页面;下一个进入4,4替换1,得到2,5,4(缺页1次);
下一个进入5,内存中有5号页面,进行下一个页面;下一个进入3,3替换2,得到3,5,4(缺页1次);下一次进入2,2替换4,得到3,5,2(缺页
1次);后面2号和5号内存中均存在,则不需要替换.所以一共发生了7次缺页.
5. 操作系统LRU算法习题求解!!!
LRU队列长度为 (384/128) = 3。
87、138、277、56、390、532、285、410、45、180、330、190
对应的页面号依次为:
0 、 1 、 2 、 0 、 3 、 4 、 2 、 3 、 0 、 1 、 2 、 1
然后看看那几个页面会缺页:
0、1、2 都会缺页,因为一开始内存里面什么页面都没有。
0会命中。 现在内存里面页面的LRU顺序为0,2,1
3、4都会缺页。 内存中没有。 现在内存里面LRU顺序为 4,3,0
2会缺页。 内存中没有。 LRU顺序为 2,4,3
0、1会缺页。 内存中没有。 LRU顺序为 1,0,2
2、1会命中。
总共12次访问,只有3次命中,9次失效。
失效率为 9/12 = 75%