LRU和LFU的區別


版權聲明:本文為博主原創文章,未經博主允許不得轉載。 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資源較多。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM