實(shí)驗(yàn)五-頁面調(diào)度算法模擬_第1頁
實(shí)驗(yàn)五-頁面調(diào)度算法模擬_第2頁
實(shí)驗(yàn)五-頁面調(diào)度算法模擬_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)五:頁面調(diào)度算法模擬實(shí)驗(yàn)學(xué)時(shí):2學(xué)時(shí)一、 實(shí)驗(yàn)?zāi)康?、熟悉操作系統(tǒng)頁面調(diào)度算法2、編寫程序模擬先進(jìn)先出、LRU等頁面調(diào)度算法,體會(huì)頁面調(diào)度算法原理二、實(shí)驗(yàn)基本原理1、頁面的含義:分頁存儲(chǔ)管理將一個(gè)進(jìn)程的邏輯地址空間分成若干大小相等的片,稱為頁面或頁。2、頁面置換算法的含義:在進(jìn)程運(yùn)行過程中,若其所要訪問的頁面不在內(nèi)存而需把它們調(diào)入內(nèi)存,但內(nèi)存已無空閑空間時(shí),為了保證該進(jìn)程能正常運(yùn)行,系統(tǒng)必須從內(nèi)存中調(diào)出一頁程序或數(shù)據(jù),送磁盤的對(duì)換區(qū)中。但應(yīng)將哪個(gè)頁面調(diào)出,須根據(jù)一定的算法來確定。通常,把選擇換出頁面的算法稱為頁面置換算法(Page_Replacement Algorithms)。3、置換算

2、法一個(gè)好的頁面置換算法,應(yīng)具有較低的頁面更換頻率。從理論上講,應(yīng)將那些以后不再會(huì)訪問的頁面換出,或?qū)⒛切┰谳^長(zhǎng)時(shí)間內(nèi)不會(huì)再訪問的頁面調(diào)出。常見置換算法:最佳置換算法(Optimal):它是由Belady于1966年提出的一種理論上的算法。其所選擇的被淘汰頁面,將是以后永不使用的或許是在最長(zhǎng)(未來)時(shí)間內(nèi)不再被訪問的頁面。采用最佳置換算法,通??杀WC獲得最低的缺頁率。但由于人目前還無法預(yù)知一個(gè)進(jìn)程在內(nèi)存的若干個(gè)頁面中,哪一個(gè)頁面是未來最長(zhǎng)時(shí)間內(nèi)不再被訪問的,因而該算法是無法實(shí)現(xiàn)的,便可以利用此算法來評(píng)價(jià)其它算法。 先進(jìn)先出(FIFO)頁面置換算法:這是最早出現(xiàn)的置換算法。該算法總是淘汰最先進(jìn)入內(nèi)

3、存的頁面,即選擇在內(nèi)存中駐留時(shí)間最久的頁面予以淘汰。該算法實(shí)現(xiàn)簡(jiǎn)單只需把一個(gè)進(jìn)程已調(diào)入內(nèi)存的頁面,按先后次序鏈接成一個(gè)隊(duì)列,并設(shè)置一個(gè)指針,稱為替換指針,使它總是指向最老的頁面。 LRU置換算法:LRU置換算法是選擇最近最久未使用的頁面予以淘汰。 二、 實(shí)驗(yàn)參考程序先進(jìn)先出頁面調(diào)度算法模擬/*-程序說明:1、main函數(shù)在調(diào)用時(shí)會(huì)先產(chǎn)生一串隨機(jī)數(shù)列,并存放在listN中;2、然后mian函數(shù)調(diào)用IsInBuf函數(shù),把當(dāng)前讀到的單詞x和bufi中的內(nèi)容進(jìn)行比較。如果x在buf中,則返回其位置j;如果x不在buf中,則返回-1。3、當(dāng)x在buf中的時(shí)候,不發(fā)生缺頁中斷。并且開始讀list中的下一個(gè)

4、單詞; 當(dāng)x不在buf中的時(shí)候,發(fā)生缺頁中斷,輸出被淘汰的頁面的內(nèi)容bufi。把listi放到bufold中,并且old開始循環(huán)指向下一個(gè)buf的位置。FIFO算法說明:1、把數(shù)列中的數(shù)字依次放入內(nèi)存中;2、數(shù)字的存放是按照先進(jìn)先出的方式,即循環(huán)存儲(chǔ)??梢杂胦ld=(old+1)%(int)B來實(shí)現(xiàn)。-*/#include <stdio.h>#include <stdlib.h>/#include <conio.h>#include <time.h>#define N 10/*隨機(jī)數(shù)列的長(zhǎng)度*/#define B 3/*內(nèi)存頁面數(shù)*/*-函數(shù)名:

5、IsInBuf()功能:返回某個(gè)數(shù)x有沒有在Buf中,若在,返回其位置;若不在,則返回-1-*/int IsInBuf(int buf,int x)int i,j=-1;for(i=0;i<B;i+)if(bufi=x)/*當(dāng)x在buf中,返回其位置*/j=i;break;else if(bufi=-1)/*當(dāng)x不在buf中,且bufi為空,則把x填入buf,并返回其位置*/bufi=x;j=i;break;return j;/*-函數(shù)名:main功能:、隨機(jī)產(chǎn)生list中的數(shù)字、頁面中斷次數(shù)的打印、退出程序-*/main()int listN;int bufB,i,fN,j;int o

6、ld=0;int change=0;/*生成隨機(jī)數(shù),并且初始化*/srand(int)time(NULL);for(i=0;i<B;i+)bufi=fi=-1;printf("n*");printf("nThe Random List:");for(i=0;i<N;i+)listi=(int) rand()%10;printf("%2d",listi);printf("n*");/*顯示淘汰頁面的序列*/printf("nn");printf("nthe lost in FIFO:");change=0;/*中斷的次數(shù)*/for(i=0;i<N;i+)j=IsInBuf(buf,listi);if(j=-1)/*若中沒有則直接插入*/printf(" %2d",bufold);bufold=listi;old=(old+1)%(int)B;/*數(shù)據(jù)在中的儲(chǔ)存是循環(huán)的*/change+;elseprintf(&qu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論