实验--编程实现请求分页存储管理页面Optimal、FIFO、LRU置换算法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

湖南大学信科院学生实验报告姓名:***年级专业班级08计算机一班日期2010年12月8日成绩课程名称计算机操作系统实验名称编程实现请求分页存储管理页面Optimal、FIFO、LRU置换算法(4学时)实验类型验证设计综合创新【实验目的、要求】(1)通过编写程序实现请求分页存储管理页面Optimal、FIFO、LRU调度算法,使学生掌握虚拟存储管理中有关缺页处理方法等内容,巩固有关虚拟存储管理的教学内容。(2)了解Windows2000/XP中内存管理机制,掌握页式虚拟存储技术。(3)理解内存分配原理,特别是以页面为单位的虚拟内存分配方法。【实验内容】在WindowsXP、Windows2000等操作系统下,使用的VC、VB、java或C等编程语言,实现请求分页存储管理页面Optimal、FIFO、LRU调度算法。【实验环境】(含主要设计设备、器材、软件等)PCJcreator【实验步骤、过程】(含原理图、流程图、关键代码,或实验过程中的记)以下是部分关键代码-------------UsingFIFO--------------);for(inti=0;i;i++){Framesize:+frameSize[i]+\n);(frameSize[i]);(frameSize[i]);Totalerrorsfound:+errorCount);\n************************************\n);errorCount=0;}----------------UsingLRU----------------);for(inti=0;i;i++){Framesize:+frameSize[i]+\n);(frameSize[i]);(frameSize[i]);Totalerrorsfound:+errorCount);\n************************************\n);errorCount=0;}}学号:3112publicvoidgenerateRandomDigit(){for(inti=0;iArraySize;i++){digitalArray[i]=(int)()*9);}}publicvoidoutput(){随机序列:);for(inti=0;iArraySize;i++){+digitalArray[i]);}}publicvoidinitFrameForFIFO(intfS){();for(inti=0;ifS;i++){(newCouple(fS-i));}}publicvoidinitFrameForLRU(intfS){();for(inti=0;ifS;i++){(newCouple(0));}}publicvoidLRUReplace(intfS){booleanfindThesame=false;intpre=-1;alue==digitalArray[j]){((Couple)(i)).time=0;match=true;alue++atlocation+i);flag=i;break;}}if(match==true&&flag!=pre){for(inti=0;ifS;i++){if(i!=flag){((Couple)(i)).time--;}}pre=flag;}elseif(match==false){inttemp=0;intindex=0;for(inti=0;ifS;i++){if(((Couple)(i)).timetemp){temp=((Couple)(i)).time;index=i;}}for(inti=0;ifS;i++){if(i!=index){((Couple)(i)).time--;}else{((Couple)(i)).time=0;:replace+((Couple)(i)).value+);atlocation+index+);((Couple)(i)).value=digitalArray[j];with+((Couple)(i)).value);errorCount++;errorcount+errorCount);}}}}}publicvoidFIFOReplace(intfS){alue==digitalArray[j]){match=true;alue++atlocation+i);break;}}if(match==false){inttemp=0;intindex=-1;for(i=0;ifS;i++){if(((Couple)(i)).timetemp){temp=((Couple)(i)).time;index=i;}}【实验结果或总结】用Vector来模拟页表,而扔进去的Couple的个数就是表的大小。Couple中的Time设置衰老时间(FIFO)或未使用周期(LRU),Value为请求序列中digitalArray[]的值。序列长为20由随机函数产生的0-9的整型值。frameSize[]中存放的是页表的大小(也就是对应着扔几个Couple去啦)FIFO:初始化时先清空然后放Couple,将他们的Time属性按放的顺序分别置为frameSize,frame-1,frame-2.......1.数值越大放的越早,value通通置-1。接下来的工作就是对value和time的处置。若在vector中的couple的value里找到了value匹配则pass。如果没有找的话就从中time里找最老的,(谁的time最大就最老),找到后把它的value变成相应的请求的页面值,把它的time=1.对于不是最老的呢,就把他们的岁数都加一吧。LRU:初始化时先清空然后放Couple,将他们的Time属性置-1,value通通置-1。接下来处理请求序列了。若在value里找到对应的页面话就把对应的Time置0。其他的Couple对应的time--。如果没有找到的话就找一个最近使用的最少的啦(就是对应的time最负的那个),找到以后就把它的Value换成请求的页面值并且把它的time置0.与此同时,其他的time--。指导教师签名:20年月日【备注】

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功