实验五:页面调度算法模拟 实验报告材料

上传人:仙*** 文档编号:83343804 上传时间:2022-05-01 格式:DOC 页数:23 大小:388.50KB
返回 下载 相关 举报
实验五:页面调度算法模拟 实验报告材料_第1页
第1页 / 共23页
实验五:页面调度算法模拟 实验报告材料_第2页
第2页 / 共23页
实验五:页面调度算法模拟 实验报告材料_第3页
第3页 / 共23页
点击查看更多>>
资源描述
word计算机操作系统实验报告实验五:页面调度算法模拟学校:院系:班级:学号:指导教师:目 录一、实验题目3二、实验学时3三、指导教师3四、实验日期3五、实验目的3六、实验原理3页面的含义36.2 页面置换算法的含义36.3置换算法3最优置换算法(Optimal)3先进先出(FIFO)页面置换算法36.3.3 LRU置换算法4七、实验步骤与结果47.1 验证最优置换算法47.1.1 实验截图47.1.2 实验分析47.2 验证先进先出(FIFO)页面置换算法57.2.1 实验截图57.2.2 实验分析57.3 验证LRU置换算法67.3.1 实验截图67.3.2 实验分析6八、报告书写人6附录一 最优置换算法(Optimal)7附录二 先进先出(FIFO)页面置换算法10附录三 LRU置换算法13实验五:页面调度算法模拟一、实验题目页面调度算法模拟二、实验学时2学时三、指导教师四、实验日期2018年12月10日星期一五、实验目的(1)熟悉操作系统页面调度算法(2)编写程序模拟先进先出、LRU等页面调度算法,体会页面调度算法原理六、实验原理页面的含义分页存储管理将一个进程的逻辑地址空间分成假如干大小相等的片,称为页面或页。6.2 页面置换算法的含义在进程运行过程中,假如其所要访问的页面不在存而需把它们调入存,但存已无空闲空间时,为了保证该进程能正常运行,系统必须从存中调出一页程序或数据,送磁盘的对换区中。但应将哪个页面调出,须根据一定的算法来确定。通常,把选择换出页面的算法称为页面置换算法(Page_Replacement Algorithms)。6.3置换算法一个好的页面置换算法,应具有较低的页面更换频率。从理论上讲,应将那些以后不再会访问的页面换出,或将那些在较长时间不会再访问的页面调出。最优置换算法(Optimal)它是由Belady于1966年提出的一种理论上的算法。其所选择的被淘汰页面,将是以后永不使用的或许是在最长(未来)时间不再被访问的页面。采用最优置换算法,通常可保证获得最低的缺页率。但由于人目前还无法预知一个进程在存的假如干个页面中,哪一个页面是未来最长时间不再被访问的,因而该算法是无法实现的,便可以利用此算法来评价其它算法。先进先出(FIFO)页面置换算法这是最早出现的置换算法。该算法总是淘汰最先进入存的页面,即选择在存中驻留时间最久的页面予以淘汰。该算法实现简单只需把一个进程已调入存的页面,按先后次序成一个队列,并设置一个指针,称为替换指针,使它总是指向最老的页面。6.3.3 LRU置换算法LRU置换算法是选择最近最久未使用的页面予以淘汰。 七、实验步骤与结果7.1 验证最优置换算法7.1.1 实验截图7.1.2 实验分析in727710440804b1777744b222228b31111b4000out727.2 验证先进先出(FIFO)页面置换算法7.2.1 实验截图7.2.2 实验分析in103380812056b11111222b2000055b333336b48888out1037.3 验证LRU置换算法7.3.1 实验截图7.3.2 实验分析in968773712670b1999933366b266661110b38888222b4777777out96831八、报告书写人附录一 最优置换算法(Optimal)#include #include #include #define N 12/*随机数列的长度*/#define B 4 /*存页面数*/int IsInBuf(int buf,int list,int num)int i,j=-1;int max_p;int max_d=0;for(i=0;iB;i+)if(bufi=listnum)/当x在buf中,返回-1return -1;else if(bufi=-1) /当x不在buf中,且bufi为空,如此把x填入buf,并返回-1bufi=listnum;return -2;for(i=0;iB;i+)for(j=num+1;jN;j+)if(bufi=listj)if(max_dj) max_d=j;/bufi在list中的最近距离 max_p=i;/listj在buf的位置break;if(j=N)/如果buf满,并且bufi不在list的后半局部,返回位置ireturn i;return max_p;/返回距离最远的buf的位置int main()int listN;/=4,3,2,1,4,3,5,4,3,2,1,5;int bufB,i,fN,j,m,bufuse=0,tmp;int change=0;/置换次数int interrupt=0;/中断次数int successfully=0;/访问成功次数srand(int)time(NULL);for(i=0;iB;i+)bufi=fi=-1;printf(nn);printf(The Optimal List:);for(i=0;iN;i+)listi=(int) rand()%10;printf(%2d,listi);printf(n);printf(nthe lost in Optimal:n);for(i=0;iN;i+)j=IsInBuf(buf,list,i);if(j=-1)successfully+;for(m=0;m=B;m+)printf( );/*成功的打印*/printf( in-%d successfullyn,listi);/*成功的打印*/else if(j=-2)bufuse+;interrupt+;printf(newbuf=);for(m=0;mbufuse;m+)printf(%d ,bufm);/*缺页中断次数的打印*/for(m;mB;m+)printf( );/*缺页中断的打印*/printf( in-%d interruptn,listi);/*缺页中断的打印*/elsetmp=bufj;bufj=listi;change+;printf(newbuf=);for(m=0;mbufuse;m+)printf(%d ,bufm);/*缺页置换的打印*/for(m;mB;m+)printf( );/*缺页置换的打印*/printf( inoutn,listi,tmp);/*缺页置换的打印*/printf(nn);printf(interrupt=%dn,interrupt);printf(change=%dn,change);printf(successfully=%dn,successfully);return 0;附录二 先进先出(FIFO)页面置换算法#include #include #include #define N 12/*随机数列的长度*/#define B 4/*存页面数*/int IsInBuf(int buf,int x)int i;for(i=0;iB;i+)if(bufi=x)/*当x在buf中,返回其位置*/return -1;else if(bufi=-1)/*当x不在buf中,且bufi为空,如此把x填入buf,并返回其位置*/bufi=x;return -2;return 0;int main()int listN;/=4,3,2,1,4,3,5,4,3,2,1,5;int bufB,i,fN,j,m,bufuse=0,tmp;int old=0;int change=0;/置换次数int interrupt=0;/中断次数int successfully=0;/访问成功次数srand(int)time(NULL);for(i=0;iB;i+)bufi=fi=-1;printf(nn);printf(The FIFO List:);for(i=0;iN;i+)listi=(int) rand()%10;printf(%2d,listi);printf(n);printf(nthe lost in FIFO:n);for(i=0;iN;i+)j=IsInBuf(buf,listi);if(j=-1)successfully+;for(m=0;m=B;m+)printf( );/*成功的打印*/printf( in-%d successfullyn,listi);/*成功的打印*/else if(j=-2)bufuse+;interrupt+;printf(newbuf=);for(m=0;mbufuse;m+)printf(%d ,bufm);/*缺页中断次数的打印*/for(m;mB;m+)printf( );/*缺页中断的打印*/printf( in-%d interruptn,listi);/*缺页中断的打印*/elsetmp=bufold;bufold=listi;old=(old+1)%(int)B;/*数据在中的储存是循环的*/change+;printf(newbuf=);for(m=0;mbufuse;m+)printf(%d ,bufm);/*缺页置换的打印*/for(m;mB;m+)printf( );/*缺页置换的打印*/printf( inoutn,listi,tmp);/*缺页置换的打印*/printf(nn);printf(interrupt=%dn,interrupt);printf(change=%dn,change);printf(successfully=%dn,successfully);return 0;附录三 LRU置换算法#include #include #include #define N 12/*随机数列的长度*/#define B 4/*存页面数*/int IsInBuf(int buf,int list,int num)int i,j=-1;for(i=0;iB;i+)if(bufi=listnum)/*当x在buf中,返回其位置*/j=i;break;else if(bufi=-1)/*当x不在buf中,且bufi为空,如此把x填入buf,并返回其位置*/bufi=listnum;j=-2;break;return j;int Get(int buf,int list,int num) int buffB;int buffuse=0;int i,j,k,m;for(m=0;m=0;i-)for(j=0;jB;j+)if(listi=bufj)for(k=0;kbuffuse;k+)if(listi=buffk)break;if(k=buffuse)buffbuffuse=listi;buffuse+;if(buffuse=B)return j;break;return 0;int main()int listN;/int list12=int bufB,i,fN,j,m,bufuse=0,tmp;int old=0;int change=0;int interrupt=0;int successfully=0;srand(int)time(NULL);for(i=0;iB;i+)bufi=fi=-1;printf(The Random List:);for(i=0;iN;i+)listi=(int) rand()%10;printf(%2d,listi);printf(nn);printf(nthe lost in LRU:n);change=0;/*中断的次数*/for(i=0;iN;i+)j=IsInBuf(buf,list,i);if(j=-1)old=Get(buf,list,i);tmp=bufold;bufold=listi;change+;printf(newbuf=);for(m=0;mbufuse;m+)printf(%d ,bufm);/*缺页置换的打印*/for(m;mB;m+)printf( );/*缺页置换的打印*/printf( inoutn,listi,tmp);/*缺页置换的打印*/else if(j=-2)bufuse+;interrupt+;printf(newbuf=);for(m=0;mbufuse;m+)printf(%d ,bufm);/*缺页中断次数的打印*/for(m;mB;m+)printf( );/*缺页中断的打印*/printf( in-%d interruptn,listi);/*缺页中断的打印*/elsesuccessfully+;for(m=0;m=B;m+)printf( );/*成功的打印*/printf( in-%d successfullyn,listi);/*成功的打印*/printf(nn);printf(interrupt=%dn,interrupt);printf(change=%dn,change);printf(successfully=%dn,successfully);return 0;23 / 23
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!