lru是置换算法
‘壹’ 什么是lru置换算法
LRU是Least
Recently
Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的。
LRU算法的提出,是基于这样一个事实:在前面几条指令中使用频繁的页面很可能在后面的几条指令中频繁使用。反过来说,已经很久没有使用的页面很可能在未来较长的一段时间内不会被用到。这个,就是着名的局部性原理——比内存速度还要快的cache,也是基于同样的原理运行的。因此,我们只需要在每次调换时,找到最近最少使用的那个页面调出内存。这就是LRU算法的全部内容。
这是一个相当好的算法,它是理想算法很好的近似。
‘贰’ lru算法是什么
lru算法是一种页面置换算法,在对于内存中但是又不用的数据块,叫做LRU,操作系统会根据那些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。
LRU算法:最近最少使用,简单来说就是将数据块中,每次使用过的数据放在数据块的最前端,然后将存在的时间最长的,也就是数据块的末端的数据剔除掉这就是LRU算法。
如果进程被调度,该进程需要使用的外存页(数据)不存在于数据块中,这个现象就叫做缺页。如果这个数据此时不在,就会将这个数据从加入到数据块首部。
数据块插入与剔除:每次有新数据到来时,会将其放入数据块首部,当数据每次被访问时,将这个数据插入数据块的首部如果数据块满了,每次新进的数据都会将数据块尾部的数据挤出数据块。
差距:
为了尽量减少与理想算法的差距,产生了各种精妙的算法,最少使用页面置换算法便是其中一个。LRU算法的提出,是基于这样一个事实:在前面几条指令中使用频繁的页面很可能在后面的几条指令中频繁使用。
反过来说,已经很久没有使用的页面很可能在未来较长的一段时间内不会被用到。这个,就是着名的局部性原理——比内存速度还要快的cache,也是基于同样的原理运行的。因此,我们只需要在每次调换时,找到最少使用的那个页面调出内存。这就是LRU算法的全部内容。
‘叁’ lru算法是什么
LRU是Least Recently Used的缩写,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。
该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间t,当须淘汰一个页面时,选择现有页面中其t值最大的,即最近最少使用的页面予以淘汰。
特点:
LRU 算法弊端是存在偶发性、周期性的批量操会降低缓存的命中率,对缓存造成污染,下面几个就是改进算法。
LRU-K会记录每条数据的访问历史,当达到 k 时,才将数据存放到缓存,在缓存内存回收时,缓存中越接近 k 的数据被优先删除。
Two queues(2Q)相当于 LRU-2,区别是访问历史(首次访问)数据缓存于 FIFO 队列,二次及以上的数据存放LRU缓存,FIFO 队列数据遵循该缓存的内存回收机制,LRU缓存数据遵循该缓存的内存回收机制。
‘肆’ LRU替换算法怎么理解,过程好难,这个题麻烦大神帮我看看
LRU是LeastRecently Used 近期最少使用算法,也就是说,近期最少使用的那个页面,将被置换出去(可以理解为这个页面将被废弃)
对于本题。内存容量为4个页面,这是要清楚的。具体看下面的表格:
缺页率 = 6 / 20 =3/ 10 = 30%
我具体解释下上面的表格吧。
从上到下是4个页面。
最开始,1需要被调用,将1放入内存中,由于1一开始没有,所以一次缺页
然后,8要被调用,,将1放入内存中,由于8一开始没有,所以又产生一次缺页
以此往后,直到4块内存都满了,最新使用过的放在最下面(页4),则置换出最上面(页1)。
通俗地说,就是总共空间只有4块。只能放4个页面。那么当页面满的时候,就把你很久很久没有使用过的那个页面(也就是近期最少使用的页面)置换出去,然后补充新的页面进来。
这个算是页面置换里面比较经典的一个算法了,希望能帮到你!
‘伍’ lru算法是什么
lru算法是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。
该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 t,当须淘汰一个页面时,选择现有页面中其 t 值最大的,即最近最少使用的页面予以淘汰。
特点:
LRU 置换算法虽然是一种比较好的算法,但要求系统有较多的支持硬件。为了了解一个进程在内存中的各个页面各有多少时间未被进程访问,以及如何快速地知道哪一页是最近最久未使用的页面,须有两类硬件之一的支持:寄存器或栈。
在进程运行过程中,若其所要访问的页面不在内存而需把它们调入内存,但内存已无空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据送磁盘的对换区中。
‘陆’ lru算法是什么
最近最少使用页面置换算法,是为虚拟页式存储管理服务的。
LRU算法的建议基于以下事实:在前几条指令中经常使用的页面很可能在后几条指令中经常使用。
相反,长时间未使用的页面将来可能会长时间不使用。 这是众所周知的局部性原则-缓存比内存快,它也以相同的原理运行。 因此,每次交换时,我们只需要找到使用最少的页面来调出内存即可。
(6)lru是置换算法扩展阅读:
LRU算法是大多数操作系统广泛使用以最大化页面命中率的页面替换算法。该算法的思想是,当发生页面错误时,将选择并替换未使用时间最长的页面。
从程序操作原理的观点来看,最近最少使用的算法是相对接近理想的页面替换算法。该算法不仅充分利用了内存中页面调用的历史信息,而且可以正确反映程序的局部问题。