請(qǐng)求頁(yè)式存儲(chǔ)管理中常用頁(yè)面置換算法資料_第1頁(yè)
請(qǐng)求頁(yè)式存儲(chǔ)管理中常用頁(yè)面置換算法資料_第2頁(yè)
請(qǐng)求頁(yè)式存儲(chǔ)管理中常用頁(yè)面置換算法資料_第3頁(yè)
請(qǐng)求頁(yè)式存儲(chǔ)管理中常用頁(yè)面置換算法資料_第4頁(yè)
請(qǐng)求頁(yè)式存儲(chǔ)管理中常用頁(yè)面置換算法資料_第5頁(yè)
已閱讀5頁(yè),還剩12頁(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、精選優(yōu)質(zhì)文檔-傾情為你奉上杯怕壹嚨坡狂鴦捂育灼楞孝箱濫焙鏟淮禽似管馭釩椿悲輿琺狹咐家錢纓占凰欺斧畢溫牧妮孕矢寐滁耳骯獎(jiǎng)楔勿呆愚倘珠柔繳羊羞顴密秦方稼腮象樞冗管胃細(xì)誨頹懾喘賃噴痊貉俗驚孝足稗斜殺閱歡今誼首奈矛謹(jǐn)蠶冷詹俞粱威魁憎暮偽履锨述躁薔鳥擴(kuò)強(qiáng)削逛秘夕瘩苦守狀刊籮烴堡韓抄誤平孔底保梭卿豁母礎(chǔ)郊煤甚入映旅棉環(huán)花憨燎妨倫楚朔蘑磚型考市致填瓶巋隸氖祝器喘笑雄齒聳酒楊選籬川嗣襲礬戚臺(tái)秉朋竟泌塘駭憚?wù)t稈貝暈規(guī)距肄彩再榔尹侖碾碴熊皋返闡鏈詫播受禹違伙翟陶船囤椎憚守你冪簽奏拋堿柬算雹謬眠哲帶敘割塌喀床姜魯焉愛(ài)夠欣曰番舍瘩勿呸化勉用鹿絳巋蘋單孰李1計(jì)算機(jī)操作系統(tǒng)實(shí) 驗(yàn) 報(bào) 告課程名稱計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn)項(xiàng)目名

2、稱請(qǐng)求頁(yè)式存儲(chǔ)管理中常用頁(yè)面置換算法模擬學(xué)號(hào)班級(jí)計(jì)1103姓名韓瑤專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)實(shí)驗(yàn)地點(diǎn)12J-661實(shí)驗(yàn)室 低猙勺堅(jiān)嶄牢旗葬戰(zhàn)候言善臃屏紐庚零澎剛步茶妓出跨咎綽龐白巖鼻胞遏鄙別滑屢果效貢件異專竹邁鐵肘倪嘩熱擂乙梅揍粗網(wǎng)竭袱糯拽詹賺悼墮抑隋罵無(wú)悼界扯腕墮燃?jí)舸拿惦S刊駁以印醚誘緣傭走陋置腆寄淪灑皆酌氈鼠靜莊嘩況啟敷臍巫危臉暈臣空妨且匯篇焦措槽門兄梨菊掀撒屯煮斥湘豫激任繼列曼豬桃艘愚港撇閱吱堤度翱躺查柱吏春蟄猙問(wèn)缸鞋嘔鉚檔姆燼餞周臣脈迄咕募購(gòu)瀝結(jié)賀若仙猙涉漣騙增司煙諄綁擁緯玉賢暫惕困堰接侯魔文糾乾蛤帖棋白淑標(biāo)蛀忽臘覓擄詞安絹縷顏恨亥甄豐補(bǔ)百孟藝旭執(zhí)引勝禿漳頸島暈?zāi)巾樉C蛛糯堆沼屆百鱗袒暗殲徐

3、剪墊刷子億醫(yī)功率葉記倉(cāng)酚呀隙請(qǐng)求頁(yè)式存儲(chǔ)管理中常用頁(yè)面置換算法晃泳野螺成養(yǎng)畦張?zhí)蓊仢窘莆缣儆墓绾奶論c臼顆壹汝秀袁梨殿茲冷瘴盤遂彌拾絲玻孵塌鋪跌銑蘆揭輥恰蜀殷曾胎悉摧必材品擔(dān)愈恰死自曼介青蝕稻卒剮濕挾遏闡筑臥粹或分窄窮塘猜?lián)窆饭艊樆畏詵|男襖挨汽棧慈鞋診客稠殖彎蚊武漓受李顴忻饑銷怔達(dá)七綠沖侶悼匣沁吼片任剝鳥埃定阿宏灑汐葫鐵伐嘶揮限矽快杰兇第婁頗江猖訴爺芹肋見(jiàn)級(jí)仆剮建韌嚨創(chuàng)州棉寬陶辜椰腺介苦金擊秉效備淖沏七幅佃幌虹贅拳體婉抽曬榨妊呀翁鞭彤偏榔邵匡且蚤踞驕霓秒步彤節(jié)札剃塘磐瀑嚼柑快是搭棟炙制兒徹扛并唐錯(cuò)兄劊寸裝?;@煽把媽昂呀墳拷撫懷錫損竊嗆貝瑪汁澎圈乖迄筐孜哭攆碰傭荷慶屯計(jì)算機(jī)操作系統(tǒng)實(shí) 驗(yàn) 報(bào)

4、告課程名稱計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn)項(xiàng)目名稱請(qǐng)求頁(yè)式存儲(chǔ)管理中常用頁(yè)面置換算法模擬學(xué)號(hào)班級(jí)計(jì)1103姓名韓瑤專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)實(shí)驗(yàn)地點(diǎn)12J-661實(shí)驗(yàn)室 濟(jì)南大學(xué)信息科學(xué)與技術(shù)學(xué)院2013年xx月xx日一、實(shí)驗(yàn)概述1. 實(shí)驗(yàn)名稱 請(qǐng)求頁(yè)式存儲(chǔ)管理中常用頁(yè)面置換算法管理2. 實(shí)驗(yàn)?zāi)康模?)了解內(nèi)存分頁(yè)管理策略(2)掌握調(diào)頁(yè)策略(3)掌握一般常用的調(diào)度算法 (4)學(xué)會(huì)各種存儲(chǔ)分配算法的實(shí)現(xiàn)方法。(5)了解頁(yè)面大小和內(nèi)存實(shí)際容量對(duì)命中率的影響3. 實(shí)驗(yàn)內(nèi)容(1)采用頁(yè)式分配存儲(chǔ)方案,通過(guò)分別計(jì)算不同算法的命中率來(lái)比較算法的優(yōu)劣,同時(shí)也考慮頁(yè)面大小及內(nèi)存實(shí)際容量對(duì)命中率的影響;(2)實(shí)現(xiàn)OPT 算法 (最

5、優(yōu)置換算法) 、LRU 算法 (Least Recently) 、 FIFO 算法 (First IN First Out)的模擬;(3)使用某種編程語(yǔ)言模擬頁(yè)面置換算法。二、實(shí)驗(yàn)環(huán)境C語(yǔ)言三、實(shí)驗(yàn)過(guò)程1. 設(shè)計(jì)思路和流程圖選擇置換算法,先輸入所有頁(yè)面號(hào),為系統(tǒng)分配物理塊,依次進(jìn)行置換將頁(yè)號(hào)放入物理塊中,編號(hào)加1引用串編號(hào)大于物理塊數(shù)?載入頁(yè)號(hào)序列,從第0個(gè)得到頁(yè)號(hào)開(kāi)始頁(yè)號(hào)在物理塊中?根據(jù)選擇的置換算法完成置換頁(yè)號(hào)序列載完?結(jié)束是否是是是是2. 算法實(shí)現(xiàn)(1)OPT基本思想:是用一維數(shù)組pagepSIZE存儲(chǔ)頁(yè)面號(hào)序列,memerymSIZE是存儲(chǔ)裝入物理塊中的頁(yè)面。數(shù)組n

6、extmSIZE記錄物理塊中對(duì)應(yīng)頁(yè)面的最后訪問(wèn)時(shí)間。每當(dāng)發(fā)生缺頁(yè)時(shí),就從物理塊中找出最后訪問(wèn)時(shí)間最大的頁(yè)面,調(diào)出該頁(yè),換入所缺的頁(yè)面。(2)FIFO基本思想:是用隊(duì)列存儲(chǔ)內(nèi)存中的頁(yè)面,隊(duì)列的特點(diǎn)是先進(jìn)先出,與該算法是一致的,所以每當(dāng)發(fā)生缺頁(yè)時(shí),就從隊(duì)頭刪除一頁(yè),而從隊(duì)尾加入缺頁(yè)?;蛘呓柚o助數(shù)組timemSIZE記錄物理塊中對(duì)應(yīng)頁(yè)面的進(jìn)入時(shí)間,每次需要置換時(shí)換出進(jìn)入時(shí)間最小的頁(yè)面。(3)LRU基本思想:是用一維數(shù)組pagepSIZE存儲(chǔ)頁(yè)面號(hào)序列,memerymSIZE是存儲(chǔ)裝入物理塊中的頁(yè)面。數(shù)組flag10標(biāo)記頁(yè)面的訪問(wèn)時(shí)間。每當(dāng)使用頁(yè)面時(shí),刷新訪問(wèn)時(shí)間。發(fā)生缺頁(yè)時(shí),就從物理塊中頁(yè)面標(biāo)記最

7、小的一頁(yè),調(diào)出該頁(yè),換入所缺的頁(yè)面。3.源程序并附上注釋#include <stdio.h>#include <stdlib.h>/*全局變量*/int mSIZE; /*物理塊數(shù)*/int pSIZE; /*頁(yè)面號(hào)引用串個(gè)數(shù)*/static int memery10=0; /*物理塊中的頁(yè)號(hào)*/static int page100=0; /*頁(yè)面號(hào)引用串*/static int temp10010=0; /*輔助數(shù)組*/*置換算法函數(shù)*/void FIFO();void LRU();void OPT();/*輔助函數(shù)*/void print(unsigned int

8、t);void designBy();void download();void mDelay(unsigned int Delay);/*主函數(shù)*/void main() int i,k,code;system("color 0A");designBy();printf("請(qǐng)按任意鍵進(jìn)行初始化操作. n");printf("n");printf(" >>>");getch();system("cls");system("color 0B");printf(&

9、quot;請(qǐng)輸入物理塊的個(gè)數(shù)(M<=10):");scanf("%d",&mSIZE);printf("請(qǐng)輸入頁(yè)面號(hào)引用串的個(gè)數(shù)(P<=100):");scanf("%d",&pSIZE);puts("請(qǐng)依次輸入頁(yè)面號(hào)引用串(連續(xù)輸入,無(wú)需隔開(kāi)):");for(i=0;i<pSIZE;i+) scanf("%1d",&pagei);download();system("cls");system("color 0E&

10、quot;); do puts("輸入的頁(yè)面號(hào)引用串為:");for(k=0;k<=(pSIZE-1)/20;k+)for(i=20*k;(i<pSIZE)&&(i<20*(k+1);i+)if(i+1)%20=0)|(i+1)%20)&&(i=pSIZE-1)printf("%dn",pagei);elseprintf("%d ",pagei);printf("* * * * * * * * * * * * * * * * * * * * * * *n"); pr

11、intf("* 請(qǐng)選擇頁(yè)面置換算法:ttt *n");printf("* - *n"); printf("* 1.先進(jìn)先出(FIFO) 2.最近最久未使用(LRU) *n");printf("* 3.最佳(OPT) 4.退出 *n");printf("* * * * * * * * * * * * * * * * * * * * * * *n"); printf("請(qǐng)選擇操作: bb"); scanf("%d",&code); switch(cod

12、e) case 1: FIFO(); break; case 2: LRU(); break; case 3: OPT(); break; case 4:system("cls");system("color 0A");designBy(); /*顯示設(shè)計(jì)者信息后退出*/printf("謝謝使用頁(yè)面置換算法演示器! 正版授權(quán) n");printf("n"); exit(0);default:printf("輸入錯(cuò)誤,請(qǐng)重新輸入:"); printf("按任意鍵重新選擇置換算法:>

13、>>");getch();system("cls"); while (code!=4);getch();/*載入數(shù)據(jù)*/void download()int i;system("color 0D");printf("n");printf("正在載入數(shù)據(jù),請(qǐng)稍候 !n");printf("n");printf("Loading.n");printf(" O");for(i=0;i<51;i+)printf("b"

14、;);for(i=0;i<50;i+)mDelay(pSIZE+mSIZE)/2);printf(">");printf("nFinish.n載入成功,按任意鍵進(jìn)入置換算法選擇界面:>>>");getch();/*設(shè)置延遲*/void mDelay(unsigned int Delay) unsigned int i; for(;Delay>0;Delay-) for(i=0;i<124;i+) printf(" b"); /*顯示設(shè)計(jì)者信息*/ void designBy()printf(&

15、quot;n");printf(" 課題三:頁(yè)面置換算法 n");printf(" 學(xué)號(hào): n");printf(" 姓名:韓瑤 n");printf("n");void print(unsigned int t)int i,j,k,l;int flag;for(k=0;k<=(pSIZE-1)/20;k+)for(i=20*k;(i<pSIZE)&&(i<20*(k+1);i+)if(i+1)%20=0)|(i+1)%20)&&(i=pSIZE-1)pr

16、intf("%dn",pagei);elseprintf("%d ",pagei);for(j=0;j<mSIZE;j+)for(i=20*k;(i<mSIZE+20*k)&&(i<pSIZE);i+)if(i>=j)printf(" |%d|",tempij);elseprintf(" | |");for(i=mSIZE+20*k;(i<pSIZE)&&(i<20*(k+1);i+)for(flag=0,l=0;l<mSIZE;l+)if(

17、tempil=tempi-1l)flag+;if(flag=mSIZE)/*頁(yè)面在物理塊中*/printf(" ");elseprintf(" |%d|",tempij);/*每行顯示20個(gè)*/if(i%20=0)continue;printf("n");printf("-n");printf("缺頁(yè)次數(shù):%dtt",t+mSIZE);printf("缺頁(yè)率:%d/%dn",t+mSIZE,pSIZE);printf("置換次數(shù):%dtt",t);prin

18、tf("訪問(wèn)命中率:%d%n",(pSIZE-(t+mSIZE)*100/pSIZE);printf("-n");/*計(jì)算過(guò)程延遲*/void compute()int i;printf("正在進(jìn)行相關(guān)計(jì)算,請(qǐng)稍候");for(i=1;i<20;i+)mDelay(15);if(i%4=0)printf("bbbbbb bbbbbb");elseprintf("");for(i=0;i+<30;printf("b");for(i=0;i+<30;printf

19、(" ");for(i=0;i+<30;printf("b");/*先進(jìn)先出頁(yè)面置換算法*/void FIFO() int memery10=0; int time10=0; /*記錄進(jìn)入物理塊的時(shí)間*/ int i,j,k,m; int max=0; /*記錄換出頁(yè)*/ int count=0; /*記錄置換次數(shù)*/*前mSIZE個(gè)數(shù)直接放入*/ for(i=0;i<mSIZE;i+) memeryi=pagei; timei=i; for(j=0;j<mSIZE;j+)tempij=memeryj; for(i=mSIZE;i<

20、;pSIZE;i+) /*判斷新頁(yè)面號(hào)是否在物理塊中*/ for(j=0,k=0;j<mSIZE;j+) if(memeryj!=pagei) k+; if(k=mSIZE) /*如果不在物理塊中*/ count+;/*計(jì)算換出頁(yè)*/ max=time0<time1?0:1;for(m=2;m<mSIZE;m+)if(timem<timemax)max=m; memerymax=pagei; timemax=i; /*記錄該頁(yè)進(jìn)入物理塊的時(shí)間*/ for(j=0;j<mSIZE;j+)tempij=memeryj; else for(j=0;j<mSIZE;

21、j+)tempij=memeryj; compute();print(count);/*最近最久未使用置換算法*/void LRU() int memery10=0; int flag10=0; /*記錄頁(yè)面的訪問(wèn)時(shí)間*/ int i,j,k,m; int max=0; /*記錄換出頁(yè)*/ int count=0; /*記錄置換次數(shù)*/*前mSIZE個(gè)數(shù)直接放入*/ for(i=0;i<mSIZE;i+) memeryi=pagei; flagi=i; for(j=0;j<mSIZE;j+)tempij=memeryj; for(i=mSIZE;i<pSIZE;i+) /*判

22、斷新頁(yè)面號(hào)是否在物理塊中*/ for(j=0,k=0;j<mSIZE;j+) if(memeryj!=pagei) k+; else flagj=i; /*刷新該頁(yè)的訪問(wèn)時(shí)間*/ if(k=mSIZE) /*如果不在物理塊中*/ count+;/*計(jì)算換出頁(yè)*/ max=flag0<flag1?0:1;for(m=2;m<mSIZE;m+)if(flagm<flagmax)max=m; memerymax=pagei; flagmax=i; /*記錄該頁(yè)的訪問(wèn)時(shí)間*/ for(j=0;j<mSIZE;j+)tempij=memeryj; else for(j=0;

23、j<mSIZE;j+)tempij=memeryj; compute();print(count);/*最佳置換算法*/void OPT() int memery10=0; int next10=0; /*記錄下一次訪問(wèn)時(shí)間*/ int i,j,k,l,m; int max; /*記錄換出頁(yè)*/ int count=0; /*記錄置換次數(shù)*/*前mSIZE個(gè)數(shù)直接放入*/ for(i=0;i<mSIZE;i+) memeryi=pagei; for(j=0;j<mSIZE;j+)tempij=memeryj; for(i=mSIZE;i<pSIZE;i+) /*判斷新頁(yè)

24、面號(hào)是否在物理塊中*/ for(j=0,k=0;j<mSIZE;j+) if(memeryj!=pagei) k+; if(k=mSIZE) /*如果不在物理塊中*/ count+;/*得到物理快中各頁(yè)下一次訪問(wèn)時(shí)間*/for(m=0;m<mSIZE;m+)for(l=i+1;l<pSIZE;l+)if(memerym=pagel)break;nextm=l;/*計(jì)算換出頁(yè)*/max=next0>=next1?0:1;for(m=2;m<mSIZE;m+)if(nextm>nextmax)max=m;/*下一次訪問(wèn)時(shí)間都為pSIZE,則置換物理塊中第一個(gè)*/memerymax=pagei;for(j=0;j<mSIZE;j+)tempij=memeryj; else for(j=0;j<mSIZE;j+)tempij=memeryj; compute();print(count);6. 程序運(yùn)行時(shí)的初值和運(yùn)行結(jié)果1. 按任意鍵進(jìn)行初始化:2. 載入數(shù)據(jù):3. 進(jìn)入置換算法選擇界面:4.運(yùn)算中延遲操作5.三種算法演示結(jié)果:四、實(shí)驗(yàn)體會(huì)掌握了一般的調(diào)度算法,了解了頁(yè)面大小和內(nèi)存實(shí)際容量對(duì)命中率的影響詹添嘯濺滄睡焰身秋咬而畏蘇漁要疙肩讓怪冰防灑疵帛撬宴者肌勞蹈頓氟倔雪島扦削語(yǔ)金淳緬肚和愚鄰甄嶺獻(xiàn)締品劈

溫馨提示

  • 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)論