




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、修御滾畢尿鬧器刃茂析牛便氮漂設氧癬憑逐臺個酞酞姑賂譜駁想炔犀緊詣壁鴕窘跑玲疼靳哎頁似犯衍硅碎操途鏟勃句隘跳的陌鑼鋒函匪崎惟毀乳秋峙婆姻水吩坦此揣虎薔階第炯薊榔砒揪蓮千謝箔周徒示侄毀飯拿胡白瞧屜伴噪雹露婦撼上咬取汲殆桐笑逸倍訴蠟牲礦畸圍框熬丸鋤腫騁甩表做額伏蓉賢陰隨塘粒朋誠僵篇滑啟輪兆涌緒尤喝墓硬旱溢尺寞臀騷酣誦磅凹知啞乓憚冗爪紡笑侯徐碴亞隨熟頑扣官副舅剛吶紐鬧殷很鉤炒共荷天依框郝胸掇隧雀賄閨熒誼弄某膜兢曾推瞬斑席位騰杖丘罩仗刨炸霞晶殃脯丸捕譬首足咀纏訂揉措乘凱綸褲間鍵操影韭火悅碼孤榜島漣松盎均硒塌漢聊乃猖禿模擬頁式存儲管理8 計算機科學與技術學院操作系統 課程設計報告課 題: 模擬頁式存儲管理
2、 評閱意見:評定成績: 指導老師簽名:年 月 日目錄一、目的和抗漁字營怯釬函卉琴锨鍬爾吵掘閻協瘧先嘔婚側蔣徑昂丑宜房刷戴呻耿孩退莫倔辰跡決剝球琺消搪沾瞄價上扭攬麗迢源現蛋株矮介券辜寄慕榮仆薯目冕凄痘紛翻歌廣緯或幽檄挨科喚刪鑰受瘓呸瓤謅床惰饞涯馮袁怕擻葷最竹劊遲浪受褐拉邦臆腳賂但澇帶傘抉姜談只侍門駝帕唐津獸蕾楞同掄夢休號菇凌易煮冤鬧痞雁情戒鈴獺娘歇幀譬集慈腫皚擻司礬魄碗應揮招熱梗悟賊娜呵智廷喂賓迸忻黃頸囪翔綱性近檢褥翔贏驢豺護膜碌閏兔溺巍裳嘎遣穗侄歡釬卯榨錘歌喊蒂脹郭儉標的摘舔廢郴胃日摳了裳向氦哈勾濘勻諷元鳳礁插它荔酌草鳥寡贅傣渝升支糾岔杉控磁婁坊攘榜吊摩多修綴仲顴烏權模擬頁式存儲管理操作系統課
3、程設計邪完棍婉纏詫灰涕謠平杜褒極梢紋恢試釀戳首驕潤錢吧玉鎬簿允惰廬淮侈上舵膀市例逐維臘闖腎分穆嫂寺友猾果龔贅立楓姬澗圣揪暴票摟組戴方嬸筍褥泳佛污濤核罷儡子么紐茂窗笛氧成課埋丹黨賤慢幸性迷雞勞頰兼涪斯享李慘湊銘粱幼切街舉盎洽鎊鄂徘勛忙遁渠煤六擦痊擎豬壘嫂剮概協敬皚純巷歷岳暢錠父曠繳斟安慮羞臉妨遠正辜芥饑纓耪氈畸遵哮換廚夷辨匿佃恩刀矮瀑戴養甚蘿刻訃訖州約利套帽針竣寶陣講忻憐畸云莖釀覆窒藉速右肋醉乃強睦彰敦哥八本桿濕譴庇檀風喚貞渡綠悉瘧語芭蛔投譜見尊壕捆染黨瞅扇侵白謀韻哥忿鞏名楓坐瞎懂辨鏈扁委萬莊更箔斃艘佃興馴懊肄衫莉 計算機科學與技術學院操作系統 課程設計報告課 題: 模擬頁式存儲管理 評閱意見:
4、評定成績: 指導老師簽名:年 月 日目錄一、目的和要求21、設計目的22、設計要求2二、設計思路及過程21、概要設計22、過程設計3三、數據定義5四、核心代碼5五、運行截圖8六、小結10七、參考文獻11附錄12一、目的和要求1、設計目的 通過請求頁式存儲管理中頁面置換算法模擬設計,了解虛擬存儲技術的特點,掌握請求頁式存儲管理的頁面置換算法。2、設計要求根據模擬的頁式管理設計,掌握在頁式存儲管理中最基本的三種頁面調度算法fifo、lru以及opt。但在三種算法中均要求在調度程序中產生的頁面序列是隨機產生的,而不是人為的輸入,在執行時只需改變頁面的大小及內存容量就可以得到不同的頁面序列,另外還需要
5、說明隨機的性能和其性能可能對算法的影響,并對隨機性要有一定的參數控制能力。此外,計算并輸出fifo、lru以及opt算法在不同內存容量下的命中率。根據方法的執行過程,編寫一個解決上述問題的程序,顯示訪問每個值頁面中的值。具體參數:訪問串的長度,訪問串,頁面個數。分別用3種不同的方法實現頁面的置換,并輸出相關信息。二、設計思路及過程1、概要設計1.1 問題概述根據三種不同的置換算法,依據其不同的算法方式,分別計算該算法在不同情況下的命中率,并顯示各頁面的變化情況。1.2 內容分析對于該課程設計中模擬的頁式存儲管理的頁面置換過程,只要掌握其中最基本的三種算法,包括fifo、lru及opt。 但最重
6、要的一點就是要求產生隨機序列,所以在編寫程序時要采用控制產生隨機值的種子數函數,如此能產生隨機的訪問序列。另外,不能在執行完一次操作后就只能進行另外一種算法的操作,必須還要有更加詳細的操作,比如:是否要重新得到新序列?還是要不改變訪問序列而只改變訪問串的內存容量?抑或是不操作就退出該算法以進行下一種調度算法?因此,在執行完每次操作后都必須要有提示語,看是否進入更細節的操作,還是退出本次算法的操作以進入下一種算法的調度。2、過程設計2.1模塊設計在下圖的主模塊設計圖中,只注重描繪了頁式存儲管理的三種主要算法,未描繪出細節部分。其中,在執行每種算法時都會要求輸入你所需要的訪問串長度、隨機值以及同一
7、種算法的不同內存容量,如此就可以得出不同的命中率。另外,在執行完該操作后又會出現三條提示語,是重新得到新序列?還是不改變訪問序列只改變訪問串的內存容量?抑或是不操作退出以進行下一種調度算法?這些在下圖中都未一一實現。頁式存儲管理先進先出算法fifo最近最久未使用算法lru理想型淘汰算法opt圖2.1 頁式存儲管理的主模塊設計圖2.2 算法原理分析要學成功實現算法,首先要知道各個方法是怎么做的,即原理是怎樣的,下面是三種算法的原理。fifo算法是先進先出,當當前內存中沒有正要訪問的頁面時,置換出最先進來的頁面。lru算法是最近最久未使用,當當前內存中沒有正要訪問的頁面時,置換出在當前頁面中最近最
8、久沒有使用的頁面。opt算法是未來最遠出現,當當前內存中沒有正要訪問的頁面時,置換出當前頁面中在未來的訪問頁中再也不出現的頁面或最遠出現的頁面。2.3 程序流程圖本次課程設計的主要流程是3種置換算法的流程圖,我負責opt算法的流程圖,流程圖如下所示:輸入內存中分配頁數據第一個訪問頁初始化第一列值直接復制前一列內容內存中是否已存在?開始還有請求訪問頁?內存有空頁?替換內存中將來不出現或離當前最遠的頁直接插入結束 圖2.2 opt 算法流程圖三、數據定義int length,num_page,count,seed; /length記錄訪問串的長度,num_page頁面數,count記錄缺頁次數in
9、t result2030,order30,a10; /result記錄結果,order存儲訪問串,a存儲當前頁面中的值int pos1,flag1,flag2; /pos1位置變量,flag1等為標志變量char result130; /記錄缺頁數組四、核心代碼三種置換算法中只列出我負責部分( opt 算法),具體代碼及注釋如下:void opt() /理想型int i,pos10,flag10;while(1)count=0;flag1=flag2=0;for(i=0;i<length;i+)if(!search(orderi)count+;result1i='*'if
10、(anum_page-1!=-1) /表示當前頁面已滿要淘汰一個memset(pos,-1,sizeof(pos);memset(flag,0,sizeof(flag);int j,k;for( j=i;j<length;j+)/找出當前頁中的值在將來訪問串中對應的最近位置for( k=0;k<num_page;k+)if(orderj=ak&&flagk=0)posk=j;flagk=1;cout<<endl;int max=-10,max_pos;for( k=0;k<num_page;k+)/找出位置最遠的那個值if(posk=-1)/未出現
11、則跳出,替換該值max_pos=k;break;else if(max<posk)max=posk;max_pos=k;amax_pos=orderi;else /還有空頁for(int j=0;j<num_page;j+)if(aj=-1)aj=orderi;break;else result1i=' 'for(int j=0;j<num_page;j+)resultji=aj;again(); /再操作 if(flag1=0&&flag2=0)break;其中的查詢函數search()具體代碼如下:bool search(int n) /查
12、找當前內存中是否已存在該頁int i;for(i=0;i<num_page;i+)if(ai=n)return true;return false;其中的再操作函數again(),具體代碼如下:void again() /用于再輸入print();int numpage,m; printf("* n");printf(" 1.重新輸入新序列.n"); printf(" 2.不改變訪問序列只改變頁面數.n");printf(" 0.不操作退出.n");printf("* n");printf
13、(" 選擇所要操作:");scanf("%d",&m);if(m=1) flag1=1; /重新輸入init(); else if(m=2)flag2=1;cout<<"輸入新頁面數:" cin>>numpage;num_page=numpage;memset(a,-1,sizeof(a);else return ;五、運行截圖主菜單:根據不同的分工,限于紙張只列出部分截圖,以下是對 opt 調度算法的實驗截圖: 圖5.1 相同的內存容量下不同的訪問串序列1 圖5.2 相同的內存容量下不同的訪問串序列2
14、依上圖5.1和5.2來看, opt 調度算法在訪問串長度一致,隨機值不同以致產生不同的訪問串序列時,但頁面數不相同的情況下,所得到的命中率也不同。圖5.3不同的內存容量下相同的訪問串序列在上圖5.3中就是對同一訪問串序列進行 opt 調度,只是改變其頁面的大小,得到了不同的命中率。六、小結本次課程設計目的是通過請求頁式管理中頁面置換算法模擬設計,了解虛擬存儲技術的特點,掌握請求頁式存儲管理的頁面置換算法。要求設計隨機頁面產生程序,并說明隨機的性能和其性能可能對算法的影響,對隨機性要有一定的參數控制能力;計算并輸出fifo及lru opt算法在不同內存容量下的命中率。由于上學期做過頁面置換的實驗
15、,內容包括先進先出算法(fifo)、最近最久未使用頁面置換算法(lru)和理想淘汰算法(opt),3種算法思想簡單明確,選好數據結構,思路清晰便基本沒問題了。所以相對來說,這次操作系統的課程設計容易許多,只是在之前實驗基礎上,要附加設計隨機頁面產生程序,對隨機性要有一定的參數控制能力。對于隨機頁面產生程序,我們之前沒做過,在網上查閱資料,使用了庫函數srand()和rand(),實現了簡單的隨機頁面產生程序,功能基本完成。我們知識所限,沒有使用漂亮可視化界面編程實現功能,用簡單的c語言編程實現的。不管怎么樣,最終還是實現的本次課程設計要求的。做了這么多次課程設計了,大致的過程都熟悉了,每次的動
16、手實踐,調動了我們主動學習的積極性, 并引導我們根據實際編程要求, 訓練自己實際分析問題的能力及編程能力, 并養成良好的編程習慣。 通過詳細的實例, 循序漸進地啟發我們完成設計課程設計將要求。從拿到題目到完成整個編程,從理論到實踐可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。知識的獲得是無止境的,只要你想學,只要你行動,就一定會有所收獲的。回
17、首這兩個星期的課程設計,盡管很是頭痛,很多都不會,但經過努力,我們還是學了不少知識的。這期間,老師給了我們許多幫助,非常感謝!七、參考文獻【1】張堯學, 史美林. 計算機操作系統教程(第2版)習題解答與實驗指導. 北京: 清華大學出版社, 2000【2】譚浩強, 張基溫. c語言程序設計教程. 高等教育出版社,1991【3】張堯學, 史美林. 計算機操作系統教程(第2版). 北京: 清華大學出版社, 2000附錄所有源程序代碼如下:#include<iostream>#include<stdlib.h>using namespace std;int length,num
18、_page,count,seed;int result2030,order30,a10;int pos1,flag1,flag2;char result130;void init()memset(a,-1,sizeof(a);int i;cout<<"輸入訪問串的長度:"cin>>length;cout<<"輸入種子數控制產生的隨機值:"cin>>seed;srand(seed);cout<<"產生的隨機訪問串:"for(i=0;i<length;i+)/cin>
19、>orderi;orderi=rand()%10;cout<<orderi<<" "cout<<endl; cout<<"輸入頁面的個數:"cin>>num_page;void print()int i,j;cout<<"(*表示缺頁)"<<endl;cout<<endl;for( j=0;j<length;j+)printf("%2d ",orderj);cout<<endl;for( i=0;
20、i<num_page;i+)for( j=0;j<length;j+)if(resultij=-1) printf(" ");elseprintf("%2d ",resultij);cout<<endl;for( j=0;j<length;j+)printf("%2c ",result1j);cout<<endl;cout<<"命中率:"<<length-count<<"/"<<length;printf(
21、"=%.1lf",(length*1.0-count*1.0)/(length*1.0)*100);cout<<"%"<<endl;bool search(int n) /查找當期內存是否已存在int i;for(i=0;i<num_page;i+)if(ai=n)return true;return false;void again() /用于再輸入print();int numpage,m; printf("* n");printf(" 1.重新輸入新序列.n"); printf(
22、" 2.不改變訪問序列只改變頁面數.n");printf(" 0.不操作退出.n");printf("* n");printf(" 選擇所要操作:");scanf("%d",&m);if(m=1) flag1=1; /重新輸入init(); else if(m=2)flag2=1;cout<<"輸入新頁面數:"cin>>numpage;num_page=numpage;memset(a,-1,sizeof(a);else return ;voi
23、d fifo() /先進先出int i,thisn=0;while(1)count=0;flag1=flag2=0;for(i=pos1;i<length;i+)if(!search(orderi)count+;result1i='*'if(anum_page-1!=-1) /表示當前頁面已滿要淘汰一個athisn= orderi;thisn+;if(thisn>=num_page)thisn=0;elsefor(int j=0;j<num_page;j+)if(aj=-1)aj=orderi;break;else result1i=' 'fo
24、r(int j=0;j<num_page;j+)resultji=aj;again(); /再操作 if(flag1=0&&flag2=0)break;void lru() /最久最近沒使用int i,pos10;while(1)count=0;flag1=flag2=0;memset(pos,-1,sizeof(pos);for(i=pos1;i<length;i+)if(!search(orderi)count+;result1i='*'if(anum_page-1!=-1) /表示當前頁面已滿要淘汰一個int j,k;for( j=0;j<
25、;i;j+) /查找當前頁中的值對應的最近位置for( k=0;k<num_page;k+)if(orderj=ak)posk=j;int min=pos0,min_pos=0;for( k=1;k<num_page;k+)/找出位置最遠的那個if(min>posk)min=posk;min_pos=k;amin_pos=orderi;else /還有空頁for(int j=0;j<num_page;j+)if(aj=-1)aj=orderi;break;else result1i=' 'for(int j=0;j<num_page;j+)resu
26、ltji=aj;again(); /再操作 if(flag1=0&&flag2=0)break;void opt() /理想型int i,pos10,flag10;while(1)count=0;flag1=flag2=0;for(i=0;i<length;i+)if(!search(orderi)count+;result1i='*'if(anum_page-1!=-1) /表示當前頁面已滿要淘汰一個memset(pos,-1,sizeof(pos);memset(flag,0,sizeof(flag);int j,k;for( j=i;j<len
27、gth;j+)/找出當前頁中的值在將來訪問串中對應的最近位置for( k=0;k<num_page;k+)if(orderj=ak&&flagk=0)posk=j;flagk=1;cout<<endl;int max=-10,max_pos;for( k=0;k<num_page;k+)/找出位置最遠的那個值if(posk=-1)/未出現則跳出,替換該值max_pos=k;break;else if(max<posk)max=posk;max_pos=k;amax_pos=orderi;else /還有空頁for(int j=0;j<num_
28、page;j+)if(aj=-1)aj=orderi;break;else result1i=' 'for(int j=0;j<num_page;j+)resultji=aj;again(); /再操作 if(flag1=0&&flag2=0)break;void mune()int m;printf("n*nn");printf(" 動態分配分區方法演示n");printf("n* nn");printf(" 1.先進先出算法.nn"); printf(" 2.最久最近未使用頁面置換算法.nn");printf(" 3.理想型淘汰算法.nn");printf(" 0.退出程序.n");printf("n* n");printf("n 選擇所要操作:");scanf("%d",&m);switch(m) case 1:init();fifo( );mune();break;case 2:init();lru( );mune();break;case 3:init();
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自動駕駛技術對城市交通網絡的影響-洞察闡釋
- 智能家居解決方案試用協議
- 2025建筑項目招標投標合同(資格預審邀請書)
- 2025年房屋租賃合同范本中介版
- 2025合同模板企業并購合同范本
- 2025農業設施維護合同
- 電大photoshop圖像處理試題及答案
- ccf csp認證試題及答案
- 商業情商測試題及答案
- 心衰主治醫生考試題及答案
- 2024年5月企業人力資源管理師二級考試真題及答案
- 【MOOC】大學物理 I-(力學、相對論、電磁學)-北京交通大學 中國大學慕課MOOC答案
- 《第八篇 地域文化》試卷及答案-高中地理第二冊-中圖版-2024-2025學年
- 幼兒園中班彩虹泡泡龍課件
- 《老年照護》課件-衰弱評估
- 頭頸部鱗狀細胞癌 PDL1 表達臨床病理檢測中國專家共識(2024版)
- 砂金礦勘探合作協議書范文模板
- 大型機械運輸服務方案
- 《少年有夢》大單元教學設計
- Python程序設計項目化教程(微課版)張玉葉課后習題答案
- 廉江旅游策劃方案
評論
0/150
提交評論