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