操作系統(tǒng)課設(shè)-LRU-OPT_第1頁(yè)
操作系統(tǒng)課設(shè)-LRU-OPT_第2頁(yè)
操作系統(tǒng)課設(shè)-LRU-OPT_第3頁(yè)
操作系統(tǒng)課設(shè)-LRU-OPT_第4頁(yè)
操作系統(tǒng)課設(shè)-LRU-OPT_第5頁(yè)
已閱讀5頁(yè),還剩12頁(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、武漢理工大學(xué)操作系統(tǒng)課程設(shè)計(jì)學(xué) 號(hào): 01209103401課 程 設(shè) 計(jì)題 目請(qǐng)求頁(yè)式管理缺頁(yè)中斷模擬設(shè)計(jì)-LRU、OPT學(xué) 院計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院專(zhuān) 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)班 級(jí)計(jì)算機(jī)0901班姓 名指導(dǎo)教師王紅霞2012年1月11日課程設(shè)計(jì)任務(wù)書(shū)學(xué)生姓名: 專(zhuān)業(yè)班級(jí): 計(jì)算機(jī)0901班 指導(dǎo)教師: 王紅霞 工作單位: 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 題 目: 請(qǐng)求頁(yè)式管理缺頁(yè)中斷模擬設(shè)計(jì)- LRU、OPT初始條件:1預(yù)備內(nèi)容:閱讀操作系統(tǒng)的內(nèi)存管理章節(jié)內(nèi)容,了解有關(guān)虛擬存儲(chǔ)器、頁(yè)式存儲(chǔ)管理等概念,并體會(huì)和了解缺頁(yè)和頁(yè)面置換的具體實(shí)施方法。2實(shí)踐準(zhǔn)備:掌握一種計(jì)算機(jī)高級(jí)語(yǔ)言的使用。要求完成的主要任務(wù)

2、: (包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書(shū)撰寫(xiě)等具體要求)1實(shí)現(xiàn)指定淘汰算法。能夠處理以下的情形: 能夠輸入給作業(yè)分配的內(nèi)存塊數(shù); 能夠輸入給定的頁(yè)面,并計(jì)算發(fā)生缺頁(yè)的次數(shù)以及缺頁(yè)率; 缺頁(yè)時(shí),如果發(fā)生頁(yè)面置換,輸出淘汰的頁(yè)號(hào)。2設(shè)計(jì)報(bào)告內(nèi)容應(yīng)說(shuō)明: 課程設(shè)計(jì)目的與功能; 需求分析,數(shù)據(jù)結(jié)構(gòu)或模塊說(shuō)明(功能與框圖); 源程序的主要部分; 測(cè)試用例,運(yùn)行結(jié)果與運(yùn)行情況分析; 自我評(píng)價(jià)與總結(jié):i)你認(rèn)為你完成的設(shè)計(jì)哪些地方做得比較好或比較出色;ii)什么地方做得不太好,以后如何改正;iii)從本設(shè)計(jì)得到的收獲(在編寫(xiě),調(diào)試,執(zhí)行過(guò)程中的經(jīng)驗(yàn)和教訓(xùn));iv)完成本題是否有其他的其他方法(如果有

3、,簡(jiǎn)要說(shuō)明該方法);v)對(duì)實(shí)驗(yàn)題的評(píng)價(jià)和改進(jìn)意見(jiàn),請(qǐng)你推薦設(shè)計(jì)題目。時(shí)間安排:設(shè)計(jì)安排一周:周1、周2:完成程序分析及設(shè)計(jì)。周2、周3:完成程序調(diào)試及測(cè)試。周4、周5:驗(yàn)收,撰寫(xiě)課程設(shè)計(jì)報(bào)告。(注意事項(xiàng):嚴(yán)禁抄襲,一旦發(fā)現(xiàn),抄與被抄的一律按0分記)指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日請(qǐng)求頁(yè)式管理缺頁(yè)中斷模擬設(shè)計(jì) -LRU、OPT1 設(shè)計(jì)目的與功能1.1 設(shè)計(jì)目的鞏固并加深對(duì)虛擬存儲(chǔ)器、請(qǐng)求頁(yè)式存儲(chǔ)管理等概念的理解,掌握請(qǐng)求頁(yè)式管理中的置換算法的基本思想。并針對(duì)LRU(最近最久未使用頁(yè)面置換算法),以及OPT(理想型淘汰算法)兩種算法,利用高級(jí)語(yǔ)言,設(shè)計(jì)出相應(yīng)的模擬程

4、序。結(jié)合設(shè)計(jì)的程序,在理論聯(lián)系實(shí)際的基礎(chǔ)上,分析各個(gè)頁(yè)面置換算法的優(yōu)缺點(diǎn)。以及在對(duì)課程的整體把握上,提升對(duì)操作系統(tǒng)這門(mén)課程的全面認(rèn)識(shí)。1.2 設(shè)計(jì)功能本次課程設(shè)計(jì)需要實(shí)現(xiàn)LRU和OPT兩種置換算法。能夠?qū)崿F(xiàn)以下功能:1) 能夠輸入給作業(yè)分配的內(nèi)存塊數(shù);2) 能夠輸入給定的頁(yè)面,并計(jì)算發(fā)生缺頁(yè)的次數(shù)以及缺頁(yè)率; 3) 缺頁(yè)時(shí),如果發(fā)生頁(yè)面置換,輸出淘汰的頁(yè)號(hào)。在實(shí)現(xiàn)以上功能的前提下,程序也應(yīng)該達(dá)到正確性、可讀性、健壯性、效率與地存儲(chǔ)量要求等算法的5個(gè)特性。2 設(shè)計(jì)需求分析2.1 需求分析2.1.1 請(qǐng)求頁(yè)式管理的實(shí)現(xiàn)請(qǐng)求頁(yè)式管理是在靜態(tài)頁(yè)式管理的基礎(chǔ)上發(fā)展起來(lái)的,它允許只裝入部分頁(yè)面的程序和數(shù)據(jù)

5、,便啟動(dòng)運(yùn)行。此后,再通過(guò)調(diào)頁(yè)功能和頁(yè)面置換功能,陸續(xù)把即將要運(yùn)行的頁(yè)面調(diào)入內(nèi)存,同時(shí)把暫時(shí)不運(yùn)行的頁(yè)面換出到外存上,置換時(shí)以頁(yè)面為單位。為了能實(shí)現(xiàn)請(qǐng)求調(diào)頁(yè)和置換功能,系統(tǒng)必須提供必要的硬件支持和相應(yīng)的軟件。其中硬件支持包括:1) 請(qǐng)求分頁(yè)的頁(yè)表機(jī)制,它是在純分頁(yè)的頁(yè)表機(jī)制上增加若干項(xiàng)而形成的,作為請(qǐng)求分頁(yè)的數(shù)據(jù)結(jié)構(gòu);2) 缺頁(yè)中斷機(jī)構(gòu),當(dāng)要訪問(wèn)的頁(yè)面尚未調(diào)入內(nèi)存時(shí),便產(chǎn)生一缺頁(yè)中斷,以請(qǐng)求OS將所缺的頁(yè)調(diào)入內(nèi)存;3) 地址變換機(jī)構(gòu),它同樣是在純分頁(yè)地址變換機(jī)構(gòu)的基礎(chǔ)上形成的。2.1.2 置換算法分析請(qǐng)求頁(yè)式管理中的置換算法在內(nèi)存中沒(méi)有空閑頁(yè)時(shí)被調(diào)用,它的目的是選出一個(gè)被淘汰的頁(yè)面。如果內(nèi)存中

6、有足夠的空閑頁(yè)面存放調(diào)入的頁(yè),則不必使用置換算法。本次設(shè)計(jì)使用最近最久未使用頁(yè)面置換算法(least recently used,LRU)和理想型淘汰算法(optional replacement algorithm,OPT)。2.1.2.1 LRU置換算法最近最久未使用頁(yè)面置換算法(least recently used,LRU),該算法的基本思想是:當(dāng)需要淘汰某一頁(yè)時(shí),選擇離當(dāng)前時(shí)間最近的一段時(shí)間內(nèi)最久沒(méi)有使用過(guò)的頁(yè)先淘汰。該算法的主要出發(fā)點(diǎn)是,如果某頁(yè)被訪問(wèn)了,則它可能馬上還要被訪問(wèn),或者如果某頁(yè)很長(zhǎng)時(shí)間未被訪問(wèn),則它在最近一段時(shí)間也不會(huì)被訪問(wèn)。2.1.2.2 OPT置換算法理想型淘汰算

7、法(optional replacement algorithm,OPT),該算法淘汰在訪問(wèn)串中將來(lái)再也不出現(xiàn)的或者是在離當(dāng)前最遠(yuǎn)的位置上出現(xiàn)的頁(yè),這樣淘汰掉該頁(yè)將不會(huì)造成因需要訪問(wèn)該頁(yè)又立即把它調(diào)入的現(xiàn)象。這種算法難以實(shí)現(xiàn),因?yàn)樗蟊仨氼A(yù)先知道每一個(gè)進(jìn)程的訪問(wèn)串。請(qǐng)求頁(yè)式管理的具體實(shí)現(xiàn)過(guò)程如圖1所示。2.2 數(shù)據(jù)結(jié)構(gòu)及功能框圖2.2.1 數(shù)據(jù)結(jié)構(gòu)程序是以基本的變量和結(jié)構(gòu)體實(shí)現(xiàn),在兩種算法中有大量的代碼重用,故采用宏定義(#define LO(wname)等,使代碼更加簡(jiǎn)化。/- - - - - - - - - - - 基本數(shù)據(jù)變量說(shuō)明- - - - - - - - - - - - - in

8、t input; /輸入的頁(yè)面數(shù)int num; /內(nèi)存塊允許裝入頁(yè)面數(shù)int *in; /準(zhǔn)備調(diào)入的頁(yè)面序列 int *memory; /用來(lái)記錄進(jìn)入內(nèi)存的頁(yè)面信息struct pageint Pnumber; /頁(yè)面的頁(yè)號(hào)int Mnumber; /在內(nèi)存中對(duì)應(yīng)的塊號(hào)int stayin; /是否在內(nèi)存中;page PtotalN; /對(duì)N個(gè)頁(yè)面進(jìn)行操作開(kāi)始結(jié)束請(qǐng)求頁(yè)面序列是否結(jié)束頁(yè)面是否在內(nèi)存中內(nèi)存塊是否已滿選擇要調(diào)入頁(yè)面放入未被占用的內(nèi)存塊中,修改頁(yè)表利用算法,選擇應(yīng)該替換的頁(yè)面并修改YYYNNN圖1 請(qǐng)求頁(yè)式管理實(shí)現(xiàn)過(guò)程/- - - - - - - - - - - 基本操作的函數(shù)原型

9、說(shuō)明- - - - - - - - - - - - - void LRU(); /實(shí)現(xiàn)LRU算法的函數(shù)void OPT(); /實(shí)現(xiàn)OPT算法的函數(shù)int getLRU(int page); /LRU中頁(yè)面置換函數(shù),對(duì)給定的頁(yè)page,替換頁(yè)框中的頁(yè)int getOPT(int page); /OPT中頁(yè)面置換函數(shù),對(duì)給定的頁(yè)page,替換頁(yè)框中的頁(yè)#define LO(wname); /對(duì)LRU和OPT中的前num個(gè)頁(yè)的公操作處理#define get(smblx,smbly,smblz); /頁(yè)面置換過(guò)程的公操作,用smblx等變量替換 2.2.2 程序功能框圖程序中首先輸入頁(yè)面的數(shù)目存入

10、input中,輸入頁(yè)框的數(shù)目存入num中,在按次序輸入頁(yè)面號(hào)碼,存入in數(shù)組中。程序給出選擇,當(dāng)進(jìn)行LRU模塊時(shí),LRU模塊對(duì)頁(yè)面進(jìn)行分配,當(dāng)出現(xiàn)缺頁(yè)調(diào)用getLRU()進(jìn)行缺頁(yè)處理,而OPT模塊與之類(lèi)似。程序功能框圖如圖2。Main()getOPT (int page)getLRU(int page)OPT()LRU()圖2 程序功能框圖3 源程序的主要部分3.1 源程序簡(jiǎn)介本次設(shè)計(jì)中LRU以及OPT算法中頁(yè)面置換的思想,分別對(duì)照頁(yè)框的內(nèi)容,向前查找最久未被使用的頁(yè)面號(hào)和向后查找最后被使用的頁(yè)面號(hào),將其替換之。在設(shè)計(jì)的思想上可以轉(zhuǎn)化為以當(dāng)前即將調(diào)入的頁(yè)面為中心,LRU為向前查找離中心最遠(yuǎn)的頁(yè)

11、號(hào),而OPT為向后查找離中心最遠(yuǎn)的頁(yè)號(hào)。這樣在方法上有了共同之處,以此可以通過(guò)對(duì)相同的代碼進(jìn)行宏定義。3.2 源程序核心代碼3.2.1 main函數(shù)代碼main函數(shù)實(shí)現(xiàn)對(duì)各輸入數(shù)據(jù)及待數(shù)據(jù)結(jié)構(gòu)的初始化,以及通過(guò)選擇來(lái)調(diào)用LRU或OPT算法。偽代碼如下:int main() /頁(yè)號(hào)、塊號(hào)、頁(yè)面順序的輸入,以及初始化等工作。while(true) /部分全局變量的初始化工作,每次循環(huán)需重新開(kāi)始 char chose;cout請(qǐng)您選擇:1、LRU算法endl;cout 2、OPT算法endl;cout 3、退出endl; cout*chose;if(chose!=1&chose!=2)break;s

12、witch(chose)case 1:LRU();break;case 2:OPT();break; cout*endl;3.2.2 LRU及OPT函數(shù)代碼LRU和OPT的主要思想有許多共同之處,所以通過(guò)宏定義,來(lái)實(shí)現(xiàn)程序的共同功能。程序中都是通過(guò)LO宏來(lái)實(shí)現(xiàn)的,區(qū)別在于傳遞的參數(shù)不同,即LRU函數(shù)調(diào)用getLRU()子函數(shù)。而OPT函數(shù)調(diào)用getOPT()函數(shù)。void LRU() coutLRU替換算法過(guò)程如下:endl; LO(LRU); /通過(guò)LO宏,傳遞LRU給get#wname(int page),即getLRU(int page)void OPT() coutOPT替換算法過(guò)程如

13、下:endl; LO(OPT); /通過(guò)LO宏,傳遞OPT給get#wname(int page),即getOPT(int page)3.2.3 LO(wname)宏的代碼LO宏是用來(lái)對(duì)LRU和OPT的置換進(jìn)行公處理的,即在內(nèi)存塊未滿,或者不需要發(fā)生置換時(shí)兩者的代碼是相同的,而唯一不同在于缺頁(yè)中斷處理函數(shù),getLRU(int page)或者getOPT(int page)。所以,通過(guò)宏定義,把不同的代碼作為參數(shù)傳遞,來(lái)實(shí)現(xiàn)不同函數(shù)的功能。偽代碼如下:#define LO(wname)int i,missTime=0,replace=0,full=0,page=0; /i 為循環(huán)控制變量,mi

14、ssTime為缺頁(yè)次數(shù)/replace代表置換的頁(yè)框號(hào)full為控制變量,page為頁(yè)面數(shù)do /實(shí)現(xiàn)塊未滿時(shí)的頁(yè)面分配,LRU和OPT相同while(full!=num);for( i=page;iinput;i+)if(Ptotalini.stayin =1) coutini號(hào)頁(yè)已在頁(yè)框中,endl;elsemissTime+;replace=get#wname(i); /根據(jù)傳遞的參數(shù)不同,調(diào)度不同的函數(shù),返回頁(yè)框號(hào) /進(jìn)行頁(yè)面替換coutendl經(jīng)統(tǒng)計(jì):缺頁(yè)次數(shù):missTime次缺頁(yè)率double(missTime)/input*100%=0,=0,等 return getNum;

15、/返回頁(yè)框號(hào) int getOPT(int page) get(+,); /get宏,傳遞的參數(shù)為+,等 return getNum; /返回頁(yè)框號(hào)3.2.5 get(smblx,smbly,smblz)宏的代碼getLRU和getOPT的搜索算法在思想上相似,即前者向前搜索頁(yè)第一次出現(xiàn)的申請(qǐng)序號(hào),而后者是向后搜索接下來(lái)第一次出現(xiàn)的申請(qǐng)序號(hào),所以用get宏來(lái)對(duì)相同代碼進(jìn)行公操作,偽代碼如下:#define get(smblx,smbly,smblz) for(i=0;inum;i+)for(int j=0;j10;j+)if(Ptotalj.Mnumber=i)for(int t=page#s

16、mblx 1;t#smbly;t#smblx#smblx) /宏填充部分,填充內(nèi)容如上 /向前或后找出該頁(yè)第一次申請(qǐng)的序號(hào)for(i=0;inum;i+)if(geti#smblz getgetNum) /返回將要被置換的頁(yè)號(hào),存入到getNUM中g(shù)etNum=i; 4 測(cè)試4.1測(cè)試用例設(shè)計(jì)請(qǐng)求分頁(yè)管理系統(tǒng)中,有一用戶作業(yè),它一次要訪問(wèn)的頁(yè)的序列是:2 3 2 1 5 2 4 5 3 2 5 2 共12頁(yè),若分配給作業(yè)可以使用的主存空間供3個(gè)物理塊,則LRU和OPT的置換算法的頁(yè)面分配如表1和表2。表1 LRU頁(yè)面置換算法LRU2 32152453252頁(yè)1222222223333頁(yè)2333

17、55555555頁(yè)3111444222判斷共產(chǎn)生7次缺頁(yè)中斷,淘汰頁(yè)號(hào)分別為:3, 1 ,2, 4 缺頁(yè)率:58.33%表2 OPT頁(yè)面置換算法OPT2 32152453252頁(yè)1222222444222頁(yè)233333333333頁(yè)3155555555判斷共產(chǎn)生6次缺頁(yè)中斷,淘汰頁(yè)號(hào)分別為: 1 ,2 ,4 缺頁(yè)率:50%4.2 運(yùn)行結(jié)果及情況分析根據(jù)測(cè)試用例,對(duì)結(jié)果進(jìn)行測(cè)試分析,以下為程序的分析過(guò)程。1) 程序首先需要輸入頁(yè)面數(shù)、頁(yè)框數(shù),然后給出頁(yè)面請(qǐng)求序列,最后可以對(duì)頁(yè)面置換算法進(jìn)行選擇(LRU和OPT的選擇),在每執(zhí)行完一次后,程序會(huì)繼續(xù)給出選擇界面,方面兩種算法過(guò)程和結(jié)果的對(duì)照。程序的

18、輸入界面如圖3所示;圖3 輸入界面 2) 在輸入界面中輸入1,則程序調(diào)用LRU頁(yè)面替換算法,則程序的頁(yè)面分配過(guò)程,缺頁(yè)率,缺頁(yè)次數(shù)會(huì)被一一列出,從過(guò)程可以看出,頁(yè)面替換的順序?yàn)?,1,2,4,這與用例的正確結(jié)果吻合,達(dá)到了算法的目的,具體情況如圖4所示:圖4 LRU替換算法過(guò)程和結(jié)果3)當(dāng)輸入2時(shí),程序調(diào)用OPT算法,程序的頁(yè)面分配情況,缺頁(yè)次數(shù)及缺頁(yè)率如圖5所示,從圖中可以看出,程序中被替換掉的頁(yè)面分別為1,2,4,這也和用例吻合,得出了正確的結(jié)果,OPT算法的缺頁(yè)次數(shù)為6,缺頁(yè)率為50%。圖5 OPT替換算法過(guò)程和結(jié)果小結(jié):從程序的運(yùn)行結(jié)果和輸出情況可以看出,程序有良好的交互界面,有正確的

19、結(jié)果,并且有一定的健壯性,如對(duì)于用例中的2 3 2,程序在沒(méi)有在未用完頁(yè)框的情況下直接給第三次請(qǐng)求的2號(hào)頁(yè)分配一個(gè)新頁(yè)框,這說(shuō)明程序有嚴(yán)謹(jǐn)?shù)倪壿嫴襟E。5 評(píng)價(jià)和總結(jié)5.1 自我評(píng)價(jià)本次課程設(shè)計(jì)用時(shí)用高級(jí)語(yǔ)言模擬系統(tǒng)中的頁(yè)面置換算法,從整體上達(dá)到了設(shè)計(jì)的目的和要求。我的設(shè)計(jì)思路是首先,要對(duì)問(wèn)題有一個(gè)整體而全面的認(rèn)識(shí),抓住問(wèn)題的核心所在;其次,要針對(duì)問(wèn)題,主要是核心癥結(jié),給出設(shè)計(jì)思想,這時(shí)可以查閱書(shū)籍或搜尋網(wǎng)上資料,輔助自己對(duì)的問(wèn)題理解,以確保設(shè)計(jì)思想的正確性;再次,解決核心問(wèn)題,在此基礎(chǔ)之上,為設(shè)計(jì)豐滿羽翼,達(dá)到算法所要求的5個(gè)特性:正確性、可讀性、健壯性、效率與地存儲(chǔ)量要求;最后,對(duì)程序反復(fù)調(diào)

20、試,盡己所能把算法精簡(jiǎn)改進(jìn)。就設(shè)計(jì)優(yōu)點(diǎn)來(lái)談,首先程序的思想與計(jì)算機(jī)操作系統(tǒng)頁(yè)面置換算法(LRU,OPT)的思想吻合,這樣確保了程序的正確性和可讀性,并且從本質(zhì)上體會(huì)到頁(yè)面置換算法思想的精髓所在;其次,程序中的大部分的數(shù)據(jù)結(jié)構(gòu)僅僅為簡(jiǎn)單的變量和結(jié)構(gòu)體數(shù)組,沒(méi)有冗雜的指針和鏈表,使程序用盡量簡(jiǎn)單的方法實(shí)現(xiàn)了盡量多的功能;最后,針對(duì)LRU和OPT算法中思想的相似處,我采用了宏定義,不僅大大優(yōu)化了代碼使最后的代碼大量的減少,而且使兩種算法的區(qū)別明顯的體現(xiàn)出來(lái),易于對(duì)兩種置換算法的仔細(xì)斟酌、比較。本次課程設(shè)計(jì)的缺點(diǎn)為實(shí)驗(yàn)的平臺(tái)仍是控制臺(tái)程序(DOS環(huán)境),所以在以后的設(shè)計(jì)中,將嘗試VC界面程序。5.2

21、收獲和改進(jìn)本次課設(shè)的收獲分為兩點(diǎn):在對(duì)課程內(nèi)容上,從模擬缺頁(yè)中斷頁(yè)面置換算法中進(jìn)一步理解了操作系統(tǒng)原理,對(duì)這門(mén)課程有了更深的認(rèn)識(shí),并且激起了想進(jìn)一步了解如windows操作系統(tǒng)(windows核心編程)的興趣;在對(duì)編程技巧方面,從了解MFC后,對(duì)MFC中的宏定義有了一定的了解和認(rèn)識(shí),發(fā)現(xiàn)宏定義也是一種巧妙的封裝方法。本程序中兩次使用了宏定義,程序在編譯的過(guò)程會(huì)將代碼插入到宏調(diào)用處,但在程序的讀者看來(lái),程序會(huì)更加的精簡(jiǎn)、明了,易于對(duì)比。程序從設(shè)計(jì)技巧來(lái)說(shuō)還有許多其他的方法,如對(duì)于LRU算法可以用隊(duì)列來(lái)記錄頁(yè)面置換的順序,而與之對(duì)應(yīng)的OPT算法則可以棧來(lái)記錄接下來(lái)要調(diào)入頁(yè)面的次序。在記錄LRU(最

22、近最久未使用)時(shí),也可以用NUM*NUM的二階數(shù)組來(lái)記錄等。5.3 評(píng)價(jià)和意見(jiàn)本次課程設(shè)計(jì)是對(duì)操作系統(tǒng)這門(mén)課程理論知識(shí)的映射,不同的題目是對(duì)不同知識(shí)模塊進(jìn)行模擬,在實(shí)踐的基礎(chǔ)上加深了對(duì)操作系統(tǒng)理論的認(rèn)識(shí),在某種程度上得到了提高。對(duì)本次課程設(shè)計(jì)的意見(jiàn)如下:因?yàn)椴僮飨到y(tǒng)這門(mén)課程中并沒(méi)有直接涉及到某個(gè)操作系統(tǒng)(Windows、Linux等)的設(shè)計(jì)過(guò)程的講解,課程內(nèi)容過(guò)于理論化,而在課程設(shè)計(jì)的過(guò)程中題目過(guò)于細(xì)節(jié)化,從而對(duì)操作系統(tǒng)失去總體觀念。希望課程設(shè)計(jì)中題目應(yīng)當(dāng)為兩個(gè)不同的知識(shí)點(diǎn),在一定程度上加深難度,也擴(kuò)充了理解的知識(shí)面。6 參考文獻(xiàn)1 張堯?qū)W,計(jì)算機(jī)操作系統(tǒng)教程,清華大學(xué)出版社,2005年6月2

23、 閔聯(lián)營(yíng),c+程序設(shè)計(jì)教程武漢理工大學(xué)出版社,2005年7月3 王艷平,Windows 程序設(shè)計(jì)(第二版),人民郵電出版社,2010年2月附:源代碼#include#includeusing namespace std;int input,num,*in,*memory; struct pageint Pnumber;int Mnumber;int stayin;page Ptotal10; void LRU();void OPT();int getLRU(int page);int getOPT(int page);int main()cout*endl; cout請(qǐng)輸入準(zhǔn)備調(diào)入頁(yè)面的數(shù)目:

24、input; cout請(qǐng)輸入物理塊數(shù)目num;in= new intinput; memory=new intnum; cout請(qǐng)依次輸入input個(gè)頁(yè)面號(hào)(0-9)endl; int i,temp; for( i=0;itemp;ini=temp; cout*endl;while(true) for(int n=0;n10;n+) Ptotaln.Pnumber=n;Ptotaln.Mnumber=-1;Ptotaln.stayin =0;for(i=0;inum;i+) memoryi=-1; char chose;coutendl;cout請(qǐng)您選擇:1、LRU算法endl;cout 2、

25、OPT算法endl;cout 3、退出endl; cout*chose;if(chose!=1&chose!=2)break;switch(chose)case 1:LRU();break;case 2:OPT();break; cout*endl;delete in;delete memory;return 0;#define LO(wname)int i,missTime=0,replace=0,full=0,page=0;do if(Ptotalinpage.stayin =1)coutinpage號(hào)頁(yè)已在頁(yè)框中,endl;page+;if(page=input)break;else c

26、ontinue;elsemissTime+;coutinpage號(hào)頁(yè)不在頁(yè)框中,將其調(diào)入full號(hào)頁(yè)框中,endl;memoryfull=inpage;for(int j=0;j10;j+)if( Ptotalj.Mnumber= full) Ptotalj.Mnumber=-1; Ptotalj.stayin=0;break;Ptotalinpage.stayin=1;Ptotalinpage.Mnumber=full; full+;page+;if(page=input) break;while(full!=num);for( i=page;iinput;i+)if(Ptotalini.stayin =1)coutini號(hào)頁(yè)已在頁(yè)框中,endl;elsemissTime+;repla

溫馨提示

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