操作系统-LRU页面置换算法模拟_第1页
操作系统-LRU页面置换算法模拟_第2页
操作系统-LRU页面置换算法模拟_第3页
操作系统-LRU页面置换算法模拟_第4页
操作系统-LRU页面置换算法模拟_第5页
全文预览已结束

下载本文档

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

文档简介

广东海洋大学学生实验报告书〔学生用表〕实验名称LRU页面之后算法模拟课程名称操作系统课程号学院〔系〕专业 班级学生姓名学号实验地点实验日期LRU页面置换算法模拟一.实验目的〔1〕掌握页式管理根本原理〔2〕掌握LRU页面置换算法二.实验内容〔1〕按照最近最久未使用页面置换算法〔LRU〕设计页面置换模拟程序。〔2〕对于给定的页面访问序列,输出其访问过程中的页面置换序列,并记录缺页次数。页面访问序列70120304230321201701页面077722224440001111111页面10000000033333300000页面2111333222222222777缺页YYYYYYYYYYYY置换712304032〔3〕输出内容参考三.相关数据结构〔1〕页表结构数组页号块号状态〔2〕页面访问序列数组:保存进程执行过程中的页面访问序列。〔3〕存放器数组:每个物理块对应一个16bit的存放器。〔4〕物理块分配表〔bool数组〕:标识每个物理块是否已经分配四.实现流程〔1〕主线程:实现页面访问过程中的物理块分配和页面置换〔假设每间隔80ms访问一个页面〕。〔2〕存放器周期性移位线程:周期性〔每隔100ms〕将所有存放器右移一位。〔3〕主线程参考流程图:详细代码:importjava.io.BufferedReader;importjava.io.InputStreamReader;publicclassLRU{ intblockCount; intseriaCount; staticintnum=0; int[]address; int[]stack; BufferedReaderbr;publicstaticvoidmain(String[]args){ intaddress[]={7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1}; LRUlru=newLRU(); lru.init(); lru.display();}publicvoidinit(){ try{ br=newBufferedReader(newInputStreamReader(System.in)); }catch(Exceptione){ e.printStackTrace(); System.exit(0); } blockCount=3; stack=newint[blockCount]; System.out.println("请输入访问内存的块序列的个数为3:"); seriaCount=readInt(); System.out.println("读入的访问序列是:"); address=readIntArray();}publicvoiddisplay(){ booleanflag; System.out.println("--------------------------------------"); System.out.print("最近最久未使用页面置换算法〔LRU〕页面置换序列:"); for(inti=0;i<address.length;i++){ intj=0; flag=false; intt,temp=address[i]; while(stack[j]!=address[i]){ t=stack[j]; stack[j]=temp; temp=t; j++;if(temp==0||j==stack.length) break; } if(j<stack.length) stack[j]=temp; if(temp!=0&&j!=stack.length) flag=true; try{ java.lang.Thread.sleep(500); }catch(InterruptedExceptione){ e.printStackTrace(); } for(intm=0;m<i-blockCount+1;m++) System.out.print(""); for(intm=0;m<stack.length;m++) System.out.print(stack[m]+""); System.out.print(","); if(flag){ num=num; } else{ num++; }} System.out.println(""); System.out.println("总缺页数:"+num);}publicintreadInt(){ try{ Strings=br.readLine(); returnInteger.parseInt(s); }catch(Exceptione){ return3; }}publicint[]readIntArray(){ try{ Strings=br.readLine(); System.out.println(s); Stringtmp[]=s.split(""); intvalue[]=newint[tmp.length]; for(inti=0;i<value.length;i++) value[i]=Integer.parseInt(tmp[i]); returnvalue; }catch(Exceptione){ System.out.println(e); returnnull; }}}五.实现结论 通过这次的实验,我对LRU页面置换算法有了更深的了解,LRU置换算法是理想性

温馨提示

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

评论

0/150

提交评论