《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 页 - - - - - - - - -