頁(yè)面置換算法的實(shí)驗(yàn)報(bào)告_第1頁(yè)
頁(yè)面置換算法的實(shí)驗(yàn)報(bào)告_第2頁(yè)
頁(yè)面置換算法的實(shí)驗(yàn)報(bào)告_第3頁(yè)
頁(yè)面置換算法的實(shí)驗(yàn)報(bào)告_第4頁(yè)
頁(yè)面置換算法的實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩14頁(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、 操作系統(tǒng)課程設(shè)計(jì)報(bào)告院 (系): 衡陽(yáng)師范學(xué)院 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 姓 名: 陳建元 齊歡 班 級(jí): 1103班 學(xué) 號(hào): 11190301 11190316 題 目: 頁(yè)面置換算法 指導(dǎo)教師: 王玉奇 2013年12月10日至12月28日 目 錄摘 要3第一章 設(shè)計(jì)任務(wù)和需求41.1課程設(shè)計(jì)任務(wù)41.2課程設(shè)計(jì)需求4第二章 概要設(shè)計(jì)42.1系統(tǒng)分析42.2調(diào)頁(yè)策略52.2.1何時(shí)調(diào)入頁(yè)面52.2.2請(qǐng)求調(diào)頁(yè)策略52.2.3從何處調(diào)入頁(yè)面52.3模塊設(shè)計(jì)6第三章 詳細(xì)設(shè)計(jì)63.1系統(tǒng)設(shè)計(jì)63.2算法思想及流程圖73.2.1 主程序流程圖73.2.2先進(jìn)先出(FIFO)頁(yè)面置換算法83

2、.2.3最佳頁(yè)面置換置換算法(OPT)93.2.4最近最久未使用頁(yè)面置換算法(LRU)10第四章 源程序結(jié)構(gòu)分析104.1程序結(jié)構(gòu)104.2 源代碼分析11第五章 調(diào)試16第六章 體會(huì)與自我評(píng)價(jià)17第七章 參考文獻(xiàn)18摘 要 操作系統(tǒng)(英語(yǔ);Operating System,簡(jiǎn)稱OS)是一管理電腦硬件與軟件資源的程序,同時(shí)也是計(jì)算機(jī)系統(tǒng)的內(nèi)核與基石。操作系統(tǒng)身負(fù)諸如管理與配置內(nèi)存、決定系統(tǒng)資源供需的優(yōu)先次序、控制輸入與輸出設(shè)備、操作網(wǎng)絡(luò)與管理文件系統(tǒng)等基本事務(wù)。操作系統(tǒng)是管理計(jì)算機(jī)系統(tǒng)的全部硬件資源包括軟件資源及數(shù)據(jù)資源;控制程序運(yùn)行;改善人機(jī)界面;為其它應(yīng)用軟件提供支持等,使計(jì)算機(jī)系統(tǒng)所有資

3、源最大限度地發(fā)揮作用,為用戶提供方便的、有效的、友善的服務(wù)界面。操作系統(tǒng)是一個(gè)龐大的管理控制程序,大致包括5個(gè)方面的管理功能:進(jìn)程與處理機(jī)管理、作業(yè)管理、存儲(chǔ)管理、設(shè)備管理、文件管理。 在地址映射過(guò)程中,若在頁(yè)面中發(fā)現(xiàn)所要訪問(wèn)的頁(yè)面不再內(nèi)存中,則產(chǎn)生缺頁(yè)中斷。當(dāng)發(fā)生缺頁(yè)中斷時(shí)操作系統(tǒng)必須在內(nèi)存選擇一個(gè)頁(yè)面將其移出內(nèi) 存,以便為即將調(diào)入的頁(yè)面讓出空間。而用來(lái)選擇淘汰哪一頁(yè)的規(guī)則叫做頁(yè)面置換算法(Page-Replacement Algorithms)。 關(guān)鍵詞:操作系統(tǒng);OPT頁(yè)面置換算法;FIFO先進(jìn)先出的算法;LRU最近最久未使用夜面置換算法第一章 設(shè)計(jì)任務(wù)和需求1.1課程設(shè)計(jì)任務(wù)深入掌握內(nèi)

4、存調(diào)度算法的概念原理和實(shí)現(xiàn)方法。編寫程序?qū)崿F(xiàn):(1)先進(jìn)先出頁(yè)面置換算法(FIFO)(2)最近最久未使用頁(yè)面置換算法(LRU)(3)最佳置換頁(yè)面置換算法(OPT)設(shè)計(jì)一個(gè)虛擬存儲(chǔ)區(qū)和內(nèi)存工作區(qū),編程序演示以上三種算法的具體實(shí)現(xiàn)過(guò)程,并計(jì)算訪問(wèn)命中率。演示頁(yè)面置換的三種算法。通過(guò)隨機(jī)數(shù)產(chǎn)生一個(gè)指令序列,將指令序列轉(zhuǎn)換成為頁(yè)地址流。計(jì)算并輸出各種算法在不同內(nèi)存容量下的缺頁(yè)率。1.2課程設(shè)計(jì)需求在各種存儲(chǔ)器管理方式中,有一個(gè)共同的特點(diǎn),即它們都要求將一個(gè)作業(yè)全部裝入內(nèi)存方能運(yùn)行,但是有兩種情況:(1) 有的作業(yè)很大,不能全部裝入內(nèi)存,致使作業(yè)無(wú)法運(yùn)行;(2) 有大量作業(yè)要求運(yùn)行,但內(nèi)存容量不足以容納

5、所有這些作業(yè)。而虛擬內(nèi)存技術(shù)正式從邏輯上擴(kuò)充內(nèi)存容量,將會(huì)解決以上兩個(gè)問(wèn)題。 從內(nèi)存中調(diào)出一頁(yè)程序或數(shù)據(jù)送磁盤的對(duì)換區(qū)中,通常,把選擇換出的頁(yè)面的算法稱為頁(yè)面置換算法(Page-Replacement Algorithms)。進(jìn)而頁(yè)面置換算法程序能客觀的將其工作原理展現(xiàn)在我們面前。第二章 概要設(shè)計(jì)2.1系統(tǒng)分析由于分區(qū)式管理盡管實(shí)現(xiàn)方式較為簡(jiǎn)單,但存在著嚴(yán)重的碎片問(wèn)題使得內(nèi)存的利用率不高。再者,分區(qū)式管理時(shí),由于各作業(yè)或進(jìn)程對(duì)應(yīng)于不同的分區(qū)以及在分區(qū)內(nèi)各作業(yè)或進(jìn)程連續(xù)存放,進(jìn)程的大小或內(nèi)存可用空間的限制。而且分區(qū)式管理也不利于程序段和數(shù)據(jù)段的共享。頁(yè)式管理正是為了減少碎片以及為了只在內(nèi)存存放那

6、些反復(fù)執(zhí)行或即將執(zhí)行的程序段與數(shù)據(jù)部分,而把那些不經(jīng)常執(zhí)行的程序段和數(shù)據(jù)存放于外存待執(zhí)行時(shí)調(diào)入,以提高內(nèi)存利用率而提出來(lái)的頁(yè)式管理有動(dòng)態(tài)頁(yè)式管理和靜態(tài)頁(yè)式管理之分,動(dòng)態(tài)頁(yè)式管理是在靜態(tài)頁(yè)式管理的基礎(chǔ)上發(fā)展起來(lái)的。請(qǐng)求頁(yè)式管理屬于動(dòng)態(tài)頁(yè)式管理中的一種,它的地址變換過(guò)程與靜態(tài)頁(yè)式管理時(shí)的相同,也是通過(guò)頁(yè)表查出相應(yīng)的頁(yè)面號(hào),由頁(yè)面號(hào)與頁(yè)內(nèi)相對(duì)地址相加而得到實(shí)際物理地址。有關(guān)的地址變換部分是由硬件自動(dòng)完成的。當(dāng)硬件變換機(jī)構(gòu)發(fā)現(xiàn)所要求的頁(yè)不在內(nèi)存時(shí),產(chǎn)生缺頁(yè)中斷信號(hào),由中斷處理程序做出相應(yīng)的處理。中斷處理程序是由軟件實(shí)現(xiàn)的。除了在沒(méi)有空閑頁(yè)面時(shí)要按照置換算法選擇出被淘汰頁(yè)面之外,還要從外存讀入所需要的虛

7、頁(yè)。這個(gè)過(guò)程要啟動(dòng)相應(yīng)的外存和涉及到文件系統(tǒng)。因此,請(qǐng)求頁(yè)式管理是一個(gè)十分復(fù)雜的過(guò)程,內(nèi)存利用率的提高是以犧牲系統(tǒng)開銷的代價(jià)換來(lái)的。這里用到了置換算法。它是在內(nèi)存中沒(méi)有空閑頁(yè)面時(shí)被調(diào)用。目的是選出一個(gè)被淘汰的頁(yè)面。如果內(nèi)存中有足夠的空閑頁(yè)面存放所調(diào)入的頁(yè),則不必使用置換算法。把內(nèi)存和外存統(tǒng)一管理的真正目的是把那些被訪問(wèn)概率非常高的頁(yè)存放在內(nèi)存中。因此,置換算法應(yīng)該置換那些被訪問(wèn)概率低的頁(yè),將它們移出內(nèi)存。2.2調(diào)頁(yè)策略 2.2.1何時(shí)調(diào)入頁(yè)面如果進(jìn)程的許多頁(yè)是存放在外存的一個(gè)連續(xù)區(qū)域中,則一次調(diào)入若干個(gè)相鄰的頁(yè),會(huì)比一次調(diào)入一頁(yè)的效率更高效一些。但如果調(diào)入的一批頁(yè)面中的大多數(shù)都未被訪問(wèn),則又是

8、低效的??刹捎靡环N以預(yù)測(cè)為基礎(chǔ)的預(yù)調(diào)頁(yè)策略,將那些預(yù)計(jì)在不久之后便會(huì)被訪問(wèn)的頁(yè)面,預(yù)先調(diào)入內(nèi)存。如果預(yù)測(cè)較準(zhǔn)確,那么,這種策略顯然是很有吸引力的。但目前預(yù)調(diào)頁(yè)的成功率僅為50%。且這種策略主要用于進(jìn)程的首次調(diào)入時(shí),由程序員指出應(yīng)該先調(diào)入哪些頁(yè)。 2.2.2請(qǐng)求調(diào)頁(yè)策略 當(dāng)進(jìn)程在運(yùn)行中需要訪問(wèn)某部分程序和數(shù)據(jù)時(shí),若發(fā)現(xiàn)其所在的頁(yè)面不在內(nèi)存,便即提出請(qǐng)求,由OS將其所需頁(yè)面調(diào)入內(nèi)存。由請(qǐng)示調(diào)頁(yè)策略所確定調(diào)入的頁(yè),是一定會(huì)被訪問(wèn)的,再加之請(qǐng)求調(diào)頁(yè)策略比較易于實(shí)現(xiàn),故在目前的虛擬存儲(chǔ)器中,大多采用此策略。但這種策略每次僅調(diào)入一頁(yè),故須花費(fèi)較大的系統(tǒng)開銷,增加了磁盤I/O的啟用頻率。 2.2.3從何處調(diào)

9、入頁(yè)面在請(qǐng)求分頁(yè)系統(tǒng)中的外存分為兩部分:用于存放文件的文件區(qū)和用于存放對(duì)換頁(yè)面的對(duì)換區(qū)。通常,由于對(duì)換區(qū)是采用連續(xù)分配方式,而事件是采用離散分配方式,故對(duì)換區(qū)的磁盤I/O速度比文件區(qū)的高。這樣,每當(dāng)發(fā)生缺頁(yè)請(qǐng)求時(shí),系統(tǒng)應(yīng)從何處將缺頁(yè)調(diào)入內(nèi)存,可分成如下三種情況: 系統(tǒng)擁有足夠的對(duì)換區(qū)空間,這時(shí)可以全部從對(duì)換區(qū)調(diào)入 所需頁(yè)面,以提高調(diào)頁(yè)速度。為此,在進(jìn)程運(yùn)行前,便須將與該進(jìn)程有關(guān)的文件,從文件區(qū)拷貝到對(duì)換區(qū)。 系統(tǒng)缺少足夠的對(duì)換區(qū)空間,這時(shí)凡是不會(huì)被修改的文件,都直接從文件區(qū)調(diào)入;而當(dāng)換出這些頁(yè)面時(shí),由于它們未被修改而不必再將它們換出時(shí),以后需要時(shí),再?gòu)膶?duì)換區(qū)調(diào)入。 UNIX方式。由于與進(jìn)程有關(guān)

10、的文件都放在文件區(qū),故凡是未運(yùn)行過(guò)的頁(yè)面,都應(yīng)從文件區(qū)調(diào)入。而對(duì)于曾經(jīng)運(yùn)行過(guò)但又被換出的頁(yè)面,由于是被放在對(duì)換區(qū),因此在下次調(diào)入時(shí),應(yīng)從對(duì)換區(qū)調(diào)入。由于UNIX系統(tǒng)允許頁(yè)面共享,因此,某進(jìn)程所請(qǐng)求的頁(yè)面有可能已被其它進(jìn)程調(diào)入內(nèi)存,此時(shí)也就無(wú)須再?gòu)膶?duì)換區(qū)調(diào)入。2.3模塊設(shè)計(jì) 運(yùn)行程序頁(yè)面置換算法的主界面輸入頁(yè)面序列和物理塊數(shù)OPTLRUFIFO 缺頁(yè)次數(shù)和缺頁(yè)率 第三章 詳細(xì)設(shè)計(jì)3.1系統(tǒng)設(shè)計(jì)在進(jìn)程運(yùn)行過(guò)程中,若其所要訪問(wèn)的頁(yè)面不在內(nèi)存而需把它們調(diào)入內(nèi)存,但內(nèi)存已無(wú)空閑空間時(shí),為了保證該進(jìn)程能正常運(yùn)行,系統(tǒng)必須從內(nèi)存中調(diào)出一頁(yè)程序或數(shù)據(jù),送磁盤的對(duì)換區(qū)中。但應(yīng)將哪 個(gè)頁(yè)面調(diào)出,須根據(jù)一

11、定的算法來(lái)確定。通常,把選擇換出頁(yè)面的算法稱為頁(yè)面置換算法(Page_Replacement Algorithms)。 一個(gè)好的頁(yè)面置換算法,應(yīng)具有較低的頁(yè)面更換頻率。從理論上講,應(yīng)將那些以后不再會(huì)訪問(wèn)的頁(yè)面換出,或?qū)⒛切┰谳^長(zhǎng)時(shí)間內(nèi)不會(huì)再訪問(wèn)的頁(yè)面調(diào)出。3.2算法思想及流程圖3.2.1 主程序流程圖如圖(321)所示輸入頁(yè)面序列輸入物理塊數(shù)調(diào)用各種置換算法,OPT,LRU,F(xiàn)IFO頁(yè)面置換算法計(jì)算缺頁(yè)次數(shù)和缺頁(yè)率結(jié)束開始主流程圖(圖321)3.2.2先進(jìn)先出(FIFO)頁(yè)面置換算法算法的基本思想:這是最早出現(xiàn)的置換算法。該算法總是淘汰最先進(jìn)入內(nèi)存的頁(yè)面,即選擇在內(nèi)存中駐留

12、時(shí)間最久的頁(yè)面予以淘汰。該算法實(shí)現(xiàn)簡(jiǎn)單只需把一個(gè)進(jìn)程已調(diào)入內(nèi)存的頁(yè)面,按先后次序存入一個(gè)時(shí)間數(shù)組,并將其中時(shí)間值最大的頁(yè)面進(jìn)行淘汰,并替換入新的頁(yè)面就可以實(shí)現(xiàn)。算法流程圖:如圖(322)所示 入口初始化數(shù)據(jù)i指向下一個(gè)頁(yè)面頁(yè)面是否存在物理塊是否有空閑選擇最先進(jìn)入的頁(yè)面作為淘汰頁(yè)計(jì)算缺頁(yè)率,并輸出數(shù)據(jù) 結(jié)束輸出當(dāng)前頁(yè),i+將頁(yè)面放到空閑的物理塊處i<頁(yè)面長(zhǎng)度YYYNNNFIFO置換算法(圖322)3.2.3最佳頁(yè)面置換置換算法(OPT)算法的基本思想:其所選擇的被淘汰頁(yè)面,將是永不使用的,或者是在最長(zhǎng)時(shí)間內(nèi)不再被訪問(wèn)的頁(yè)面。可保證獲得最低的缺頁(yè)率。但由于人們目前還無(wú)法預(yù)知一個(gè)進(jìn)程在內(nèi)存的若

13、干個(gè)頁(yè)面中,哪一個(gè)頁(yè)面是未來(lái)最長(zhǎng)時(shí)間內(nèi)不再被訪問(wèn)的,因而該算法也是無(wú)法實(shí)現(xiàn)的。但是可利用該算法去評(píng)價(jià)其它算法。算法流程圖:如圖(323)所示 入口初始化數(shù)據(jù)i指向下一個(gè)頁(yè)面頁(yè)面是否存在物理塊是否有空閑選擇以后最長(zhǎng)時(shí)間內(nèi)(未來(lái))不在被訪問(wèn)的頁(yè)面作為淘汰頁(yè)計(jì)算缺頁(yè)率,并輸出數(shù)據(jù) 結(jié)束輸出當(dāng)前頁(yè), i+將頁(yè)面放到空閑的物理塊處i<頁(yè)面長(zhǎng)度YYYNNNOPT頁(yè)面置換算法(圖323)3.2.4最近最久未使用頁(yè)面置換算法LRU算法的基本思想:當(dāng)需要淘汰某一頁(yè)時(shí),選擇離當(dāng)前時(shí)間最近的一段時(shí)間內(nèi)最久沒(méi)有使用過(guò)的頁(yè)先淘汰。該算法的主要出發(fā)點(diǎn)是,如果某頁(yè)被訪問(wèn)了,則它可能馬上還被訪問(wèn)?;蛘叻催^(guò)來(lái)說(shuō),如果某頁(yè)

14、很長(zhǎng)時(shí)間未被訪問(wèn),則它在最近一段時(shí)間不會(huì)被訪問(wèn)。算法流程圖:如圖(324)所示 入口初始化數(shù)據(jù)i指向下一個(gè)頁(yè)面頁(yè)面是否存在物理塊是否有空閑選擇最近最久未使用的頁(yè)面作為淘汰頁(yè)計(jì)算缺頁(yè)率,并輸出數(shù)據(jù) 結(jié)束輸出當(dāng)前頁(yè),i+將頁(yè)面放到空閑的物理塊處i<頁(yè)面長(zhǎng)度YYYNNNLRU頁(yè)面置換算法(圖324)第四章 源程序結(jié)構(gòu)分析4.1程序結(jié)構(gòu) Input(int m,Pro pL)/打印頁(yè)面走向狀態(tài) srand(j);/以時(shí)鐘時(shí)間j為種子,初始化隨機(jī)數(shù)發(fā)生器 void print(Pro *page1)/打印當(dāng)前的頁(yè)面 int Search(int e,Pro *page1 )/尋找內(nèi)存塊中與e相同的

15、塊號(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)度4.2 源代碼分析#include<iostream.h> #include <stdlib.h> #include <time.h> #include <stdio.h> #define L 20 /頁(yè)面長(zhǎng)度最大為20 int M; /內(nèi)存塊struct Pro/定義一個(gè)結(jié)構(gòu)體 int num,time; ; Input(int m,Pro pL)/打印頁(yè)面走

16、向狀態(tài) cout<<"請(qǐng)輸入頁(yè)面長(zhǎng)度(1020):" do cin>>m; if(m>20|m<10) cout<<endl;cout<<"頁(yè)面長(zhǎng)度必須在1020之間"<<endl<<endl;cout<<"請(qǐng)重新輸入L:" else break; while(1); int i,j; j=time(NULL);/取時(shí)鐘時(shí)間srand(j);/以時(shí)鐘時(shí)間j為種子,初始化隨機(jī)數(shù)發(fā)生器cout<<endl;cout<<&

17、quot;輸出隨機(jī)數(shù): "<<endl; cout<<endl;for(i=0;i<m;i+) pi.num=rand( )%10;/產(chǎn)生0到9之間的隨機(jī)數(shù)放到數(shù)組p中pi.time=0; cout<<pi.num<<" " cout<<endl<<endl; return m; void print(Pro *page1)/打印當(dāng)前的頁(yè)面 Pro *page=new ProM; page=page1; for(int i=0;i<M;i+) cout<<pagei.n

18、um<<" " cout<<endl; int Search(int e,Pro *page1 )/尋找內(nèi)存塊中與e相同的塊號(hào) Pro *page=new ProM; page=page1; for(int i=0;i<M;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=page0.time,i=0; while(i<M) /找出離現(xiàn)在時(shí)間最長(zhǎng)的頁(yè)面 if(e&

19、lt;pagei.time) e=pagei.time; i+; for( i=0;i<M;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;j<L;j+) if(paget.num=pj.num )break;/當(dāng)前頁(yè)面再次被訪問(wèn)時(shí)循環(huán)結(jié)束else count+;/否則count+1 re

20、turn 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值cout<<"請(qǐng)輸入分配的物理塊m(26): " cout<<endl<<endl;do cin>>M; if(M>6|M<2) cout<<endl;cout<<"物理塊m必須在26之間"<<endl<<endl;cout<<"請(qǐng)重

21、新輸入m: " else break; while(1); Pro *page=new ProM; do for(int i=0;i<M;i+)/初始化頁(yè)面基本情況 pagei.num=0; pagei.time=m-1-i; i=0;cout<<endl;cout<<"1:FIFO頁(yè)面置換"<<endl<<endl; cout<<"2:LRU頁(yè)面置換"<<endl<<endl; cout<<"3:OPT頁(yè)面置換"<&

22、lt;endl<<endl; cout<<"請(qǐng)選擇頁(yè)面置換算法:"<<endl<<endl; cin>>c; system("cls"); if(c=1)/FIFO頁(yè)面置換 n=0; cout<<" FIFO算法頁(yè)面置換情況如下: "<<endl; cout<<endl; while(i<m) if(Search(pi.num,page)>=0) /當(dāng)前頁(yè)面在內(nèi)存中 cout<<pi.num<<"

23、; " /輸出當(dāng)前頁(yè)pi.num cout<<"不缺頁(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)存中cout<<pi.num<<" " print(page); /打印當(dāng)前頁(yè)面t+; /下一個(gè)內(nèi)存塊 i+; /指向下一個(gè)頁(yè)面 cout<<endl;cout<<"缺頁(yè)次數(shù):"<<n<<"

24、缺頁(yè)率:"<<n/m<<endl<<endl; if(c=2)/LRU頁(yè)面置換 n=0; cout<<" LRU算法頁(yè)面置換情況如下: "<<endl; cout<<endl; while(i<m) int a; t=Search(pi.num,page); if(t>=0)/如果已在內(nèi)存塊中 paget.time=0;/把與它相同的內(nèi)存塊的時(shí)間置0 for(a=0;a<M;a+) if(a!=t)pagea.time+;/其它的時(shí)間加1 cout<<pi.num

25、<<" " cout<<"不缺頁(yè)"<<endl; else /如果不在內(nèi)存塊中 n+; /缺頁(yè)次數(shù)加1 t=Max(page); /返回最近最久未使用的塊號(hào)賦值給t paget.num=pi.num; /進(jìn)行替換paget.time=0; /替換后時(shí)間置為0 cout<<pi.num<<" " print(page); for(a=0;a<M;a+) if(a!=t) pagea.time+; /其它的時(shí)間加1 i+; cout<<endl;cout<

26、<"缺頁(yè)次數(shù):"<<n<<" 缺頁(yè)率:"<<n/m<<endl<<endl; if(c=3)/OPT頁(yè)面置換 n=0; cout<<" OPT算法置換情況如下:"<<endl; cout<<endl; while(i<m) if(Search(pi.num,page)>=0)/如果已在內(nèi)存塊中 cout<<pi.num<<" " cout<<"不缺頁(yè)&quo

27、t;<<endl; i+; else/如果不在內(nèi)存塊中int a=0; for(t=0;t<M;t+) if(paget.num=0)a+;/記錄空的內(nèi)存塊數(shù)if(a!=0) /有空內(nèi)存 int q=M; for(t=0;t<M;t+) if(paget.num=0&&q>t)q=t;/把空內(nèi)存塊中塊號(hào)最小的找出來(lái)pageq.num=pi.num; n+;cout<<pi.num<<" " print(page); i+;else int temp=0,s; for(t=0;t<M;t+)/尋找內(nèi)存

28、塊中下次使用離現(xiàn)在最久的頁(yè)面if(temp<Count(page,i,t,p) temp=Count(page,i,t,p); s=t; /把找到的塊號(hào)賦給s pages.num=pi.num; n+; cout<<pi.num<<" " print(page); i+; cout<<endl;cout<<"缺頁(yè)次數(shù):"<<n<<" 缺頁(yè)率:"<<n/m<<endl<<endl; while(c=1|c=2|c=3); return 0; 第五章 調(diào)試 程序在運(yùn)行的情況下,進(jìn)入主界面輸入菜單,如圖(41)所示:頁(yè)面長(zhǎng)度:輸入16,分配的物理塊:輸入4, 主界面(圖41)選1,進(jìn)入FIFO算法頁(yè)面置換,如圖(42)所示 FIFO算法置換(圖42)選2,進(jìn)入LRU算法頁(yè)面置換,如圖(43)所示 LRU算法置換(圖43) 選3,進(jìn)入OPT算法頁(yè)面置換,如圖(44)所示

溫馨提示

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