請求頁式儲存管理的頁面置換演算法

2022-08-23 15:36:04 字數 2674 閱讀 1655

班級:計科0801班姓名:邊佳學號:08407102 日期:2023年5月19日

實驗目的:

通過請求頁式儲存管理中頁面置換演算法模擬程式,了解虛擬儲存技術的特點,掌握請求頁式儲存管理的頁面置換演算法。

實驗屬性:設計

實驗內容:

1.通過隨機數產生乙個指令序列,共320條指令,指令的位址按下述原則生產:

50%的指令是順序執行的;25%的指令是均勻分布在前位址部分;25%的指令是均勻分布在後位址部分。

2.將指令序列變換成為頁位址流:

設頁面大小為1k;使用者記憶體容量為4頁到32頁;使用者虛存容量為32k。

在使用者虛存中,按每k存放10條指令排列虛存位址,即320條指令在虛存中的存放方式為:第0條至第9條指令為第0頁;第10條至19條指令為第1頁;…第310條至319條指令為第31頁。

3.計算並輸出下述各種演算法在不同記憶體容量下的命中率。

(1) 先進先出演算法(fifo)

(2) 最近最少使用演算法(lru)

(3) 最佳使用算(opt)

命中率=1-頁面失效次數/頁位址流長度

本實驗中,頁位址流長度為320,頁面失效次數為每次訪問相應指令時,該指令所對應的頁不在記憶體的次數。

實驗思路:

關於隨機數的產生辦法,首先要初始化設定隨機數,產生序列的開始點,可通過下列語句實現: srand ( 400 ) ;

(1) 計算隨機數,產生320條指令序列

m=160;

for (i=0;i<80;i++=

(2) 將指令序列變換成為頁位址流

for ( k=0;k<320;k++)

(3) 計算不同演算法的命中率

rate=1-1.0﹡u/320 ;

其中u為缺頁中斷次數,320是頁位址流長度。

(4) 輸出格式

k fifo 1ru

4 0.23 0.25

32 1.0 1.0

實驗內容:

實現程式:

主要的資料結構:

void build();

int searchpb();

int searchpro();

void optimal();

void fifo();

void lru();

void empty();

void main();

主程式:

#include<>

#include<>

#include<>

#define bsize 4 //物理塊大小

#define psize 16 //程序大小

int phb[bsize]=; //物理塊標號

int pro[psize]=; //程序序列號

int flag[bsize] = ; //程序等待次數(存放最久未被使用的程序標誌)

int i = 0, j = 0,k = 0; //i表示程序序列號,j表示物理塊號

int m = -1, n = -1物理塊空閒和程序是否相同判斷標誌

int max = -1,maxflag = 0; //標記替換物理塊程序下標

int count = 0統計頁面缺頁次數

//隨機產生序列號函式

void build()

printf("\n");

}//查詢空閒物理塊

int searchpb()

//查詢相同程序

int searchpro()

} return -1;

}//初始化記憶體

void empty()

//先進先出頁面置換演算法

void fifo()

n = -1;

}for(j = 0 ;j < bsize; j++)

printf("\n");

}printf("缺頁次數為:%d\n",count);

printf("\n");

}//主函式

*void main()

{ int sel;

do{printf("\t\t\tt\t\t");

printf("\t\t\t ☆☆^-^歡迎進入作業系統介面^-^☆☆ \t\t\t");

printf("\t\t\tt\t\t\n");

printf("\t\t\tt\t\t");

printf("\t\t\t虛擬記憶體t\t\t");

printf("\t\t\tt\t\t");

printf("\t\t\t☆ 1、產生隨機序列t\t\t");

printf("\t\t\tt\t\t");

printf("\t\t\t☆ 2、最佳置換演算法(optt\t\t");

printf("\t\t\tt\t\t");

printf("\t\t\t☆ 3、先進先出(fifot\t\t");

printf("\t\t\tt\t\t");

printf("\t\t\t☆ 4、最久未使用(lrut\t\t");

printf("\t\t\tt\t\t");

printf("\t\t\t☆ 5、三種演算法的比較t\t\t");

printf("\t\t\tt\t\t");

printf("\t\t\t☆ 0、退出(exitt\t\t");

第17講儲存器管理之頁面置換演算法

1 引言 在程序執行過程中,若其訪問的頁面不在記憶體而需將其調入,但記憶體已無空閒空間時,需從記憶體中調出一頁程式或資料,送入磁碟的對換區。但應將哪個頁面調出,需根據一定的演算法來確定。把選擇換出頁面的演算法稱為頁面置換演算法,其好壞直接影響系統的效能。剛被淘汰出記憶體的頁面,過後不久又要訪問它,需...

模擬段頁式儲存管理位址變換

電腦科學與技術學院 2007 2008 學年第一學期 作業系統 課程設計 題目 模擬段頁式儲存管理位址變換 教師馮霞 班級050341d班 學號050341404 姓名陳玉虎 成績1.題目分析 1.1 設計目的 了解記憶體管理機制,掌握段頁式虛擬儲存技術 理解記憶體分配原理,特別是以頁面為單位的虛擬...

實驗四分頁式儲存管理

自動化1203張千偉201203870323 1 實驗目的 1.熟悉分頁式儲存管理 2.掌握最久未使用演算法以及fifo演算法 2 實驗內容 1.實驗 include include include include define bsize 4 物理塊大小 define psize 16 程序大小 ...