lru算法及例題講解 lru算法?
lru算法?LRU算法的設(shè)計(jì)原則是:如果一個(gè)數(shù)據(jù)最近一段時(shí)間沒有被訪問過,那么它在將來就不太可能被訪問。換言之,當(dāng)有限的空間充滿數(shù)據(jù)時(shí),應(yīng)該消除最長時(shí)間未被訪問的數(shù)據(jù)。執(zhí)行LRU1。使用數(shù)組存儲數(shù)據(jù),
lru算法?
LRU算法的設(shè)計(jì)原則是:如果一個(gè)數(shù)據(jù)最近一段時(shí)間沒有被訪問過,那么它在將來就不太可能被訪問。換言之,當(dāng)有限的空間充滿數(shù)據(jù)時(shí),應(yīng)該消除最長時(shí)間未被訪問的數(shù)據(jù)。
執(zhí)行LRU
1。使用數(shù)組存儲數(shù)據(jù),用訪問時(shí)間戳標(biāo)記每個(gè)數(shù)據(jù)項(xiàng)。插入新數(shù)據(jù)項(xiàng)時(shí),首先增加數(shù)組中現(xiàn)有數(shù)據(jù)項(xiàng)的時(shí)間戳,將新數(shù)據(jù)項(xiàng)的時(shí)間戳設(shè)置為0,然后將其插入數(shù)組中。每次訪問數(shù)組中的數(shù)據(jù)項(xiàng)時(shí),所訪問數(shù)據(jù)項(xiàng)的時(shí)間戳都設(shè)置為0。當(dāng)數(shù)組空間已滿時(shí),時(shí)間戳最大的數(shù)據(jù)項(xiàng)將被刪除。
2. 使用鏈表實(shí)現(xiàn),每次插入新數(shù)據(jù)時(shí),將新數(shù)據(jù)插入鏈表的頭部;每次緩存命中時(shí),將數(shù)據(jù)移動到鏈表的頭部(即訪問數(shù)據(jù));然后在鏈表已滿時(shí)丟棄鏈表末尾的數(shù)據(jù)。
3. 使用鏈表和HashMap。當(dāng)需要插入新數(shù)據(jù)項(xiàng)時(shí),如果新數(shù)據(jù)項(xiàng)存在于鏈表中(通常稱為hit),請將節(jié)點(diǎn)移動到鏈表的頭部。如果不存在,則創(chuàng)建一個(gè)新節(jié)點(diǎn)并將其放在鏈表的頭部。如果緩存已滿,請刪除鏈表的最后一個(gè)節(jié)點(diǎn)。在訪問數(shù)據(jù)時(shí),如果鏈表中存在該數(shù)據(jù)項(xiàng),則節(jié)點(diǎn)會移到鏈表的頭,否則返回-1。這樣,鏈表末尾的節(jié)點(diǎn)就是最近不可訪問的數(shù)據(jù)項(xiàng)。
對于第一種方法,需要連續(xù)維護(hù)數(shù)據(jù)項(xiàng)的訪問時(shí)間戳。另外,在插入數(shù)據(jù)、刪除數(shù)據(jù)和訪問數(shù)據(jù)時(shí),時(shí)間復(fù)雜度為O(n)。對于第二種方法,鏈表的時(shí)間復(fù)雜度為O(n)。所以一般來說,第三種方法是實(shí)現(xiàn)LRU算法。
LFU算法LFU算法過程是什么,呵LRU算?
LRU是最近最少使用的頁面替換算法(最近最少使用),即首先消除最長未使用的頁面!LFU是最近使用最少的頁面替換算法(最少頻繁使用),即在一定時(shí)間內(nèi)消除最少訪問的頁面!例如,第二方法的周期T是10分鐘。如果每分鐘分頁一次,則內(nèi)存塊為3,如果所需的頁方向?yàn)?121234,請注意,調(diào)用第4頁時(shí)會出現(xiàn)缺頁。根據(jù)LRU算法,第1頁應(yīng)該被替換(第1頁的使用時(shí)間最長),但是第3頁應(yīng)該根據(jù)LFU算法被替換(第3頁每十分鐘才使用一次)。可以看出,LRU的關(guān)鍵是看頁面從上次使用到調(diào)度的時(shí)間,而LFU的關(guān)鍵是看頁面在一定時(shí)間段內(nèi)的使用頻率
LRU算法,缺頁是什么概念?怎么計(jì)算缺頁次數(shù)?
根據(jù)LRU算法,需要替換上次使用最遠(yuǎn)的頁面。首先,2頁、3頁和2頁進(jìn)入內(nèi)存(進(jìn)程只分配到3頁,順序是從內(nèi)到外。當(dāng)?shù)诙€(gè)2進(jìn)入時(shí),沒有缺頁,因此缺2頁)。當(dāng)1進(jìn)入時(shí),內(nèi)存未滿,內(nèi)存中沒有1頁,即第一頁進(jìn)入內(nèi)存,所以順序是2、3、1(缺頁1次)。下一頁是5。替換3(缺頁1次),下一頁為2、1、5、2。內(nèi)存中沒有第2頁。繼續(xù)下一頁。下一頁輸入4,4替換1得到2,5,4(缺頁一次)。下一頁進(jìn)入第5頁。內(nèi)存中沒有第5頁。繼續(xù)下一頁。下一頁輸入3,3替換2得到3,5,4(缺頁一次)。下一頁輸入2,2替換4得到3,5,2(缺頁一次)。如果2和5內(nèi)存都有,則無需更換。所以有七個(gè)分頁符。你的分析有問題。你不妨畫一幅畫