操作系統(tǒng)課程設(shè)計(jì)完整版內(nèi)含代碼_第1頁(yè)
操作系統(tǒng)課程設(shè)計(jì)完整版內(nèi)含代碼_第2頁(yè)
操作系統(tǒng)課程設(shè)計(jì)完整版內(nèi)含代碼_第3頁(yè)
已閱讀5頁(yè),還剩6頁(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、操作系統(tǒng)課程設(shè)計(jì)LRU頁(yè)面調(diào)度算法學(xué) 號(hào):姓 名:學(xué) 院:專 業(yè):班 級(jí):指導(dǎo)老師:日 期:目 錄一、 實(shí)驗(yàn)題目 1二、 課程設(shè)計(jì)的目的 1三、設(shè)計(jì)內(nèi)容1四、設(shè)計(jì)要求1五、設(shè)計(jì)思想 1六、 主要數(shù)據(jù)結(jié)構(gòu)及其說(shuō)明 2七、硬件支持 3八、 源程序文件 3九、程序運(yùn)行結(jié)果 6十、實(shí)驗(yàn)體會(huì)7一實(shí)驗(yàn)題目LRU 頁(yè)面調(diào)度算法二課程設(shè)計(jì)的目的操作系統(tǒng)課程設(shè)計(jì)是計(jì)算機(jī)專業(yè)重要的教學(xué)環(huán)節(jié),它為學(xué)生提供了一個(gè)既 動(dòng)手又動(dòng)腦,將課本上的理論知識(shí)和實(shí)際有機(jī)的結(jié)合一起,獨(dú)立分析和解 決實(shí)際問(wèn)題的機(jī)會(huì)。1. 進(jìn)一步鞏固和復(fù)習(xí)操作系統(tǒng)的基礎(chǔ)知識(shí)。2. 培養(yǎng)學(xué)生結(jié)構(gòu)化程序、模塊化程序設(shè)計(jì)的方法和能力。3. 提高學(xué)生調(diào)試程序的

2、技巧和軟件設(shè)計(jì)的能力。4. 提高學(xué)生分析問(wèn)題、解決問(wèn)題以及綜合利用C語(yǔ)言進(jìn)行程序設(shè)計(jì)的能力。三設(shè)計(jì)內(nèi)容程序應(yīng)模擬實(shí)現(xiàn)LRU算法思想,對(duì)n個(gè)頁(yè)面實(shí)現(xiàn)模擬調(diào)度。四設(shè)計(jì)要求1. 不同的功能使用不同的函數(shù)實(shí)現(xiàn)(模塊化),對(duì)每個(gè)函數(shù)的功能和調(diào)用接口要注釋清楚。對(duì)程序其它部分也進(jìn)行必要的注釋。2. 對(duì)系統(tǒng)進(jìn)行功能模塊分析、畫(huà)出總流程圖和各模塊流程圖。3. 用戶界面要求使用方便、簡(jiǎn)潔明了、美觀大方、格式統(tǒng)一。所有功能可以反復(fù)使用,最好使用菜單。4 .通過(guò)命令行相應(yīng)選項(xiàng)能直接進(jìn)入某個(gè)相應(yīng)菜單選項(xiàng)的功能模塊。5.所有程序需調(diào)試通過(guò)。五設(shè)計(jì)思想最近最久未使用(LRU頁(yè)調(diào)度算法是選擇最近最久未使用的頁(yè)面予以淘汰。

3、算法賦予每個(gè)頁(yè)面一個(gè)訪問(wèn)字段,用來(lái)記錄一個(gè)頁(yè)面自上次被訪問(wèn)以來(lái)所經(jīng) 歷的時(shí)間,當(dāng)所要訪問(wèn)的頁(yè)面在內(nèi)存塊中時(shí),就不淘汰頁(yè)面,否則,淘汰頁(yè) 面中時(shí)間最長(zhǎng)的,即淘汰最近最久未使用的頁(yè)面。輸入頁(yè)面號(hào)算法流程圖六主要數(shù)據(jù)結(jié)構(gòu)及其說(shuō)明程序執(zhí)行是穩(wěn)定的,高效的。在LRU算法中,要找出最近最久未使用的頁(yè)面 的話,就必須設(shè)置有關(guān)的訪問(wèn)記錄項(xiàng), 且每一次訪問(wèn)這些記錄項(xiàng),葉面都必 須更新這些記錄項(xiàng)。這個(gè)記錄項(xiàng)在此程序中為:typedef struct pageint num;/* 記錄頁(yè)面號(hào)*/int time;/* 記錄調(diào)入內(nèi)存時(shí)間*/Page;頁(yè)面邏輯結(jié)構(gòu),結(jié)構(gòu)為方便算法實(shí)現(xiàn)設(shè)計(jì)如此,顯然要花費(fèi)較大的系統(tǒng)開(kāi)銷(

4、包括時(shí)間和空間上的),這也是實(shí)際系 統(tǒng)中不采用LRU算法的直接原因,但由于其頁(yè)面置換的優(yōu)越性,實(shí)際系統(tǒng)中 常使用LRU的近似算法。七硬件支持為了了解一個(gè)進(jìn)程在內(nèi)存中的各個(gè)頁(yè)面各有多少時(shí)間未被進(jìn)程訪問(wèn),以及如何快速的知道哪一頁(yè)是最近最久未使用的頁(yè)面,須有兩類硬件之一的支持: 寄存器或棧。寄存器:為了記錄某進(jìn)程在內(nèi)存中各頁(yè)的使用情況, 須為每個(gè)在內(nèi)存中的頁(yè) 面配置一個(gè)移位寄存器。棧:可利用一個(gè)特殊的棧來(lái)保存當(dāng)前使用的各個(gè)頁(yè)面的頁(yè)面號(hào)。每當(dāng)進(jìn)程訪問(wèn)某頁(yè)面時(shí),便將該頁(yè)面的頁(yè)面號(hào)從戰(zhàn)中移出,將它壓入棧頂。因此,棧頂 始終是最新被訪問(wèn)頁(yè)面的編號(hào),而棧底則是最近最久未使用頁(yè)面的頁(yè)面號(hào)。八源程序文件#i nc

5、lude #in clude#in clude#defi ne M 3 /物理塊數(shù)#defi ne N 10 / 頁(yè)面數(shù)#defi ne Mypri ntf1prin tf(t*ttnn);#defi ne Mypri ntf2printf( *nn);表格控制表格控制typedef struct pageint num;/* 記錄頁(yè)面號(hào)*/int time;/* 記錄調(diào)入內(nèi)存時(shí)間*/Page;頁(yè)面邏輯結(jié)構(gòu),結(jié)構(gòu)為方便算法實(shí)現(xiàn)設(shè)計(jì)Page bM; 內(nèi)存單元數(shù)in t cMN;/暫保存內(nèi)存當(dāng)前的狀態(tài):緩沖區(qū)int queue100;記錄調(diào)入隊(duì)列int K;調(diào)入隊(duì)列計(jì)數(shù)變量/初始化內(nèi)存單元、緩沖區(qū)

6、 void In it(Page *b,i nt cMN) int i,j;for(i=0;iN;i+)bi. num=-1;bi.time=N-i-1;for(i=0;iM;i+)for(j=0;jN;j+) cij=-1;/取得在內(nèi)存中停留最久的頁(yè)面,默認(rèn)狀態(tài)下為最早調(diào)入的頁(yè)面int GetMax(Page *b)int i;int max=-1;int tag=0;for(i=0;imax)max=bi.time;tag=i;return tag;/判斷頁(yè)面是否已在內(nèi)存中int Equatio n(i nt fold,Page *b)int i;for(i=0;i=0) bval.tim

7、e=0;for(i=0;iM;i+) if(i!=val) bi.time+;else記錄調(diào)入頁(yè)面 queue+K=fold; val=GetMax(b); bval. num=fold; bval.time=0;for(i=0;iM;i+) if(i!=val) bi.time+;/主程序void main()start:K=-1;int i,j;int aN;Mypri ntf1;printf(nttt歡迎使用LRU頁(yè)面調(diào)度算法nn);Mypri ntf1;printf(請(qǐng)輸入所要訪問(wèn)的各個(gè)頁(yè)面號(hào):n);for(i=0;iN;i+)scan f(%d,&ai);In it(b,c);/ 調(diào)

8、用for(i=0;iN;i+)Lru(ai,b);c0i=ai;/記錄當(dāng)前的內(nèi)存單元中的頁(yè)面 for(j=0;jM;j+) cji=bj. num;/ 結(jié)果輸出printf(內(nèi)存狀態(tài)為:n);Mypri ntf2;for(j=0;jN;j+)prin tf(|%2d,aj);prin tf(|n);Mypri ntf2;for(i=0;iM;i+)for(j=0;jN;j+)if(cij=-1)prin tf(|%2c,32);elseprin tf(|%2d,cij);prin tf(|n);Mypri ntf2;prin tf(n 調(diào)入隊(duì)列為:);for(i=0;iK+1;i+)prin

9、tf(%3d,queuei);printf(n缺頁(yè)次數(shù)為:6dn 缺頁(yè)率:%16.6f,K+1,(float)(K+1)/N);printf(n是否繼續(xù)!t y?);char y;if(getch()=y)system(cls);prin tf(n);goto start;elseprin tf(n);printf( 程序結(jié)束 n);九程序運(yùn)行結(jié)果小 *C:Docu*ents and SettingsAdBinistratorXMlfilXDebugXvi-. exe歡迎使甬wu貝面調(diào)度算法請(qǐng)輸入所要訪問(wèn)的各個(gè)貢面號(hào):3532456內(nèi)存狀態(tài)為:I 3 I 6 I 6 I 5 I 3 I 2I 41 5I 6I 5I ! 3! 3 ! 3 ! 3 ! 3 ! 3 ! 3 ! 5 ! 5 ! 5 !I I6I6I6I6I2I2!2|6I6I! 5

溫馨提示

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