页面置换实验操作系统_第1页
页面置换实验操作系统_第2页
页面置换实验操作系统_第3页
页面置换实验操作系统_第4页
页面置换实验操作系统_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实用标准文档一、实验名称:模拟操作系统的页面置换二、实验目的:1、掌握操作系统的页面置换过程,加深理解页式虚拟存储器的实现原理。2、掌握用随机数生成满足一定条件的指令地址流的方法。3、掌握页面置换的模拟方法。三、实验内容:1、用C+等,编制程序。2、模拟操作系统采用OPT、FIFO和LRU算法进行页面置换的过程。3、设程序中地址范围为0到32767,采用随机数生成256个指令地址,满足50%的地址是顺序执行,25%向前跳,25%向后跳。为满足上述条件,可采取下列方法:设d0=10000,第n个指令地址为dn,第n+1个指令地址为dn+1,n的取值范围为0到255。每次生成一个1至U1024范围

2、内的随机数a,如果a落在1到512范围内,则dn+1=dn+1。如果a落在513到768范围内,则设置dn+1为1到dn范围内一个随机数。如果a落在769至U1024范围内,则设置dn+1为dn到32767范围内一个随机数。4、页面大小的取值范围为1K,2K,4K,8K,16K。按照页面大小将指令地址转化为页号。对于相邻相同的页号,合并为一个。5、分配给程序的内存块数取值范围为1块,2块,直到程序的页面数。6、分别采用OPT、FIFO和LRU算法对页号序列进行调度,计算出对应的缺页中断率。7、打印出页面大小、分配给程序的内存块数、算法名、对应的缺页中断率。8、分析页面大小和分配给程序的内存块数

3、对缺页中断率的影响。分析不同的页面置换算法的调度性能。文案大全四、程序主要流程图:模拟操作系统的页面分别采用OFT> FIFO和LRU篁法对页号序 列进行调度,计算出对应的缺页中断率.打印出页面大小、分配给程序的内存块数 、算法名、对应的缺页中断率实验源程序:主要程序清单:void CMyDlg:run(int start,int end,int* add,int k) 模拟应用程序运行过程int m,m1,m2;while(320!=k)m=rand()%(end-1); /选取地址起点m+;/顺序执行一条指令addk+=m;m1=rand()%m;/在前地址0,m+1中选取一条指令并

4、执行addk+=m1;m1+;/顺序执行一条指令addk+=m1;m2=rand()%(end-m1)+m1;/在后地址m1+1,319中随机选取一条指令并执行addk+=m2;intCMyDlg二addresstopage(int*add,int*pag,intk,intsize)/地址序列转换成页流for(inti=0;i<320;i+)if(addi/(10*size)!=(addi-1/(10*size)pagk+=addi/(10*size);returnk;intCMyDlg:fifo(int*num,intsize,int&count,intlen)/先来先服务in

5、tm32,flag=0;for(inti=0;i<len;i+)if(i<size)mi=numi;count+;elseboolexist=false;for(intj=0;j<size;j+)if(mj=numi)exist=true;break;if(!exist)if(flag<size)mflag+=numi;count+;elseflag=0;mflag+=numi;count+;returncount;/最近最久未使用置换算intCMyDlg二lru(int*num,intsize,int&count,intlen)法intm32,m232,max

6、,mark;for(inti=0;i<len;i+)if(i<size)mi=numi;count+;for(intk=0;k<size;k+)for(intj=i;j>=0;j-)if(mk=numj)m2k=i-j;break;max=-1;for(k=0;k<size;k+)if(max<m2k)max=m2k;mark=k;boolexist=false;for(intj=0;j<size;j+)if(mj=numi)exist=true;break;if(!exist)mmark=numi;count+;returncount;/最佳置换算法

7、intCMyDlg二opt(int*num,intsize,int&count,intlen)intm32,m232,max,mark;for(inti=0;i<len;i+)if(i<size)mi=numi;count+;for(intk=0;k<size;k+)for(intj=i;j<len;j+)if(mk=numj)m2k=j-size+1;break;max=-1;for(k=0;k<size;k+)if(max<m2k)max=m2k;mark=k;boolexist=false;for(intj=0;j<size;j+)if(

8、mj=numi)exist=true;break;if(!exist)mmark=numi;count+;returncount;voidCMyDlg:OnReadme()/TODO:AddyourcontrolnotificationhandlercodehereCStringwarn;warn="如果想分析结果正确,请确保遵守如下原则:n在内存块数和页面大小相同的前提下,至少选择两种及以上的算法来测试,或者在算法相同的前提下,改变内存块数或页面的大小来测试,结果分析中是一个静态的分析"AfxMessageBox(warn);voidCMyDlg:OnAnalyse()/

9、TODO:Addyourcontrolnotificationhandlercodeherem_static.SetWindowText("当内存块数和页面大小一定,而只改变算法时,可以看到:OPT算法的缺页率较小,FIFO次之,LRU最差)五、实验中遇到的问题和实验中的重点1 .利用随机数产生一个指令序列,共320条指令满足程序要求:50%的指令是顺序执行的;25%的指令是均匀分布在前地址部分;25%的指令是均匀分布在后地址部分;使用语句M1=rand()%m;通过循环语句进行指令序列设置初始化。2 .指令序列变换成页地址流,着重于对不同页面大小时对于页面的地址换算。3 FIFO先

10、进先出的算法,LRUR近最少使用算法,OPT#佳淘汰算法的理解对于程序的实现影响很大RANDJ法:用软硬件的随面数产生主存中要被替换页的页号。FIFO算法:选择最早装入主存的页作为被替换的页。这种算法实现方便,但不一定正确反映出程序的局部性。LRU算法:选择近期最少访问的页作为被替换页。OPTB法:根据未来实际使用情况将未来的近期里不用的页替换出去。六、实验心得:只有基于对FIFO先进先出的算法,LRUR近最少使用算法,OPTt佳淘汰算法的充分的理解才能在程序设计中掌握其设计思路。在课堂上算算老师出的题目是简单的事情但是当实际动手操作将算法通过程序表达出来并且设计出其对应的缺页中断率。并通过实验结果对于各种算法性能进行分析。就成了一件很富杂的事情。在反复上网查找资料和同学交流程序设计的框架中获得了很多宝贵的解

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论