操作系统-页式虚拟存储管理程序模拟_第1页
操作系统-页式虚拟存储管理程序模拟_第2页
操作系统-页式虚拟存储管理程序模拟_第3页
操作系统-页式虚拟存储管理程序模拟_第4页
操作系统-页式虚拟存储管理程序模拟_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

实验3:页式虚拟存储管理程序模拟实验目的:编写程序来模拟计算机的两种调度方式:(1)先进先出算法(2)最近最少使用算法程序设计FIFO()FIFO()LRU()Msize加1S=?用户内存空间msize=2Msize≤32是否用其他算法继续结束NY12YN提示出错,重新输入输入算法号S1≤S≤4开始生成地址流形成地址页号FIFO页面置换算法1在分配内存页面数(AP)小于进程页面数(PP)时,当然是最先运行的AP个页面放入内存。2这时有需要处理新的页面,则将原来内存中的AP个页面最先进入的调出(是以称为FIFO),然后将新页面放入。3以后如果再有新页面需要调入,则都按2的规则进行。算法特点:所使用的内存页面构成一个队列。LRU页面置换算法1当分配内存页面数(AP)小于进程页面数(PP)时,当然是把最先执行的AP个页面放入内存。2当需要调页面进入内存,而当前分配的内存页面全部不空闲时,选择将其中最长时间没有用到的那个页面调出,以空出内存来放置新调入的页面(称为LRU)。算法特点:每个页面都有属性来表示有多长时间未被CPU使用的信息。结果分析 {if(p<PageCount[i]) {p=PageCount[i]; q=i;}} returnq;}voidInit()//初始化页框{ for(intk=0;k<MaxNum;k++) { intn=rand()%320;//随机数产生320次指令 PageOrder[k]=n/10;//根据指令产生320次页面请求}for(inti=0;i<MaxNum;i++)//初始化页面访问过程{for(intj=0;j<M;j++) {Simulate[i][j]=-1;}}for(intq=0;q<M;q++)//初始化最久未使用数组{PageCount[q]=0;}}voidOutPut()//输出{ inti,j; cout<<"页面访问序列:"<<endl; for(j=0;j<MaxNum;j++) {cout<<PageOrder[j]<<"";} cout<<endl; cout<<"页面访问过程(只显示前10个):"<<endl; for(i=0;i<10;i++) { for(j=0;j<M;j++) { if(Simulate[i][j]==-1) cout<<""; else cout<<Simulate[i][j]<<""; } cout<<endl; } cout<<"缺页数="<<LackNum<<endl; cout<<"命中率="<<PageRate<<endl; cout<<""<<endl;}voidFIFO()//FIFO算法{ intj,x=0,y=0; LackNum=0, Init();for(j=0;j<M;j++)//将前五个页面请求直接放入内存中 { for(intk=0;k<=j;k++) { if(j==k) Simulate[j][k]=PageOrder[j]; else Simulate[j][k]=Simulate[j-1][k]; } //LackNum++; } for(x=M;x<MaxNum;x++) { for(intt=0;t<M;t++)//先将前一次页面访问过程赋值给新的页面访问过程 { Simulate[x][t]=Simulate[x-1][t];} if(!IsExit(x))//根据新访问页面是否存在内存中来更新页面访问过程 { LackNum++; Simulate[x][y%M]=PageOrder[x]; y++; } } PageRate=1-((float)LackNum/(float)MaxNum);//算出命中率 OutPut();}//最近最不常用调度算法(LRU)voidYourChoice(intchoice){ switch(choice) { case1: cout<<""<<endl; cout<<"FIFO算法结果如下:"<<endl; FIFO(); break; case2: cout<<""<<endl; cout<<"LRU算法结果如下:"<<endl; LRU(); break; case3: break; default: cout<<"重新选择算法:1--FIFO2--LRU3--退出"<<endl; cin>>choice; YourChoice(choice); }}voidmain(){ intchoice,i=1; while(i) { cout<<"请选择算

温馨提示

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

评论

0/150

提交评论