作業系統實驗五虛擬儲存器管理

2021-07-05 05:34:09 字數 2370 閱讀 9948

作業系統課程報告

虛擬儲存器管理

學號姓名

班級教師

華僑大學電子工程系

設計目的

1、 理解虛擬儲存器概念。

2、 掌握分頁式儲存管理位址轉換和缺頁中斷。

設計內容與基本要求

1、 模擬分頁式儲存管理中硬體的位址轉換和產生缺頁中斷。

2、 用先進先出頁面排程演算法處理缺頁中斷。

設計報告內容

1、 分頁式儲存管理和先進先出頁面排程演算法原理。

在儲存器管理中,連續分配方式會形成許多「碎片」,雖然可通過「緊湊」方法將許多碎片拼接成可用的大塊空間,但須為之付出很大開銷。如果允許將乙個程序直接分散地裝入到許多不相鄰的分割槽中,則無須再進行「緊湊」。基於這一思想而產生了離散分配方式。

如果離散分配的基本單位是頁,則稱為分頁儲存管理方式。在分頁儲存管理方式中,如果不具備頁面對換功能,則稱為基本分頁儲存管理方式,或稱為純分頁儲存管理方式,它不具有支援實現虛擬儲存器的功能,它要求把每個作業全部裝入記憶體後方能執行。

先進先出排程演算法根據頁面進入記憶體的時間先後選擇淘汰頁面,先進入記憶體的頁面先淘汰,後進入記憶體的後淘汰。本演算法實現時需要將頁面按進入記憶體的時間先後組成乙個佇列,每次排程隊首頁面予以淘汰。

這種排程演算法總是淘汰最先進入記憶體的那一頁,fifo演算法簡單,實現容易。一種實現方法是把裝入記憶體的那些頁的頁號按進入的先後次序排成佇列 ,用指標k指示當前調入新頁時應淘汰的頁在佇列中的位置。每當調入乙個新頁後,在指標指示的位置上填上新頁號,然後指標k加1,指向下一次應淘汰的頁。

2、 程式流程圖

3、 程式及注釋

#include "iostreamiostream是c++中用於資料的輸入與輸出的標頭檔案,定義了包括cout(標準輸出)、cin(標準輸入)、cerr、clog的4個io物件

#include "stdio.h"

#include "stdlib.h"

using namespace std;

#define max 30巨集定義max等於30,作為允許調入記憶體的最大頁面數

#define size 10巨集定義size等於10,作為記憶體可使用的最大物理塊數

子函式:物理塊初始化

void init(int block,int m)

}子函式:輸入頁面號引用串

void creat(int page,int n)

}子函式:先進先出頁面排程演算法

void fifo(int page,int block,int n,int m)

for(i=0;i

for(j=0;jif(block[j]==page[i]) //各物理塊中若有現有頁面與欲調入的頁面相同的,則令flag==j,j為相等的那個物理塊編號

flag=j;

break;

}for(j=0;j

if(flag==-1若不存在哪個物理塊現有頁面與欲調入的頁面相同

if(get!=-1若存在物理塊為空

block[get]=page[i]; //將欲調入頁面調入空的那個物理塊

time[get]=0將新調入頁面的物理塊已執行時間清零

for(j=0;j<=get;j新調入頁面的物理塊之前的物理塊已執行時間自加一

time[j]++;

get=-1get重新賦初值

else若所有物理塊都不為空

block[block_num]=page[i]; //將欲調入的頁面調入具有最大執行時間的那個物理塊block[block_num]

time[block_num]=0將新調入頁面的物理塊已執行時間清零

for(j=0;j

time[j]++;

block_num=-1最大執行時間的物理塊編號清零

max_stay=0最大執行時間清零

count缺頁中斷次數加一

}else若存在物理塊現有頁面與欲調入的頁面相同

for(j=0;j

cout<<" "< }

cout< }

if(n>m若nm,則中斷次數為count+m

count=count+m;

else

count=n;

cout<<"缺頁中斷次數為:"<}

子函式:使用者操作提示頁面

void menu()

主函式void main()

}}4、 執行結果以及結論。

執行結果:

這裡輸入的頁面引用號以《計算機作業系統》教材p151的引用號為例。

對比教材p151圖 4-27可知,本演算法模擬正確無誤。

實驗結論:

通過這次實驗,我理解虛擬儲存器、分頁式儲存管理位址轉換和缺頁中斷概念,了解了分頁式儲存管理和先進先出頁面排程演算法原理,使我對作業系統中頁面排程演算法和虛擬儲存器的實現有了較深的理解和掌握。

作業系統之儲存器管理

p116 4.0.1 儲存器管理的目的和功能 儲存器管理的主要目的和功能如下 1.主儲存器的分配和管理 按使用者要求把適當的儲存空間分配給相應的作業。乙個有效的儲存分配機制,應在使用者請求時能作出快速的響應,分配相應的儲存空間 在使用者不再使用它時,應立即 以供其他使用者使用。為此,這個儲存分配機制...

作業系統儲存器管理習題

精品word文件值得 值得擁有 儲存器管理 單項選擇題 儲存管理的目的是 a.方便使用者b.提高記憶體利用率 c.方便使用者和提高記憶體利用率 d.增加記憶體實際容量 外存 如磁碟 上存放的程式和資料 a 可由cpu直接訪問b 必須在cpu訪問之前移入記憶體 c 是必須由檔案系統管理的d 必須由程序...

作業系統實驗任務書 4 記憶體管理 虛擬儲存

瀋陽工程學院 學生實驗任務書 實驗室名稱 計算機實驗室實驗課程名稱 作業系統實驗專案名稱 儲存管理 2 一 實驗目的 儲存管理的主要功能之一是合理地分配空間。請求頁式管理是一種常用的虛擬儲存管理技術。本實驗的目的是通過請求頁式管理中頁面置換演算法模擬設計,了解虛擬儲存技術的特點,掌握請求頁式儲存管理...