(2021年整理)操作系統(tǒng)_頁面置換算法FIFO,OPT,LRU實現(xiàn)_第1頁
(2021年整理)操作系統(tǒng)_頁面置換算法FIFO,OPT,LRU實現(xiàn)_第2頁
(2021年整理)操作系統(tǒng)_頁面置換算法FIFO,OPT,LRU實現(xiàn)_第3頁
(2021年整理)操作系統(tǒng)_頁面置換算法FIFO,OPT,LRU實現(xiàn)_第4頁
免費預覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、操作系統(tǒng)_頁面置換算法fifo,opt,lru實現(xiàn)操作系統(tǒng)_頁面置換算法fifo,opt,lru實現(xiàn) 編輯整理:尊敬的讀者朋友們:這里是精品文檔編輯中心,本文檔內(nèi)容是由我和我的同事精心編輯整理后發(fā)布的,發(fā)布之前我們對文中內(nèi)容進行仔細校對,但是難免會有疏漏的地方,但是任然希望(操作系統(tǒng)_頁面置換算法fifo,opt,lru實現(xiàn))的內(nèi)容能夠給您的工作和學習帶來便利。同時也真誠的希望收到您的建議和反饋,這將是我們進步的源泉,前進的動力。本文可編輯可修改,如果覺得對您有幫助請收藏以便隨時查閱,最后祝您生活愉快 業(yè)績進步,以下為操作系統(tǒng)_頁面置換算法fifo,opt,lru實現(xiàn)的全部內(nèi)容。操作系統(tǒng)第六次

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

3、4。在opt實現(xiàn)中,mark屬性設置,以及向后遍歷的參數(shù)設置?/前三個頁塊單獨處理,需注意前三個頁塊也可能重復。已做出修改!includeiostreamusing namespace std;int input12 = 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- endl;int error = 0;page frame3;/頁幀 bool flag = true;int check = 0;for (int i = 0; i

4、3; i+)/處理前三個引用 for (int k = 0; k i; k+) if (inputi = inputk)flag = false;if (flag = true) framei.num = inputi;framei。mark = i;error+;cout framei.num ;for (int j = 0; j = i; j+)cout framej.num ;cout endl;elsecheck+;for (int i = 3-check; i12; i+)int j;for (j = 0; j3; j+)if (inputi = framej.num)cout in

5、puti endl;break;if (j = 3)error+;frame((error - 1) % 3).num = inputi;/換掉最舊的頁/?cout inputi | ;for (int k = 0; k3; k+)cout framek.num ;cout endl;cout fifo:” endl;cout error次數(shù):” error endl;cout ”frame error:” (error/12.0) endl endl;void opt()cout -opt-” endl;int error = 0;page frame3;bool flag = true;i

6、nt check = 0;for (int i = 0; i3; i+)/處理前三個引用 for (int k = 0; k i; k+) if (inputi = inputk)flag = false;if (flag = true) framei。num = inputi;error+;cout framei。num ” ”;for (int j = 0; j = i; j+)cout framej。num ;cout endl;elsecheck+;for (int i = 3-check; i12; i+)int j;for (j = 0; j3; j+)if (inputi = f

7、ramej.num)cout inputi = i; k-)/向后遍歷,找到最長時間不用的頁/k =20? 貌似修改后會出問題if (framej.num = inputk)framej。mark = k;if (frame0。markframe1。markframe0.markframe2。mark)frame0。num = inputi;else if (frame1.markframe0。mark&frame1.markframe2.mark)frame1.num = inputi;elseframe2.num = inputi;cout inputi ” ;for (int k = 0

8、; k3; k+)cout framek.num ;cout endl;cout ”opt: endl;cout error次數(shù):” error endl;cout frame error:” (error / 12。0) endl endl;void lru()cout ”-lru-” endl;int error = 0;page frame3;bool flag = true;int check = 0;for (int i = 0; i3; i+)/處理前三個引用 for (int k = 0; k i; k+) if (inputi = inputk)flag = false;if

9、(flag = true) framei。num = inputi;error+;cout framei。num ;for (int j = 0; j = i; j+)cout framej。num ;cout endl;elsecheck+;for (int i = 3check; i12; i+)int j;for (j = 0; j3; j+)if (inputi = framej。num)cout inputi endl;break;if (j = 3)error+;for (j = 0; j3; j+)framej.mark = -1;for (int k = 0; k = i; k+)/向前遍歷,找到最近最少使用的 if (framej.num = inputk)framej。mark = k;if (frame0.markframe1。mark&frame0。markframe2。mark)frame0.num = inputi;else if (frame1.markframe0.mark&frame1。markframe2。mark)frame1.num = inputi;elseframe2。num = inputi;cout inputi | ”;for (int k

溫馨提示

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

評論

0/150

提交評論