版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/guoweimelon/article/details/50855351
一、概念介紹
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資源較多。