操作系統(tǒng)_頁面置換算法FIFO,OPT,LRU實(shí)現(xiàn)_第1頁
操作系統(tǒng)_頁面置換算法FIFO,OPT,LRU實(shí)現(xiàn)_第2頁
操作系統(tǒng)_頁面置換算法FIFO,OPT,LRU實(shí)現(xiàn)_第3頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、操作系統(tǒng)第六次上機(jī)在一個(gè)請(qǐng)求分頁系統(tǒng)中,設(shè)頁面大小占 100個(gè)單元,假如系統(tǒng)分配給一個(gè)作業(yè)的物理塊數(shù)為3,試求出用FIFO , LRU,OPT三種算法在程序訪問過程中所發(fā)生的缺頁次數(shù)及缺頁率,每次中斷時(shí)都需要打印出來或者標(biāo)示出來。(假設(shè)最初頁面都在外存)1. 假定此作業(yè)的訪問地址序列為202,313,252,111,546,217,444,544,365,223,398,111。2. 輸入任意的訪問序列,也必須正確顯示。/*代碼尚需完善:1應(yīng)由用戶輸入數(shù)組,且應(yīng)根據(jù)題目要求對(duì)每個(gè)數(shù) /100,得到頁塊標(biāo)號(hào) 2在動(dòng)態(tài)輸入的情況下,通過sizeof,獲得數(shù)組長(zhǎng)度,實(shí)現(xiàn)任意輸入的處理3. FIFO算

2、法實(shí)現(xiàn),why ?4. 在OPT實(shí)現(xiàn)中,mark屬性設(shè)置,以及向后遍歷的參數(shù)設(shè)置?*/前三個(gè)頁塊單獨(dú)處理,需注意前三個(gè)頁塊也可能重復(fù)。已做出修改!#in clude<iostream> using n amespace std; intin put12 = 2,3,2,1,5,2,4,5,3,2,3,1 ;class pagepublic:int num;int mark;page()num = 0;mark = -1;void FIFO()cout << "FIFO"<< en dl;int error = 0;page frame3;

3、/ 頁幀bool flag = true;int check = 0;for (int i = 0; i<3; i+)/處理前三個(gè)引用for (int k = 0; k < i; k+) if (in puti = in putk)flag = false;if (flag = true) framei. num = in puti;framei.mark = i;erro r+;cout << framei. num << " | "for (i nt j = 0; j <= i; j+)cout << framej.

4、 num << ':cout << en dl;elsecheck+;for (int i = 3-check; i<12; i+)int j;for (j = 0; j<3; j+)if (in puti = frame。, num)cout << in puti << en dl;break;if (j = 3)erro r+;/換掉最舊的頁frame(error - 1) % 3) .num = in puti;/ ?cout << in puti << " | "for (i

5、nt k = 0; k<3; k+)cout << framek, num << ':cout << en dl;cout << "FIFO:" << endl;cout << "Error 次數(shù):"<< error << en dl;cout << "Frame Error:" << (error/12.0) << endl << en dl;void OPT()cout &l

6、t;< "OPT"<< en dl;int error = 0;page frame3;bool flag = true;int check = 0;for (int i = 0; i<3; i+)/處理前三個(gè)引用for (int k = 0; k < i; k+) if (in puti = in putk)flag = false;if (flag = true) framei. num = in puti;erro r+;cout << framei. num << " | "for (i nt

7、 j = 0; j <= i; j+)cout << framej. num << ''cout << en dl;elsecheck+;for (int i = 3-check; i<12; i+)int j;for (j = 0; j<3; j+)if (in puti = frame。, num)cout << in puti << en dl; break;if (j = 3)erro r+;for (j = 0; j<3; j+)framej.mark = 21;/ ?for (int

8、 k =20; k >= i; k-)/向后遍歷,找到最長(zhǎng)時(shí)間不用的頁k =20 ?貌似修改后會(huì)岀問題if (frame。, num = in putk) framej.mark = k;if (frame0.mark>frame1.mark&&frame0.mark>frame2.mark) frame0, num = in puti;else if (frame1.mark>frame0.mark&&frame1.mark>frame2.mark) frame1. num = in puti;elseframe2. num =

9、in puti;cout << in puti << " | "for (int k = 0; k<3; k+)cout << framek. num << ':cout << en dl;cout << "OPT:" << endl;cout << "Error 次數(shù):"<< error << en dl;cout << "Frame Error:" <<

10、(error / 12.0) << endl << en dl;void LRU()cout << "LRU"<< en dl;int error = 0;page frame3;bool flag = true;int check = 0;for (i nt i = 0; i<3; i+)處理前三個(gè)引用for (int k = 0; k < i; k+) if (in puti = in putk)flag = false;if (flag = true) framei. num = in puti;erro r

11、+;cout << framei. num << " | "for (i nt j = 0; j <= i; j+)cout << framej. num << ''cout << en dl;elsecheck+;for (int i = 3-check; i<12; i+)int j;for (j = 0; j<3; j+)if (in puti = frame。, num)cout << in puti << en dl;break;if (j = 3

12、)erro r+;for (j = 0; j<3; j+)framej.mark = -1;for (i nt k = 0; k <= i; k+)向前遍歷,找到最近最少使用的if (framej, num = in putk)framej.mark = k;if (frame0.mark<frame1.mark&&frame0.mark<frame2.mark)frame0. num = in puti;else if (frame1.mark<frame0.mark&&frame1.mark<frame2.mark)frame1. num = in puti;elseframe2. num = in puti;cout << in puti << " | "for (int k = 0; k<3; k+)cout << framek. num << ':cout << en dl;cout << "LRU:" << endl;cou

溫馨提示

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