1.模擬分頁式儲存管理中硬體的位址轉換和產生缺頁中斷
分頁式虛擬儲存系統是把作業資訊的副本存放在磁碟上, 當作業被選中時, 可把作業的開始幾頁先裝入主存且啟動執行。 為此, 在為作業建立頁表時, 應說明哪些頁已在主存, 哪些頁尚未裝入主存。
作業執行時, 指令中的邏輯位址指出了參加運算的操作存放的頁號和單元號, 硬體的位址轉換機構按頁號查頁表, 若該頁對應標誌為 「1」, 則表示該頁已在主存, 這時根據關係式 「絕對位址=塊號 x塊長十單元號」 計算出欲訪問的主存單元位址 。 如果塊長為2 的幕次, 則可把塊號作為高位址部分, 把單元號作為低位址部分, 兩者拼接而成絕對位址。若訪問的頁對應標誌為「0」,則表示該頁不在主存,這時硬體發「缺頁中斷」訊號, 由作業系統按該頁在磁碟上的位置, 把該頁資訊從磁碟讀出裝入主存後再重新執行這條指令。
2.用先進先出(fifo)頁面排程演算法處理缺頁中斷
在分頁式虛擬儲存系統中,當硬體發出「缺頁中斷」後,引出作業系統來處理這個中斷事件 。 如果主存中已經沒有空閒塊, 則可用 fif0頁面排程演算法把 該作業中最先進入主存的一頁調出, 存放到磁碟上, 然後再把當前要訪問的頁裝入該塊。 調出和裝入後都要修改頁表中對應頁的標誌。
fif0頁面排程演算法總是淘汰該作業中最先進入主存的那一頁, 因此可以用乙個陣列來表示該作業已在主存的頁面 。 假定作業被選中時, 把開始的 m個頁面裝入主存, 則陣列的元素可定為m個。
位址轉換
為更快進行實驗,指令的邏輯位址定為10個,已經固定值。
通過乙個for迴圈按順序讀入指令的邏輯位址,然後在頁表中查詢該邏輯位址的頁號是否在記憶體中,如果在,則使用從頁表中查到的頁號的塊號形成絕對位址的高位,邏輯位址的頁內位址形成絕對位址的低位。
fifo頁面排程
初始記憶體為空,當有頁面進入時,將3個記憶體單元的內容前移,起到頁面的移除作用,最前面的為最早進入的,空出的第三個進入新的頁面,以此迴圈實現fifo演算法。
//儲存器管理 塊大小16 記憶體3
/* ----------fifo-----------
頁面引用號:3 4 2 3 5 7 8 1 5 3
3 3 3 3 5 5 5 1 1 1
0 4 4 4 4 7 7 7 5 5
0 0 2 2 2 2 8 8 8 3
是否發生置換:
1 1 1 0 1 1 1 1 1 1
缺頁率為:0.9
*/class
page
;page ptable=
,,,,
,,,,
,};//作業資訊副本
page ram[3]
;//記憶體大小
//指令的邏輯位址分為頁號0-9和業內位址0-15
//頁號可以在頁表找到物理塊號0-15
//該物理塊號與頁內位址拼接成實體地址
//絕對位址=塊號0-15×塊長15+頁內位址0-15
//絕對位址=塊號 x塊長十單元號
//如果塊長為2的幕次,
//則可把塊號作為高位址部分, 把單元號作為低位址部分,
//兩者拼接而成絕對位址
class
order
;order ord=
,,,,
,,,,
,};//邏輯位址 指令集合
class
ram_address
;//絕對位址
void
fifo
(int a)
;ram_address fun
(int a,
int b)
;void
address_translation()
;ram_address fun
(int a,
int b)
else
if(ptable[j]
.state==0)
}}}void
fifo
(int a)
for(
int j=
0;j<
10;j++)if
(ptable[j]
.pagenum==a)
} ram[2]
.address=c;
ram[2]
.pagenum=a;
ram[2]
.state=1;
}void
address_translation()
}}else
if(out.abslow>=10)
}}else}}
intmain()
作業系統 虛擬儲存器
虛擬儲存器是在常規儲存器的擴充套件 常規虛擬器的特徵分為兩個 1 一次性。2 駐留性 侷限性原理分為 1 時間侷限性。2 空間侷限性 所謂虛擬儲存器,指具有請求調入功能和置換功能,能從邏輯上對記憶體容量加以擴充的一種儲存器系統 虛擬儲存器的特徵 1 多次性。2 對換性。3 虛擬性。需要請求分頁頁表機...
作業系統 虛擬儲存器
作業系統 儲存器管理 作業系統 處理機排程簡述 作業系統 之程序管理 作業系統 經典的同步問題 生產者消費者問題,哲學家進餐問題,讀寫問題 記憶體的容量有限,如果有大作業或大量作業執行,記憶體就會不夠用.為解決這一問題邊催生了虛擬儲存器的概念.常規儲存器管理方式的特徵 一次性 作業必須一次性地全部裝...
作業系統 儲存器管理
程式的裝入和鏈結 連續分配方式 基本分頁儲存管理方式 基本分段儲存管理方式 虛擬儲存器的基本概念 請求分頁儲存管理方式 頁面置換演算法 請求分段儲存管理方式 使用者程式要在系統中執行,必須先將它裝入記憶體,然後由編譯程式 compiler 對使用者源程式進行編譯,形成若干個目標模組 object m...