


版權(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ì)容 1四、設(shè)計(jì)要求 1五、設(shè)計(jì)思想 1六、主要數(shù)據(jù)結(jié)構(gòu)及其說(shuō)明 2七、硬件支持 3八、源程序文件 3九、程序運(yùn)行結(jié)果 7十、實(shí)驗(yàn)體會(huì) 8一 實(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ì)容程序應(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è)面在存塊中時(shí),就不淘汰頁(yè)面,否則,淘汰頁(yè)面 中時(shí)間最長(zhǎng)的,即淘汰最近最久未使用的頁(yè)面。:開(kāi)始輸入頁(yè)面號(hào)Lru(ai,b)輸出 queuei缺頁(yè)次數(shù)和缺 頁(yè)率n算法流程圖六主要數(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)入存時(shí)間 */Page;
4、/ 頁(yè)面邏輯結(jié)構(gòu),結(jié)構(gòu)為方便算法實(shí)現(xiàn)設(shè)計(jì) 如此,顯然要花費(fèi)較大的系統(tǒng)開(kāi)銷(包括時(shí)間和空間上的),這也是實(shí)際系 統(tǒng)中不采用 LRU 算法的直接原因,但由于其頁(yè)面置換的優(yōu)越性,實(shí)際系統(tǒng)中常使用 LRU 的近似算法七 硬件支持 為了了解一個(gè)進(jìn)程在存中的各個(gè)頁(yè)面各有多少時(shí)間未被進(jìn)程訪問(wèn), 以及如何 快速的知道哪一頁(yè)是最近最久未使用的頁(yè)面,須有兩類硬件之一的支持:寄 存器或棧。寄存器:為了記錄某進(jìn)程在存中各頁(yè)的使用情況, 須為每個(gè)在存中的頁(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)中移出,將它壓入棧頂。因此,棧頂 始終
5、是最新被訪問(wèn)頁(yè)面的編號(hào),而棧底則是最近最久未使用頁(yè)面的頁(yè)面號(hào)。八 源程序文件 #include<stdio.h> #include<conio.h> #include<stdlib.h>#define M 3 /物理塊數(shù)#define N 10 / 頁(yè)面數(shù)#define Myprintf1printf("t*ttnn");/#define Myprintf2printf("f*nn");/表格控制表格控制typedef struct pageint num;/* 記錄頁(yè)面號(hào) */Page;/ 頁(yè)面邏輯結(jié)構(gòu),結(jié)構(gòu)為方便算
6、法實(shí)現(xiàn)設(shè)計(jì)Page bM;/ 存單元數(shù)int cMN;/ 暫保存存當(dāng)前的狀態(tài):緩沖區(qū)int queue100;/ 記錄調(diào)入隊(duì)列int K;/ 調(diào)入隊(duì)列計(jì)數(shù)變量/ 初始化存單元、緩沖區(qū)void Init(Page *b,int cMN)int i,j;for(i=0;i<N;i+)bi.num=-1;bi.time=N-i-1;for(i=0;i<M;i+)for(j=0;j<N;j+)cij=-1;/ 取得在存中停留最久的頁(yè)面,默認(rèn)狀態(tài)下為最早調(diào)入的頁(yè)面int GetMax(Page *b)int i;int max=-1;int tag=0;for(i=0;i<M;i
7、+)if(bi.time>max)max=bi.time;tag=i;return tag;/ 判斷頁(yè)面是否已在存中int Equation(int fold,Page *b)int i;for(i=0;i<M;i+)if(fold=bi.num)return i;return -1;/LRU 核心部分void Lru(int fold,Page *b)int i;int val;val=Equation(fold,b);if(val>=0)bval.time=0;for(i=0;i<M;i+)if(i!=val)bi.time+;else記錄調(diào)入頁(yè)面queue+K=f
8、old;/val=GetMax(b);bval.num=fold;bval.time=0;for(i=0;i<M;i+) if(i!=val) bi.time+;/ 主程序void main()start:K=-1;int i,j;int aN;Myprintf1;printf("nttt 歡迎使用 LRU 頁(yè)面調(diào)度算法 nn");Myprintf1;printf(" 請(qǐng)輸入所要訪問(wèn)的各個(gè)頁(yè)面號(hào): n"); for(i=0;i<N;i+)scanf("%d",&ai);Init(b,c); / 調(diào)用for(i=0;
9、i<N;i+)Lru(ai,b);c0i=ai;/ 記錄當(dāng)前的存單元中的頁(yè)面for(j=0;j<M;j+)cji=bj.num;/ 結(jié)果輸出printf("存狀態(tài)為 :n");Myprintf2;for(j=0;j<N;j+)printf("|%2d",aj);printf("|n");Myprintf2;for(i=0;i<M;i+)for(j=0;j<N;j+) if(cij=-1) printf("|%2c",32);else printf("|%2d",ci
10、j);printf("|n");Myprintf2;printf("n 調(diào)入隊(duì)列為: ");缺頁(yè)for(i=0;i<K+1;i+) printf("%3d",queuei);printf("n 缺 頁(yè) 次 數(shù) 為 :%6dn率:16.6f",K+1,(float)(K+1)/N);printf("n 是否繼續(xù) !t y?");char y;if(getch()='y') system("cls"); printf("n"); goto start;elseprintf("n");printf("程序結(jié)束 n");九 程序運(yùn)行結(jié)果歡迎使用LW1頁(yè)面調(diào)度算法HU JOI JIXJI請(qǐng)輸入所要訪問(wèn)的各個(gè)貝面號(hào),3456內(nèi)存狀態(tài)為:I3!G!6!3!2I4!5I6!5! 3 :!&I6!6:£!2I2I2I6IGII
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度甜品店知識(shí)產(chǎn)權(quán)與店鋪轉(zhuǎn)讓協(xié)議
- 二零二五年度電梯維保合同終止與電梯應(yīng)急演練服務(wù)協(xié)議
- 二零二五年度事業(yè)單位聘用合同解除與離職補(bǔ)償及職業(yè)規(guī)劃協(xié)議
- 綠植租擺合同書(shū)-2025年度校園環(huán)境美化合作
- 2025年度銀行協(xié)議存款綠色金融項(xiàng)目支持合同
- 畢業(yè)典禮教師代表發(fā)言稿
- 2025年益陽(yáng)道路貨物運(yùn)輸從業(yè)資格證考試
- 波托菲諾小鎮(zhèn)
- 2025年昆明貨運(yùn)從業(yè)資格考試題目和答案大全解析
- 農(nóng)業(yè)生產(chǎn)技術(shù)手冊(cè)
- 2025年湖南中醫(yī)藥高等??茖W(xué)校單招職業(yè)技能測(cè)試題庫(kù)必考題
- 《模具制造流程》課件
- 2025年01月2025廣東深圳市何香凝美術(shù)館公開(kāi)招聘應(yīng)屆高校畢業(yè)生2人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025年北京電子科技職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年菏澤職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年江西生物科技職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年山東力明科技職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年上海浦東新區(qū)高三一模高考英語(yǔ)試卷試題(含答案詳解)
- 2025-2030全球嬰兒磨牙用品行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 地鐵出入口施工方案
- 上海市發(fā)展改革研究院工作人員招考聘用12人高頻重點(diǎn)提升(共500題)附帶答案詳解
評(píng)論
0/150
提交評(píng)論