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

下载本文档

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

文档简介

实验六虚拟存储管理一.实验目的:存储管理的主要功能之一是合理的分配空间。请求页式管理是一种常用的虚拟存储管理技术。本实验的目的是请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换方法。二.实验内容及要求:(1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成:、50%的指令是顺序执行的;、25%的指令是均匀分布在前地址部分;、25%的指令是均匀分布在后地址部分。具体的实施方法是:在[0,319]的指令地址之间随机选取一起点m;顺序执行一条指令,即执行地址为m+1的指令;在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m';顺序执行一条指令,其地址为m'+1;在后地址[m'+2,319]中随机选取一条指令并执行;重复上述步骤,直至执行320次指令。(2) 将指令序列变换成页地址流设:①页面大小为1K;②用户内存容量为4页;③用户虚存容量为32K;在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:第0条~第9条指令为第0页(对应的虚存地址为[0,9]);第10条~第19条指令为第1页(对应的虚存地址为[10,19]);第310条~第319条指令为第31页(对应的虚存地址为[310,319]);按以上方式,用户指令可组成32页。模拟该作业的执行过程。目前它的所有页都还未调入内存。在模拟过程中,如果所访问的指令已在内存,则显示其物理地址,并转下一条指令。如果所访问的指令还未装入内存,则发生缺页,此时需记录缺页的次数,并将相应页调入内存。如果4个内存块中均已装入该作业,则需进行页面置换。最后显示其物理地址,并转下一条指令。(3) 计算并输出下述各种算法在不同的内存容量下的缺页率。先进先出的算法(FIFO);最近最少使用算法(LRR);最佳淘汰法(OPT):先淘汰最不常用的页地址;最少访问页面算法(LFR);最近不经常使用算法(NUR)。其中③和④为选做内容。缺页率=(页面失效次数)/(页地址流长度)在本实验中,页地址流的长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。随机数产生办法关于随机数产生办法,可以使用系统提供函数rand(),分别进行初始化和产生随机数。例如:rand();语句可初始化的一个随机数;a[0]=10*rand()/32767*319+1;a[1]=10*rand()/32767*a[0];语句可用来产生a[0]与a[1]中的随机数。三.实验主要步骤:关于随机数的产生办法。首先要初始化设置随机数,产生序列的开始点,例如,通过下列语句实现:srand(400);(1)计算随机数,产生320条指令序列m=160;for(i=0;iv80;i++={j=i・4;a[j]=m;a[j+1]=m+1;a[j+2]=a[j]・1.0・rand()/32767;a[j+3]=a[j+2]+1m=a[j+3]+(319-a[j+3])・1.0・rand()/32767;}(2)将指令序列变换成为页地址流for(k=0;kv320;k++){pt=a[k]/10;pd=a[k]%10}计算不同算法的命中率rate=1-1.0・U/320;其中U为缺页中断次数,320是页地址流长度。输出格式kfifo1ru40.230.25•••321.01.0四.实验的主要代码int*build()printf("随机产生一个进程序列号为:\n");srand(time(NULL));for(inti=0;i<psize;i++){",pro[i]);pro[i]=rand()%10;printf("%d",pro[i]);}printf("\n");return(pro);}//*****//查找空闲物理intsearchpb(){for(j=0;j<bsize;j++){if(phb[j]==0){m=j;returnm;break;}}return-1;}//************//查找相同进程intsearchpro(){for(j=0;j<bsize;j++){if(phb[j]==pro[i]){n=j;returnj;}}return-1;}voidempty()for(i=0;i<bsize;i++)phb[i]=0;count=0;//计数器置零}//先进先出页面置换算法voidFIFO(){for(i=0;i<psize;i++){m=searchpbO;n=searchproO;〃找flag值最大的for(j=0;j<bsize;j++){if(flag[j]>maxflag){maxflag=flag[j];max=j;}}if(n==-1) //不存在相同进程{if(m!=-1) //存在空闲物理块{phb[m]=pro[i];//进程号填入该空闲物理块count++;flag[m]=0;for(j=0;j<=m;j++){flag[j]++;}m=-1;}else //不存在空闲物理块{phb[max]=pro[i];flag[max]=0;for(j=0;j<bsize;j++){flag[j]++;}max=-1;maxflag=0;count++;}}else//存在相同的进程{phb[n]=pro[i];for(j=0;j<bsize;j++){flag[j]++;}n=-1;}for(j=0;j<bsize;j++){printf("%d",phb[j]);}printf("\n");tag=i;}}returntag;}/*判断页面是否已在内存中*/intEquation(intfold,Page*b){inti;for(i=0;i<bsize;i++){if(fold==b[i].num)returni;}return-1;/*LRU核心部分*/voidLruu(intfold,Page*b){inti;intval;val=Equation(fold,b);if(c[i]|j]==-1)printf("|%2c",32);elseprintf("|%2d",c[i][j]);}printf("|\n");}Myprintf;printf("\n调入队列为:”);for(i=0;ivK+1;i++)printf("%3d",queue[i]);printf("\n缺页次数为:%6d\n缺页率:%16.6f",K+1,(float)(K+1)/psize);}五■运行结果分析:1•选择1产生随机序列,如下所示:亘].l-亘].l-■D:\MSDe!^9S\MyProjects\e\Dgbug\eBexe'☆☆亠"欢迎迓人凜作兼统界直7*1.产生甌机序列3>光込比出(FIFO〉盘 0、退出

温馨提示

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

评论

0/150

提交评论