資源簡介
操作系統頁面置換算法中的FIFO算法,這個是用java代碼實現的,純代碼,經驗證是完全正確的。
代碼片段和文件信息
import?java.util.linkedList;??
import?java.util.List;??
import?java.util.Scanner;??
??
??
public?class?FIFO?{??
?????static?int?volum;//棧的容量??
?????static?Listlist=new?linkedList();??
?????static?int?visit[];//要訪問的頁面??
?????static?int?count=0;//記錄頁面置換的次數??
??????public?static?void?main(String[]args)??
??????{??
??????????Scanner?sc=new?Scanner(System.in);??
??????????System.out.print(“請輸入棧的容量:“);??
??????????volum=sc.nextInt();??
??????????System.out.println(“請輸入頁面總數:“);??
??????????int?number=sc.nextInt();??
??????????visit=new?int[number];??
??????????System.out.println(“請輸入各個頁面號:“);??
??????????for(int?i=0;i ??????????????visit[i]=sc.nextInt();??
??????????sFIFO();??
??????????System.out.println(“置換次數為:“+count);??
????????????
??????}??
??????public?static?void?sFIFO()??
??????{??
??????????int?index=0;??
??????????while(index ??????????{??
??????????????boolean?flag=false;??
??????????????if(list.size()<=volum)??
??????????????{??
??????????????????for(int?i=0;i ??????????????????{??
??????????????????????if(list.get(i).id==visit[index])??
??????????????????????{//若已經存在,直接返回看下一個??
??????????????????????????for(int?j=0;j ??????????????????????????{??
??????????????????????????????int?te=list.get(j).count;??
??????????????????????????????list.get(j).setCount(te+1);??
??????????????????????????}??
??????????????????????????flag=true;??
??????????????????????????break;??
??????????????????????}??
??????????????????}??
??????????????????????if(!flag)??
??????????????????????{??
??????????????????????????if(list.size()==volum)??
??????????????????????????{//如果滿了,只能置換頁面了??
???????????????????????????int?old=list.get(0).count;??
???????????????????????????int?temp=0;//暫存最老頁面編號??
??????????????????????????//尋找最老的頁面??
?????????????????????????????for(int?j=1;j ??
評論
共有 條評論