操作系统页面置换fifo lru方式
来源:互联网 发布:网站运营数据分析 编辑:程序博客网 时间:2024/06/07 02:03
</pre><pre name="code" class="java">import javax.swing.JOptionPane;public class yemian { private static final int job_size=240800; private static int psy_size[]; private static int psy_rep; private static int kuai_ge=0; private static int psy_wei[]; public yemian(){ psy_size=new int[3]; psy_wei=new int[3]; psy_rep=0; for(int i=0;i<3;i++) psy_size[i]=-1; for(int i=0;i<3;i++) psy_wei[i]=0; } public void menuA(){ System.out.println("物理块的使用情况"); System.out.println("物理块号 , 页面号"); for(int i=0;i<psy_size.length;i++){ System.out.println(" "+i+" "+psy_size[i]); } } public void menuB(){ System.out.println("物理块的使用情况"); System.out.println("物理块号 , 页面号, 最近访问次数"); for(int i=0;i<psy_size.length;i++){ System.out.println(" "+i+" "+psy_size[i]+" "+psy_wei[i]); } } public void fifo(){ while(true){ int i; int kuai_pos = 0; String log=JOptionPane.showInputDialog("请输入逻辑地址(-1 exit)"); int log_add=Integer.parseInt(log); if(log_add >= job_size){ System.out.println("逻辑地址访问越界!"); } else if(log_add == -1){break; } else{ int page_pos=log_add/1024; //页面位置 int page_psy=log_add%1024; for(i=0;i<psy_size.length;i++){ if(psy_size[i]==page_pos){ kuai_pos=i; //查找物理块中是否存在该页面 break; } } if(i==3){ System.out.println("page "+page_pos+" 不存在物理块中 已经调入 "); psy_size[kuai_ge]=page_pos; kuai_pos=kuai_ge; //kuai_pos位置 kuai_ge++; kuai_ge%=3; //fifo记录位置 } else{ System.out.println("page "+page_pos+" 存在物理块中"); } } menuA(); System.out.println("块号 "+kuai_pos+" 物理地址"+(kuai_pos*1024+log_add%1024)); } } public void lru(){ while(true){ int i; int kuai_pos=0; int pos=0; int kuai_ge=Integer.MAX_VALUE; String log=JOptionPane.showInputDialog("请输入逻辑地址(-1 exit)"); int log_add=Integer.parseInt(log); if(log_add >= job_size){ System.out.println("逻辑地址访问越界!"); } else if(log_add == -1){break; } else{ int page_pos=log_add/1024; //页面位置 int page_psy=log_add%1024; for(i=0;i<psy_size.length;i++){ if(psy_size[i]==page_pos){ kuai_pos=i; //查找物理块中是否存在该页面 break; } } if(i==3){ System.out.println("page "+page_pos+" 不存在物理块中 已经调入 "); for(int j=0;j<psy_wei.length;j++){ if(kuai_ge > psy_wei[j] ){ //找到最小值 pos=j; kuai_ge=psy_wei[j]; } } psy_size[pos]=page_pos; psy_wei[pos]=1; kuai_pos=pos; } else{ System.out.println("page "+page_pos+" 存在物理块中"); psy_wei[i]++; kuai_pos=i; } } menuB(); System.out.println("块号 "+pos+" 物理地址"+(kuai_pos*1024+log_add%1024)); } } public static void main(String[] args) {yemian tmp=new yemian();System.out.println("物理块大小1kb 作业大小20kb");System.out.println("物理块共有三块");while(true){String str2=JOptionPane.showInputDialog("1FIFO算法\n2LRU算法\3退出\n");int s=Integer.parseInt(str2);if(s==1){tmp.fifo();}else if(s==2){tmp.lru();}else{System.exit(0);}}}}
0 0
- 操作系统页面置换fifo lru方式
- 操作系统页面置换算法之FIFO,LRU
- 转载:操作系统页面置换算法(opt,lru,fifo,clock)实现
- 操作系统页面置换算法(opt,lru,fifo,clock)实现
- 操作系统实验(2)-- 模拟操作系统的页面置换 LRU OPT FIFO
- 页面置换算法(FIFO,LRU,最佳,Clock)
- FIFO, LRU, OPT 页面置换算法
- 页面置换算法-FIFO、LRU、OPT
- 页面置换算法总结-FIFO-LRU-OPT
- FIFO,LRU,OPT页面置换算法
- LRU 和 FIFO 页面置换算法
- 页面置换算法 FIFO,OPT,LRU
- LRU 和 FIFO 页面置换算法
- 操作系统的页面置换C++算法:OPT FIFO LRU CLOCK 计算缺页率
- 使用C++STL中的deque实现操作系统FIFO、LRU页面置换算法
- 操作系统实验之页面置换算法(OPT、FIFO、LRU)C++简单实现
- 操作系统——页置换算法(FIFO,OPT,LRU)
- 操作系统页面置换算法之LRU算法
- ubuntu上如何安装以tar.gz为后缀名的软件安装包,以install_flash_player_11_linux.i386.tar.gz为例
- matlab----标签图像分类训练工具
- OC 中关键字的作用域
- history
- POJ 1017 Packets 【贪心 模拟】
- 操作系统页面置换fifo lru方式
- 九度oj 1201 二叉排序树的创建+遍历
- 2015
- Android编程容易忽略细点
- Android开发-自定义toast
- VS运行时库 /MD、/MDd 和 /MT、/MTd之间的区别
- OC中new方法与alloc+init及构造方法
- 稀疏表示字典的显示(MATLAB实现代码)
- 类和结构体的选择