缓存的替换策略
内存页面中最迟将被使用的----这可以最大限度的推迟页面调换,这种算法,被称为理想页面置换算法。
为了尽量减少与理想算法的差距,产生了各种精妙的算法,最近最少使用页面置换算法便是其中一个。当
然,LRU算法的缺点在于实现方法的不足----效率高的硬件算法通常在大多数机器上无法运行,而软件算
法明显有太多的开销。
LFU实现比较困难,目前多用LRU进行页面替换
2)RAND、FIFO、LRU及OPT算法
·RAND算法:用软硬件的随面数产生主存中要被替换页的页号。
·FIFO算法:选择最早装入主存的页作为被替换的页。这种算法实现方便,但不一定正确反映出程序
的局部性。
谁还记的《数据结构》的队列,哦,你对了,给你一个糖,队列就象排队买票,谁先排到队中,谁更
早滚蛋。
·LRU算法:选择近期最少访问的页作为被替换页。
·LFU算法:最近最不常用调度算法,是根据在一段时间里页面被使用的次数选择出最少使用的页
大家要注意LRU和LFU两个算法的区别,从上边两种解决使用位都为1的方法来看,随机法接近于LRU,
第二种接近LFU,大家看看《操作系统》P76页,那写的清楚。
·OPT算法:根据未来实际使用情况将未来的近期里不用的页替换出去。这种算法是用来评价期它替
换算法好坏的标准。不可能实现。
<1> 先进先出调度算法
先进先出调度算法根据页面进入内存的时间先后选择淘汰页面,先进入内存的页面先淘汰,后进入内存的后淘汰。本算法实现时需要将页面按进入内存的时间先后组成一个队列,每次调度队首页面予以淘汰。
<2>最近最少调度算法
先进先出调度算法没有考虑页面的使用情况,大多数情况下性能不佳。根据程序执行的局部性特点,程序一旦访问了某些代码和数据,则在一段时间内会经常访问他们,因此最近最少用调度在选择淘汰页面时会考虑页面最近的使用,总是选择在最近一段时间以来最少使用的页面予以淘汰。算法实现时需要为每个页面设置数据结构记录页面自上次访问以来所经历的时间。
<3>最近最不常用调度算法
由于程序设计中经常使用循环结构,根据程序执行的局部性特点,可以设想在一段时间内经常被访问的代码和数据在将来也会经常被访问,显然这样的页面不应该被淘汰。最近最不常用调度算法总是根据一段时间内页面的访问次数来选择淘汰页面,每次淘汰访问次数最少的页面。算法实现时需要为每个页面设置计数器,记录访问次数。计数器由硬件或操作系统自动定时清零。
分享到:
相关推荐
网络存储服务器缓存替换策略研究 缓存替换策略是影响网络存储服务器性能和效率的关键因素之一。常见的缓存替换策略有 LRU(Least Recently Used)算法、LRU-K 算法、LRU-M 算法、FIFO(First In First Out)算法和 ...
LRU算法是一种广泛使用的缓存替换策略,它依据“最近最少使用”的原则,淘汰最长时间未被访问的数据块。LRU在许多缓存系统中被采用,尤其是在高局部性访问模式下能有良好的表现。然而,在顺序访问模式下,当被扫描的...
web缓存方面的论文,对做这方面研究的兄弟应该有点用吧
6. 构建分布式缓存替换策略:通过不断更新的LRU链表,构建新的分布式缓存替换策略,从而实现实时高效的数据访问。 为了验证新算法的有效性,作者将其与传统分布式缓存替换算法进行了对比实验。实验结果表明,新算法...
通过优化权重模型和改进替换策略,提出了一种高效RDD自主缓存替换策略(efficient RDD automatic cache,ERAC),包括高重用自主缓存算法和缓存替换分级算法,可实现高效RDD的自主缓存和缓存目标的分级替换。...
当请求的数据不在缓存中(即发生缓存缺失)时,就需要执行缓存替换策略。这种策略决定了哪些数据应该被替换到缓存中,以及何时进行替换。 描述中的“使用缓存缺失请求提供缓存替换通知”可能是指一种机制,当发生...
机会网络中的节点以“存储-携带-转发”的方式完成消息转发,消息需要在中继节点缓存较长时间以等待通信机会,高效的缓存替换策略能够提高有限缓存空间的利用率。提出一种基于节点转发消息能力的自适应缓存替换策略。...
#资源达人分享计划#
常见的缓存替换策略包括先进先出(FIFO)、最近最少使用(LRU)、基于频率的替换等。每种策略在不同的应用场景下有不同的效果和适用性。 文章最后对一些具有代表性的缓存策略和缓存替换策略进行了对比和分析。作者...
3. 缓存替换策略:缓存替换策略是确定哪些文件应该被替换的策略,它应该确保继续缓存在本地的文件缓存价值较高,并替换出未来不久被用户访问次数少的文件。 4. 缓存阈值:缓存阈值是指能影响缓存决策结果的一个临界...
缓存替换策略是缓存系统的核心部分,因为它决定了何时以及如何将新的数据放入缓存,同时移除不再需要的数据。常见的缓存替换算法有以下几种: 1. **先进先出(FIFO)**:最早进入缓存的数据最先被替换出去,这是一...
LRU算法是一种常用的缓存替换策略,它依据访问历史信息来淘汰最久未被访问的数据,以使得更可能被访问的数据保持在缓存中。在这种情况下,K-Degree指的是缓存中数据的新鲜程度,算法会根据数据的新鲜度和访问频度来...
CLOCK-Pro 是一种优化的缓存替换策略,它改进了基础的 CLOCK 算法,以更好地适应现代处理器的特性。本文将深入探讨 Rust 语言实现的 CLOCK-Pro 缓存替换算法,以及其在编程实践中的应用。 CLOCK-Pro 算法是在早期的...
综上所述,LRU和FIFO作为两种基本的缓存替换策略,各有优势与不足。LRU策略充分利用了时间局部性,但其实现相对复杂;而FIFO策略虽然简单易行,却忽略了数据访问的历史记录。在实际应用中,需要根据具体场景的需求...