缓存换页机制

来源:互联网 发布:邢帅教育 知乎 编辑:程序博客网 时间:2024/06/06 05:19

缓存是计算机体系中一个比较重要的概念,如哈希一致性、换页机制就是有关缓存的。在笔试中也经常考察采用FIFO、LRU、LFU等页面淘汰机制和命中率。先了解下面几个概念:
缺页:如果需要访问的页面在缓存中不存在时,就代表缺页了。
命中:如果在缓存中存在需要访问的页面时,就代表命中了,直接从缓存中取出。
缺页次数 + 命中次数 = 访问次数。
命中率:命中次数/总共访问次数

提到缓存,有两点是必须要考虑的:
(1)缓存数据和目标数据的一致性问题。
(2)缓存的过期策略(机制)。
其中,缓存的过期策略涉及淘汰算法。常用的淘汰算法有下面几种:
1. FIFO(First In First Out):先入先出机制。
先进入页面的当作“旧”缓存,后进入的当作“新”缓存,当缓存满了的时候,根据“新旧”程度淘汰旧的。

  1. LRU(Least Recently Used):最近最少使用
  2. 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,32,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,在命中时,则是划掉先存进去的。

0 0
原创粉丝点击