一、概念介紹
LRU和LFU都是內(nèi)存管理的頁(yè)面置換算法。
LRU,即:最近最少使用淘汰算法(Least Recently Used)。LRU是淘汰最長(zhǎng)時(shí)間沒(méi)有被使用的頁(yè)面。
LFU,即:最不經(jīng)常使用淘汰算法(Least Frequently Used)。LFU是淘汰一段時(shí)間內(nèi),使用次數(shù)最少的頁(yè)面。
二、例子詳解
假設(shè)LFU方法的時(shí)期T為10分鐘,訪問(wèn)如下頁(yè)面所花的時(shí)間正好為10分鐘,內(nèi)存塊大小為3。
若所需頁(yè)面順序依次如下:
2 1 2 1 2 3 4
---------------------------------------->
當(dāng)需要使用頁(yè)面4時(shí),內(nèi)存塊中存儲(chǔ)著1、2、3,內(nèi)存塊中沒(méi)有頁(yè)面4,就會(huì)發(fā)生缺頁(yè)中斷,而且此時(shí)內(nèi)存塊已滿,需要進(jìn)行頁(yè)面置換。
若按LRU算法,應(yīng)替換掉頁(yè)面1。因?yàn)轫?yè)面1是最長(zhǎng)時(shí)間沒(méi)有被使用過(guò)的了,頁(yè)面2和3都在它后面被使用過(guò)。
若按LFU算法,應(yīng)換頁(yè)面3。因?yàn)樵谶@段時(shí)間內(nèi),頁(yè)面1被訪問(wèn)了2次,頁(yè)面2被訪問(wèn)了3次,而頁(yè)面3只被訪問(wèn)了1次,一段時(shí)間內(nèi)被訪問(wèn)的次數(shù)最少。
可見(jiàn)LRU關(guān)鍵是看頁(yè)面最后一次被使用到發(fā)生替換的時(shí)間長(zhǎng)短,時(shí)間越長(zhǎng),頁(yè)面就會(huì)被置換; 而LFU關(guān)鍵是看一定時(shí)間段內(nèi)頁(yè)面被使用的頻率(次數(shù)),使用頻率越低,頁(yè)面就會(huì)被置換。
也就是說(shuō): LRU算法適合:較大的文件比如游戲客戶端(最近加載的地圖文件) LFU算法適合:較小的文件和較零碎的文件比如系統(tǒng)文件、應(yīng)用程序文件 其中:LRU消耗CPU資源較少,LFU消耗CPU資源較多。