此内容摘自在《计算机系统机构-习题与解析》,作者:尹朝庆,清华大学出版社
问:替换算法有哪几种?它们各有什么优缺点?
答:
- ①随机替换算法(RAND算法)由硬件或软件随机产生被替换的虚页号。这种替换算法简单,易于实现,但是,没有利用程序的局限性,主存命中率很低,很少使用。
- ②先进先出算法(FIFO算法)指定最早装入主存的虚页作为被替换页。FIFO算法利用了主存的实页位置被虚页使用的“历史”信息,但不一定能正确反映出程序的局限性。
- ③近期最少使用替换算法(LRU算法)指定近期使用次数最少的虚页作为被替换页。LRU算法比较确切地反映出程序的局部特点,但是,对装入主存的每个虚页都要配备一个位数较多的计数器,用以记录该虚页被访问过的次数,因此,开销较大。一般把近期最少使用替换算法改为近期最久未使用替换算法,仍将其成为LRU算法。
- ④最优替换算法(OPT算法)指定未来的近期不用或最久才用的虚页作为被替换页。OPT算法的命中率最高。(缺点是难以实现)