班級:計科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 程序大小 ...