lru算法例題 lru算法?
lru算法?LRU算法的設計原則是:如果一個數(shù)據(jù)最近一段時間沒有被訪問過,那么它在將來就不太可能被訪問。換言之,當有限的空間充滿數(shù)據(jù)時,應該消除最長時間未被訪問的數(shù)據(jù)。執(zhí)行LRU1。使用數(shù)組存儲數(shù)據(jù),
lru算法?
LRU算法的設計原則是:如果一個數(shù)據(jù)最近一段時間沒有被訪問過,那么它在將來就不太可能被訪問。換言之,當有限的空間充滿數(shù)據(jù)時,應該消除最長時間未被訪問的數(shù)據(jù)。
執(zhí)行LRU
1。使用數(shù)組存儲數(shù)據(jù),用訪問時間戳標記每個數(shù)據(jù)項。插入新數(shù)據(jù)項時,首先增加數(shù)組中現(xiàn)有數(shù)據(jù)項的時間戳,將新數(shù)據(jù)項的時間戳設置為0,然后將其插入數(shù)組中。每次訪問數(shù)組中的數(shù)據(jù)項時,所訪問數(shù)據(jù)項的時間戳都設置為0。當數(shù)組空間已滿時,時間戳最大的數(shù)據(jù)項將被刪除。
2. 使用鏈表實現(xiàn),每次插入新數(shù)據(jù)時,將新數(shù)據(jù)插入鏈表的頭部;每次緩存命中時,將數(shù)據(jù)移動到鏈表的頭部(即訪問數(shù)據(jù));然后在鏈表已滿時丟棄鏈表末尾的數(shù)據(jù)。
3. 使用鏈表和HashMap。當需要插入新數(shù)據(jù)項時,如果新數(shù)據(jù)項存在于鏈表中(通常稱為hit),請將節(jié)點移動到鏈表的頭部。如果不存在,則創(chuàng)建一個新節(jié)點并將其放在鏈表的頭部。如果緩存已滿,請刪除鏈表的最后一個節(jié)點。在訪問數(shù)據(jù)時,如果鏈表中存在該數(shù)據(jù)項,則節(jié)點會移到鏈表的頭,否則返回-1。這樣,鏈表末尾的節(jié)點就是最近不可訪問的數(shù)據(jù)項。
對于第一種方法,需要連續(xù)維護數(shù)據(jù)項的訪問時間戳。另外,在插入數(shù)據(jù)、刪除數(shù)據(jù)和訪問數(shù)據(jù)時,時間復雜度為O(n)。對于第二種方法,鏈表的時間復雜度為O(n)。所以一般來說,第三種方法是實現(xiàn)LRU算法。
LFU算法LFU算法過程是什么,呵LRU算?
LRU是最近最少使用的頁面替換算法(最近最少使用),即首先消除最長未使用的頁面!LFU是最近使用最少的頁面替換算法(最少頻繁使用),即在一定時間內(nèi)消除最少訪問的頁面!例如,第二方法的周期T是10分鐘。如果每分鐘分頁一次,則內(nèi)存塊為3,如果所需的頁方向為2121234,請注意,調(diào)用第4頁時會出現(xiàn)缺頁。根據(jù)LRU算法,第1頁應該被替換(第1頁的使用時間最長),但是第3頁應該根據(jù)LFU算法被替換(第3頁每十分鐘才使用一次)??梢钥闯觯琇RU的關鍵是看頁面從上次使用到調(diào)度的時間,而LFU的關鍵是看頁面在一定時間段內(nèi)的使用頻率
最佳頁面淘汰算法是怎樣計算的?
1 50%指令序列執(zhí)行225%前地址部分指令均勻走行325%后地址部分指令均勻走行:命中率=1-頁面失敗次數(shù)(僅使用2的冪次)/葉地址流長度算法:opt FIFO RLU(定義)(至少有兩種算法)程序流程圖開始:根據(jù)假設生成給定長度的指令地址流-> set initial calculation size=1~8(1,2,4,8)(第頁)real memory=4~32(4,8,16,32)->輸入消除算法->A->alg=FIFO(或)(LRU)->fifo->使用FIFO計算命中率->使用LRU計算命中率->輸出結(jié)果->結(jié)束算法定義:理想消除算法-在最佳頁面算法(OPT)之后不再需要或?qū)⒃谧钸h的將來使用的頁面被淘汰了。FIFO選擇內(nèi)存中駐留時間最長的頁并將其消除。LRU從當前時間中選擇最后一次訪問時間最長的頁面,首先進行消頁,LRU是最近一次未使用的消頁算法。他的想法是刪除那些沒有被訪問時間最長的頁面。LFU是最新的最少使用頁面消除算法,其思想是:永遠把當前使用最少的頁面去掉。
從字面上看,似乎這兩種算法是相似的,很難理解。但是讓我們舉個例子,你可以完全理解它:
例如,內(nèi)存可以存儲6頁,現(xiàn)在內(nèi)存中的頁是2,1,1,1,3,2
使用LRU:下一個要刪除的頁是1,因為它最近沒有被使用過
使用LFU:要刪除的頁是3,因為3至少只被使用過一次說到緩存,必須考慮兩點
緩存數(shù)據(jù)和目標數(shù)據(jù)的一致性。
緩存過期策略(機制)。
其中,緩存過期策略涉及消除算法。常用的消去算法如下:
FIFO:先進先出
LRU:最近最少使用
LFU:最近最少使用
注意LRU和LFU的區(qū)別。LFU算法根據(jù)數(shù)據(jù)項在一段時間內(nèi)的使用次數(shù)來選擇使用最少的數(shù)據(jù)項,即根據(jù)使用次數(shù)的不同來確定。LRU根據(jù)使用時間的不同而確定。