




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、存儲管理模擬程序1 .設(shè)計(jì)目的存儲管理的主要功能之一是合理地分配空間。請求頁式管理是一種常用的虛擬存儲管理技術(shù)。本實(shí)驗(yàn)的目的是通過請求頁式存儲管理中頁面置換算法模擬設(shè)計(jì),了解虛擬存儲技術(shù)的特點(diǎn),掌握請求頁式存儲管理的頁面置換算法。2 .設(shè)計(jì)內(nèi)容(1)通過輸入或由程序產(chǎn)生程序執(zhí)行時(shí)的頁號序列,共32個(gè)頁號。頁號序列按下述原則生成:頁號序列應(yīng)具有一定隨機(jī)性。(如:50%的順序訪問);(2)計(jì)算并輸出下述各種算法在不同內(nèi)存容量(432內(nèi)存頁面)下的命中率。先進(jìn)先出的算法(FIFO)最近最少使用算法(LRU)最佳淘汰算法(OPT):先淘汰最不常用的頁地址最少訪問頁面算法(LFR)其中和為選擇內(nèi)容命中率
2、=1-(頁面失效次數(shù)/頁地址流長度)3 .程序設(shè)計(jì):本程序首先用rand()函數(shù)定義和產(chǎn)生地址流序列,并針對不同的算法計(jì)算出相應(yīng)的命中率。I根據(jù)實(shí)驗(yàn)內(nèi)容將函數(shù)分成五個(gè)模塊:1主程序模塊,主要包括頁面結(jié)構(gòu)數(shù)組及頁面控制結(jié)構(gòu)定義,將指令流轉(zhuǎn)換成頁地址流2三個(gè)置換算法程序模塊:FIFO算法模塊,LRU算法模塊,OPT算法模塊,LFU算法模塊II總程序模塊流程圖如下:4 .源程序如下:#include<stdio.h>#include<math.h>#definemaxsize32#include<stdlib.h>definevpf200voidFIFO(inta
3、);voidLRU(inta);voidOPT(inta);voidLFU(inta);intcountmaxsize;/intbpf;intavpf;voidmain()for(inti=0;i<200;i+)ai=rand()%32;FIFO(a);LFU(a);OPT(a);LRU(a);/定義主函數(shù)。用隨機(jī)數(shù)產(chǎn)生頁地址流voidLFU(inta)/LFU算法(for(intn=4;n<33;n+)/不同的頁面數(shù)計(jì)算命中率(intnum=0;intsame=0;intmin;intminpage=0;intdis=0;inti=0;intk=0;intsum=n;/空白頁面數(shù)
4、intnum2=2;/設(shè)置清零時(shí)間問隔intbmaxsize;for(k=0;k<n;k+)/頁面數(shù)組,計(jì)數(shù)數(shù)組初始化bk=-1;countk=0;for(i=0;i<vpf;i+)num=0;for(k=0;k<n;k+)/測試是否命中if(ai=bk)same=k;num+;if(num!=0)/命中頁面計(jì)數(shù)器加1countsame+;elsedis+;未命中,缺頁次數(shù)加1if(sum=0)/無空白頁面min=201;for(k=0;k<n;k+)/找出計(jì)數(shù)器值最小的頁面替換if(min>countk)min=countk;minpage=k;bminpage
5、=ai;if(num2=0)每兩次缺頁計(jì)數(shù)器清零for(k=0;k<n;k+)countk=0;num2=3;countminpage=1;num2-;/countminpage=0;else/有空白頁面bn-sum=ai;if(num2=0)每兩次缺頁計(jì)數(shù)器清零for(k=0;k<n;k+)countk=0;num2=3;num2-;countn-sum=1;sum-;printf("%d”,n);printf("pageframesLFU:%3d",dis);printf("LFU:%6.4fn”,1-(float)dis/32);voi
6、dOPT(inta口)/OPT算法for(intn=4;n<33;n+)/不同的頁面數(shù)計(jì)算命中率intnum1=0,num2=0,num3=0,num4=0;intd;intdis=0;intbmaxsize;intsum=n;intmax;intmaxpage;intdistvpf;for(inti=0;i<vpf;i+)num1=0;for(intj=0;j<n;j+)測試是否命中if(ai=bj)num1+;if(num1=0)未命中dis+;缺頁次數(shù)加1if(sum!=0)有空白頁面時(shí)bn-sum=ai;sum-;else無空白頁面for(intk=0;k<vp
7、f;k+)/初始化頁地址離當(dāng)前頁地址的距離distak=0;for(k=0;k<vpf;k+)num2=0;for(j=0;j<n;j+)if(bj=ak)測試未來頁地址是否在內(nèi)存num2+;if(num2!=0)distak=201;在內(nèi)存的頁地址的距離賦予最大值。elsedistak=0;不在內(nèi)存的頁地址的距離先全賦予0d=1;for(k=i+1;k<vpf;k+)測試未來的地址流是否在當(dāng)前的內(nèi)存。num3=0;for(intj=0;j<n;j+)if(ak=bj)num3+;if(num3!=0)未來的某些地址在當(dāng)前在內(nèi)存num4=0;for(intl=i+1;l
8、<k;l+)測試未來的地址流的是否有相同的。if(ak=al)num4+;if(num4=0)若不同則將其距離賦予相應(yīng)的值,越在后面其距離值越大distak=d;d+;max=-1;maxpage=0;for(intc=0;c<vpf;c+)找出距離最大的頁號if(max<distac)max=distac;maxpage=ac;for(j=0;j<n;j+)/找出在內(nèi)存中距離與最大距離相等的頁號并替換掉if(bj=maxpage)bj=ai;printf("%d”,n);printf("pageframesOPT:%d",dis);pri
9、ntf("OPT:%6.4fn”,1-(float)dis/32);voidFIFO(inta口)FIFO算法for(intn=4;n<33;n+)不同的頁面數(shù)計(jì)算命中率intnum;intmax;intmaxpage=0;intdis=0;inti=0;intk=0;intsum=n;intbmaxsize;for(k=0;k<n;k+)/頁面數(shù)組,計(jì)數(shù)數(shù)組初始化bk=-1;countk=0;for(i=0;i<vpf;i+)num=0;for(k=0;k<n;k+)/測試是否命中if(ai=bk)num+;if(num=0)未命中dis+;for(k=0;
10、k<n;k+)/所有頁面計(jì)數(shù)器加一countk+;if(sum=0)/沒空白頁面時(shí)max=0;for(k=0;k<n;k+)if(max<countk)max=countk;maxpage=k;bmaxpage=ai;countmaxpage=0;elsebn-sum=ai;countn-sum=0;sum-;/找出計(jì)數(shù)器值最大的替換被替換頁面計(jì)數(shù)器清零有空白頁面時(shí),將所缺頁放入空白頁面,并將該頁面計(jì)數(shù)器清零printf("%d”,n);printf("pageframesFIFO:%3d",dis);printf("FIFO:%6.4
11、fn”,1-(float)dis/32);voidLRU(inta)(for(intn=4;n<33;n+)(intnum=0;intsame=0;intmax;intmaxpage=0;intdis=0;inti=0;intk=0;intsum=n;intbmaxsize;for(k=0;k<n;k+)bk=-1;countk=0;for(i=0;i<vpf;i+)num=0;for(k=0;k<n;k+)if(ai=bk)same=k;num+;for(k=0;k<n;k+)countk+;if(num!=0)countsame=0;elsedis+;if(sum=0)max=0;for(k=0;k<n;k+)/LRU算法初始化頁面數(shù)組和計(jì)數(shù)數(shù)組測試是否命中命中時(shí),該頁面計(jì)數(shù)器清零未命中時(shí)當(dāng)沒空白頁面時(shí)if(max<countk)(max=countk;maxpage=k;bmaxpage=ai;countmaxpage=0;elsebn-
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金融行業(yè)中的風(fēng)險(xiǎn)防范與安全文化建設(shè)
- 四川2024年12月四川省內(nèi)江市事業(yè)單位公開選調(diào)2名工作人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025陜西建工第五建設(shè)集團(tuán)有限公司基礎(chǔ)設(shè)施事業(yè)部招聘(11人)筆試參考題庫附帶答案詳解
- 三亞學(xué)院《職業(yè)衛(wèi)生與職業(yè)病學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 哈密職業(yè)技術(shù)學(xué)院《資產(chǎn)評估》2023-2024學(xué)年第二學(xué)期期末試卷
- 武漢鐵路橋梁職業(yè)學(xué)院《樹木發(fā)育生物學(xué)概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 上??萍即髮W(xué)《融合媒體和市場營銷》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東財(cái)經(jīng)大學(xué)燕山學(xué)院《廣告及海報(bào)設(shè)計(jì)實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 樟樹市2025屆小升初模擬數(shù)學(xué)測試卷含解析
- 江蘇理工學(xué)院《水資源利用與保護(hù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 股骨頸骨折ppt精品
- 2023年江蘇農(nóng)牧科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析
- 毛澤東詩詞鑒賞分析
- 小學(xué)數(shù)學(xué)-納稅教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 量具檢具清單
- YY/T 1833.2-2022人工智能醫(yī)療器械質(zhì)量要求和評價(jià)第2部分:數(shù)據(jù)集通用要求
- 光催化原理(經(jīng)典)課件
- 如何上好一堂課(課件)
- 動車組列車乘務(wù)人員實(shí)務(wù)教材課件
- 西方文藝?yán)碚撌肪x文獻(xiàn)課件
評論
0/150
提交評論