OPT和LRU页面置换算法C语言代码,页面置换算法模拟——OPT、FIFO和LRU算法.doc
實用標準文案
精彩文檔
操作系統實驗報告
頁面置換算法模擬
——OFT、FIFO和LRU算法
班級:2013級軟件工程1班
學號:X X X
姓名:蕭氏一郎
數據結構說明:
Memery[10]物理塊中的頁碼
Page[100]頁面號引用串
Temp[100][10]輔助數組
Void print(unsigned int t)輔助函數
Viod FIFO()先進先出頁面置換算法
Viod LRU()最近最久未使用置換換算法
Viod OPT()最佳置換算法
流程圖:
開始
開始
NONONOYesYesYes結束頁號序列載完?根據選擇的置換算法完成號存在物理塊中引用編號大于物理塊數將頁號放入物理地址中編號載入序列號,從第0個得到頁號
NO
NO
NO
Yes
Yes
Yes
結束
頁號序列載完?
根據選擇的置換算法完成
號存在物理塊中
引用編號大于物理塊數
將頁號放入物理地址中編號
載入序列號,從第0個得到頁號
源代碼:
#include
#include
/*全局變量*/
int mSIZE; /*物理塊數*/
int pSIZE; /*頁面號引用串個數*/
static int memery[10]={0}; /*物理塊中的頁號*/
static int page[100]={0}; /*頁面號引用串*/
static int temp[100][10]={0}; /*輔助數組*/
/*置換算法函數*/
void FIFO();
void LRU();
void OPT();
/*輔助函數*/
void print(unsigned int t);
void designBy();
void download();
void mDelay(unsigned int Delay);
/*主函數*/
void main()
{
int i,k,code;
printf("請輸入物理塊的個數(M<=10):");
scanf("%d",&mSIZE);
printf("請輸入頁面號引用串的個數(P<=100):");
scanf("%d",&pSIZE);
puts("請依次輸入頁面號引用串(連續輸入,無需隔開):");
for(i=0;i
scanf("%1d",&page[i]);
download();
do{
puts("輸入的頁面號引用串為:");
for(k=0;k<=(pSIZE-1)/20;k++)
{
for(i=20*k;(i
{
if(((i+1)%20==0)||(((i+1)%20)&&(i==pSIZE-1)))
printf("%d\n",page[i]);
else
printf("%d ",page[i]);
}
}
printf("* * * * * * * * * * * * * * * * * * * * * * *\n");
printf("* 請選擇頁面置換算法:\t\t\t *\n");
printf("* *\n");
printf("* 1.先進先出(FIFO) 2.最近最久未使用(LRU) *\n");
printf("* 3.最佳(OPT) 4.退出 *\n");
printf("* * * * * * * * * * * * * * * * * * * * * * *\n");
printf("請選擇操作:[ ]\b\b");
scanf("%d",&code);
switch(code)
{
case 1:
FIFO();
break;
case 2:
LRU();
break;
case 3:
OPT();
break;
case 4:
總結
以上是生活随笔為你收集整理的OPT和LRU页面置换算法C语言代码,页面置换算法模拟——OPT、FIFO和LRU算法.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 28 | 堆和堆排序:为什么说堆排序没有
- 下一篇: 中级通信工程师 | 关于考试,你想了解的