模擬面置換算法FIFOLRU的實(shí)現(xiàn)_第1頁(yè)
模擬面置換算法FIFOLRU的實(shí)現(xiàn)_第2頁(yè)
模擬面置換算法FIFOLRU的實(shí)現(xiàn)_第3頁(yè)
模擬面置換算法FIFOLRU的實(shí)現(xiàn)_第4頁(yè)
模擬面置換算法FIFOLRU的實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、實(shí)驗(yàn)報(bào)告五實(shí)驗(yàn)名稱:模擬頁(yè)面置換算法FIFOLRU的實(shí)現(xiàn)日期:2015-12-9班級(jí):13級(jí)計(jì)科學(xué)號(hào):姓名:實(shí)驗(yàn)?zāi)康囊涣私忭?yè)面置換的概念,理解頁(yè)面置換的算法加深對(duì)頁(yè)面置換算法的理解。二、實(shí)驗(yàn)內(nèi)容Java編程語(yǔ)言實(shí)現(xiàn)FIFO和LUR頁(yè)面算法。三、項(xiàng)目要求與分析FIFO算法當(dāng)需要置換頁(yè)面時(shí),主要通過(guò)置換最早進(jìn)入內(nèi)存的頁(yè)面從而達(dá)到先進(jìn)先出的目的。LRU算法當(dāng)需要置換頁(yè)面時(shí),主要通過(guò)置換進(jìn)入內(nèi)存中最久沒(méi)有被訪問(wèn)的頁(yè)面而達(dá)到最近最久未使用的目的。程序中可以通過(guò)標(biāo)志位進(jìn)行記錄。四、具體實(shí)現(xiàn)1. FIFO算法實(shí)現(xiàn)代碼以及運(yùn)行結(jié)果:publicclassFIFO/*內(nèi)存塊的個(gè)數(shù)*/publicstaticin

2、t/*內(nèi)存塊數(shù)組N;*/Object口/*arraynewObjectN;*要訪問(wèn)的頁(yè)面數(shù)組*/publicstaticintprivateintsize;/*內(nèi)存是非空為否return口visit;*/publicifbooleanisEmpty()(0=size)returnelsetrue;returnfalse;/*內(nèi)存是非空滿return*/publicbooleanisFulled()if(size>=N)returntrueelsereturnfalse;/*/元素(頁(yè)框)的個(gè)數(shù)returnpublicintsize()returnsize;o在數(shù)組中的位置/*查找元素,p

3、aramoreturn*/publicintindexOfElement(Objecto)for(inti=0;i<N;i+)if(o=arrayi)returni;/*return-1;頁(yè)面轉(zhuǎn)換*/paramobjpublicObjecttrans(Objectobj)Objecte=null;intt=0;if(indexOfElement(obj)!=-1)t=indexOfElement(obj);for(inti=t;i<size-1;i+)arrayi=arrayi+1;arraysize-1=obj;elseif(!isFulled()arraysize=obj;si

4、ze+;elsefor(inti=0;i<size-1;i+)arrayi=arrayi+1;arraysize-1=obj;if(-1=t)returnnull;elsereturnarrayt;/*輸出內(nèi)存區(qū)中的各數(shù)據(jù)*/publicvoidshowMemoryBlock()for(inti=0;i<size;i+)System.out.print(arrayi+"");/*清空隊(duì)列(頁(yè)框)*/publicvoidclear()/*paramargs*/publicstaticvoidmain(String口args)Scannersc=newScanner

5、(System.in);System.out.print("請(qǐng)輸入內(nèi)存塊的數(shù)量:");N=sc.nextInt();System.out.print("請(qǐng)輸入總頁(yè)面數(shù)目:");intn=sc.nextInt();visit=newintn;System.out.println("請(qǐng)輸入各個(gè)頁(yè)的頁(yè)面號(hào)碼:");for(inti=0;i<n;i+)visiti=sc.nextInt();FIFOfifo=newFIFO();for(inti=0;i<visit.length;i+)fifo.trans(visiti);fifo

6、.showMemoryBlock();System.out.println();運(yùn)行結(jié)果:2.LUR算法實(shí)現(xiàn)代碼以及運(yùn)行結(jié)果:publicclassLRUstaticintvolum;/棧的容量staticList<Integer>list=newLinkedList<Integer>();/鏈表用來(lái)模擬棧存放頁(yè)面staticintvisit;/要訪問(wèn)的頁(yè)面數(shù)組staticintcount=0;/記錄缺頁(yè)次數(shù)publicstaticvoidmain(String口args)Scannersc=newScanner(System.in);System.out.print(

7、"請(qǐng)輸入棧的容量:");volum=sc.nextInt();System.out.print("請(qǐng)輸入總頁(yè)面數(shù)目:");intn=sc.nextInt();visit=newintn;System.out.println("請(qǐng)輸入各個(gè)頁(yè)的頁(yè)面號(hào)碼:"力for(inti=0;i<n;i+)visiti=sc.nextInt();sLRU();/調(diào)用最近最久未使用算法System.out.println("置換頁(yè)面的數(shù)目為:"+count);publicstaticvoidsLRU()intindex=0;wh

8、ile(index<visit.length)booleanflag=false;if(list.size()<=volum)for(inti=0;i<list.size();i+)if(int)(list.get(i)=visitindex)list.remove(i);/先刪除list.add(visitindex);/再添加到尾部flag=true;break;if(!flag)if(list.size()<volum)/如果棧未滿,而且此頁(yè)面沒(méi)有在棧中,就將它入棧list.add(visitindex);else/如果棧已經(jīng)滿了,且該頁(yè)面號(hào)碼沒(méi)有在棧中,就把棧底

9、元素刪除,將新頁(yè)插入inttemp=list.get(0);list.remove(0);/最開(kāi)始一個(gè)換出list.add(visitindex);/加到末尾count+;System.out.println("開(kāi)始換頁(yè)了,將棧底的"+temp+"換出");System.out.println("這也是沒(méi)有辦法的事情,畢竟棧是有限的");System.out.print("經(jīng)過(guò)第"+(index+1)+"個(gè)頁(yè)面的棧內(nèi)容為");for(intk=0;k<list.size();k+)System.out.print(list.get(k)+"");System.out.println();index+;運(yùn)行結(jié)果:5、 所遇問(wèn)題與解決方法問(wèn)題:針對(duì)于FIFO算法定義選擇在內(nèi)存中駐留時(shí)間最久的頁(yè)面予以淘汰,對(duì)于內(nèi)存中的駐留時(shí)間理解復(fù)雜了不知道如何下手。解決方案:我們只需要設(shè)置一個(gè)先進(jìn)先出隊(duì)列就可以。最先進(jìn)入內(nèi)存的頁(yè)面最早被轉(zhuǎn)換出去。6、 實(shí)驗(yàn)總結(jié)1.通過(guò)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論