欢迎来到天天文库
浏览记录
ID:57420574
大小:78.00 KB
页数:10页
时间:2020-08-16
《操作系统实验3虚拟存储器管理.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验报告班级:系统本111学号:姓名:张国锋日期:2013.6.27⒈实验题目模拟分页式虚拟存储管理实验。2.实验要求编写一段程序来模拟页面置换算法。要求能分别显示最佳(Optimal)置换算法、先进先出(FIFO)页面置换算法和最近最久未使用(LRU)置换算法的置换过程。3.实验目的通过本实验帮助学生理解虚拟存储器的工作方法。了解分页式存储管理里中各页面置换算法是怎样实现的,各算法有怎样的优缺点。⒋实验原理分析⑴页面置换算法是在分页存储管理方式中为了合理的将进程运行所需的页面调入内存而产生的算法。一
2、个好的页面转换算法,应具有较低的页面更换频率。最常见的页面置换算法有最佳(Optimal)置换算法、先进先出(FIFO)页面置换算法和最近最久未使用(LRU)置换算法。⑵算法的说明最佳置换算法:选择以后永不使用或是在最长时间内不再被访问的页面作为被淘汰的页面。这种算法通常可保证获得最低的缺页率,但因为内存中哪个页面是以后永不使用的是无法预知的,所以该算法是无法实现的。先进先出页面置换算法:选择内存中驻留时间最长的页面作为被淘汰的页面。该算法实现简单,只需将调入内存中的页面链成一个队列,并设置一个指针指
3、向最老的页面即可。最近最久未使用置换算法:选择最近最久未使用的页面作为被淘汰的页面。该算法需要为每个页面设置一个访问字段用来记录页面上次被访问的时间,通过这个时间来决定淘汰哪一个页面。⑶主要变量及函数说明如表1所示表1主要变量及函数说明表PRA(void)初始化intfindSpace(void)查找是否有空闲内存intfindExist(intcurpage)查找内存中是否有该页面intfindReplace(void)查找应予置换的页面voiddisplay(void)显示voidFIFO(voi
4、d)FIFO算法voidLRU(void)LRU算法voidOptimal(void)OPTIMAL算法voidBlockClear(void)BLOCK恢复structpageInfor*block物理块structpageInfor*page页面号串5.实验代码清单#include#include#include#defineBsize3#definePsize20structpageInfor{intcontent;/*页面号*/intti
5、mer;/*被访问标记*/};voidPRA();/*初始化*/intfindSpace();/*查找是否有空闲内存*/intfindExist(intcurpage);/*查找内存中是否有该页面*/intfindReplace();/*查找应予置换的页面*/voiddisplay();/*显示*/voidFIFO();/*FIFO算法*/voidLRU();/*LRU算法*/voidOptimal();/*OPTIMAL算法*/voidBlockClear();/*BLOCK恢复*/structpa
6、geInfor*block;/*物理块*/structpageInfor*page;/*页面号串*/intQString[20];voidPRA(){inti,n;printf("请输入页面号引用串:");for(i=0;i<20;i++){scanf("%d",&QString[i]);}printf("您输入页面号引用串为:");printf("==================");for(i=0;i<20;i++){printf("%dt",QString[i]);}print
7、f("==================");block=(structpageInfor*)malloc(sizeof(structpageInfor));for(i=0;i8、e[i].timer=0;}}intfindSpace(){inti=0;for(i=0;i
8、e[i].timer=0;}}intfindSpace(){inti=0;for(i=0;i
此文档下载收益归作者所有