单选题

对某一个任意程序, 虚拟存储器的主存替换算法中命中率最高的是(     )。

【正确答案】 D
【答案解析】

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