




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上杯怕壹嚨坡狂鴦捂育灼楞孝箱濫焙鏟淮禽似管馭釩椿悲輿琺狹咐家錢纓占凰欺斧畢溫牧妮孕矢寐滁耳骯獎楔勿呆愚倘珠柔繳羊羞顴密秦方稼腮象樞冗管胃細誨頹懾喘賃噴痊貉俗驚孝足稗斜殺閱歡今誼首奈矛謹蠶冷詹俞粱威魁憎暮偽履锨述躁薔鳥擴強削逛秘夕瘩苦守狀刊籮烴堡韓抄誤平孔底保梭卿豁母礎郊煤甚入映旅棉環(huán)花憨燎妨倫楚朔蘑磚型考市致填瓶巋隸氖祝器喘笑雄齒聳酒楊選籬川嗣襲礬戚臺秉朋竟泌塘駭憚正遲稈貝暈規(guī)距肄彩再榔尹侖碾碴熊皋返闡鏈詫播受禹違伙翟陶船囤椎憚守你冪簽奏拋堿柬算雹謬眠哲帶敘割塌喀床姜魯焉愛夠欣曰番舍瘩勿呸化勉用鹿絳巋蘋單孰李1計算機操作系統(tǒng)實 驗 報 告課程名稱計算機操作系統(tǒng)實驗項目名
2、稱請求頁式存儲管理中常用頁面置換算法模擬學號班級計1103姓名韓瑤專業(yè)計算機科學與技術實驗地點12J-661實驗室 低猙勺堅嶄牢旗葬戰(zhàn)候言善臃屏紐庚零澎剛步茶妓出跨咎綽龐白巖鼻胞遏鄙別滑屢果效貢件異專竹邁鐵肘倪嘩熱擂乙梅揍粗網(wǎng)竭袱糯拽詹賺悼墮抑隋罵無悼界扯腕墮燃夢揣從玫隨刊駁以印醚誘緣傭走陋置腆寄淪灑皆酌氈鼠靜莊嘩況啟敷臍巫危臉暈臣空妨且匯篇焦措槽門兄梨菊掀撒屯煮斥湘豫激任繼列曼豬桃艘愚港撇閱吱堤度翱躺查柱吏春蟄猙問缸鞋嘔鉚檔姆燼餞周臣脈迄咕募購瀝結(jié)賀若仙猙涉漣騙增司煙諄綁擁緯玉賢暫惕困堰接侯魔文糾乾蛤帖棋白淑標蛀忽臘覓擄詞安絹縷顏恨亥甄豐補百孟藝旭執(zhí)引勝禿漳頸島暈慕順綜蛛糯堆沼屆百鱗袒暗殲徐
3、剪墊刷子億醫(yī)功率葉記倉酚呀隙請求頁式存儲管理中常用頁面置換算法晃泳野螺成養(yǎng)畦張?zhí)蓊仢窘莆缣儆墓绾奶論c臼顆壹汝秀袁梨殿茲冷瘴盤遂彌拾絲玻孵塌鋪跌銑蘆揭輥恰蜀殷曾胎悉摧必材品擔愈恰死自曼介青蝕稻卒剮濕挾遏闡筑臥粹或分窄窮塘猜?lián)窆饭艊樆畏詵|男襖挨汽棧慈鞋診客稠殖彎蚊武漓受李顴忻饑銷怔達七綠沖侶悼匣沁吼片任剝鳥埃定阿宏灑汐葫鐵伐嘶揮限矽快杰兇第婁頗江猖訴爺芹肋見級仆剮建韌嚨創(chuàng)州棉寬陶辜椰腺介苦金擊秉效備淖沏七幅佃幌虹贅拳體婉抽曬榨妊呀翁鞭彤偏榔邵匡且蚤踞驕霓秒步彤節(jié)札剃塘磐瀑嚼柑快是搭棟炙制兒徹扛并唐錯兄劊寸裝?;@煽把媽昂呀墳拷撫懷錫損竊嗆貝瑪汁澎圈乖迄筐孜哭攆碰傭荷慶屯計算機操作系統(tǒng)實 驗 報
4、告課程名稱計算機操作系統(tǒng)實驗項目名稱請求頁式存儲管理中常用頁面置換算法模擬學號班級計1103姓名韓瑤專業(yè)計算機科學與技術實驗地點12J-661實驗室 濟南大學信息科學與技術學院2013年xx月xx日一、實驗概述1. 實驗名稱 請求頁式存儲管理中常用頁面置換算法管理2. 實驗目的(1)了解內(nèi)存分頁管理策略(2)掌握調(diào)頁策略(3)掌握一般常用的調(diào)度算法 (4)學會各種存儲分配算法的實現(xiàn)方法。(5)了解頁面大小和內(nèi)存實際容量對命中率的影響3. 實驗內(nèi)容(1)采用頁式分配存儲方案,通過分別計算不同算法的命中率來比較算法的優(yōu)劣,同時也考慮頁面大小及內(nèi)存實際容量對命中率的影響;(2)實現(xiàn)OPT 算法 (最
5、優(yōu)置換算法) 、LRU 算法 (Least Recently) 、 FIFO 算法 (First IN First Out)的模擬;(3)使用某種編程語言模擬頁面置換算法。二、實驗環(huán)境C語言三、實驗過程1. 設計思路和流程圖選擇置換算法,先輸入所有頁面號,為系統(tǒng)分配物理塊,依次進行置換將頁號放入物理塊中,編號加1引用串編號大于物理塊數(shù)?載入頁號序列,從第0個得到頁號開始頁號在物理塊中?根據(jù)選擇的置換算法完成置換頁號序列載完?結(jié)束是否是是是是2. 算法實現(xiàn)(1)OPT基本思想:是用一維數(shù)組pagepSIZE存儲頁面號序列,memerymSIZE是存儲裝入物理塊中的頁面。數(shù)組n
6、extmSIZE記錄物理塊中對應頁面的最后訪問時間。每當發(fā)生缺頁時,就從物理塊中找出最后訪問時間最大的頁面,調(diào)出該頁,換入所缺的頁面。(2)FIFO基本思想:是用隊列存儲內(nèi)存中的頁面,隊列的特點是先進先出,與該算法是一致的,所以每當發(fā)生缺頁時,就從隊頭刪除一頁,而從隊尾加入缺頁?;蛘呓柚o助數(shù)組timemSIZE記錄物理塊中對應頁面的進入時間,每次需要置換時換出進入時間最小的頁面。(3)LRU基本思想:是用一維數(shù)組pagepSIZE存儲頁面號序列,memerymSIZE是存儲裝入物理塊中的頁面。數(shù)組flag10標記頁面的訪問時間。每當使用頁面時,刷新訪問時間。發(fā)生缺頁時,就從物理塊中頁面標記最
7、小的一頁,調(diào)出該頁,換入所缺的頁面。3.源程序并附上注釋#include <stdio.h>#include <stdlib.h>/*全局變量*/int mSIZE; /*物理塊數(shù)*/int pSIZE; /*頁面號引用串個數(shù)*/static int memery10=0; /*物理塊中的頁號*/static int page100=0; /*頁面號引用串*/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("請按任意鍵進行初始化操作. n");printf("n");printf(" >>>");getch();system("cls");system("color 0B");printf(&
9、quot;請輸入物理塊的個數(shù)(M<=10):");scanf("%d",&mSIZE);printf("請輸入頁面號引用串的個數(shù)(P<=100):");scanf("%d",&pSIZE);puts("請依次輸入頁面號引用串(連續(xù)輸入,無需隔開):");for(i=0;i<pSIZE;i+) scanf("%1d",&pagei);download();system("cls");system("color 0E&
10、quot;); do puts("輸入的頁面號引用串為:");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("* 請選擇頁面置換算法:ttt *n");printf("* - *n"); printf("* 1.先進先出(FIFO) 2.最近最久未使用(LRU) *n");printf("* 3.最佳(OPT) 4.退出 *n");printf("* * * * * * * * * * * * * * * * * * * * * * *n"); printf("請選擇操作: 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(); /*顯示設計者信息后退出*/printf("謝謝使用頁面置換算法演示器! 正版授權 n");printf("n"); exit(0);default:printf("輸入錯誤,請重新輸入:"); printf("按任意鍵重新選擇置換算法:>
13、>>");getch();system("cls"); while (code!=4);getch();/*載入數(shù)據(jù)*/void download()int i;system("color 0D");printf("n");printf("正在載入數(shù)據(jù),請稍候 !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載入成功,按任意鍵進入置換算法選擇界面:>>>");getch();/*設置延遲*/void mDelay(unsigned int Delay) unsigned int i; for(;Delay>0;Delay-) for(i=0;i<124;i+) printf(" b"); /*顯示設計者信息*/ void designBy()printf(&
15、quot;n");printf(" 課題三:頁面置換算法 n");printf(" 學號: 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)/*頁面在物理塊中*/printf(" ");elseprintf(" |%d|",tempij);/*每行顯示20個*/if(i%20=0)continue;printf("n");printf("-n");printf("缺頁次數(shù):%dtt",t+mSIZE);printf("缺頁率:%d/%dn",t+mSIZE,pSIZE);printf("置換次數(shù):%dtt",t);prin
18、tf("訪問命中率:%d%n",(pSIZE-(t+mSIZE)*100/pSIZE);printf("-n");/*計算過程延遲*/void compute()int i;printf("正在進行相關計算,請稍候");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");/*先進先出頁面置換算法*/void FIFO() int memery10=0; int time10=0; /*記錄進入物理塊的時間*/ int i,j,k,m; int max=0; /*記錄換出頁*/ int count=0; /*記錄置換次數(shù)*/*前mSIZE個數(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+) /*判斷新頁面號是否在物理塊中*/ for(j=0,k=0;j<mSIZE;j+) if(memeryj!=pagei) k+; if(k=mSIZE) /*如果不在物理塊中*/ count+;/*計算換出頁*/ max=time0<time1?0:1;for(m=2;m<mSIZE;m+)if(timem<timemax)max=m; memerymax=pagei; timemax=i; /*記錄該頁進入物理塊的時間*/ 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; /*記錄頁面的訪問時間*/ int i,j,k,m; int max=0; /*記錄換出頁*/ int count=0; /*記錄置換次數(shù)*/*前mSIZE個數(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、斷新頁面號是否在物理塊中*/ for(j=0,k=0;j<mSIZE;j+) if(memeryj!=pagei) k+; else flagj=i; /*刷新該頁的訪問時間*/ if(k=mSIZE) /*如果不在物理塊中*/ count+;/*計算換出頁*/ max=flag0<flag1?0:1;for(m=2;m<mSIZE;m+)if(flagm<flagmax)max=m; memerymax=pagei; flagmax=i; /*記錄該頁的訪問時間*/ 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; /*記錄下一次訪問時間*/ int i,j,k,l,m; int max; /*記錄換出頁*/ int count=0; /*記錄置換次數(shù)*/*前mSIZE個數(shù)直接放入*/ for(i=0;i<mSIZE;i+) memeryi=pagei; for(j=0;j<mSIZE;j+)tempij=memeryj; for(i=mSIZE;i<pSIZE;i+) /*判斷新頁
24、面號是否在物理塊中*/ for(j=0,k=0;j<mSIZE;j+) if(memeryj!=pagei) k+; if(k=mSIZE) /*如果不在物理塊中*/ count+;/*得到物理快中各頁下一次訪問時間*/for(m=0;m<mSIZE;m+)for(l=i+1;l<pSIZE;l+)if(memerym=pagel)break;nextm=l;/*計算換出頁*/max=next0>=next1?0:1;for(m=2;m<mSIZE;m+)if(nextm>nextmax)max=m;/*下一次訪問時間都為pSIZE,則置換物理塊中第一個*/memerymax=pagei;for(j=0;j<mSIZE;j+)tempij=memeryj; else for(j=0;j<mSIZE;j+)tempij=memeryj; compute();print(count);6. 程序運行時的初值和運行結(jié)果1. 按任意鍵進行初始化:2. 載入數(shù)據(jù):3. 進入置換算法選擇界面:4.運算中延遲操作5.三種算法演示結(jié)果:四、實驗體會掌握了一般的調(diào)度算法,了解了頁面大小和內(nèi)存實際容量對命中率的影響詹添嘯濺滄睡焰身秋咬而畏蘇漁要疙肩讓怪冰防灑疵帛撬宴者肌勞蹈頓氟倔雪島扦削語金淳緬肚和愚鄰甄嶺獻締品劈
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育類讀書分享
- 2025年計算機服務項目規(guī)劃申請報告模板
- 2025年蚌埠淮上區(qū)區(qū)屬國有企業(yè)招聘考試筆試試題(含答案)
- 【錦州】2025年遼寧錦州義縣事業(yè)單位面向社會公開招聘工作人員15人筆試歷年典型考題及考點剖析附帶答案詳解
- 文庫發(fā)布:中醫(yī)護理
- 書包勞動與技術課件
- 整體護理教程課件教學
- 【課件】角的平分線+第1課時+++課件-2025-2026學年+人教版2024八年級數(shù)學上冊
- 魏姍姍四季之美教學課件
- 教育課件背景圖
- 與工商部門核對臺帳表格模板
- DB11T 593-2016高速公路清掃保潔質(zhì)量與作業(yè)要求
- 嘟嘟少兒英語beep演示簡化版
- GB/T 699-2015優(yōu)質(zhì)碳素結(jié)構(gòu)鋼
- GB/T 19096-2003技術制圖圖樣畫法未定義形狀邊的術語和注法
- GB/T 13808-1992銅及銅合金擠制棒
- 項目安全體系圖
- 中央財政科技計劃的項目結(jié)題審計指引講解文課件
- 職業(yè)暴露(銳器傷)應急預案演練腳本
- 首屆全國報刊編校技能大賽決賽試卷(一)及答案
- 材料出入庫表格范本
評論
0/150
提交評論