作業系統 II 頁面置換

2021-10-16 17:17:49 字數 2701 閱讀 7203

《作業系統概念(原書第9版)》

當必須置換頁面時,將選擇最舊的頁面

頁面調入記憶體的時間

可能出現belady異常

對於有些頁面置換演算法,

隨著分配幀數量的增加,

缺頁錯誤率可能會增加

置換最長時間不會使用的頁面

位於記憶體的3個頁面中最後被再次引用的頁面

頁面將來使用的時間

具有所有演算法的最低的缺頁錯誤率

不會遭受belady異常

當需要置換頁面時,lru選擇最長時間沒有使用的頁面

基本演算法:fifo置換演算法

實現方式:迴圈佇列

在向前移動時,它會清除引用位

一旦找到犧牲頁面,就置換該頁面,

並且在迴圈佇列的這個位置上插入新頁面

指標指示接下來要置換哪個頁面

當需要乙個幀時,指標向前移動直到找到乙個引用位為0的頁面

在最壞的情況下,當所有位都已設定,指標會迴圈遍歷整個佇列,給每個頁面第二次基會

在選擇下乙個頁面進行置換之前,它將清除所有引用位

如果所有位都為1,第二次機會置換退化為fifo替換

最不經常使用 lfu

置換具有最小(引用)次數的頁面

最經常使用 mfu

置換具有最大(引用)次數的頁面

1. 採用按需調頁(demand paging),現有3個頁框,分別儲存著頁面號2,3,4三個頁面。已知接下來的頁面訪問順序為1,2,3,4,1,2,5,1,2,3,4,5。使用時鐘演算法(clock algorithm)作為頁面替換演算法。(8分)

1)請計算會發生的缺頁次數(假設初始時在頁框內的頁面的引用位(reference bit)都是1,2/3/4三個頁面按序存放,初始時指標指向頁面2)?(5分)

2)請寫出這一記憶體訪問序列所對應的時間段中的工作集(3分)

1)9次缺頁 2)

2.已知頁面訪問序列為:1, 2, 3, 4, 1, 2, 4, 1, 3, 5,分配的頁框數為3。

(1) 請分別用fifo、lru、時鐘演算法,寫出調頁的過程,並計算缺頁率。

(2) 請問時鐘演算法是否會導致belady異常,為什麼?

fifo:

1*, 2*, 3*,4*, 1*, 2*, 4, 1, 3*, 5*, 8次

lru:

1*, 2*, 3*, 4*, 1*, 2*, 4, 1, 3*, 5*, 8次

時鐘演算法:

和初始時鐘位置有關可能會

3.(10『)現有兩個程序p1和p2,當前的頁面訪問序列分別為:

p1: 1, 2, 3, 4, 1, 2, 5

p2: 6, 7, 8, 6, 7, 6, 7

這兩個程序總共可有5個頁框可供使用。假設使用lru替換策略,頁框分配採用固定分配(即分配後不可修改),請問如何在兩個程序間分配頁框可以達到缺頁率最低?請寫出替換序列,和缺頁率計算過程(4』);並證明該分配對於給出的序列是最優的(6『)。

答:2, 3 (10次缺頁)

1, 1, 3

, 4, 1

, 2, 5 2

, 2, 3, 4, 1, 2

6, 6, 6, 6, 6, 6, 6  

7, 7, 7, 7, 7, 7

8, 8, 8, 8, 8

證明:1. 給p2更多頁面不會減少p2的缺頁率;

2. 給p1 3個頁面不會減少p1的缺頁率,但是會增加p2的缺頁率;

3. 給p1 4個頁面,p1的缺頁次數為5,但是p2的缺頁次數為7。

4.在分頁虛擬儲存管理系統中,假定系統為某個程序分配了4個頁幀,頁的訪問順序為 7,1,2,0,3,0,4,2,3,0,3,2,7,0,1,若採用fifo排程演算法、opt、lru排程演算法時,分別產生多少次缺頁中斷?寫出過程.

答案:都是8次缺頁中斷

作業系統頁面置換模擬系統

include include include include include include include include include include include include include include include using namespace std int addres...

(作業系統)模擬作業系統的頁面置換

一 需求分析 設計程式模擬先進先出 fifo 置換演算法,最佳 opt 置換演算法和最近最少用 lru 置換演算法的工作過程。假設記憶體中分配給每個程序的最小物理塊數為m,在程序執行過程中要訪問的頁面個數為n,頁面訪問序列為p1,pn,分別利用不同的頁面置換演算法排程程序的頁面訪問序列,給出頁面訪問...

作業系統 頁面置換演算法

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