本题考查的是Cache替换算法。
常用的数据替换算法包括随机算法、先进先出(First In and First Out, FIFO)算法、近期最少使用(Least Recently Used, LRU)算法。本题选择A选项。
(1)随机算法。这是最简单的替换算法。随机算法完全不管Cache块过去、现在及将来的使用情况,简单地根据一个随机数,选择一块替换掉。
(2)先进先出(First In and First Out, FIFO)算法。按调入Cache的先后决定淘汰的顺序,即在需要更新时,将最先进入cache的块作为被替换的块。这种方法要求为每块做一记录,记下它们进入Cache的先后次序。这种方法容易实现,而且系统开销小。其缺点是可能会把一些需要经常使用的程序块(如循环程序)替换掉。
(3)近期最少使用(Least Recently Used, LRU)算法。LRU算法是把CPU近期最少使用的块作为被替换的块。这种替换方法需要随时记录cache中各块的使用情况,以便确定哪个块是近期最少使用的块。LRU算法相对合理,但实现起来比较复杂,系统开销较大。通常需要对每一块设置一个称为“年龄计数器”的硬件或软件计数器,用以记录其被使用的情况。
选项B中的先进后出算法(FILO)是按调入Cache的先后决定淘汰的顺序,即在需要更新时,将最后进入cache的块作为被替换的块。不适合Cache替换,它会降低Cache的命中率;选项D的最近最常使用(MRU)算法是把CPU近期最常使用的块作为被替换的块,也不适合Cache替换,且不常用。选项C中的轮询调度(RRS)不是Cache替换算法,适用于服务器调度。