頁(yè)面置換算法模擬程序-附代碼_第1頁(yè)
頁(yè)面置換算法模擬程序-附代碼_第2頁(yè)
頁(yè)面置換算法模擬程序-附代碼_第3頁(yè)
頁(yè)面置換算法模擬程序-附代碼_第4頁(yè)
頁(yè)面置換算法模擬程序-附代碼_第5頁(yè)
已閱讀5頁(yè),還剩21頁(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、目 錄1問(wèn)題的提出問(wèn)題的提出.11.1 關(guān)于頁(yè)面置換算法模擬程序問(wèn)題的產(chǎn)生.11.2 任務(wù)分析 .12需求分析需求分析.13方案設(shè)計(jì)方案設(shè)計(jì).24總體設(shè)計(jì)總體設(shè)計(jì).34.1 程序 N-S 圖 .34.2 主要的函數(shù).34.3 主要流程圖及代碼 .44.3.1 FIFO(先進(jìn)先出).44.3.2 LRU(最近最久未使用).54.3.3 OPT(最佳置換算法).74.4 實(shí)現(xiàn)結(jié)果 .105程序測(cè)試程序測(cè)試.145.1 設(shè)計(jì)測(cè)試數(shù)據(jù) .145.2 測(cè)試結(jié)果及分析 .15摘 要隨著計(jì)算機(jī)的普及人們的物質(zhì)生活得到了極大的滿足,人們?cè)诰裆罘矫嫱瑯右残桧?yè)面置換算法模擬程序要提高,所以越來(lái)越多的人進(jìn)行著各

2、種各樣的學(xué)習(xí)。 操作系統(tǒng)是計(jì)算機(jī)教學(xué)中最重要的環(huán)節(jié)之一,也是計(jì)算機(jī)專業(yè)學(xué)生的一門(mén)重要的專業(yè)課程。操作系統(tǒng)質(zhì)量的好壞,直接影響整個(gè)計(jì)算機(jī)系統(tǒng)的性能和用戶對(duì)計(jì)算機(jī)的使用。一個(gè)精心設(shè)計(jì)的操作系統(tǒng)能極大地?cái)U(kuò)充計(jì)算機(jī)系統(tǒng)的功能,充分發(fā)揮系統(tǒng)中各種設(shè)備的使用效率,提高系統(tǒng)工作的可靠性。由于操作系統(tǒng)涉及計(jì)算機(jī)系統(tǒng)中各種軟硬件資源的管理,內(nèi)容比較繁瑣,具有很強(qiáng)的實(shí)踐性。要學(xué)好這門(mén)課程,必須把理論與實(shí)踐緊密結(jié)合,才能取得較好的學(xué)習(xí)效果.本課程設(shè)計(jì)是學(xué)生學(xué)習(xí)完操作系統(tǒng)教程課程后,進(jìn)行的一次全面的綜合訓(xùn)練,通過(guò)課程設(shè)計(jì),讓學(xué)生更好地掌握操作系統(tǒng)的原理及實(shí)現(xiàn)方法,加深對(duì)操作系統(tǒng)基礎(chǔ)理論和重要算法的理解,加強(qiáng)學(xué)生的動(dòng)手

3、能力。 熟悉頁(yè)面置換算法及其實(shí)現(xiàn),引入計(jì)算機(jī)系統(tǒng)性能評(píng)價(jià)方法的概念。關(guān)鍵詞:關(guān)鍵詞:編制頁(yè)面置換算法模擬程序、打印頁(yè)面、FIFO 頁(yè)面算法、LRU 頁(yè)面置換算法、OPT 頁(yè)面置換算法。頁(yè)面置換算法模擬程序引 言1 1問(wèn)題的提出問(wèn)題的提出1.11.1 關(guān)于頁(yè)面置換算法模擬程序問(wèn)題的產(chǎn)生關(guān)于頁(yè)面置換算法模擬程序問(wèn)題的產(chǎn)生在各種存儲(chǔ)器管理方式中,有一個(gè)共同的特點(diǎn),即它們都要求將一個(gè)作業(yè)全部裝入內(nèi)存方能運(yùn)行,但是有兩種情況:(1) 有的作業(yè)很大,不能全部裝入內(nèi)存,致使作業(yè)無(wú)法運(yùn)行;(2) 有大量作業(yè)要求運(yùn)行,但內(nèi)存容量不足以容納所有這些作業(yè)。而虛擬內(nèi)存技術(shù)正式從邏輯上擴(kuò)充內(nèi)存容量,將會(huì)解決以上兩個(gè)問(wèn)題

4、。從內(nèi)存中調(diào)出一頁(yè)程序或數(shù)據(jù)送磁盤(pán)的對(duì)換區(qū)中,通常,把選擇換出的頁(yè)面的算法稱為頁(yè)面置換算法(Page-Replacement Algorithms) 。進(jìn)而頁(yè)面置換算法模擬程序能客觀的將其工作原理展現(xiàn)在我們面前。1.21.2 任務(wù)分析任務(wù)分析首先,定義宏變量,設(shè)置所占最大內(nèi)存長(zhǎng)度。編輯以時(shí)間為種子,初始化隨即發(fā)生器。進(jìn)行相關(guān)頁(yè)面輸入程序的編寫(xiě)以及頁(yè)面的打印。爾后,尋找最近最近最久未使用的頁(yè)面 、記錄當(dāng)前內(nèi)存塊中頁(yè)面離下次使用間隔長(zhǎng)度等相關(guān)程序的代碼編寫(xiě)。最后,進(jìn)行)FIFO 、LRU、 OPT 三種算法的編寫(xiě)。2 2需求分析需求分析 1. 用隨機(jī)數(shù)方法產(chǎn)生頁(yè)面走向,頁(yè)面走向長(zhǎng)度為 L。2. 根

5、據(jù)頁(yè)面走向,分別采用 FIFO 和 LRU 算法進(jìn)行頁(yè)面置換,統(tǒng)計(jì)缺頁(yè)率;為簡(jiǎn)化操作,在淘汰一頁(yè)時(shí),只將該頁(yè)在頁(yè)表中抹去,而不再判斷它是否被改寫(xiě)過(guò),也不將它寫(xiě)回到輔存。3. 假定可用內(nèi)存塊和頁(yè)表長(zhǎng)度 (作業(yè)的頁(yè)面數(shù))分別為 m 和 k,初始時(shí),作業(yè)頁(yè)面都不在內(nèi)存。隨機(jī)數(shù)產(chǎn)生程序:int i,j;頁(yè)面置換算法模擬程序 j=time(NULL);/取時(shí)鐘時(shí)間 srand(j);/以時(shí)鐘時(shí)間 x 為種子,初始化隨機(jī)數(shù)發(fā)生器cout輸出隨機(jī)數(shù): ; for(i=0;im;i+) pi.num=rand( )%10+1;/產(chǎn)生 1 到 10 之間的隨即數(shù)放到數(shù)組 p 中 pi.time=0;coutpi

6、.num ; 上述隨機(jī)數(shù)發(fā)生函數(shù)產(chǎn)生的隨機(jī)數(shù)為 0.01.0,稍另變化就可得到0n1 之間的隨機(jī)數(shù)。程序開(kāi)始時(shí),應(yīng)對(duì)變量 Seed (實(shí)型)賦初值。根據(jù)頁(yè)面置換算法的理論操作及要求,首先要進(jìn)行頁(yè)面長(zhǎng)度的確定,定義結(jié)構(gòu)體用以儲(chǔ)存數(shù)據(jù),進(jìn)行主界面代碼及 FIFO、LRU、OPT 頁(yè)面置換算法代碼的編寫(xiě)。3 3方案設(shè)計(jì)方案設(shè)計(jì)首先,定義宏變量,設(shè)置所占最大內(nèi)存長(zhǎng)度。編輯以時(shí)間為種子,初始化隨即發(fā)生器。進(jìn)行相關(guān)頁(yè)面輸入程序的編寫(xiě)以及頁(yè)面的打印。其次,尋找最近最近最久未使用的頁(yè)面 、記錄當(dāng)前內(nèi)存塊中頁(yè)面離下次使用間隔長(zhǎng)度等相關(guān)程序的代碼編寫(xiě)。最后,進(jìn)行 FIFO 、LRU、 OPT 三種算法的編寫(xiě)。程序

7、運(yùn)行平臺(tái)VC+6.0具體操作如下:在 VC+6.0 的環(huán)境下準(zhǔn)備用時(shí)鐘函數(shù)調(diào)用庫(kù)函數(shù)(#include ) 、 取時(shí)鐘時(shí)間并存入 t 調(diào)用庫(kù)函數(shù)(t=time(NULL)) 、 用時(shí)間 t 初始化隨機(jī)數(shù)發(fā)生器調(diào)用 庫(kù)函數(shù)(srand(t)返回一個(gè) 110 之間的隨機(jī)數(shù)(x=rand( )%10+1) 。編寫(xiě)三種算法。頁(yè)面置換算法模擬程序4 4總體設(shè)計(jì)總體設(shè)計(jì)4.14.1 程序程序 N-SN-S 圖圖程序開(kāi)始輸入選擇項(xiàng)(進(jìn)行判斷)頁(yè)面存在進(jìn)入下一部操作此項(xiàng)不存在輸入要輸出的結(jié)果輸出結(jié)果結(jié)束4.24.2 主要的函數(shù)主要的函數(shù)Input(int m,Pro pL)(打印頁(yè)面走向狀態(tài)) ;void p

8、rint(Pro *page1)(打印當(dāng)前的頁(yè)面) ;int Search(int e,Pro *page1 )(尋找內(nèi)存塊中與 e 相同的塊號(hào)) ; int Max(Pro *page1)(尋找最近最長(zhǎng)未使用的頁(yè)面) ;int Count(Pro *page1,int i,int t,Pro pL)(記錄當(dāng)前內(nèi)存塊中頁(yè)面離下次使用間隔長(zhǎng)度) ;int main()(主函數(shù)) ;.隨機(jī)數(shù)發(fā)生器 #include #include /準(zhǔn)備用時(shí)鐘函數(shù)調(diào)用庫(kù)函數(shù)t=time(NULL);/取時(shí)鐘時(shí)間并存入 t 調(diào)用庫(kù)函數(shù)srand(t);/用時(shí)間 t 初始化隨機(jī)數(shù)發(fā)生器調(diào)用庫(kù)函數(shù)x=rand( )%

9、10+1;/返回一個(gè) 110 之間的隨機(jī)數(shù)頁(yè)面置換算法模擬程序4.34.3 主要流程圖主要流程圖及代碼及代碼4.3.14.3.1 FIFOFIFO(先進(jìn)先出)(先進(jìn)先出)設(shè)計(jì)原理:需要進(jìn)行頁(yè)面置換,即把內(nèi)存中裝入最早的那個(gè)頁(yè)面淘汰,換入當(dāng)前的頁(yè)面。算法流程圖 Y N N Y 圖 4-1FIFO 算法流程圖代碼:if(c=1)/FIFO 頁(yè)面置換 n=0;開(kāi)始頁(yè)面走向存入數(shù)組 p中,內(nèi)存塊用 page表示初始化為 0當(dāng)前 p中第 i 個(gè)元素是否已在內(nèi)存中Page是否有空把 page中最先裝入的頁(yè)面置換出去.i+把 pi的內(nèi)容直接裝入最上面一個(gè)空內(nèi)存塊,i+輸出當(dāng)前內(nèi)存塊狀態(tài) 結(jié)束i+頁(yè)面置換算法

10、模擬程序cout * endl;coutendl; cout FIFO 算法頁(yè)面置換情況如下: endl;coutendl; cout * endl; while(i=0)/當(dāng)前頁(yè)面在內(nèi)存中 coutpi.num ;/輸出當(dāng)前頁(yè) pi.numcout不缺頁(yè)endl;i+;/i 加 1 else /當(dāng)前頁(yè)不在內(nèi)存中 if(t=M)t=0; else n+;/缺頁(yè)次數(shù)加 1 paget.num=pi.num; /把當(dāng)前頁(yè)面放入內(nèi)存中 coutpi.num ; print(page); /打印當(dāng)前頁(yè)面 t+; /下一個(gè)內(nèi)存塊i+; /指向下一個(gè)頁(yè)面 cout缺頁(yè)次數(shù):n 缺頁(yè)率:n/mendl; 4

11、.3.24.3.2 LRULRU(最近最久未使用)(最近最久未使用)設(shè)計(jì)原理:當(dāng)需要淘汰某一頁(yè)時(shí),選擇離當(dāng)前時(shí)間最近的一段時(shí)間內(nèi)最久沒(méi)有使用過(guò)的頁(yè)先淘汰該算法的主要出發(fā)點(diǎn)是,如果某頁(yè)被訪問(wèn)了,則頁(yè)面置換算法模擬程序它可能馬上還要被訪問(wèn)?;蛘叻催^(guò)來(lái)說(shuō)如果某頁(yè)很長(zhǎng)時(shí)間未被訪問(wèn),則它在最近一段時(shí)間也不會(huì)被訪問(wèn)。算法流程圖: Y N Y N圖 4-2 LRU 算法流程圖代碼:if(c=2)/LRU 頁(yè)面置換 n=0; cout * endl; 開(kāi)始頁(yè)面走向存入數(shù)組 p中,內(nèi)存塊用 page表示初始化為 0當(dāng)前 p中第 i 個(gè)元素是否已在內(nèi)存Page是否有空把 page中最近最久未使用的頁(yè)面置換出去.i

12、+把 pi的內(nèi)容直接裝入最上面一個(gè)空內(nèi)存塊,i+輸出當(dāng)前內(nèi)存塊狀態(tài) 結(jié)束i+頁(yè)面置換算法模擬程序coutendl; cout LRU 算法頁(yè)面置換情況如下: endl; coutendl;cout * endl; while(i=0) /如果已在內(nèi)存塊中 paget.time=0; /把與它相同的內(nèi)存塊的時(shí)間置 0for(a=0;aM;a+)if(a!=t)pagea.time+; /其它的時(shí)間加 1 coutpi.num ;cout不缺頁(yè)endl; else /如果不在內(nèi)存塊中 n+; /缺頁(yè)次數(shù)加 1 t=Max(page); /返回最近最久未使用的塊號(hào)賦值給 t paget.num=pi

13、.num; /進(jìn)行替換 paget.time=0; /替換后時(shí)間置為 0 coutpi.num ;print(page);for(a=0;aM;a+)if(a!=t)pagea.time+; /其它的時(shí)間加 1 i+; cout缺頁(yè)次數(shù):n 缺頁(yè)率:n/mendl; 頁(yè)面置換算法模擬程序4.3.34.3.3 OPTOPT(最佳置換算法)(最佳置換算法)設(shè)計(jì)原理:需要進(jìn)行頁(yè)面置換,把內(nèi)存中以后一段時(shí)間都不使用或是使用時(shí)間離現(xiàn)在最遠(yuǎn)的頁(yè)面換出。流程圖: Y N Y N 開(kāi)始頁(yè)面走向存入數(shù)組 p中,內(nèi)存塊用 page表示初始化為 0當(dāng)前 p中第 i 個(gè)元素是否已在內(nèi)存Page是否有空把 page中以

14、后一段時(shí)間都不使用或是使用時(shí)間離現(xiàn)在最遠(yuǎn)的換出.i+把 pi的內(nèi)容直接裝入最上面一個(gè)空內(nèi)存塊,i+輸出當(dāng)前內(nèi)存塊狀態(tài) 結(jié)束i+頁(yè)面置換算法模擬程序圖 4-3 OPT 流程圖代碼: if(c=3) /OPT 頁(yè)面置換 n=0;cout * endl;coutendl;cout OPT 算法置換情況如下:endl;coutendl;cout * endl; while(i=0) /如果已在內(nèi)存塊中 coutpi.num ;cout不缺頁(yè)endl;i+;else /如果不在內(nèi)存塊中int a=0; for(t=0;tM;t+)if(paget.num=0)a+; /記錄空的內(nèi)存塊數(shù)if(a!=0)

15、/有空內(nèi)存塊int q=M;for(t=0;tt)q=t; /把空內(nèi)存塊中塊號(hào)最小的找出來(lái)pageq.num=pi.num;頁(yè)面置換算法模擬程序n+; coutpi.num ;print(page);i+;elseint temp=0,s;for(t=0;tM;t+) /尋找內(nèi)存塊中下次使用離現(xiàn)在最久的頁(yè)面if(tempCount(page,i,t,p)temp=Count(page,i,t,p);s=t; /把找到的塊號(hào)賦給 spages.num=pi.num; n+; coutpi.num ; print(page); i+;cout缺頁(yè)次數(shù):n 缺頁(yè)率:n/mendl;4.44.4 實(shí)現(xiàn)

16、結(jié)果實(shí)現(xiàn)結(jié)果程序在運(yùn)行的情況下,進(jìn)入主界面輸入菜單,如圖 3-3 所示:輸入 14:圖 4-5 輸入 14 后的輸出圖輸入 25:頁(yè)面置換算法模擬程序圖 5-6 輸入數(shù)據(jù) 25 后輸出圖輸入數(shù)據(jù) 18:圖 5-7 輸入數(shù)據(jù) 18 后的輸出圖輸入數(shù)據(jù):圖 5-8 輸出圖選 1,進(jìn)入 FIFO 頁(yè)面置換:頁(yè)面置換算法模擬程序圖 5-9 FIFO 的輸出圖選 2,進(jìn)入 LRU 頁(yè)面置換:頁(yè)面置換算法模擬程序圖 5-10 LRU 的輸出圖輸入 3,進(jìn)入 OPT 頁(yè)面置換:頁(yè)面置換算法模擬程序圖 5-11 OPT 的輸出圖5 5程序測(cè)試程序測(cè)試 5.15.1 設(shè)計(jì)測(cè)試數(shù)據(jù)設(shè)計(jì)測(cè)試數(shù)據(jù)A 14 25 18

17、 ;2 6 4 ;B 1C 2 D 3頁(yè)面置換算法模擬程序5.25.2 測(cè)試結(jié)果及分析測(cè)試結(jié)果及分析1)測(cè)試 A 結(jié)果及分析 進(jìn)入主菜單后輸入 14、25,顯示輸入不滿足要求。輸入 18 顯示相關(guān)信息;輸入 2 、6 不滿足要求,輸入 4 顯示出相關(guān)信息。2)測(cè)試結(jié)果及分析顯示出 FIFO 頁(yè)面置換算法的缺頁(yè)信息及缺頁(yè)率。3)測(cè)試 C 結(jié)果及分析顯示出 LRU 頁(yè)面置換算法的缺頁(yè)信息及缺頁(yè)率。4)測(cè)試 D 結(jié)果及分析顯示出 OPT 頁(yè)面置換算法的缺頁(yè)信息及缺頁(yè)率頁(yè)面置換算法模擬程序結(jié) 論通過(guò)這次課程設(shè)計(jì),不僅讓我了解了頁(yè)面置換算法,開(kāi)始我一味的進(jìn)行調(diào)試,急切的想僥幸調(diào)試出來(lái),但由于沒(méi)有進(jìn)行深入

18、的考慮,我調(diào)試了很久都沒(méi)沒(méi)有成功,我仔細(xì)的分析題目,分析材料,在原由的基礎(chǔ)上我進(jìn)行了改正,我最后還是調(diào)試成功了,還是經(jīng)過(guò)了一翻努力,這次操作系統(tǒng)實(shí)習(xí),不僅讓我對(duì)操作系統(tǒng)這門(mén)課程有了更深入的研究、對(duì)很多重要的概念有了鞏固和掌握。通過(guò)努力,三個(gè)頁(yè)面置換算法程序都已經(jīng)完成,此時(shí)此刻,我心里多了些成就感。雖然自己所做的很少也不夠完善,但畢竟也是努力的結(jié)果。主要有以下幾點(diǎn)收獲:1.通過(guò)對(duì)上網(wǎng)和看書(shū)查閱相關(guān)資料,使自己對(duì) VC +語(yǔ)言的基本框架有新的了解,加深了對(duì)可視化程序的認(rèn)識(shí)。2.在使用 VC+語(yǔ)言來(lái)實(shí)現(xiàn)功能時(shí),不像以往用的其他語(yǔ)言,它比較簡(jiǎn)練,更容易理解,實(shí)用性很強(qiáng)。3.先進(jìn)先出頁(yè)面置換和 LRU

19、以及 OPT 算法各有特點(diǎn),但是實(shí)踐起來(lái)卻很大,使自己對(duì)頁(yè)面置換算法有了新的認(rèn)識(shí)。一周半的課程設(shè)計(jì)就要結(jié)束了,不但對(duì)專業(yè)知識(shí)有了更深的理解,更使的自己認(rèn)識(shí)到實(shí)踐的重要性,理論、實(shí)踐相結(jié)合才能達(dá)到很好的學(xué)習(xí)效果,特別是程序語(yǔ)言的學(xué)習(xí)。 頁(yè)面置換算法模擬程序致 謝本次課程設(shè)計(jì)能順利完成,感謝學(xué)校的大力支持,感謝數(shù)學(xué)與計(jì)算機(jī)學(xué)院為我們提供實(shí)練的機(jī)會(huì),感謝老師的細(xì)心教導(dǎo)。此次的課程設(shè)計(jì)收獲很多,雖然經(jīng)過(guò)了一段漫長(zhǎng)而又痛苦的過(guò)程,但是自己還是完成了,這是與自己的努力是分不開(kāi)的,但是自己在調(diào)試過(guò)程當(dāng)中遇到的一些問(wèn)題,自己仍然不懂,是在同學(xué)、老師的幫助下完成的,在這里還要再次對(duì)他們的付出表示崇高的敬意。頁(yè)面

20、置換算法模擬程序參考文獻(xiàn)參考文獻(xiàn)面向?qū)ο蟪绦蛟O(shè)計(jì)與 VisualC+6.0 教程 陳天華編著C 程序設(shè)計(jì)(第三版) 譚浩強(qiáng)編著C+入門(mén)經(jīng)典面向?qū)ο蟪绦蛟O(shè)計(jì)與 C+實(shí)現(xiàn) 劉晉萍編著計(jì)算機(jī)操作系統(tǒng)教程 徐甲同等編著 操作系統(tǒng) 羅宇等編著 操作系統(tǒng)實(shí)驗(yàn)教程 張麗芬, 劉利雄, 王全玉編著 計(jì)算機(jī)操作系統(tǒng) 梁紅兵、哲風(fēng)屏、湯子瀛 編著操作系統(tǒng)教程 陳向群、楊芙清 編著代碼:#include#include #include #include #define L 20/頁(yè)面走向長(zhǎng)度最大為 20int M; /內(nèi)存塊struct Pro/定義一個(gè)結(jié)構(gòu)體 int num,time; Input(int m,

21、Pro pL)/打印頁(yè)面走向狀態(tài) cout請(qǐng)輸入實(shí)際頁(yè)面走向長(zhǎng)度 L(15=Lm; if(m20|m15)cout實(shí)際頁(yè)面長(zhǎng)度須在 1520 之間;請(qǐng)重新輸入 L: ; else break; while(1); int i,j; j=time(NULL);/取時(shí)鐘時(shí)間 srand(j);/以時(shí)鐘時(shí)間 x 為種子,初始化隨機(jī)數(shù)發(fā)生器cout輸出隨機(jī)數(shù): ; for(i=0;im;i+) pi.num=rand( )%10+1;/產(chǎn)生 1 到 10 之間的隨即數(shù)放到數(shù)組 p 中 pi.time=0;coutpi.num ; coutendl; return m;void print(Pro *p

22、age1)/打印當(dāng)前的頁(yè)面 Pro *page=new ProM; page=page1; for(int i=0;iM;i+) coutpagei.num ; coutendl;int Search(int e,Pro *page1 )/尋找內(nèi)存塊中與 e 相同的塊號(hào) Pro *page=new ProM; page=page1; for(int i=0;iM;i+)if(e=pagei.num)return i;/返回 i 值 return -1;int Max(Pro *page1)/尋找最近最長(zhǎng)未使用的頁(yè)面 Pro *page=new ProM; page=page1; int e=p

23、age0.time,i=0; while(iM) /找出離現(xiàn)在時(shí)間最長(zhǎng)的頁(yè)面 頁(yè)面置換算法模擬程序 if(epagei.time) e=pagei.time; i+; for( i=0;iM;i+)if(e=pagei.time)return i;/找到離現(xiàn)在時(shí)間最長(zhǎng)的頁(yè)面返回其塊號(hào) return -1;int Count(Pro *page1,int i,int t,Pro pL)/記錄當(dāng)前內(nèi)存塊中頁(yè)面離下次使用間隔長(zhǎng)度 Pro *page=new ProM; page=page1; int count=0; for(int j=i;jL;j+) if(paget.num=pj.num )b

24、reak;/當(dāng)前頁(yè)面再次被訪問(wèn)時(shí)循環(huán)結(jié)束 else count+;/否則 count+1 return count;/返回 count 的值 int main() int c; int m=0,t=0;float n=0;Pro pL; m=Input(m,p);/調(diào)用 input 函數(shù),返回 m 值 coutM;if(M5|M3)cout內(nèi)存塊 m 須在 35 之間,請(qǐng)重新輸入 m: ;else break;while(1); Pro *page=new ProM; do頁(yè)面置換算法模擬程序 for(int i=0;iM;i+)/初試化頁(yè)面基本情況 pagei.num=0; pagei.ti

25、me=m-1-i; i=0; cout1:FIFO 頁(yè)面置換endl; cout2:LRU 頁(yè)面置換endl; cout3:OPT 頁(yè)面置換endl; cout按其它鍵結(jié)束程序;c; system(cls); if(c=1)/FIFO 頁(yè)面置換 n=0;cout * endl;coutendl; cout FIFO 算法頁(yè)面置換情況如下: endl;coutendl; cout * endl; while(i=0) /當(dāng)前頁(yè)面在內(nèi)存中 coutpi.num ; /輸出當(dāng)前頁(yè) pi.numcout不缺頁(yè)endl;i+; /i 加 1 else /當(dāng)前頁(yè)不在內(nèi)存中 if(t=M)t=0; else n+; /缺頁(yè)次數(shù)加 1 paget.num=pi.num; /把當(dāng)前頁(yè)面放入內(nèi)存中 coutpi.num ; print(page); /打印當(dāng)前頁(yè)面 t+; /下一個(gè)內(nèi)存塊i+; /指向下一個(gè)頁(yè)面頁(yè)面置換算法模擬程序 cout缺頁(yè)次數(shù):n 缺頁(yè)率:n/mendl; if(c=2)/LRU 頁(yè)面置換 n=0; cout * endl;coutendl; cout LRU 算法頁(yè)面置換情況如下: endl; coutendl;cout * endl;

溫馨提示

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