计算机组成原理学习笔记第4章 4.10——替换算法
有诗云:苔花如米小,也学牡丹开。——袁枚
本篇笔记整理: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.3——实验一 计算机性能测试
计算机组成原理学习笔记第1章 1.3--实验一 计算机性能测试 本篇笔记整理:Code_流苏(CSDN) 目录 计算机组成原理学习笔记第1章 1.3--实验一 计算机性能测试 0️⃣思维导图(自制) ...
- 计算机组成原理学习笔记第5章指令系统 5.6——MIPS指令详解
有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) Last(在此处点击使用,直达文末) First (在文末点击使用,返回文章首部) 目录 0.思维导图 1.R型指令 ...
- 计算机组成原理学习笔记第6章中央处理器CPU 6.2——数据通路DataPath
有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) Last(在此处点击使用,直达文末) First (在文末点击使用,返回文章首部) 目录 0.思维导图 1.数据通路 ...
- 计算机组成原理学习笔记第5章指令系统 5.3——操作数寻址方式
有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) Last(在此处点击使用,直达文末) First (在文末点击使用,返回文章首部) 目录 0.思维导图 1.立即数寻 ...
- 计算机组成原理学习笔记第4章 4.2——主存中的数据组织
有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) 目录 0.思维导图 1.存储字长 2.数据存储与边界的关系 ①按边界对齐的数据存储 ②未按边界对齐的数据存储 ③边界 ...
- 计算机组成原理学习笔记第4章 4.9——Cache地址映射与变换方法
有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) 目录 0. 思维导图 1. 主存与Cache地址映射概述 2. 全相联映射的工作原理 3. 直接映射的工作原理 4. ...
- 计算机组成原理学习笔记第8章I/O系统 8.2 输入/输出方式
名人说:非学无以广才,非志无以成学.--诸葛亮 本篇笔记整理:Code_流苏(CSDN) Last(在此处点击使用,直达文末) First (在文末点击使用,返回文章首部) 目录 1.输入/输出方式 ...
- 计算机组成原理学习笔记第4章 4.8——相联存储器
有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) 目录 0. 思维导图 1. 相联存储器的作用 2. 判断的基本思路 3. 相联存储器的基本结构及工作原理 4. 相联 ...
- 计算机组成原理学习笔记第4章 4.12——虚拟存储器
有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) Last(在此处点击使用,直达文末) Frist (在文末点击使用,返回文章首部) 目录 0. 思维导图 1. 虚拟 ...
最新文章
- SNMP高速扫描器braa
- 淘宝 oracle mysql_Oracle 与 MySQL 的区别-阿里云开发者社区
- VC里的#define new DEBUG_NEW
- hive清空外表数据
- 如何查找BAPI SD_SALESDOCUMENT_CHANGE里字段对应的数据库存储表
- [Spring5]IOC容器_Bean管理XML方式_自动装配
- 为GWT设置开发环境
- 监听router_深入揭秘前端路由本质,手写 mini-router
- java 复制字段_java - 在构造函数中按字段复制字段 - 我需要一个更简洁的形式 - SO中文参考 - www.soinside.com...
- 单链表以及双向链表的操作
- python杂记-6(timedatetime模块)
- readelf ELF 文件格式分析
- 有哪些电影一定要趁年轻看? - 风之影的回答 - 知乎
- 25句经典语录 带你成长
- 2017滴滴校招 连续最大和(DP)
- [附源码]计算机毕业设计JAVA停车场管理系统
- 微信付费群如何创建?如何搭建教程九块九源码?
- 假设检验中原假设和备择假设的选取问题
- hdoj 5514 Frogs
- java缓存读写文件小例子