计算机操作系统 LRU算法 缺页中断
来源:互联网 发布:易建联伦敦奥运会数据 编辑:程序博客网 时间:2024/06/04 19:12
计算机操作系统 LRU算法 缺页中断
所谓的缺页,就是要访问的页不再内存中, 需要从外存中调入内存才可访问
LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。
1.2. 实现
最常见的实现是使用一个链表保存缓存数据,详细算法实现如下:
1. 新数据插入到链表头部;
2. 每当缓存命中(即缓存数据被访问),则将数据移到链表头部;
3. 当链表满的时候,将链表尾部的数据丢弃。
1.3. 分析
【命中率】
当存在热点数据时,LRU的效率很好,但偶发性的、周期性的批量操作会导致LRU命中率急剧下降,缓存污染情况比较严重。
【复杂度】
实现简单。
【代价】
命中时需要遍历链表,找到命中的数据块索引,然后需要将数据移到头部。
加深理解:
看下题:
一进程刚获得3个主存块的使用权,若该进程访问页面的次序是1,2,3,4,1,2,5,1,2,3,4,5.当采用LRU算法时,发生的缺页此次数是()
A. 9
B. 10
C. 11
D. 12
答案 B
再看一题:
LRU算法,缺页是什么概念?怎么计算缺页次数?
有一个虚拟存储系统,分配给某个进程3 页内存(假设开始时内存为空),页面访问序列是:2,3,2,1,5,2,4,5,3,2,5,2.若采用LRU 页面淘汰算法,缺页次数为( ).
答案是这样解析的(我看不懂):内存中依次是231,215(淘汰3),152(淘汰1),254(淘汰2),532(淘汰4).刚开始3页内存为空时,需要3次缺页调度,所以缺页次数为7.
写一个解题过程加深理解:
【】 3 2 开始都没有2 3 缺页 2 3 共2次
又来一个2
【】 2 3 缺页 0次
来一个1
1 2 3 缺页 1 缺页1次
来一个5
5 1 2 缺5 缺页1次
来一个 2
2 5 1 上一个就有2 缺0次
来一个4
4 2 5 缺4 缺页1次
来 一个5
5 4 2 上一个就有5 命中5缺0次
来一个3
3 5 4 缺3 缺1次
来一个2
2 3 5 缺2 缺页1次
来一个5
5 3 2 上一个就有5 缺0次
来一个2
2 5 3 上一个就有2 缺0 次
总共算一下 共缺页7次
- 计算机操作系统 LRU算法 缺页中断
- 页式虚存地址和缺页中断(LRU的计数器算法)
- FIFO和LRU计算缺页中断
- LRU和FIFO算法计算“缺页中断O(∩_∩)O啊
- 对用LRU和FIFO算法计算“缺页中断”的理解
- 【转载】对用LRU和FIFO算法计算“缺页中断”的理解
- 缺页中断——FIFO、LRU、OPT这三种置换算法
- 缺页中断——FIFO、LRU、OPT这三种置换算法
- 缺页中断——FIFO、LRU、OPT这三种置换算法
- 关于操作系统的LRU算法
- 操作系统——页置换算法(FIFO,OPT,LRU)
- 操作系统页面置换算法之LRU算法
- 操作系统概论的LRU调度算法
- 操作系统页面置换算法之FIFO,LRU
- 计算机操作系统之二:中断技术
- 操作系统虚拟内存中的四种典型页替换算法(OPT,LRU,FIFO,Clock)
- 操作系统虚拟内存中的四种典型页替换算法(OPT,LRU,FIFO,Clock)
- 操作系统虚拟内存中的四种典型页替换算法(OPT,LRU,FIFO,Clock)
- java LinkedBlockingDeque队列源码解读
- 淘宝tomcat远程调试
- iOS UIScrollView之contentOffset
- Android:防止过快点击造成多次事件
- java多线程
- 计算机操作系统 LRU算法 缺页中断
- ajax 请求进入到error
- MySQL带参数的存储过程小例子
- iosApp上线流程
- iOS 开发仿网易云音乐歌词海报
- [POJ3641] 伪素数
- JSP编程中遇到问题
- Android应用界面布局
- Tanks联机版服务端开发