LRU(最近最少使用算法) and MRU(最近最常使用算法)
所谓的LRU(Least recently used)算法的基本概念是:当内存的剩余的可用空间不够时,缓冲区尽可能的先保留使用者最常使用的数据,换句话说就是优先清除”较不常使用的数据”,并释放其空间.之所以”较不常使用的数据”要用引号是因为这里判断所谓的较不常使用的标准是人为的、不严格的.所谓的MRU(Most recently used)算法的意义正好和LRU算法相反.
下面我们通过Oracle 9i Cache中对LRU和MRU的使用来看一下两者在缓冲区工作机制中的作用和区别:
在Oracle 9i中有LRU List的概念: 我们可以把LRU List想象成是一连串的缓冲区集合,两端分别是LRU端和MRU端, 当数据库从磁盘上读取数据放入缓冲区时,系统必须先确定缓冲区中有free buffers,这个时候Oracle 9i会扫描LRU List,扫描的基本原则是:
1. 从LRU端到MRU端;
2. 当扫描到free buffer或已扫描的缓冲区数目超过临界值时,就会停止扫描动作;
如果在扫描过程顺利的在LRU List中找到了free buffer,那么Oracle 9i就把从磁盘读出的数据写到free buffer中然后把free buffer加到LRU List的MRU端.
那如果扫描过程没有在LRU List中找到free buffer怎么办?当然是从LRU List的LRU端开始清除缓冲区,如此一来就可以腾出新的空间了.
下图就是一个例子:
使用者查询数据A,初始的时候LRU List中没有数据A,于是Oracle 9i到磁盘读取A,然后放到LRU List的MRU端,使用者再从LRU List中读取数据A,同理对于B,C…当LRU List满了以后,如果使用者查询N,此时N不在LRU List中而且LRU List中已经没有free buffer了,此时Oracle 9i就开始从LRU端淘汰A以腾出空间存放N.
我们再来看另外一种情况:
在State 3之后,恰好使用者持续的查询A—这将会导致A一直被放置在靠近MRU端的缓冲区,结果将如图State m’所示,你会发现图2的State m’与图1的State m缓冲区存放的数据完全一样但是存放位置不一样.此时LRU List满了,如果再放N的时候LRU List`淘汰的是B,因为A的查询率高于B,所以LRU List让A在缓冲区中呆上较长的时间而先淘汰掉”较不常用的”的B.
分享到:
相关推荐
实验6虚拟内存置换算法——最佳置换算法(OPI)、先进先出(FIFO)、最近最久未使用算法(LRU), 调试可运行,,含实验报告,含具体流程图 ,有注释和变量解释 含本人实验报告,有具体流程图,实验课上写的,有更好的想法...
算法笔记 可供各学校计算机上机复试及各OJ平台刷题使用算法笔记 可供各学校计算机上机复试及各OJ平台刷题使用算法笔记 可供各学校计算机上机复试及各OJ平台刷题使用算法笔记 可供各学校计算机上机复试及各OJ平台刷题...
3. 最近最久未使用算法(LRU):该算法根据页面最近的使用情况来选择要换出的页面。它可以较好地反映页面的使用情况,但需要记录每个页面的使用时间。 4. 最不经常使用算法(LFU):该算法根据页面的使用频率来选择...
LRU置换算法是最近最久未使用置换算法。是根据页面调入内存的使用情况进行决策。
操作系统 页面替换算法(OPT最佳置换算法与LRU最近最久未使用算法)
(5) 最近最不经常使用算法(NUR) 命中率=1-页面失效次数/页地址流长度 <程序设计> 本实验的程序设计基本上按照实验内容进行。即首先用 srand()和 rand()函数定 义和产生指令序列,然后将指令序列变换成相应的页地址流,...
是使用OPT算法,最近最久未使用算法编写的程序,还附加计算缺页中断次数和缺页率。非常适合大家下载,请大家支持下。
扫雷程序 扫雷程序 很简单 使用 算法简单
使用算法助手阻止弹窗演示
非常实用的时差定位算法,与泰勒算法有区别
使用算法的分析与程序设计
本实验报告主要探讨了三种经典的页面置换算法:最佳置换算法(OPT)、先进先出算法(FIFO)以及最近最久未使用算法(LRU)。 1. 最佳置换算法(Optimal Page Replacement Algorithm, OPT): OPT算法的目标是最小...
采用案例形式,以智能算法为主线,讲解了遗传算法、免疫算法、退火算法、粒子群算法、鱼群算法、蚁群算法和神经网络算法等最常用的智能算法的MATLAB实现。...从而快速提高使用算法求解实际问题的能力。
设计一个虚拟存储及内存工作区,使用先进先出算法(FIFO),理想型淘汰算法(OPT),最近最久未使用算法(LRU)计算不同内存容量下的缺页率,模拟表示出不同算法内存中页面的变化情况,并对不同内存容量下不同算法的...
本书采用案例形式,以智能算法为主线,讲解了遗传算法、免疫算法、退火算法、粒子群算法、鱼群算法、蚁群算法和神经网络算法等最常用的智能算法的MATLAB实现。...从而快速提高使用算法求解实际问题的能力.
本程序涵盖了五种常见的页面置换算法:最佳置换算法(OPT)、先进先出算法(FIFO)、最近最久未使用算法(LRU)、随机置换算法(RAND)以及两种时钟算法(简单时钟和改进时钟)。下面将对这些算法进行详细介绍,并...
每个案例都是一个使用智能算法解决问题的具体实例,所有案例均由理论讲解、案例背景、MATLAB程序实现和扩展阅读四个部分组成,并配有完整的原创程序,使读者在掌握算法的同时更能快速提高使用算法求解实际问题的能力...
该工程具体是在codeblock上面实现了操作系统课程上讲解的页面置换算法,包括先进先出(FIFO)、最佳置换算法(OPT)、最久最近未使用算法(LRU)。 具体实现功能有: 1、建立相应的数据结构 2、在屏幕上显示页面的...
每个案例都是一个使用智能算法解决问题的具体实例,所有案例均由理论讲解、案例背景、MATLAB程序实现和扩展阅读四个部分组成,并配有完整的原创程序,使读者在掌握算法的同时更能快速提高使用算法求解实际问题的能力...