




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、請求分頁存儲管理的實(shí)現(xiàn)寫出方案實(shí)現(xiàn)代碼(1)page類package homework;public class Page private int pagenumb;/頁號private int physicsnumb;/物理塊號private boolean state;/狀態(tài)位private int visitcount;/訪問字段private boolean change;/修改位private int CRTaddress;/外存地址public Page() this.pagenumb=-1;this.physicsnumb=-1;this.state=false;this.vis
2、itcount=0;this.change=false;this.CRTaddress=-1;public Page(int pagenumb,int physicsnumb,boolean state,int visitcount,boolean change,int CRTaddress) this.pagenumb=pagenumb;this.physicsnumb=physicsnumb;this.state=state;this.visitcount=visitcount;this.change=change;this.CRTaddress=CRTaddress;public voi
3、d setPagenumb(int pagenumb)this.pagenumb=pagenumb;public void setPhysicsnumb(int physicsnumb)this.physicsnumb=physicsnumb;public void setState(boolean state)this.state=state;public void setVisitcount(int visitcount)this.visitcount=visitcount;public void setChange(boolean change)this.change=change;pu
4、blic void setCRTaddress(int CRTaddress)this.CRTaddress=CRTaddress;public int getPagenumb()return this.pagenumb;public int getPhysicsnumb()return this.physicsnumb;public boolean getState()return this.state;public int getVisitcount()return this.visitcount;public boolean getChange()return this.change;p
5、ublic int getCRTaddress()return this.CRTaddress; (2)Shell類:頁表package homework;import java.util.Scanner;public class Shell Page shell;private int current;private int length;public Shell() ;public Shell(int length)this.length=length;this.current=0;shell=new Pagelength;for(int i=0;ilength;i+)this.shell
6、i=new Page();public void setCurrent(int current)this.current=current;public int getCurrent()return this.current;public int searchpage(int pagenumb)int i=0;if(this.current=0)return -2;elsewhile(i=this.length)return 1;else return 0;public int MinVisitcount()int i,t=0;for(i=1;ithis.current;i+)if(this.s
7、helli.getVisitcount()this.shellt.getVisitcount()t=i;return t;public int Ischange(int number)if(this.shellnumber.getChange()=true)return 1;else return 0;public void printPageShell()System.out.println(頁表:);System.out.println(索引t+頁號t+物理塊號t+狀態(tài)t+訪問次數(shù)t+修改t+外存地址t);for(int i=0;ithis.length;i+)System.out.pri
8、ntln(i+t+this.shelli.getPagenumb()+t+this.shelli.getPhysicsnumb()+t+this.shelli.getState()+t+this.shelli.getVisitcount()+t+this.shelli.getChange()+t+this.shelli.getCRTaddress();public void programFunction()System.out.println(*請求分頁存儲系統(tǒng)*);System.out.println(功能:);System.out.println(t 1.查看頁表);System.out
9、.println(t 2.查看快表);System.out.println(t 3.查看外存);System.out.println(t 4.在內(nèi)存修改數(shù)據(jù)); System.out.println(t 5.繼續(xù)訪問頁面); System.out.println(t 6.退出程序);public void Dealfunction(int i,KShell TLB,Source s,int b)if(i=1)this.printPageShell();else if(i=2)TLB.printKShell();else if(i=3)System.out.println(外存:);System
10、.out.println(外存地址t+頁號t+數(shù)據(jù)n);for(int k=0;k20;k+)sk.printSource(k);else if(i=4)String ch=yes;int pageNumb;Scanner a=new Scanner(System.in);System.out.print(請輸入一個(gè)頁號:);pageNumb=a.nextInt();int numb=this.searchpage(pageNumb);if(numb0)System.out.println(內(nèi)存中沒有此頁號);elsethis.Inchange(b, ch,numb);else if(i=6)
11、System.out.println(結(jié)束程序);System.exit(0);public static void main(String args)Scanner a=new Scanner(System.in);int i,number=-10,k1,k2,result;int k3=0;/當(dāng)前存儲的內(nèi)存地址int t;/頁表中訪問次數(shù)最小的索引int b=new int10;/內(nèi)存中存儲的數(shù)據(jù)String ch;int slength,plength,Tlength,data;System.out.print(請輸入外存大小:);slength=a.nextInt();System.o
12、ut.print(請輸入頁表大小:);plength=a.nextInt();System.out.print(請輸入快表大小:);Tlength=a.nextInt();/定義頁表,快表,外存Shell pageshell=new Shell(plength);/頁表Source s=new Sourceslength;/外存KShell TLB=new KShell(Tlength);/快表System.out.println(產(chǎn)生一個(gè)隨機(jī)序列作為外存數(shù)據(jù)!);/錄入外存地址和數(shù)據(jù)for(i=0;i=20|k10)number=TLB.searchpage(k1);if(number!=-
13、1&number!=-2)result=bTLB.shellnumber.getPhysicsnumb();System.out.println(在快表中找到,結(jié)果為:+result);/找出該頁號在頁表中的位置并修改訪問字段number=TLB.shellnumber.getIndex();pageshell.shellnumber.setVisitcount(pageshell.shellnumber.getVisitcount()+1);if(TLB.getCurrent()0)number=pageshell.searchpage(k1);/頁號k1所在的下標(biāo)if(number!=-1
14、&number!=-2)result=bpageshell.shellnumber.getPhysicsnumb();System.out.println(在頁表中找到,結(jié)果為:+result);/修改訪問字段和狀態(tài)位pageshell.shellnumber.setVisitcount(pageshell.shellnumber.getVisitcount()+1);/修改快表TLB.changeKShell(pageshell, number);if(pageshell.current=0|number=-1)System.out.println(在內(nèi)存中找不到!);System.out.
15、println(從外存中調(diào)入內(nèi)存:);/在頁表找不到,去外存區(qū)找for(i=0;islength;i+)if(k1=si.getPagenumb()/在外存找到了缺頁k2=pageshell.Isover();if(k2=1)/內(nèi)存已滿t=pageshell.MinVisitcount();System.out.println(內(nèi)存已滿!即將調(diào)出頁號+pageshell.shellt.getPagenumb();elset=pageshell.current;pageshell.setCurrent(pageshell.getCurrent()+1);/判斷是否修改了內(nèi)存的數(shù)據(jù)if(pages
16、hell.Ischange(t)=1)spageshell.shellt.getCRTaddress().setSts(bpageshell.shellt.getPhysicsnumb();/調(diào)入內(nèi)存pageshell.shellt.setPagenumb(k1);if(k2=1)bpageshell.shellt.getPhysicsnumb()=si.getSts();elsepageshell.shellt.setPhysicsnumb(k3);/未滿則設(shè)置物理塊號,滿了只改變其他5個(gè)字段bk3=si.getSts();k3+;/物理塊號pageshell.shellt.setState
17、(true);pageshell.shellt.setVisitcount(1);pageshell.shellt.setChange(false);pageshell.shellt.setCRTaddress(i);System.out.println(調(diào)入內(nèi)存成功!);/修改快表TLB.changeKShell(pageshell,t);System.out.println(修改快表成功!);System.out.println(結(jié)果為:+bk3-1);break;gramFunction();System.out.print(請輸入一個(gè)整數(shù)(1-6):);i
18、=a.nextInt();while(i6)System.out.println(輸入有誤,請重新輸入(1-6):);i=a.nextInt();pageshell.Dealfunction(i,TLB,s,b);while(i!=5);/*System.out.println(是否繼續(xù)請求訪問頁面(1 or 0):);i=a.nextInt();while(i!=1&i!=0)System.out.println(輸入有誤,請重新輸入(1 or 0):);i=a.nextInt();*/while(i=5);System.out.println(退出程序!);(4)KShell類:快表pac
19、kage homework;public class KShell KPage shell;private int current;private int length;private int changenumb;/修改快表的次數(shù)public KShell() ;public KShell(int length)this.length=length;this.current=0;this.changenumb=0;shell=new KPagelength;for(int i=0;ilength;i+)this.shelli=new KPage();public void setCurren
20、t(int current)this.current=current;public void setChangenumb(int changenumb)this.changenumb=changenumb;public int getCurrent() return current;public int getChangenumb()return changenumb;public int getLength() return length;public int searchpage(int pagenumb)int i=0;if(this.changenumb=0&this.current=
21、0)return -2;else if(this.changenumbthis.length)while(ithis.current)if(this.shelli.getPagenumb()=pagenumb)return i;i+;return -1;elsewhile(i=this.getLength()if(this.getCurrent()=this.getLength()this.setCurrent(0);System.out.println(快表已滿,快表中即將調(diào)出頁號+this.shellthis.current.getPagenumb();if(this.getCurrent
22、()this.getLength()this.shellthis.getCurrent().setIndex(number);this.shellthis.getCurrent().setPagenumb(pageshell.shellnumber.getPagenumb();this.shellthis.getCurrent().setPhysicsnumb(pageshell.shellnumber.getPhysicsnumb();this.setCurrent(this.getCurrent()+1);this.setChangenumb(this.getChangenumb()+1);public void printKShell()System.out.pri
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版汽車維修行業(yè)連鎖加盟合同模板
- 二零二五年度小客車指標(biāo)租賃市場調(diào)節(jié)服務(wù)合同
- 二零二五版高科技園區(qū)場地租賃合同范本下載
- 二零二五年度閉口采購合同精簡版:范文參考與操作手冊
- 二零二五年教育學(xué)習(xí)APP開發(fā)合作合同
- 二零二五年度安保人員應(yīng)急響應(yīng)演練合同規(guī)范范本
- 2025版金融服務(wù)外包保證金質(zhì)押擔(dān)保合同書
- 二零二五年人工智能產(chǎn)業(yè)股權(quán)并購與技術(shù)研發(fā)合同
- 二零二五版汽車美容裝潢及保養(yǎng)套餐服務(wù)合同范文
- 二零二五年度汽車經(jīng)銷商試駕服務(wù)合同范本
- 江蘇省揚(yáng)州市江都區(qū)2024-2025學(xué)年七年級上學(xué)期第一次月考數(shù)學(xué)試卷
- 木材原木采購合同范本
- EPC光伏項(xiàng)目投標(biāo)方案(技術(shù)方案)
- 家庭醫(yī)生簽約服務(wù)手冊
- 膝關(guān)節(jié)骨節(jié)炎康復(fù)診療規(guī)范
- 立式壓力蒸汽滅菌鍋確認(rèn)方案
- 2024活動委托承辦服務(wù)合同協(xié)議書范本
- 2024年全國高考Ⅰ卷英語試題及答案
- (1000題)焊工(初級)理論考試題及參考答案
- SL-T+62-2020水工建筑物水泥灌漿施工技術(shù)規(guī)范
- 人民軍隊(duì)優(yōu)良傳統(tǒng)附有答案
評論
0/150
提交評論