有诗云:苔花如米小,也学牡丹开。——袁枚
本篇笔记整理:Code_流苏(CSDN)
Last(在此处点击使用,直达文末)
Frist (在文末点击使用,返回文章首部)

目录

  • 0. 思维导图
  • 1. 需要替换算法的原因
  • 2. 几种常见的替换算法
  • 3. 先进先出法---FIFO
    • ①简介
    • ②优点
    • ③缺点
  • 4. 最不经常使用法---LFU
    • ①简介
    • ②优点
    • ③缺点
  • 5. 近期最少使用法---LRU
    • ①简介
    • ②优点
    • ③缺点
  • 6. 替换算法的抖动 - 以FIFO为例
  • 7. 替换算法的实现方式

★观前提示:本专栏笔记内容适合有一定的基础或复习时观看,内容如有错,还请大家评论指出!非常感谢!

0. 思维导图

★小提示:
一些替换算法的具体思想和优缺点在所学习内容中并未提到,因此自己查阅了一些相关资料,对其进行了补充。

1. 需要替换算法的原因


原因:程序运行一段时间后,Cache存储空间会被占满
当再有新数据要调入时,就需要通过某种机制决定替换的对象。

2. 几种常见的替换算法

①先进先出法—FIFO
②最不经常使用法—LFU
③近期最少使用法—LRU
④随机替换法—RAND

3. 先进先出法—FIFO

①简介

先进先出(First In first Out,FIFO) 算法:每次替换最先调入内存的页面,即将内存中等待时间最长的页面进行替换。此算法的适用范围是顺序结构程序。

简单理解来看,和我们现实生活中的排队方式很相似, 先进队伍的人会先买到票, 然后先从队伍中离开。

②优点

实现比较简单,可以不需要硬件的支持

③缺点

先进先出页面置换算法没有考虑到缓存页面被使用的情况
在大数情况下,先进先出页面置换算法缺页率比较低或会产生Belady异常现象

4. 最不经常使用法—LFU

①简介

最不经常使用LFU算法:最不经常使用(最少次)淘汰算法(Least Frequently Used),淘汰一段时间内,使用次数最少的页面。

②优点

如果数据的分布在一段时间内是固定的话,那么LFU可以达到最高的命中率

③缺点

它需要给每个记录项维护频率信息,每次访问都需要更新,这是个巨大的开销;
对突发性的稀疏流量无力,因为前期经常访问的记录已经占用了缓存,偶然的流量不太可能会被保留下来,而且过去的一些大量被访问的记录在将来也不一定会使用上,这样就一直把位置占用了。

5. 近期最少使用法—LRU

①简介

近期最少使用算法LRU算法:最近最少使用(最长时间)淘汰算法(Least Recently Used),LRU是淘汰最长时间没有被使用的页面。

②优点

LRU实现简单,在一般情况下能够表现出很好的命中率。
对于热点数据, LRU 效率很好,“性价比”高,常用

③缺点

对于偶发的批量操作,比如说批量查询历史数据,就有可能使缓存中热门数据被这些历史数据替换,造成缓存污染,导致缓存命中率下降,减慢了正常数据查询。

6. 替换算法的抖动 - 以FIFO为例

7. 替换算法的实现方式

  • 1️⃣硬件实现
    成本?
  • 2️⃣LRU算法软件实现
    查找效率如何优化?

★补充
随机替换算法:由硬件或软件随机产生被替换的虚页号。
1️⃣优点:这种替换算法简单,易于实现,
2️⃣缺点:没有利用程序的局限性,主存命中率很低,很少使用。

★小总结:在上一节的学习中,学习到了Cache地址映射与变换方法。这节内容来了解了替换算法,了解到几种常见的的替换算法:FIFO、LFU、LRU和RAND,并对其优缺点等做了总结。通过本节内容的学习与记录,学习到了替换算法,也了解了它们的思想与优缺点,收获颇丰!
Last (一键到达文章末尾)
First(一键返回到文章目录)

笔记内容学习资料:计算机组成原理微课版(谭志虎、秦磊华等编著)
课件资料及视频学习:MOOC计算机组成原理(华中科大)
计算机组成原理专栏——笔记及测验练习都在这
如果对大家有帮助的话,希望大家能多多点赞+关注!这样我动力会更足哦! ღ( ´・ᴗ・` )比心。

计算机组成原理学习笔记第4章 4.10——替换算法相关推荐

  1. 计算机组成原理学习笔记第1章 1.3——实验一 计算机性能测试

    计算机组成原理学习笔记第1章 1.3--实验一 计算机性能测试 本篇笔记整理:Code_流苏(CSDN) 目录 计算机组成原理学习笔记第1章 1.3--实验一 计算机性能测试 0️⃣思维导图(自制) ...

  2. 计算机组成原理学习笔记第5章指令系统 5.6——MIPS指令详解

    有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) Last(在此处点击使用,直达文末) First (在文末点击使用,返回文章首部) 目录 0.思维导图 1.R型指令 ...

  3. 计算机组成原理学习笔记第6章中央处理器CPU 6.2——数据通路DataPath

    有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) Last(在此处点击使用,直达文末) First (在文末点击使用,返回文章首部) 目录 0.思维导图 1.数据通路 ...

  4. 计算机组成原理学习笔记第5章指令系统 5.3——操作数寻址方式

    有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) Last(在此处点击使用,直达文末) First (在文末点击使用,返回文章首部) 目录 0.思维导图 1.立即数寻 ...

  5. 计算机组成原理学习笔记第4章 4.2——主存中的数据组织

    有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) 目录 0.思维导图 1.存储字长 2.数据存储与边界的关系 ①按边界对齐的数据存储 ②未按边界对齐的数据存储 ③边界 ...

  6. 计算机组成原理学习笔记第4章 4.9——Cache地址映射与变换方法

    有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) 目录 0. 思维导图 1. 主存与Cache地址映射概述 2. 全相联映射的工作原理 3. 直接映射的工作原理 4. ...

  7. 计算机组成原理学习笔记第8章I/O系统 8.2 输入/输出方式

    名人说:非学无以广才,非志无以成学.--诸葛亮 本篇笔记整理:Code_流苏(CSDN) Last(在此处点击使用,直达文末) First (在文末点击使用,返回文章首部) 目录 1.输入/输出方式 ...

  8. 计算机组成原理学习笔记第4章 4.8——相联存储器

    有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) 目录 0. 思维导图 1. 相联存储器的作用 2. 判断的基本思路 3. 相联存储器的基本结构及工作原理 4. 相联 ...

  9. 计算机组成原理学习笔记第4章 4.12——虚拟存储器

    有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) Last(在此处点击使用,直达文末) Frist (在文末点击使用,返回文章首部) 目录 0. 思维导图 1. 虚拟 ...

最新文章

  1. SNMP高速扫描器braa
  2. 淘宝 oracle mysql_Oracle 与 MySQL 的区别-阿里云开发者社区
  3. VC里的#define new DEBUG_NEW
  4. hive清空外表数据
  5. 如何查找BAPI SD_SALESDOCUMENT_CHANGE里字段对应的数据库存储表
  6. [Spring5]IOC容器_Bean管理XML方式_自动装配
  7. 为GWT设置开发环境
  8. 监听router_深入揭秘前端路由本质,手写 mini-router
  9. java 复制字段_java - 在构造函数中按字段复制字段 - 我需要一个更简洁的形式 - SO中文参考 - www.soinside.com...
  10. 单链表以及双向链表的操作
  11. python杂记-6(timedatetime模块)
  12. readelf ELF 文件格式分析
  13. 有哪些电影一定要趁年轻看? - 风之影的回答 - 知乎
  14. 25句经典语录 带你成长
  15. 2017滴滴校招 连续最大和(DP)
  16. [附源码]计算机毕业设计JAVA停车场管理系统
  17. 微信付费群如何创建?如何搭建教程九块九源码?
  18. 假设检验中原假设和备择假设的选取问题
  19. hdoj 5514 Frogs
  20. java缓存读写文件小例子

热门文章

  1. 菜单设置:点击第一级菜单,第二级菜单在下方出现,并且下方的一级菜单自动下移
  2. 【USACO-Chapter1-1.1】【DP】Broken Necklace
  3. http请求被307到https
  4. TensorFlow张量
  5. android广播机制初步学习——短信黑名单
  6. Redmi K60 Pro参数配置怎么样 性能怎么样 红米 K60 Pro屏幕参数
  7. 2. enable_if的使用场景
  8. 【C语言】函数递归详解
  9. 【经验】学习电子及产品开发的10个简单的步骤
  10. 命令方式生成公钥私钥