資源簡介
通過gui實現(xiàn)算法,包括fifo,LRU等算法,很詳細,入門級別。

代碼片段和文件信息
package?FIFO;
import?java.util.*;
public?class?FIFO?{
private?int?N;??//頁框大小
private?int?yekuang[];?//頁框數(shù)組
private?int?xulie[];??//訪問頁面序列數(shù)組
private?int?size;??//判斷頁框是否已滿
private?Listlist=null;?
private?double?queyelv;
public?FIFO(String?strint?N){
size=0;
Scanner?scan=new?Scanner(System.in);
// System.out.println(“請依次輸入頁面訪問序列,中間以空格隔開:“);
list=new?ArrayList();??
???//?????String?s=scan.nextLine();??
???//?????String?[]s1=s.split(“?“);??
String?[]s1=str.split(“?“);
????????int?m=s1.length;??
????????xulie=new?int[m];
????????for?(int?i=0;i ???????? list.add(Integer.valueOf(s1[i]));??
????????for(int?i=0;i ???????? xulie[i]=list.get(i);
????//????System.out.println(“請輸入頁框大小(3-10):“);
????// N=scan.nextInt();
????????this.N=N;
???? this.yekuang=new?int[N];
???? for(int?i=0;i ???? this.yekuang[i]=-1;
???? }
}
public?boolean?isExist(int?num){??//判斷頁框中是否存在該數(shù)
for(int?i=0;i if(yekuang[i]==num){
return?true;
}
}
return?false;
}
public?String[]?execute(){??//主執(zhí)行方法
int?queyeshu=0;
double?zongyeshu=this.xulie.length;
String?str[]=new?String[50];
for(int?i=0;i<50;i++){
str[i]=““;
}
int?strLen=0;
int?k=0;??//訪問頁面序列計數(shù)
while(size if(isExist(xulie[k])==false){??//若該數(shù)不存在
queyeshu++;
this.yekuang[size]=xulie[k];??//將數(shù)存入頁框,頁框計數(shù)size加一
for(int?i=0;i str[strLen]+=“[“+this.yekuang[i]+“]“;
}
str[strLen++]+=“\t***頁框有空***a!---即將訪問頁面““+xulie[k]+“”---!b不存在頁框內(nèi)c將頁面““+xulie[k]+“”存入頁框【“+(size+1)+“】“;
k++;
size++;
}
else{??//該數(shù)已存在于頁框中
for(int?i=0;i str[strLen]+=“[“+this.yekuang[i]+“]“;
}
str[strLen++]+=“\t***頁框未滿***a!---即將訪問頁面““+xulie[k]+“”---!b已經(jīng)存在c不做置換“;
k++;??//僅將訪問頁面序列加一
}
/* for(int?i=0;i System.out.print(yekuang[i]+“?“);
}
System.out.println();
*/
}
int?n=0;??//先進先出,從第一個頁框開始置換
while(k if(isExist(xulie[k])==false){???//不存在
queyeshu++;
int?temp=this.yekuang[n];
this.yekuang[n]=xulie[k];???//將數(shù)放入指定頁框
for(int?i=0;i str[strLen]+=“[“+this.yekuang[i]+“]“;
}
str[strLen++]+=“\t***頁框滿!***a!---即將訪問頁面““+xulie[k]+“”---!b不存在頁框內(nèi)c將頁面““+xulie[k]+“”存入頁框【“+(n+1)+“】,置換出頁面““+temp+“”“;
k++;
n++;
}
else{
for(int?i=0;i str[strLen]+=“[“+this.yekuang[i]+“]“;
}
str[strLen++]+=“\t***頁框滿!***a!---即將訪問頁面““+xulie[k]+“”---!b已經(jīng)存在c不做置換“;
k++;
}
if(n==N){???//當交換三次后,歸零,又從第一個頁框開始置換
n=0;
}
/* for(int?i=0;i System.out.print(yekuang[i]+“?“);
}
System.out.println();
*/
}
System.out.println(queyeshu+“?“+zongyeshu);
this.queyelv=queyeshu/zongyeshu;
str[strLen++]=“缺頁率為?“;
str[strLen]=this.queyelv+““;
return?str;
}
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
// int?xulie[]={12243511202};
String?str=“1?2?2?4?3?5?1?1?2?0?2“;
FIFO?f=new?FIFO(str3);
String?s[]
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-07-03?13:54??頁面置換算法gui(無時鐘)\
?????文件?????????295??2018-12-29?15:45??頁面置換算法gui(無時鐘)\.classpath
?????文件?????????365??2018-12-29?15:45??頁面置換算法gui(無時鐘)\.project
?????目錄???????????0??2019-07-03?13:54??頁面置換算法gui(無時鐘)\.settings\
?????文件?????????587??2018-12-29?15:45??頁面置換算法gui(無時鐘)\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2019-07-04?00:31??頁面置換算法gui(無時鐘)\bin\
?????目錄???????????0??2019-07-04?00:31??頁面置換算法gui(無時鐘)\bin\FIFO\
?????文件????????4012??2019-07-04?00:31??頁面置換算法gui(無時鐘)\bin\FIFO\FIFO.class
?????目錄???????????0??2019-07-04?00:31??頁面置換算法gui(無時鐘)\bin\LRU\
?????文件????????4453??2019-07-04?00:31??頁面置換算法gui(無時鐘)\bin\LRU\LRU.class
?????目錄???????????0??2019-07-04?00:31??頁面置換算法gui(無時鐘)\bin\Main\
?????文件????????8867??2019-07-04?00:31??頁面置換算法gui(無時鐘)\bin\Main\Page_Replacement.class
?????目錄???????????0??2019-07-04?00:31??頁面置換算法gui(無時鐘)\bin\OPT\
?????文件????????5228??2019-07-04?00:31??頁面置換算法gui(無時鐘)\bin\OPT\OPT.class
?????文件?????????112??2018-12-29?15:45??頁面置換算法gui(無時鐘)\README.md
?????目錄???????????0??2019-07-03?13:54??頁面置換算法gui(無時鐘)\src\
?????目錄???????????0??2019-07-03?13:54??頁面置換算法gui(無時鐘)\src\FIFO\
?????文件????????3388??2018-12-29?15:45??頁面置換算法gui(無時鐘)\src\FIFO\FIFO.java
?????目錄???????????0??2019-07-03?13:54??頁面置換算法gui(無時鐘)\src\LRU\
?????文件????????3890??2018-12-29?15:45??頁面置換算法gui(無時鐘)\src\LRU\LRU.java
?????目錄???????????0??2019-07-03?13:54??頁面置換算法gui(無時鐘)\src\Main\
?????文件???????11273??2018-12-29?15:45??頁面置換算法gui(無時鐘)\src\Main\Page_Replacement.java
?????目錄???????????0??2019-07-03?13:54??頁面置換算法gui(無時鐘)\src\OPT\
?????文件????????3946??2018-12-29?15:45??頁面置換算法gui(無時鐘)\src\OPT\OPT.java
評論
共有 條評論