《作業系統概念(原書第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。fifo:(1) 請分別用fifo、lru、時鐘演算法,寫出調頁的過程,並計算缺頁率。
(2) 請問時鐘演算法是否會導致belady異常,為什麼?
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,當前的頁面訪問序列分別為:答:2, 3 (10次缺頁)p1: 1, 2, 3, 4, 1, 2, 5
p2: 6, 7, 8, 6, 7, 6, 7
這兩個程序總共可有5個頁框可供使用。假設使用lru替換策略,頁框分配採用固定分配(即分配後不可修改),請問如何在兩個程序間分配頁框可以達到缺頁率最低?請寫出替換序列,和缺頁率計算過程(4』);並證明該分配對於給出的序列是最優的(6『)。
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 其所選擇的被淘汰頁面,將是以後永不再用的,或許是在最長 未來 時間內不再被訪問的頁面。最佳置換演算法是一種理想化的演算法,具有最好的效能,但難於實現。先進先出置換演算法最直觀,但可能性能最差,故應用極少。優點 保證獲得最低的缺頁率 缺點 無法預知乙個程序在記憶體的若干...