缓存换页机制
来源:互联网 发布:邢帅教育 知乎 编辑:程序博客网 时间:2024/06/06 05:19
缓存是计算机体系中一个比较重要的概念,如哈希一致性、换页机制就是有关缓存的。在笔试中也经常考察采用FIFO、LRU、LFU等页面淘汰机制和命中率。先了解下面几个概念:
缺页:如果需要访问的页面在缓存中不存在时,就代表缺页了。
命中:如果在缓存中存在需要访问的页面时,就代表命中了,直接从缓存中取出。
缺页次数 + 命中次数 = 访问次数。
命中率:命中次数/总共访问次数
提到缓存,有两点是必须要考虑的:
(1)缓存数据和目标数据的一致性问题。
(2)缓存的过期策略(机制)。
其中,缓存的过期策略涉及淘汰算法。常用的淘汰算法有下面几种:
1. FIFO(First In First Out):先入先出机制。
先进入页面的当作“旧”缓存,后进入的当作“新”缓存,当缓存满了的时候,根据“新旧”程度淘汰旧的。
- LRU(Least Recently Used):最近最少使用
- LFU(Least Frequently Used):最不经常使用
在某个存储系统中,假如系统分配给以个作业的内存物理块数是3,并且此作业的页面使用顺序为2,3,2,1,5,2,4,5,3,2,5,2,若采用FIFO和LRU置换算法,
FIFO算法:
M1、M2、M3代表缓存的页面存放方式(M1为最“旧”,M2其次,M3为最“新”),下面黑体表示(1/2/3空余的为NULL)
访问2 : 2,3,2,1,5,2,4,5,3,2,5,2 缺页2
访问3 : 2,3,2,1,5,2,4,5,3,2,5,2 缺页3
访问2 : 2,3,2,1,5,2,4,5,3,2,5,2 命中2
访问1 : 2,3,1,5,2,4,5,3,2,5,2 缺页2
访问5 : 2,3,1,5,2,4,5,3,2,5,2 缺页5
访问2 : 2,3,1,5,2,4,5,3,2,5,2 缺页2
访问4 : 2,3,1,5,2,4,5,3,2,5,2 缺页4
访问5 : 2,3,1,5,2,4,3,2,5,2 命中5
访问3 : 2,3,1,5,2,4,3,2,5,2 缺页3
访问2 : 2,3,1,5,2,4,3,5,2 命中2
访问5 : 2,3,1,5,2,4,3,5,2 缺页5
访问2 : 2,3,1,5,2,4,3,5,2 缺页2
命中3次,缺页9次,共访问12次,命中率3/12
LRU算法:
访问2 : 2,3,2,1,5,2,4,5,3,2,5,2 缺页2
访问3 : 2,3,2,1,5,2,4,5,3,2,5,2 缺页3
访问2 : 3,2,1,5,2,4,5,3,2,5,2 命中2
访问1 : 3,2,1,5,2,4,5,3,2,5,2 缺页2
访问5 : 3,2, 1,5,2,4,5,3,2,5,2 缺页5
访问2 : 3,1,5,2,4,5,3,2,5,2 命中2
访问4 : 3,1,5,2,4,5,3,2,5,2 缺页4
访问5 : 3,1,2,4,5,3,2,5,2 命中5
访问3 : 3,1,2,4,5,3,2,5,2 缺页3
访问2 : 3,1,2,4,5,3,2,5,2 缺页2
访问5 : 3,1,2,4,3,2,5,2 命中5
访问2 : 3,1,2,,4,3,5,2 命中2
命中5次,缺页7次,共访问12次,命中率5/12
如果是算法题,可以根据以上思路,很快写出程序来。
如果遇到的是小题,不需要把步骤都列出来,有一个小技巧,可以直接找出需要划掉的黑体数字,代表直接从缓存中取出。
对于FIFO:2,3,2,1,5,2,4,5,3,2,5,2,命中时,是划掉新进来的。
对于LRU:
2,3,2,1,5,2,4,5,3,2,5,2,在命中时,则是划掉先存进去的。
- 缓存换页机制
- 缓存机制
- 缓存机制
- 缓存机制
- 缓存机制
- 缓存机制
- 缓存机制
- 缓存机制
- 缓存机制
- 缓存机制
- 缓存机制
- 缓存机制
- 【缓存】-浏览器缓存机制
- 打印换页
- 文本换页
- HTTP缓存机制--客户端缓存
- IOS开发缓存机制----内存缓存机制
- IOS 开发缓存机制----内存缓存机制
- 原型模式
- sim900GPRS使用C语言打电话发短信
- stm32的时钟系统
- document.documentElement和document.body的区别
- AVL树单选转和双旋转
- 缓存换页机制
- 让div父元素的高度随子元素高度的变化而变化
- 结构型设计模式-装饰模式
- 线性回归-4-欠拟合、过拟合与局部加权线性回归
- Nginx加多个tomcat实现负载均衡,动静分离
- ffmpeg的Android交叉编译及在Qt for Android中的使用
- C++多态机制浅析
- 多重循环
- 程序员必知的10大基础实用性算法