2022年页面置换算法 .pdf

上传人:Q****o 文档编号:28069162 上传时间:2022-07-26 格式:PDF 页数:7 大小:48.10KB
返回 下载 相关 举报
2022年页面置换算法 .pdf_第1页
第1页 / 共7页
2022年页面置换算法 .pdf_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《2022年页面置换算法 .pdf》由会员分享,可在线阅读,更多相关《2022年页面置换算法 .pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、长春理工大学实验 4 页面置换算法(2 学时)一、实验目的通过实验加强对虚拟存储管理中页面置换算法的理解和掌握。二、实验内容编写程序实现虚拟存储管理中OPT,FIFO,LRU页面置换算法。三、实验要求1、任意给出一组页面访问顺序(如页面走向是1、2、5、7、5、7、1、4、3、5、6、4、3、2、1、5、2) 。2、分配给该作业一定的物理块(如3 块、4 块等) 。3、利用 OPT,FIFO,LRU页面置换算法模拟页面置换过程并计算其缺页率。4、每访问一个页面均需给出内存中的内容(内存中的页面号),若有淘汰还需给出淘汰的页面号。5、 通过给出特殊的页面访问顺序, 分配不同的物理块, 利用 FI

2、FO算法计算其缺页率,进一步理解Belady 现象。6、 (附加)实现 CLOCK 置换算法,修改位可在确定页面号时直接任意给出。Java 编写。一个包wcm4.一个 class 。Test。/ package wcm4; import java.util.LinkedList; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - import java.util.Scanner; public class Test /* * pa

3、ram args */ LinkedList ll=new LinkedList(); int a; int leng; int all=1,2,5,7,5,7,1,4,3,5,6,4,3,2,1,5,2; /int free=new intall.length; Object o=new Integer(a); public static void main(String args) / TODO Auto-generated method stub Test t=new Test(); t.begin(); public void begin() System.out.println( 请

4、选择测试类型:); System.out.println(1 OPT; 2 FiFO; 3 LRU; 4 CLOCK; 5退出 ); Scanner sc=new Scanner(System.in); int choose=sc.nextInt(); while(choose!=5) switch(choose) case 1:this.opt();break; case 2:this.fifo();break; case 3:this.lru();break; case 4:this.clock();break; System.out.println( 请选择测试类型:); System.

5、out.println(1 OPT; 2 FiFO; 3 LRU; 4 CLOCK; 5退出 ); sc=new Scanner(System.in); choose=sc.nextInt(); public void need() System.out.println( 请输入分配给该作业的物理块数:); Scanner sc=new Scanner(System.in); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - le

6、ng=sc.nextInt(); public void fifo() ll=new LinkedList(); this.need(); int a=0; for(int i=0;iall.length;i+) o=alli; if(!ll.contains(o) if(ll.size()leng) ll.add(o); o=null; else ll.add(o); o=ll.poll(); a+; else o=null; this.print(); System.out.println(FIFO的缺页率为:); System.out.println(a); System.out.pri

7、ntln( ); System.out.println(all.length); public void opt()/ 最佳置换算法/leng=0; ll=new LinkedList(); this.need(); int a=0; /int temp=0; /int b=new intleng; for(int i=0;iall.length;i+) int b=new intleng; o=alli; if(!ll.contains(o) if(ll.size()leng) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -

8、名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - ll.add(o); o=null; else for(int j=i;jall.length;j+) Object o1=new Integer(allj); for(int k=0;kleng;k+) if(ll.get(k).equals(o1) if(bk=0) bk=j;/ 待替换的页在以后第一次出现的位置 if(bleng-1=0) o=ll.set(leng-1, o); a+; else int temp=0; for(int m=0;mbtemp) temp=m; o=ll.

9、set(temp, o);/ 替换以后离得最远的a+; else o=null; this.print(); System.out.println(OPT 的缺页率为:); System.out.println(a); System.out.println( ); System.out.println(all.length); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - public void lru()/ 最近最久未使用l

10、l=new LinkedList(); this.need(); int a=0; for(int i=0;iall.length;i+) o=alli; if(!ll.contains(o) if(ll.size()leng) ll.add(o); o=null; else ll.add(o); o=ll.poll(); a+; else ll.add(o); ll.remove(o); o=null; this.print(); System.out.println(OPT 的缺页率为:); System.out.println(a); System.out.println( ); Sys

11、tem.out.println(all.length); public void clock()/简单 clock ll=new LinkedList(); this.need(); int a=0; int b=new intleng; for(int i=0;iall.length;i+) o=alli; if(!ll.contains(o) if(ll.size()leng) ll.add(o); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - -

12、- - - - - - o=null; else for(int j=0;j=ll.size();j+) if(bj%ll.size()=0) bj%ll.size()=1; else int temp1=j%ll.size(); o=ll.set(temp1, o); btemp1=0;/ 改变该位的标记位break; a+; else int temp=ll.indexOf(o);/ 找到该位btemp=0; o=null; this.print(); System.out.println( 标记位为: ); for(int k=0;kll.size();k+) System.out.pr

13、int(bk); System.out.println(); System.out.println(CLOCK的缺页率为:); System.out.println(a); System.out.println( ); System.out.println(all.length); public void print() Object op=ll.toArray(); for(int i=0;ill.size();i+) System.out.print(opi); System.out.print( ); System.out.println(o); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - /System.out.println(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁