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






