版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、請求分頁存儲管理的實現(xiàn)寫出方案實現(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(請輸入一個頁號:);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;/當前存儲的內(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)生一個隨機序列作為外存數(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所在的下標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個字段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(請輸入一個整數(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 法律法規(guī)經(jīng)濟與施工-二級注冊建筑師《法律、法規(guī)、經(jīng)濟與施工》押題密卷3
- 長春版語文三年級上冊教案
- 老年人用藥提醒助手
- 海洋生物醫(yī)藥產(chǎn)業(yè)布局
- 2024屆遼寧省本溪某中學高考化學押題試卷含解析
- 2024高中物理第三章傳感器章末質(zhì)量評估含解析粵教版選修3-2
- 2024高中語文第5單元莊子蚜第2課鵬之徙于南冥訓練含解析新人教版選修先秦諸子蚜
- 2024高中語文第五課言之有“理”第3節(jié)有話“好好說”-修改蹭訓練含解析新人教版選修語言文字應(yīng)用
- 2024高中語文綜合閱讀訓練2含解析新人教版選修先秦諸子蚜
- 2024高考化學一輪復習第9章化學實驗基礎(chǔ)第29講化學實驗基礎(chǔ)知識和技能精練含解析
- 2024年中考復習-數(shù)學(廣州專用)(解析版)
- 精細陶瓷 斷裂韌性試驗方法 單邊V型切口梁法
- 2024年海峽出版發(fā)行集團有限責任公司招聘筆試沖刺題(帶答案解析)
- 第三十六屆全國電力行業(yè)風力發(fā)電運行檢修職業(yè)技能競賽基礎(chǔ)理論題庫附有答案
- 人教版三年級上冊數(shù)學期末測試卷a4版可打印
- 2024年紀檢監(jiān)察綜合業(yè)務(wù)知識題庫含答案(研優(yōu)卷)
- 科室醫(yī)療質(zhì)量與安全管理小組工作制度
- 歡樂喜劇人小沈陽《四大才子招親大會》劇本投稿:程祅祆
- 中華民族共同體概論課件第五講大一統(tǒng)與中華民族共同體初步形成(秦漢時期)
- 初二生地會考試卷及答案-文檔
- 保險公估服務(wù)行業(yè)發(fā)展史與現(xiàn)狀分析
評論
0/150
提交評論