操作系統(tǒng)課程設(shè)計報告模板_第1頁
操作系統(tǒng)課程設(shè)計報告模板_第2頁
操作系統(tǒng)課程設(shè)計報告模板_第3頁
操作系統(tǒng)課程設(shè)計報告模板_第4頁
操作系統(tǒng)課程設(shè)計報告模板_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

操作系統(tǒng)課程設(shè)計報告模板操作系統(tǒng)是信息管理與信息系統(tǒng)專業(yè)一門重要的專業(yè)理論課程,了解和掌握操作系統(tǒng)的根本概念、功能和實現(xiàn)原理,對認識整個計算機系統(tǒng)的工作原理十分重要。以下是的操作系統(tǒng)課程設(shè)計報告模板,歡迎閱讀。(一)頁面置換算法定義在地址映射過程中,假設(shè)在頁面中發(fā)現(xiàn)所要訪問的頁面不再內(nèi)存中,那么產(chǎn)生缺頁中斷。當(dāng)發(fā)生缺頁中斷時操作系統(tǒng)必須在內(nèi)存選擇一個頁面將其移出內(nèi)存,以便為即將調(diào)入的頁面讓出空間。而用來選擇淘汰哪一頁的規(guī)那么叫做頁面置換算法。(二)所使用的算法1) 最正確置換算法(OPT):將以后永不使用的或許是在最長(未來)時間內(nèi)不再被訪問的頁面換出。2) 先進先出算法(FIFO):淘汰最先進入內(nèi)存的頁面,即選擇在內(nèi)存中駐留時間最久的頁面予以淘汰。3) 最近最久未使用算法(LRU):淘汰最近最久未被使用的頁面。(三)設(shè)計思想選擇置換算法,先輸入所有頁面號,為系統(tǒng)分配物理塊,依次進展置換:OPT根本思想:是用一維數(shù)組page[pSIZE]存儲頁面號序列,memery[mSIZE]是存儲裝入物理塊中的頁面。數(shù)組next[mSIZE]記錄物理塊中對應(yīng)頁面的最后訪問時間。每當(dāng)發(fā)生缺頁時,就從物理塊中找出最后訪問時間最大的頁面,調(diào)出該頁,換入所缺的頁面。FIFO根本思想:是用隊列存儲內(nèi)存中的頁面,隊列的特點是先進先出,與該算法是一致的,所以每當(dāng)發(fā)生缺頁時,就從隊頭刪除一頁,而從隊尾參加缺頁?;蛘呓柚o助數(shù)組time[mSIZE]記錄物理塊中對應(yīng)頁面的進入時間,每次需要置換時換出進入時間最小的頁面。LRU根本思想:是用一維數(shù)組page[pSIZE]存儲頁面號序列,memery[mSIZE]是存儲裝入物理塊中的頁面。數(shù)組flag[10]標記頁面的訪問時間。每當(dāng)使用頁面時,刷新訪問時間。發(fā)生缺頁時,就從物理塊中頁面標記最小的一頁,調(diào)出該頁,換入所缺的頁面。實驗環(huán)境:vc++,編程語言:c語言#include#include/*全局變量*/intmSIZE;/*物理塊數(shù)*/intpSIZE;/*頁面號引用串個數(shù)*/staticintmemery[10]={0};/*物理塊中的頁號*/staticintpage[100]={0};/*頁面號引用串*/staticinttemp[100][10]={0};/*輔助數(shù)組*//*置換算法函數(shù)*/voidFIFO();voidLRU();voidOPT();/*輔助函數(shù)*/voidprint(unsignedintt);voiddesignBy();voiddownload();voidmDelay(unsignedintDelay);/*主函數(shù)*/voidmain(){inti,k,code;system("color0A");designBy();printf("|請按任意鍵進展初始化操作...|");printf(〃 1");printf(">>>");getch();system("cls");system("color0B");

printf("請輸入物理塊的個數(shù)(M〈=10):");scanf("%d",&mSIZE);printf("請輸入頁面號引用串的個數(shù)(P〈=100):");scanf("%d",&pSIZE);puts("請依次輸入頁面號引用串(連續(xù)輸入,無需隔開):");for(i=0;iscanf("%1d",&page[i]);download();system("cls");system("color0E");do{puts("輸入的頁面號引用串為:");for(k=0;k〈=(pSIZE-1)/20;k++){for(i=20*k;(i(i==pSIZE-1)))printf("%d",page[i]);elseprintf("%d",page[i]);}}",page[i]);}}printf("*****");printf("*請選擇頁面置換算法:*");printf("* *");printf(〃*1.先進先出(FIFO)2.最近最久未使用(LRU)*");printf("*3.最正確(OPT)4.退出*");printf("********!>*");printf*!>*");printf("請選擇操作:[]");scanf("%d",&code);switch(code){case1:FIFO();break;case2:LRU();break;case3:OPT();break;case4:system("cls");system("color0A");designBy();/*顯示設(shè)計者信息后退出*/printf("|謝謝使用頁面置換算法演示器!|");printf(〃 1");exit(0);default:printf("輸入錯誤,請重新輸入:");}printf("按任意鍵重新選擇置換算法:〉〉〉");getch();system("cls");}while(code!=4);getch();}/*載入數(shù)據(jù)*/voiddownload(){inti;system("color0D");printf("n h〃);printf(〃||正在載入數(shù)據(jù),請稍候!?。|〃);printf(〃P *");printf("Loading...〃);printf(〃for(i=0;i<51;i++)printf(〃〃);for(i=0;i<50;i++){mDelay((pSIZE+mSIZE)/2);printf(〃>〃);}printf(〃Finish.載入成功,按任意鍵進入置換算法選擇界面:>>>〃);getch();}/*設(shè)置延遲*/voidmDelay(unsignedintDelay){unsignedinti;for(;Delay>0;Delay--){for(i=0;i<124;i++){printf(〃〃);}}}/*顯示設(shè)計者信息*/voiddesignBy(){printf(〃 1");printf(〃|頁面置換算法|〃);printf(〃|12級1班|〃);O〃);printf(〃|姓名:張海洋,李奔|〃);printf(〃 1");}voidprint(unsignedintt){inti,j,k,l;intflag;for(k=0;k<=(pSIZE-1)/20;k++){for(i=20*k;(i=j)printf(〃|%d|〃,temp[i][j]);elseprintf(〃||〃);}for(i=mSIZE+20*k;(iprintf("置換次數(shù):%d",t);printf("訪問命中率:%d%%

",(pSIZE-(t+mSIZE))*100/pSIZE);printf(" ");}/*計算過程延遲*/voidpute(){inti;printf("正在進展相關(guān)計算,請稍候");for(i=1;i<20;i++){mDelay(15);if(i%4==0)printf("“);elseprintf("?");}for(i=0;i++<30;printf(""));for(i=0;i++<30;printf(""));for(i=0;i++<30;printf(""));}/*先進先出頁面置換算法*/voidFIFO(){intmemery[10]={0};inttime[10]={0};/*記錄進入物理塊的時間*/inti,j,k,m;intmax=0;/*記錄換出頁*/intcount=0;/*記錄置換次數(shù)*//*前mSIZE個數(shù)直接放入*/for(i=0;imemery[i]=page[i];time[i]=i;for(j=0;jfor(i=mSIZE;iif(memery[j]!=page[i])k++;}if(k==mSIZE)/*如果不在物理塊中*/{count++;/*計算換出頁*/max=time[0]time[max]=i;/*記錄該頁進入物理塊的時間*/for(j=0;jfor(j=0;j/*最近最久未使用置換算法*/voidLRU(){intmemery[10]={0};intflag[10]={0};/*記錄頁面的訪問時間*/inti,j,k,m;intmax=0;/*記錄換出頁*/intcount=0;/*記錄置換次數(shù)*//*前mSIZE個數(shù)直接放入*/for(i=0;imemery[i]=page[i];flag[i]=i;for(j=0;jfor(i=mSIZE;iif(memery[j]!=page[i])k++;elseflag[j]=i;/*刷新該頁的訪問時間*/}if(k==mSIZE)/*如果不在物理塊中*/{count++;/*計算換出頁*/max=flag[0]flag[max]=i;/*記錄該頁的訪問時間*/for(j=0;jfor(j=0;j/*最正確置換算法*/voidOPT(){intmemery[10]={0};intnext[10]={0};/*記錄下一次訪問時間*/inti,j,k,l,m;intmax;/*記錄換出頁*/intcount=0;/*記錄置換次數(shù)*//*前mSIZE個數(shù)直接放入*/for(i=0;imemery[i]=page[i];for(j=0;jfor(i=mSIZE;i/*判斷新頁面號是否在物理塊中*/for(j=0,k=0;jif(memery[j]!=page[i])k++;}if(k==mSIZE)/*如果不在物理塊中*/{count++;/*得到物理快中各頁下一次訪問時間*/for(m=0;m=next[1]?0:1;for(m=2;mnext[max])max二m;/*下一次訪問時間都為pSIZE,那么置換物理塊中第一個*/memery[max]=page[i];for(j=0;jfor(j=0;j第一組數(shù)據(jù):運行結(jié)果按任意鍵進展初始化:載入數(shù)據(jù):進入置換算法選擇界面:運算中延遲操作:三種算法演示結(jié)果退出算法第二組數(shù)據(jù):運行結(jié)果2.按任意鍵進展初始化:載入數(shù)據(jù):進入置換算法選擇界面:運算中延遲操作:三種算法演示結(jié)果退出算法由于時間有限,本次設(shè)計完成的并不是很完美,下面從以下幾點來說明本次課程設(shè)計的個人體會:1.本次課程設(shè)計中做的比較好的地方:做的好的地方就是在于對題目意思的正確理解,以及在此根底上的模型設(shè)計。最開始一看題目的時候感覺很迷茫,有點不知道如何著手,等靜下心來仔細分析了程序,明確了目標,明確了思路,才對程序有了一個較為完整的實現(xiàn)。做得不太好的地方,以及以后如何改正:做得不太好的地方就是不能把自己所學(xué)的C知識和本次課程設(shè)計的相關(guān)知識很好的結(jié)合起來,以至于沒有很好的表達出本次課程設(shè)計的細節(jié)。在以后的過程中,我會運用本次課程設(shè)計中所學(xué)的知識,以及思考問題的方式和方法,爭取能夠發(fā)揚優(yōu)點,盡量克服不細心,不嚴謹?shù)热秉c。從本次設(shè)計中得到的收獲:通過本次

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論