页面置换算法模拟——OPT、FIFO和LRU算法(共16页)
![页面置换算法模拟——OPT、FIFO和LRU算法(共16页)_第1页](https://file2.zhuangpeitu.com/fileroot2/2022-1/6/fdc8ab2c-336c-4bf1-95e9-d1b65da9a3ca/fdc8ab2c-336c-4bf1-95e9-d1b65da9a3ca1.gif)
![页面置换算法模拟——OPT、FIFO和LRU算法(共16页)_第2页](/images/s.gif)
![页面置换算法模拟——OPT、FIFO和LRU算法(共16页)_第3页](/images/s.gif)
《页面置换算法模拟——OPT、FIFO和LRU算法(共16页)》由会员分享,可在线阅读,更多相关《页面置换算法模拟——OPT、FIFO和LRU算法(共16页)(16页珍藏版)》请在装配图网上搜索。
1、精选优质文档-----倾情为你奉上 操作系统实验报告 页面置换算法模拟 ——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()最佳置换算法 流程图:
2、开始 NO NO NO Yes Yes Yes 结束 页号序列载完? 根据选择的置换算法完成 号存在物理块中 引用编号大于物理块数 将页号放入物理地址中编号 载入序列号,从第0个得到页号 源代码: #incl
3、ude
4、
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 5、d",&page[i]);
download();
do{
puts("输入的页面号引用串为:");
for(k=0;k<=(pSIZE-1)/20;k++)
{
for(i=20*k;(i 6、* * * * * * * * * * * * * * * * * * *\n");
printf("* 请选择页面置换算法:\t\t\t *\n");
printf("* ----------------------------------------- *\n");
printf("* 1.先进先出(FIFO) 2.最近最久未使用(LRU) *\n");
printf("* 3.最佳(OPT) 4.退出 *\n");
printf("* * * * * * * * * * * * 7、 * * * * * * * * * * *\n");
printf("请选择操作:[ ]\b\b");
scanf("%d",&code);
switch(code)
{
case 1:
FIFO();
break;
case 2:
LRU();
break;
case 3:
OPT();
break;
8、 case 4:
system("cls");
//system("color 0A");
exit(0);
default:
printf("输入错误,请重新输入:");
}
printf("按任意键重新选择置换算法:>>>");
getch();
}while (code!=4);
getch();
}
/*载入数据*/
void download()
{
printf("\nFinish.\n载入成功!");
}
/*设置延迟*/
void mDelay(unsig 9、ned int Delay)
{
unsigned int i;
for(;Delay>0;Delay--)
{
for(i=0;i<124;i++)
{
printf(" \b");
}
}
}
/*显示设计者信息*/
void print(unsigned int t)
{
int i,j,k,l;
int flag;
for(k=0;k<=(pSIZE-1)/20;k++)
{
for(i=20*k;(i 10、0)||(((i+1)%20)&&(i==pSIZE-1)))
printf("%d\n",page[i]);
else
printf("%d ",page[i]);
}
for(j=0;j 11、E)&&(i<20*(k+1));i++)
{
for(flag=0,l=0;l 12、---------------------------------------\n");
printf("缺页次数:%d\t\t",t+mSIZE);
printf("缺页率:%d/%d\n",t+mSIZE,pSIZE);
printf("置换次数:%d\t\t",t);
printf("访问命中率:%d%%\n",(pSIZE-(t+mSIZE))*100/pSIZE);
printf("----------------------------------------\n");
}
/*计算过程延迟*/
void compute()
{
int i;
p 13、rintf("正在进行相关计算,请稍候");
for(i=0;i++<30;printf("\b"));
for(i=0;i++<30;printf(" "));
for(i=0;i++<30;printf("\b"));
}
/*先进先出页面置换算法*/
void FIFO()
{
int memery[10]={0};
int time[10]={0}; /*记录进入物理块的时间*/
int i,j,k,m;
int max=0; /*记录换出页*/
int count=0; /*记录置换次数*/
/*前mSIZE个 14、数直接放入*/
for(i=0;i 15、 k++;
}
if(k==mSIZE) /*如果不在物理块中*/
{
count++;
/*计算换出页*/
max=time[0]
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。