lru和lfu算法的區(qū)別 LFU算法LFU算法過(guò)程是什么,呵LRU算?
LFU算法LFU算法過(guò)程是什么,呵LRU算?LRU是最近最少使用的頁(yè)面替換算法(least recently used),即首先消除最長(zhǎng)未使用的頁(yè)面!LFU是最近使用最少的頁(yè)面替換算法(最少頻繁使用)
LFU算法LFU算法過(guò)程是什么,呵LRU算?
LRU是最近最少使用的頁(yè)面替換算法(least recently used),即首先消除最長(zhǎng)未使用的頁(yè)面!LFU是最近使用最少的頁(yè)面替換算法(最少頻繁使用),即在一定的時(shí)間內(nèi)消除最少訪問(wèn)的頁(yè)面!例如,第二方法的周期T是10分鐘,如果每分鐘分頁(yè)一次,則主存儲(chǔ)器塊是3,如果所需的頁(yè)方向是21234。請(qǐng)注意,調(diào)用第4頁(yè)時(shí),將出現(xiàn)缺頁(yè)中斷。根據(jù)LRU算法,應(yīng)該替換第1頁(yè)(第1頁(yè)最長(zhǎng)時(shí)間沒(méi)有使用),但是根據(jù)LFU算法,應(yīng)該替換第3頁(yè)(第3頁(yè)每十分鐘才使用一次)。可以看出,LRU的關(guān)鍵是看頁(yè)面最后使用了多長(zhǎng)時(shí)間,而LFU的關(guān)鍵是看頁(yè)面在一段時(shí)間內(nèi)使用的頻率
LRU和LFU到底有什么區(qū)別?
首先,LRU是最長(zhǎng)時(shí)間沒(méi)有使用頁(yè)面消除算法的。他的想法是刪除那些長(zhǎng)時(shí)間沒(méi)有訪問(wèn)的頁(yè)面。LFU是最新的最少使用頁(yè)面消除算法,其思想是:永遠(yuǎn)把當(dāng)前使用最少的頁(yè)面去掉。
從字面上看,似乎這兩種算法是相似的,很難理解。但是讓我們舉個(gè)例子,你可以完全理解它:
例如,內(nèi)存可以存儲(chǔ)6頁(yè),現(xiàn)在內(nèi)存中的頁(yè)是2,1,1,1,3,2
使用LRU:下一個(gè)要?jiǎng)h除的頁(yè)是1,因?yàn)樗罱鼪](méi)有被使用過(guò)
使用LFU:要?jiǎng)h除的頁(yè)是3,因?yàn)?至少只被使用過(guò)一次說(shuō)到緩存,必須考慮兩點(diǎn)
緩存數(shù)據(jù)和目標(biāo)數(shù)據(jù)的一致性。
緩存過(guò)期策略(機(jī)制)。
其中,緩存過(guò)期策略涉及消除算法。常用的消去算法如下:
FIFO:先進(jìn)先出
LRU:最近最少使用
LFU:最近最少使用
注意LRU和LFU的區(qū)別。LFU算法根據(jù)數(shù)據(jù)項(xiàng)在一段時(shí)間內(nèi)的使用次數(shù)來(lái)選擇使用最少的數(shù)據(jù)項(xiàng),即根據(jù)使用次數(shù)的不同來(lái)確定。LRU根據(jù)使用時(shí)間的不同而確定。