關於FIFO(頁面淘汰演算法)和LRU(最近最少使用演算法)詳細說明
阿新 • • 發佈:2018-12-10
舉例說明:例如在一個虛存系統中,程序的記憶體空間為3頁,已開始記憶體為空,有以下訪問序列:2,3,2,1,5,2,4,5,3,2,5,2。分別用以上兩種方法分別計算缺頁次數。
A:使用FIFO(頁面淘汰演算法)
FIFO:先進先出,也就是,
先調2(缺) 記憶體為2.
調3(缺) 記憶體2.3.
調2(不缺)記憶體2.3
調1(缺)記憶體2.3.1
調5(缺)記憶體5.3.1(因為先進先出,所以替換調最先進來的2)
調2(缺)記憶體5.2.1(同樣替換調3)
調4(缺)記憶體5.2.4
調5(不缺)記憶體5.2.4
調3(缺)3.2.4
調2(不缺)3.2.4
調5(缺)3.5.4
調2(缺)3.5.2 所以一共缺了9次
B:使用LRU(最近最少使用演算法)
LRU:最近最少使用演算法,也就是替換掉最遠沒有使用的,看示例:
還是跟上面一樣,先呼叫2(缺) 記憶體2
調3(缺) 記憶體2.3
調2(不缺) 記憶體2.3
調1(缺) 記憶體2.3.1
調5(缺) 記憶體2.5.1(為什麼是替換掉3呢,因為最近使用了1和2 而3沒有進行使用)
調2(不缺)記憶體2.5.1
調4(缺)記憶體2.5.4(1最近沒有使用)
調5(不缺)記憶體2.5.4
調3(缺)3.5.4
調2(缺)3.5.2
調5(不缺)3.5.2
調2(不缺)3.5.2 所以一共缺頁7次。