资源简介
操作系统页面置换模拟,功能简单实用,思路清晰,内含报告。
代码片段和文件信息
package osd;
import java.io .BufferedInputStream;
import java.util.*;
public class page_replacement {
private int n;//内储页框
private int m;//访问次数
private int F;//没能直接找到的次数(F/m)为缺页率
private Listlist=null;//访问地址走向
private Mapmap=null;//访问内储页框
public page_replacement(){
F=0;
map=new HashMap();//存储每一个内储页框所存的内容
Scanner cin=new Scanner(new BufferedInputStream(System.in));
System.out.println(“请输入用户访问页面号序列:“);//获得访问页面号序列
list=new ArrayList();
String s=cin.nextLine();
String []s1=s.split(“ “);
m=s1.length;
for (int i=0;i list.add(Integer.valueOf(s1[i]));//将地址码逐个放入表中
System.out.println(“请输入内储叶框数量:“);
n=cin.nextInt();
menu();
switch(cin.nextInt()){
case 1:OPT();break;
case 2:FIFO();break;
case 3:LRU();break;
}
cin.close();
}
public void menu(){//选择页面置换算法
System.out.println(“**** 选择最佳置换算法请按1 **********“);
System.out.println(“**** 选择先进先出置换算法请按2 *******“);
System.out.println(“**** 选择最近最远未使用置换算法请按3 ***“);
}
public void OPT(){
int j;
for (int i=0;i {
int k=list.get(i);//待处理元素
if (!map.containsValue(k)){
F++;
if (map.size() int temp=map.size();
map.put(temp k);
}
else{//如果装满了
int index=0;//把哪个位置的淘汰出去
int min=0;//初始最长长度
for (int t=0;t {
for (j=i+1;j if (list.get(j)==map.get(t)){//第一次找到
if (j-i>min){
index=t;//更新值
min=j-i;
}
break;
}
}
if (j==m){//如果到最后
index=t;
min=j-i;
}
}
map.remove(index);
map.put(indexk);//修改表内元素
}
}
System.out.println(map);
}
System.out.println(“缺页中断次数为:“+F);
System.out.println(“页面置换次数为:“+(F-n));
System.out.println(“缺页率为:“+F*1.0/m);
}
public void FIFO(){
Queueq=new linkedList();
for (int i=0;i {
int k=list.get(i);//待处理元素
if (!map.containsValue(k)){
F++;
if (map.size() int temp=map.size();
map.put(temp k);
q.offer(temp);
}
else
{
int temp=q.poll();//排除的元素位置
map.remove(temp);
map.put(tempk);
q.offer(temp);
}
System.out.println(map);
}
}
System.out.println(“缺页中断次数为:“+F);
System.out.println(“页面置换次数为:“+(F-n));
System.out.println(“缺页率为:“+F*1.0/m);
}
public void LRU(){
Listlinkedlist=new linkedLis
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 323568 2018-01-11 19:33 操作系统20152027页面置换模拟\20152027+田创世+页面置换模拟.doc
文件 4363 2018-01-11 18:33 操作系统20152027页面置换模拟\OS\src\osd\page_replacement.java
目录 0 2018-10-06 23:59 操作系统20152027页面置换模拟\OS\src\osd
目录 0 2018-10-06 23:59 操作系统20152027页面置换模拟\OS\src
目录 0 2018-10-06 23:59 操作系统20152027页面置换模拟\OS
目录 0 2018-10-06 23:59 操作系统20152027页面置换模拟
----------- --------- ---------- ----- ----
327931 6
评论
共有 条评论