問三 頁面置換演算法有哪些?

2021-09-19 18:45:30 字數 1363 閱讀 4701

概述:

在程式執行過程中,如果要訪問的頁面不在記憶體中,就發生缺頁中斷從而將該頁調入記憶體中。此時如果記憶體已無空閒空間,系統必須從記憶體中調出乙個頁面到磁碟對換區中來騰出空間。

頁面置換演算法和快取淘汰策略類似,可以將記憶體看成磁碟的快取。在快取系統中,快取的大小有限,當有新的快取到達時,需要淘汰一部分已經存在的快取,這樣才有空間存放新的快取資料。

頁面置換演算法的主要目標是使頁面置換頻率最低(也可以說缺頁率最低)。

1. 最佳置換演算法

opt, optimal replacement algorithm

所選擇的被換出的頁面將是最長時間內不再被訪問,通常可以保證獲得最低的缺頁率。

是一種理論上的演算法,因為無法知道乙個頁面多長時間不再被訪問。

舉例:乙個系統為某程序分配了三個物理塊,並有如下頁面引用序列:

開始執行時,先將 7, 0, 1 三個頁面裝入記憶體。當程序要訪問頁面 2 時,產生缺頁中斷,會將頁面 7 換出,因為頁面 7 再次被訪問的時間最長。

2. 最近最久未使用

lru, least recently used

雖然無法知道將來要使用的頁面情況,但是可以知道過去使用頁面的情況。lru 將最近最久未使用的頁面換出。

為了實現 lru,需要在記憶體中維護乙個所有頁面的鍊錶。當乙個頁面被訪問時,將這個頁面移到煉表表頭。這樣就能保證煉表表尾的頁面是最近最久未訪問的。

因為每次訪問都需要更新鍊錶,因此這種方式實現的 lru 代價很高。

3. 最近未使用

nru, not recently used

每個頁面都有兩個狀態位:r 與 m,當頁面被訪問時設定頁面的 r=1,當頁面被修改時設定 m=1。其中 r 位會定時被清零。可以將頁面分成以下四類:

* r=0,m=0

* r=0,m=1

* r=1,m=0

* r=1,m=1

當發生缺頁中斷時,nru 演算法隨機地從類編號最小的非空類中挑選乙個頁面將它換出。

nru 優先換出已經被修改的髒頁面(r=0,m=1),而不是被頻繁使用的乾淨頁面(r=1,m=0)。

4. 先進先出

fifo, first in first out

選擇換出的頁面是最先進入的頁面。

該演算法會將那些經常被訪問的頁面也被換出,從而使缺頁率公升高。

3 2 3頁面置換演算法

程序執行時,若其訪問的頁面不在記憶體而徐將其調入,但記憶體已無空閒時間時,就需要從記憶體中調出一頁程式或資料,送入磁碟的對換區。而選擇調入頁面的演算法就稱為頁面置換演算法。好的頁面置換演算法應有較低的頁面更換頻率,也就是說,應將以後不會再訪問或者較長時間不會再訪問的頁面先調出。1.最佳置換演算法 o...

5 頁面置換演算法

目錄全域性頁面置換演算法 功能 當缺頁中斷發生,需要調入新的頁面而記憶體已滿時,選擇記憶體當中哪個物理頁面被置換 目標 盡可能減少頁面換入換出次數 即缺頁中斷次數 具體來說,把未來不再使用或短期內較少使用的頁面換出,通常只能在區域性性原理指導下依據過往統計資料 頁面鎖定 frame locking ...

記憶體管理筆記八 頁面置換演算法

引言 在第七篇記憶體管理筆記,有介紹到分頁的記憶體管理。其克服了外部碎片 程式不能大於物理記憶體等缺點。本篇筆記將簡單介紹常見的頁面更換演算法思想。一 頁面需更換的原因 在交換系統下,乙個程式作為乙個整體載入到記憶體。因此,在執行時,無需從磁碟上載入任何東西。而分頁系統下,乙個程式的所有頁面並不一定...