对某一个任意程序,虚拟存储器的主存替换算法中命中率最高的是()。
- A.LRU算法
- B.LRU算法十FIFO算法
- C.FIFO算法
- D.不一定
正确答案及解析
正确答案
D
解析
FIFO算法选择最早调入的字块进行替换,它不需要记录各字块的使用情况,比较容易实现,开销小,但没有根据访存的局部性原理,故不能提高Cache的命中率,因为最早调入的信息可能以后还要用或者经常要用到,如循环程序。LRU算法比较好的利用访存局部性原理,替换出及使用得最少的字块.它需要随时记录Cache中各字块的使用情况,以便确定哪个字块是近期最少使用的字块,它实际上是一种推测的方法,比较复杂,一般采用简化的方法,只记录每个块最近一次使用的时间,LRU算法的平均命中率比LRU高,但是它们的命中率会受具体程序使用内存的情况的影响。