虛擬儲存器管理 作業系統

2021-10-07 11:06:10 字數 2379 閱讀 4433

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...