作業系統 幾種頁面置換演算法

2021-09-10 02:28:03 字數 2608 閱讀 2409

1)最優置換演算法(opt)(理想置換演算法)

最佳置換法(opt):選擇將來不再使用或在最遠的將來才被訪問的頁調換出去(不便於實現)

這是一種理想情況下的頁面置換演算法,但實際上是不可能實現的。該演算法的基本思想是:發生缺頁時,有些頁面在記憶體中,其中有一頁將很快被訪問(也包含緊接著的下一條指令的那頁),而其他頁面則可能要到10、100或者1000條指令後才會被訪問,每個頁面都可以用在該頁面首次被訪問前所要執行的指令數進行標記。最佳頁面置換演算法只是簡單地規定:標記最大的頁應該被置換。這個演算法唯一的乙個問題就是它無法實現。當缺頁發生時,作業系統無法知道各個頁面下一次是在什麼時候被訪問。雖然這個演算法不可能實現,但是最佳頁面置換演算法可以用於對可實現演算法的效能進行衡量比較。

2)先進先出置換演算法(fifo)

最簡單的頁面置換演算法是先入先出(fifo)法。這種演算法的實質是,總是選擇在主存中停留時間最長(即最老)的一頁置換,即先進入記憶體的頁,先退出記憶體。理由是:最早調入記憶體的頁,其不再被使用的可能性比剛調入記憶體的可能性大。建立乙個fifo佇列,收容所有在記憶體中的頁。被置換頁面總是在佇列頭上進行。當乙個頁面被放入記憶體時,就把它插在隊尾上。

這種演算法只是在按線性順序訪問位址空間時才是理想的,否則效率不高。因為那些常被訪問的頁,往往在主存中也停留得最久,結果它們因變「老」而不得不被置換出去。

fifo的另乙個缺點是,它有一種異常現象,即在增加儲存塊的情況下,反而使缺頁中斷率增加了。當然,導致這種異常現象的頁面走向實際上是很少見的。

3)最近最少使用(lru)演算法(時間)

fifo演算法和opt演算法之間的主要差別是,fifo演算法利用頁面進入記憶體後的時間長短作為置換依據,而opt演算法的依據是將來使用頁面的時間。如果以最近的過去作為不久將來的近似,那麼就可以把過去最長一段時間裡不曾被使用的頁面置換掉。它的實質是,當需要置換一頁時,選擇在最近一段時間裡最久沒有使用過的頁面予以置換。這種演算法就稱為最久未使用演算法(leastrecentlyused,lru)。lru演算法是與每個頁面最後使用的時間有關的。當必須置換乙個頁面時,lru演算法選擇過去一段時間裡最久未被使用的頁面。

實現:(2種方法)

1)維護乙個鍊錶,最近剛剛使用的頁面移到煉表表頭節點,那麼任意時刻,煉表表尾節點就都是最少使用的、

2)維護乙個棧,將最近訪問的頁面放到棧頂,同時考察是否有相同的頁面在棧內,有的話抽出,因此棧頂是最近使用的,棧底都是最少使用的。

4)最不常用(lfu)置換演算法 (頻率,計數器)

在採用最少使用置換演算法時,應為在記憶體中的每個頁面設定乙個移位暫存器,用來記錄該頁面被訪問的頻率。該置換演算法選擇在之前時期使用最少的頁面作為淘汰頁。由於儲存器具有較高的訪問速度,例如100 ns,在1 ms時間內可能對某頁面連續訪問成千上萬次,因此,通常不能直接利用計數器來記錄某頁被訪問的次數,而是採用移位暫存器方式。每次訪問某頁時,便將該移位暫存器的最高位置1,再每隔一定時間(例如100 ns)右移一次。這樣,在最近一段時間使用最少的頁面將是最小的頁。

lfu置換演算法的頁面訪問圖與lru置換演算法的訪問圖完全相同;或者說,利用這樣一套硬體既可實現lru演算法,又可實現lfu演算法。應該指出,lfu演算法並不能真正反映出頁面的使用情況,因為在每一時間間隔內,只是用暫存器的一位來記錄頁的使用情況,因此,訪問一次和訪問10 000次是等效的。

5)時鐘頁面置換演算法(時間)       是對lru的近似,對fifo的改進

需要使用到訪問位。把各個頁面組織成環形鍊錶(類似於時鐘面)。把指標指向最老的頁面。

當發生乙個缺頁中斷的時候。若它的訪問位為0,則淘汰,指標下移,頁面插入;若訪問位為1,則把該位置0,指標下移,繼續尋找,直到找到被淘汰的頁面。

clock演算法和lru演算法缺頁中斷次數是相近的!clock使用乙個位元位來表示最近一段時間的訪問情況。

當所有的訪問位都為1的時候,clock演算法就退化為fifo演算法!!!

6)二次機會演算法(時間)

利用頁表項中的訪問位和髒位。是對clock演算法的改進,用於減少將頁面寫回磁碟的io次數。

既被訪問,又被寫的位具有兩次機會!其他的情況下只有一次機會!

used  dirty          --------       used     dirty

0        0                                   置換

0        1                                 0          0

1        0                                 0         0

1        1                                 0         1            此時兩次機會

作業系統 頁面置換演算法

1 最佳頁面置換演算法 opt 其所選擇的被淘汰頁面,將是以後永不再用的,或許是在最長 未來 時間內不再被訪問的頁面。最佳置換演算法是一種理想化的演算法,具有最好的效能,但難於實現。先進先出置換演算法最直觀,但可能性能最差,故應用極少。優點 保證獲得最低的缺頁率 缺點 無法預知乙個程序在記憶體的若干...

作業系統 頁面置換演算法

我在很多地方遇到了這個問題,所以想寫來看看,避免在以後換回再次的遇到這個問題,就在今天進行深入的了解下這個問題,我先它會對我以後的生活工作會有很大的幫助的。在位址對映過程中,若在頁面中發現所要訪問的頁面不再記憶體中,則產生缺頁中斷。當發生缺頁中斷時作業系統必須在記憶體中選擇乙個頁面將其移出記憶體,以...

作業系統 頁面置換演算法

作業系統將記憶體按照頁的進行管理,在需要的時候才把程序相應的部分調入記憶體。當產生缺頁中斷時,需要選擇乙個頁面寫入。如果要換出的頁面在記憶體中被修改過,變成了 髒 頁面,那就需要先寫會到磁碟。頁面置換演算法,就是要選出最合適的乙個頁面,使得置換的效率最高。頁面置換演算法有很多,簡單介紹幾個。首先介紹...