操作系統(tǒng)實(shí)驗(yàn)3虛擬存儲器管理_第1頁
操作系統(tǒng)實(shí)驗(yàn)3虛擬存儲器管理_第2頁
操作系統(tǒng)實(shí)驗(yàn)3虛擬存儲器管理_第3頁
操作系統(tǒng)實(shí)驗(yàn)3虛擬存儲器管理_第4頁
操作系統(tǒng)實(shí)驗(yàn)3虛擬存儲器管理_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔傾情為你奉上精選優(yōu)質(zhì)文檔傾情為你奉上專心專注專業(yè)專心專注專業(yè)精選優(yōu)質(zhì)文檔傾情為你奉上專心專注專業(yè)實(shí)驗(yàn)報(bào)告班級: 系統(tǒng)本111 學(xué)號: 姓名: 張國鋒日期: 2013.6.27 = 1 * GB1 實(shí)驗(yàn)題目模擬分頁式虛擬存儲管理實(shí)驗(yàn)。2實(shí)驗(yàn)要求編寫一段程序來模擬頁面置換算法。要求能分別顯示最佳(Optimal)置換算法、先進(jìn)先出(FIFO)頁面置換算法和最近最久未使用(LRU)置換算法的置換過程。3. 實(shí)驗(yàn)?zāi)康耐ㄟ^本實(shí)驗(yàn)幫助學(xué)生理解虛擬存儲器的工作方法。了解分頁式存儲管理里中各頁面置換算法是怎樣實(shí)現(xiàn)的,各算法有怎樣的優(yōu)缺點(diǎn)。 = 4 * GB1 實(shí)驗(yàn)原理分析 = 1 * GB2 頁面

2、置換算法是在分頁存儲管理方式中為了合理的將進(jìn)程運(yùn)行所需的頁面調(diào)入內(nèi)存而產(chǎn)生的算法。一個好的頁面轉(zhuǎn)換算法,應(yīng)具有較低的頁面更換頻率。最常見的頁面置換算法有最佳(Optimal)置換算法、先進(jìn)先出(FIFO)頁面置換算法和最近最久未使用(LRU)置換算法。 = 2 * GB2 算法的說明最佳置換算法:選擇以后永不使用或是在最長時(shí)間內(nèi)不再被訪問的頁面作為被淘汰的頁面。這種算法通??杀WC獲得最低的缺頁率,但因?yàn)閮?nèi)存中哪個頁面是以后永不使用的是無法預(yù)知的,所以該算法是無法實(shí)現(xiàn)的。先進(jìn)先出頁面置換算法:選擇內(nèi)存中駐留時(shí)間最長的頁面作為被淘汰的頁面。該算法實(shí)現(xiàn)簡單,只需將調(diào)入內(nèi)存中的頁面鏈成一個隊(duì)列,并設(shè)置

3、一個指針指向最老的頁面即可。最近最久未使用置換算法:選擇最近最久未使用的頁面作為被淘汰的頁面。該算法需要為每個頁面設(shè)置一個訪問字段用來記錄頁面上次被訪問的時(shí)間,通過這個時(shí)間來決定淘汰哪一個頁面。 = 3 * GB2 主要變量及函數(shù)說明如表1所示表1 主要變量及函數(shù)說明表PRA(void)初始化int findSpace(void)查找是否有空閑內(nèi)存int findExist(int curpage)查找內(nèi)存中是否有該頁面int findReplace(void)查找應(yīng)予置換的頁面void display(void)顯示void FIFO(void)FIFO算法void LRU(void)LRU

4、算法void Optimal(void)OPTIMAL算法void BlockClear(void)BLOCK恢復(fù)struct pageInfor * block物理塊struct pageInfor * page頁面號串實(shí)驗(yàn)代碼清單#include #include #include #define Bsize 3#define Psize 20struct pageInfor int content;/*頁面號*/ int timer;/*被訪問標(biāo)記*/;void PRA();/*初始化*/int findSpace();/*查找是否有空閑內(nèi)存*/int findExist(int cur

5、page);/*查找內(nèi)存中是否有該頁面*/int findReplace();/*查找應(yīng)予置換的頁面*/void display();/*顯示*/void FIFO();/*FIFO算法*/void LRU();/*LRU算法*/void Optimal();/*OPTIMAL算法*/void BlockClear();/*BLOCK恢復(fù)*/struct pageInfor * block;/*物理塊*/struct pageInfor * page;/*頁面號串*/int QString20;void PRA() int i,n;printf(請輸入頁面號引用串:n);for(i=0;i20

6、;i+)scanf(%d,&QStringi);printf(您輸入頁面號引用串為:n);printf(=n);for(i=0;i20;i+)printf(%dt,QStringi);printf(=n);block=(struct pageInfor *)malloc(sizeof(struct pageInfor);for(i=0; iBsize; i+) blocki.content = -1;blocki.timer = 0;page = (struct pageInfor *)malloc(sizeof(struct pageInfor)*Psize);for(i=0; iPsize

7、; i+) pagei.content = QStringi;pagei.timer = 0;int findSpace()int i=0;for(i=0; iBsize; i+)if(blocki.content = -1)return i;/*找到空閑內(nèi)存,返回BLOCK中位置*/return -1;int findExist(int curpage)int i=0;for(i=0; iBsize; i+)if(blocki.content = pagecurpage.content)return i;/*找到內(nèi)存中有該頁面,返回BLOCK中位置*/return -1;int findRe

8、place()int pos = 0,i;for(i=0; i= blockpos.timer)pos = i;/*找到應(yīng)予置換頁面,返回BLOCK中位置*/return pos;void display()int i=0;for(i=0; iBsize; i+)if(blocki.content != -1)printf(%dt,blocki.content);printf(n);void Optimal()int exist,space,position,i,k,j ;for(i=0; iPsize; i+) exist = findExist(i);if(exist != -1) pri

9、ntf(不缺頁n);else space = findSpace();if(space != -1) blockspace = pagei;display();else for(k=0; kBsize; k+)for(j=i; jPsize; j+) if(blockk.content != pagej.content) blockk.timer = 1000;else blockk.timer = j;break;position = findReplace();blockposition = pagei;display();getch();system(cls);void LRU()int

10、 exist,space,position,i,k,j ;for(i=0; iPsize; i+) exist = findExist(i);if(exist != -1) printf(不缺頁n);blockexist.timer = -1; else space = findSpace();if(space != -1) blockspace = pagei;display();else position = findReplace();blockposition = pagei;display();for(j=0; jBsize; j+)blockj.timer+;getch();sys

11、tem(cls);void FIFO()int exist,space,position,i,k,j ;for(i=0; iPsize; i+) exist = findExist(i);if(exist != -1) printf(不缺頁n);else space = findSpace();if(space != -1) blockspace = pagei;display();else position = findReplace();blockposition = pagei;display();for(j=0; jBsize; j+)blockj.timer+;/*BLOCK中所有頁

12、面TIMER+*/getch();system(cls);void BlockClear()/清空頁面信息int i;for(i=0; iBsize; i+) blocki.content = -1;blocki.timer = 0;void main() PRA();system(color 2); int select=1;while(select) printf(系統(tǒng)本111項(xiàng)靜怡小組頁面置換算法程序n);printf(請按以下菜單選擇:n);printf(1tOptimalt算法n);printf(2tFIFOt算法n);printf(3tLRUt算法n);printf(0t退出n);scanf(%d,&select);switch(select) case 0:break;case 1:printf(Optimal算法結(jié)果如下:n);Optimal();break;case 2:printf(FIFO算法結(jié)果如下:n);FIFO();break;case 3:printf(LRU算法結(jié)果如下:n);LRU();break;default:printf(菜選項(xiàng)輸入錯誤

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論