首页 《操作系统》实验五:页面置换算法模拟

《操作系统》实验五:页面置换算法模拟

举报
开通vip

《操作系统》实验五:页面置换算法模拟------------------------------------------作者xxxx------------------------------------------日期xxxx《操作系统》实验五:页面置换算法模拟【精品文档】【精品文档】【精品文档】【精品文档】【精品文档】【精品文档】实验五.请求页式存储管理的模拟[实验内容]:熟悉虚拟存储管理的各种页面置换算法,并编写模拟程序实现请求页式存储管理的页面置换算法----最近最久未使用算法(LRU),要求在每次产生置换时显示页面分配状态和缺页率。[实验要...

《操作系统》实验五:页面置换算法模拟
------------------------------------------作者xxxx------------------------------------------日期xxxx《操作系统》实验五:页面置换算法模拟【精品文档】【精品文档】【精品文档】【精品文档】【精品文档】【精品文档】实验五.请求页式存储管理的模拟[实验内容]:熟悉虚拟存储管理的各种页面置换算法,并编写模拟程序实现请求页式存储管理的页面置换算法----最近最久未使用算法(LRU),要求在每次产生置换时显示页面分配状态和缺页率。[实验要求]:1、运行给出的实验程序,查看执行情况,进而分析算法的执行过程,在理解FIFO页面置换算法和最近最久未使用算法(LRU)置换算法后,给出最佳置换算法的模拟程序实现,并集成到参考程序中。2、执行2个页面置换模拟程序,分析缺页率的情况。最好页框数和访问序列长度可调节,在使用同一组访问序列数据的情况下,改变页框数并执行2个页面置换模拟程序,查看缺页率的变化。3、在每次产生置换时要求显示分配状态和缺页率。程序的地址访问序列通过随机数产生,要求具有足够的长度。最好页框数和访问序列长度可调节。实验的执行结果如下图所示(左下图为FIFO执行结果,右下图为LRU执行结果):程序源代码:#include#include"windows.h"#include#include#include#include#include#includevoidinitialize();//初始化相关数据结构voidcreateps();//随机生成访问序列voiddisplayinfo();//显示当前状态及缺页情况voidfifo();//先进先出算法intfindpage();//查找页面是否在内存voidlru();//最近最久未使用算法intinvalidcount=0;//缺页次数intvpoint;//页面访问指针intpageframe[10];//分配的页框intpagehistory[10];//记录页框中数据的访问历史intrpoint;//页面替换指针intinpflag;//缺页标志,0为不缺页,1为缺页structPageInfo//页面信息结构{intserial[100];//模拟的最大访问页面数,实际控制在20以上intflag;//标志位,0 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示无页面访问数据intdiseffect;//缺页次数inttotal_pf;//分配的页框数inttotal_pn;//访问页面序列长度}pf_info;//////////////////////////////////////////////////////////////////////////初始化相关数据结构voidinitialize(){inti,pf;inpflag=0;//缺页标志,0为不缺页,1为缺页pf_info.diseffect=0;//缺页次数pf_info.flag=0;//标志位,0表示无页面访问数据printf("\n请输入要分配的页框数:");//自定义分配的页框数scanf("%d",&pf);pf_info.total_pf=pf;for(i=0;i<100;i++)//清空页面序列{pf_info.serial[i]=-1;}}/////////////////////////////////////////////////////////////////////随机生成访问序列voidcreateps(void){ints,i,pn;initialize();//初始化相关数据结构printf("\n请输入要随机生成访问序列的长度:");//自定义随机生成访问序列的长度scanf("%d",&pn);srand(rand());//初始化随机数队列的"种子"s=((float)rand()/32767)*50+pn;//随机产生页面序列长度pf_info.total_pn=s;for(i=0;i=0)printf("%3d",pageframe[n]);elseprintf("");}printf(">");if(inpflag==1)//缺页标志,0为不缺页,1为缺页{printf("==>缺页");printf("缺页率%",(float)(pf_info.diseffect)*100.00/vpoint);}printf("\n");}//////////////////////////////////////////////////////////////////////////查找页面是否在内存,1为在内存,0为不在即缺页intfindpage(intpage){intn;for(n=0;npagehistory[max]){max=n;}}rpoint=max;pageframe[rpoint]=pf_info.serial[vpoint];pagehistory[rpoint]=0;pf_info.diseffect++;//缺页次数加1}}Sleep(10);displayinfo();//显示当前状态}//置换算法循环结束_getch();return;}/////////////////////最佳置换算法自己完成/////////////////////////////////////////////////////////////////////主函数intmain(){charch;system("cls");while(true){printf("*******************************************\n");printf("若要执行FIFO页面置算法请按1\n");printf("若要执行LRU页面置算法请按2\n");printf("若要退出请按3\n");printf("*******************************************\n");printf("Enteryourchoice(1or2or3):");do{//如果输入信息不正确,继续输入ch=(char)getch();}while(ch!='1'&&ch!='2'&&ch!='3');printf("\n\n你按的是:%c,现在为你执行对应操作。",ch);if(ch=='3')//选择3,退出{return0;}else{if(ch=='1')//选择1,FIFO{printf("\n\n----------*****执行FIFO算法*****-----------\n");fifo();}else{printf("\n\n----------*****执行LRU算法*****----------\n");//lru();}}system("cls");}printf("\n\nPressAnyKeyToContinue:");getch();return0;}
本文档为【《操作系统》实验五:页面置换算法模拟】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
ice
我是一线教师,教学生涯也有数十年 教学经验丰厚,原创文档也有很多 想和大家分享
格式:doc
大小:474KB
软件:Word
页数:0
分类:
上传时间:2021-10-17
浏览量:7