




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)四頁置換實(shí)驗(yàn)?zāi)康?通過請求頁式存儲(chǔ)管理中頁面置換算法模擬程序,了解虛擬存儲(chǔ)技術(shù)的特點(diǎn),掌握請求頁式存儲(chǔ)管理的頁面置換算法。二、實(shí)驗(yàn)環(huán)境說明:此實(shí)驗(yàn)在MacOS10.9的Xcode軟件下編譯運(yùn)行。三、實(shí)驗(yàn)內(nèi)容:寫一個(gè)程序來實(shí)現(xiàn)本章中介紹的FIFO和LRU頁置換算法。首先,產(chǎn)生一個(gè)隨機(jī)的頁面引用序列,頁面數(shù)從09。將這個(gè)序列應(yīng)用到每個(gè)算法并記錄發(fā)生的頁錯(cuò)誤的次數(shù)。實(shí)現(xiàn)這個(gè)算法時(shí),要將貢幀的數(shù)量設(shè)置為可變(從17)假設(shè)使用請求調(diào)頁。四、程序設(shè)計(jì)說明:1. 全局變量:定義bsize為頁幀的數(shù)量,可以手動(dòng)修改,初始值為4。定義psize為進(jìn)程請求次數(shù),可以手動(dòng)修改,初始值為16。定義Page結(jié)構(gòu)體,
2、內(nèi)含頁面編號(hào)和調(diào)入時(shí)間。i*t#defineb&ije&/*pagetablesize*/#tlefinepsize16/*physicalmemorysize+/IS1, typedefstructpagelotnum:pagenumber*/inttime;/*swdpintimePage;22Pafleframebsize/+francnumber+/intbutbizefp&ize;/*buffer*/intqueue:/*processesinmeniory*/intK;/*number0+processesirrfiemory+/intphbbsize=-4
3、);/*physicalmemarynunber*/intprotpsi2e)=0-;/*processesnumber*/intflagbs=0;/*processestildes*/inti-j=0;31irtri-1(n*-1;"if“me*/intmax3-1.maxflaq=0;,*victimframenumberintcount=電;/*numberofpaqefault*/2. 初始化緩沖區(qū)和物理內(nèi)存:/水initalizethebufferandmemoryspace*/,口一dInitJage(intbufferbsizesize(1or(i=0;i<psi
4、ze;i+i9fli.nun-1;f(1).time-psize-i-1;收)lor(i=0;1<bsize;i+for(r=ft;j<psize;j+)buffer'llj=1;.7.獲得隨機(jī)序列(09),共psize個(gè)數(shù):3/*random(h9)*/int+generateC)printf("Therandompage-referencestringis:n(l);52sr«nd(tinie(NLlLL);for(int曰=;a<psize;a+)5protai=rand)%10;printf('%d|b,pra);)p
5、rintf("n"returnpro);如搜索空內(nèi)存,便于頁的調(diào)入:/*searchemptyphysicalmennry*/intsearchPtiMt)1or(=0;.mbslze;.+)if(phb電)Im-j;701returnm;711br6ak;return-1;75)搜索是否有相同的進(jìn)程已在內(nèi)存中,有則不缺頁,不需要置換:/*searchsaneprocess*/intsearchProf)(tor(=0;<bsize;:+)(if(phbfj1=pro:iI)S3(n=j;returnj;|B?ffireturn-1;|每次應(yīng)用完一個(gè)算法后清空內(nèi)存和緩
6、沖區(qū),便于其他算法的頁置換:PBbl/tclearthememoryaftereachalgorithm*/voidclear的<孰let1;forti=;i<bsize;1+)phbj*%count=e;9aFIFO算法:FIFO頁置換算法為每個(gè)頁記錄著該頁調(diào)入內(nèi)存的時(shí)間。當(dāng)必須置換一頁時(shí),將選擇最舊的頁。FIFO算法性能并不總是很好,可能會(huì)有Belady異常的出現(xiàn)。-o-4a_2iTF*|o-10-HAMdl-4aIXi*!*Bla-*IXIX/*FIFOAlgorithm*/voidFIFOtlprintf("Currentstateis:;printt("
7、;|n');for(i=0;i<psize;1+)<m=searchPhMf);n=searchProij;(j-9;j<Mi陽j+)(if(fTig(j>maxfIsg)maxflag=flag(imax=j;if(n=-1)/*nosameprocessm/<if(m!=-1/*existemptymemory*/<phbn=prolij;count+;flagImI=e;for(j=6;j=m;j+)<flaotj+:)m=-1;else/率noemptyneniory,needvlctin*/phbLnax)=proli;flagIni
8、axJ=g;fortj=肌jmb3ize;j+)(lagj)+;)=-1;Taxflag=0;count+;?else/*existsameprocess*/phb(n).pro.J;tor(j=fl;j«bsize;j+<fiBgtj+:c=-1;卜prdntf("|W2d|'proi);for(j=0;j<bsize;j*+)(printf("*s2d",phbj);printf("n|+n+1.n")Pri.ntf("Thereare如pagefaults.nRcount);orxntft'
9、Tagefaultratis4f.n'(floaticountipiize);8.獲得置入時(shí)間最早的頁面,用于FIFO算法:XW-T/*usedinFlrQjswapinearliest*/intGetMaxtPgqe*f)inti;intmax-1;inttag=%for(i=0;i<bsize;1+)4if(fltlie>max)max=f(iltag=i;)returntag;9.判斷頁面是否相同:Ms;髓不就同MnwgM的黑磬初啊10111213*151617":幻.,*itexist*/intEquatlon(intprOjPage*f)卬.<in
10、t1;for(1=6;1<bslze;i+)IB?if(pro*f1,nym)iwreturni;IK二父return-1;192卜1310.LRU#法:LRU頁置換算法為每個(gè)頁關(guān)聯(lián)該頁上次使用的時(shí)間。當(dāng)必須置換一頁時(shí),LRU4擇最長時(shí)間沒有使用的頁。這種策略為向后看最優(yōu)頁置換算法。7*LRUAlgonthfii*/voidLruu(intpro,Page*f)inti;intval;vat=EquatioMpr%f);if(val>=0)<fvaltime*0;for(i=0;ivbsi2eji+)if(X!=val)fi»time+;else<queue(
11、+K1=pro;vatGetHaxlf);fval.nun=pro;fval.time-B;for(i=劭i<b$izeji+)if(i|=val)fi/time+;)11.12.210221223*及5226217229HO23123323323413s2M23713fi之葬12412M2<t3M5W242M1雪0isi152癡現(xiàn)voidLRU()(iniid;K父-1;Init(framefbuf);for(ik0;i<psl»1+*)(Lruu(pra11frame)1;buf01pnIiifor(J=0;J<ble;J*)ibufji=fran>
12、ej+num;prlntf("Currentstateis:n");printf(w|+<-rT):for(1=0;i<psize;1+-*)(printf('M*2dproil);forj=0j;j<bsiEE;j*)(if(buf(J|i)=-1)printf(!l%2c",'x);eUe口rintf2dbMIjlhlhyprintf(l,!in|+卡-|Xn11);priMf(B,riiPagewaporderis:J;for(1.-a;1<K+ij1+<)printf(AJd1queueij);prtMf&qu
13、ot;n”hprintf("ThereareNdpagefaultsAntfK+lhprintf("PagefaultrateisW.lfAn",(float)(K+l)/psizeH主目錄:voidmenu。25fi4£jtfPrxni>1*率率*本本凈凈室軍軍軍率凈KEtrafifC率率率不軍軍用木格軍軍年率寄*Gt?率星率率率率室率/律11Jprintf('"*WelcometothePage-ReplacementProj!printf("卡否水k*4*jMi社*林*4*水"")printf(
14、',*1,Generaterandompage-referencestring*rr的printft"*3FIFOAlgorithm*rT)printf("*3,LRUAlgorithm*n"2C5printfC1"*41Quit*+n'')printf(1t1MH1k*51dt:iM(1tt1tt1aMe)一.主函數(shù):2tfi2TO27137?273an275276279279湖2B1施233孫205通287168iotmain(intargc,constchar*argv)<intchoi"=0;while(c
15、hoice!4)(me-nut);printf("Pleaseselectthefunction:H);scanf("'WS'choice);switch(choice)case 1 :geriperatei);break;case 2 :printf("FIFOAlgorithm:n,flhFIFOOjclearO;prlntf(,Bnw);break;case 3 :printf(SlLRU1AlgorithmLRU();cleart);printfbreak;case 4 ;printf(11End»W);break;default
16、:printf("Wrongnurniber!Pleasein-putag3in!"p);printfCAn"hbreak;return0;五、運(yùn)行結(jié)果:1. 運(yùn)行程序顯示主目錄界面:* 9目印*»1£率*¥*9#軍*|£*呼*總坤*:*坤中¥»歸科£*半* *WelcometothePage-ReplacementProj!*3fCJC331C«C5e3|C3|C5(|C3C3|C3C3jC5|SS|t3|C5E5CJCSCC3fC3C3O|S|C3C31C* *1Generater
17、andompage-referencestring* *2.FIFOAlgorithm* *3.LRUAlgorithm* *4.Quit* *和£*t*中*種*Pleaseselectthefunction:2. 選擇操作1,生成psize(此處為16)個(gè)隨機(jī)數(shù)(09)序列:1rHe3M1nlit11r1n1n* *WelcometothePage-ReplacementProj!* *1.Generaterandonpage-referencestring* *2.FIFOAlgorithm* *3.LRUAlgorithm* *4.Quit*31第*iQ|t*m中坤*宰牛*j注
18、*/1松c*和*|e*1附"*3(蟀*率率*凈平率率Pleaseselectthefunction:1Therandlompage-referencestringis:15336320820195913.選擇操作2,執(zhí)行FIFO算法,并輸出運(yùn)行結(jié)果:4ufuft3fc4ut31u(s|c31t4o|c*31o*3K>c34c|ejfufu|D|ca|u|u|u|e4u* *WelcometothePage-ReplacementProj1* 3和K* *1.Generaterandompage-referencestring* *2,FIFOAlgorithm* *3.LRUA
19、lgorithm* *4.Quit*Pleaseselectthefunction:2FIFOAlgorithm:Currentstateis:Thereare12pagefaults.Pagefaultrateis0.7500.4. 選擇操作3,執(zhí)行LRUB法,并輸出運(yùn)行結(jié)果:*1,*2.3.它4.2K率霹隼率半率宰*率率*宰軍軍軍軍*年率率率率率*隼簾K率率率*率率率本率率年率本年率率*WelcometothePage-ReplacementProj!-I.Li-|Uj_I35=K;35Generaterandompage-referencestring*FIFOAlgorithm*LRU
20、Algorithm*Quit*Thereare10pagefaults.PagefaultrateisEL6250.Pleaseselectthefunction:3LRUAlgorithm 選擇操作4,輸出end,結(jié)束程序:* *WelcometothePage-ReplacementProj!*#*44*110利*|£*3|坤*4£*3日1*3粒件*34*!*£*5"*利£料件*相4坤* *1.Generaterandompage-referencestring* *2.FIFOAlgorithm* *3.LRUAlgorithm* *4,Quit*Pleaseselectthefunction:4End.Programendedwithexitcode:0六、不同頁幀數(shù)比較:1.3frames:Currentstateis:一?山.+一7|7ae1171g,ta1!
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件開發(fā)外包合同免責(zé)條款
- 醫(yī)療器械使用風(fēng)險(xiǎn)告知及免責(zé)合同
- 家具安裝工合同協(xié)議書
- 物聯(lián)網(wǎng)+智慧城市項(xiàng)目投資合同
- 無錫全日制勞動(dòng)合同
- 藥店裝修施工合同
- 高新技術(shù)轉(zhuǎn)讓合作合同
- 電子商務(wù)平臺(tái)入駐及推廣服務(wù)合同
- 裝修地暖施工合同
- 浙江工業(yè)大學(xué)《藥用植物栽培學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- DTⅡ型固定式帶式輸送機(jī)設(shè)計(jì)選型手冊
- 約束評分標(biāo)準(zhǔn)
- 橡膠壩工程施工質(zhì)量驗(yàn)收評定表及填表說明編制于
- 抗日戰(zhàn)爭勝利題材話劇劇本范文
- GB/T 22328-2008動(dòng)植物油脂1-單甘酯和游離甘油含量的測定
- 錄用offer模板參考范本
- GB 16780-2021水泥單位產(chǎn)品能源消耗限額
- 全面推進(jìn)依法行政課件
- 政務(wù)服務(wù)一網(wǎng)通辦平臺(tái)解決方案-最新
- 兒童氣管插管醫(yī)學(xué)課件
評論
0/150
提交評論