操作系統(tǒng)課程設(shè)計(jì)報(bào)告書(shū)_第1頁(yè)
操作系統(tǒng)課程設(shè)計(jì)報(bào)告書(shū)_第2頁(yè)
操作系統(tǒng)課程設(shè)計(jì)報(bào)告書(shū)_第3頁(yè)
操作系統(tǒng)課程設(shè)計(jì)報(bào)告書(shū)_第4頁(yè)
操作系統(tǒng)課程設(shè)計(jì)報(bào)告書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(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)介

設(shè)計(jì)題目:設(shè)計(jì)一個(gè)虛擬存儲(chǔ)區(qū)和內(nèi)存工作區(qū)要求完成的主要任務(wù)通過(guò)模擬實(shí)現(xiàn)請(qǐng)求頁(yè)式存儲(chǔ)管理的幾種基本頁(yè)面置換算法,了解虛擬存儲(chǔ)技術(shù)的特點(diǎn),設(shè)計(jì)一個(gè)虛擬存儲(chǔ)區(qū)和內(nèi)存工作區(qū),并使用下述算法計(jì)算訪問(wèn)命中率。3、最近最久未使用算法(LRU)應(yīng)的頁(yè)地址流,并針對(duì)不同的算法計(jì)算出相應(yīng)的命中率。1設(shè)計(jì)題目與要求2設(shè)計(jì)思想3系統(tǒng)結(jié)構(gòu)4數(shù)據(jù)結(jié)構(gòu)的說(shuō)明和模塊的算法流程圖5使用說(shuō)明書(shū)(即用戶手冊(cè)):內(nèi)容包含如何登錄、退出、讀、寫(xiě)等操作說(shuō)明6運(yùn)行結(jié)果和結(jié)果分析(其中包括實(shí)驗(yàn)的檢查結(jié)果、程序的運(yùn)行情況)8附錄:程序清單,注意加注釋(包括關(guān)鍵字、方法、變量等在每個(gè)模塊前加時(shí)間安排課程設(shè)計(jì)報(bào)告書(shū)一.設(shè)計(jì)題目:設(shè)計(jì)一個(gè)虛擬存儲(chǔ)區(qū)和內(nèi)存工作區(qū)1、設(shè)計(jì)一個(gè)虛擬存儲(chǔ)區(qū)和內(nèi)存工作區(qū),并使用下述算法計(jì)算訪問(wèn)命中率。①最佳淘汰算法(OPT)②先進(jìn)先出的算法(FIFO)③最近最久未使用算法(LRU)頁(yè)地址流,并針對(duì)不同的算法計(jì)算出相應(yīng)的命中率。2、所編輯的程序能夠在Linux系統(tǒng)中GCC環(huán)境下正常運(yùn)行。先建立三種算法的基本結(jié)構(gòu),再在主程序中調(diào)用,并實(shí)現(xiàn)其功能。1、最近最久未使用(LRU)置換算法的思路最近最久未使用置換算法的實(shí)質(zhì)是當(dāng)需要置換一頁(yè)時(shí),選擇最長(zhǎng)時(shí)間未被使用的那一頁(yè)淘汰。為了能檢測(cè)出那一頁(yè)長(zhǎng)時(shí)間未被使用我們可以設(shè)置一個(gè)計(jì)數(shù)器oldest2(),把每一次放入固定內(nèi)存內(nèi)的序列數(shù)做一個(gè)統(tǒng)計(jì),通過(guò)選擇將計(jì)數(shù)最少的數(shù)淘汰出去。2、最佳淘汰(OPT)置換算法的思路最佳算法是當(dāng)調(diào)入一新頁(yè)而必須先淘汰一舊頁(yè),所淘汰的那一頁(yè)應(yīng)是以后不再使用的,或者是在最長(zhǎng)時(shí)間段之后才會(huì)用到的頁(yè)。這就需要我們先要知道所要放入頁(yè)的內(nèi)容,然后逐一判斷那些頁(yè)應(yīng)該在放入內(nèi)存后可以被淘汰。這個(gè)我用oldest能,先用兩個(gè)循環(huán)對(duì)內(nèi)存中的數(shù)與隨機(jī)序列對(duì)比,看有沒(méi)有相等的數(shù),然后利用計(jì)數(shù)器oldest2()返回未來(lái)最長(zhǎng)時(shí)間不使用的頁(yè)面位置。3、先進(jìn)先出(FIFO)置換算法的思路一個(gè)查詢函數(shù)IsInBuf()來(lái)判斷所要置換的頁(yè)面與內(nèi)存中的頁(yè)面是否有重復(fù),重復(fù)不置換,不重復(fù)就利用一個(gè)賦值語(yǔ)句將舊頁(yè)置換出來(lái),這里最重要的是頁(yè)號(hào)的操作,可以利用一個(gè)控制語(yǔ)句old=(old+1)%(int)B來(lái)進(jìn)行頁(yè)面的轉(zhuǎn)換。四.系統(tǒng)結(jié)構(gòu):(LRU)模塊主程序模塊使用最佳淘汰算法(OPT)使用最近最久未使用算法(LRU)的命中率模塊使用先進(jìn)先出的算法(FIFO)的命中率最佳淘汰算法(OPT)模塊程序系統(tǒng)結(jié)構(gòu)圖五.?dāng)?shù)據(jù)結(jié)構(gòu)的說(shuō)明和模塊的算法流程圖作業(yè)的頁(yè)面走向(執(zhí)行過(guò)程中對(duì)頁(yè)面的訪問(wèn)順序)用數(shù)組,頁(yè)面走向的長(zhǎng)度控制以-1為頁(yè)框(作業(yè)分得的物理塊)在不同置換算法執(zhí)行之前長(zhǎng)度由不同的置換算法其數(shù)據(jù)結(jié)構(gòu)算法的流程圖算法的流程圖假判斷i<N真j=IsInBuf(buf,list[i];判斷是否置換真判斷buf[old]==-1假輸出空字符輸出置換頁(yè)buf[old]將新的序列裝入內(nèi)存中buf[old]=list[i]輸出空字符;i++;假真假判斷i<N真j=IsInBuf(buf,list[i];假判斷是否置換假真輸出置換頁(yè)buf[old]將新的序列裝入內(nèi)存中buf[old]=list[i]將位置換內(nèi)存技術(shù)數(shù)組清零:f[j]=0;輸出空字符;i++;假判斷i<N真j=IsInBuf(buf,list[i];假判斷是否置換假真輸出置換頁(yè)buf[old]將新的序列裝入內(nèi)存中buf[old]=list[i]輸出空字符;i++;1.2gedit文件名&(打開(kāi)Linux系統(tǒng)內(nèi)置的編譯器并把文件導(dǎo)入文本區(qū))1.4再次輸入./a.out(運(yùn)行源程序并得出結(jié)果)2.1直接將編好的文件導(dǎo)入到編譯器中2.2如圖按鈕執(zhí)行編譯運(yùn)行操作2.3退出直接關(guān)閉編譯器即可七.運(yùn)行結(jié)果及分析八.自我評(píng)價(jià)與總結(jié)到位,對(duì)于函數(shù)的形參與實(shí)參之間的轉(zhuǎn)化還不是很清楚。雖然在學(xué)習(xí)課本知識(shí)的時(shí)候感覺(jué)老行結(jié)果的一次又一次的檢查還有在老師的幫助下我才慢慢的洞察到自己到底哪里出現(xiàn)了問(wèn)題,在設(shè)置置換標(biāo)志與判斷是否置換的條件設(shè)計(jì)上出現(xiàn)了考慮不周全的情況。在找空閑物理時(shí)候都是把0替換出去,才恍然大悟,既然頁(yè)面序列數(shù)有0就不能用0來(lái)表示空閑物理塊,后來(lái)?yè)Q成-1問(wèn)題就解決了??偠灾?,雖然程序不是很完美,但是付出了汗水,也收獲了結(jié)果,今后對(duì)于此類問(wèn)題的設(shè)計(jì)可以有一個(gè)很好的借鑒意義。希望能有下一次的實(shí)踐機(jī)會(huì),爭(zhēng)取在程序設(shè)計(jì)的界面和/* -----------------------------------------------------------------intIsInBuf(intbuf[],intx){inti,j=-1;{if(buf[i]==x){j=i;break;}elseif(buf[i]==-1){buf[i]=x;j=i;break;}}}/*----------------------------------------------------------------------------------------------------------------------------------------------------------*/intoldest(intlist[],intbuf[{inti,j;for(i=0;i<B;i++){{if(buf[i]==list[j])break;}f[i]=j;}}/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/{for(i=0;i<B;i++){if(f[i]>max){max=f[i];j=i;}f[i]++;}}/*---------------------------------------------------------------------------------------------------------------------------------------------------------*/{intlist[N];intbuf[B],f[B],i,j,k,max,min;intold=0;printf("本程序假設(shè)內(nèi)存為程序分配的內(nèi)存塊數(shù)是4!\n");/*生成一系列隨機(jī)數(shù)并初始化環(huán)境*/for(i=0;i<B;i++)buf[i]=f[i]=-1;for(i=0;i<N;i++){printf("%2d",list[i]);}printf("\n");/*顯示OPT淘汰頁(yè)面的序列*/for(i=0;i<B;i++)buf[i]=f[i]=-1;{j=IsInBuf(buf,list[i]);if(j==-1){buf[old]=list[i];f[old]=0;}{printf("");}}/*輸出OPT算法的命中率*//*顯示FIFO淘汰頁(yè)面的序列*/for(i=0;i<B;i++)buf[i]=-{j=IsInBuf(buf,list[i]);if(j==-1){if(buf[old]==-1)printf("");buf[old]=list[i];}printf("");}/*輸出FIFO算法的命中率*//*顯示LRU淘汰頁(yè)面的序列*/for(i=0;i<B;i++)buf[i]=f[i]=-1;{j=IsInBuf(buf,list[i]);if(j==-1){buf[old]=list[i];f[old]=0;}{f[j]=0;print

溫馨提示

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