1. 程式人生 > >關於FIFO(頁面淘汰演算法)和LRU(最近最少使用演算法)詳細說明

關於FIFO(頁面淘汰演算法)和LRU(最近最少使用演算法)詳細說明

舉例說明:例如在一個虛存系統中,程序的記憶體空間為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次。