操作系統(tǒng)實驗報告范文頁面置換_第1頁
操作系統(tǒng)實驗報告范文頁面置換_第2頁
操作系統(tǒng)實驗報告范文頁面置換_第3頁
操作系統(tǒng)實驗報告范文頁面置換_第4頁
操作系統(tǒng)實驗報告范文頁面置換_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

intfindSpace(void);//intfindSpace(void);//查找是否有空閑內存口操作系統(tǒng)實驗報告范文頁面置換實驗三內存頁面置換算法的設計實習內容設計一個虛擬存儲區(qū)和內存工作區(qū),并使用下述算法來模擬實現頁面的置換:1.先進先出的算法(FIFO)口2.最近最久未使用算法(LRU)3.最佳置換算法(OPT)口實習目的本實習要求學生通過請求頁式存儲管理中頁面置換算法模擬設計,了解虛擬存儲技術的技術特點,掌握請求頁式存儲管理的頁面置換算法。LINU某中,為了提高內存利用率,提供了內外存進程對換機制,內存空間的分配和回收均以頁為單位進行,一個進程只需將其一部分(段或頁)調入內存便可運行,還支持請求調頁的存儲管理方式。當進程在運行中需要訪問某部分程序和數據時,發(fā)現其所在頁面不在內存,就立即提出請求(向CPU發(fā)出缺中斷),由系統(tǒng)將其所需頁面調入內存。這種頁面調入方式叫請求調頁。當CPU接收到缺頁中斷信號,中斷處理程序先保存現場,分析中斷原因,轉入缺頁中斷處理程序。該程序通過查找頁表,得到該頁所在外存的物理塊號。如果此時內存未滿,能容納新頁,則啟動磁盤I/O將所缺之頁調入內存,然后修改頁表。如果內存已滿,則須按某種置換算法從內存中選出一頁準備換出,是否重新寫盤由頁表的修改位決定,然后將缺頁調入,修改頁表。利用修改后的頁表,去形成所要訪問數據的物理地址,再去訪問內存數據。整個頁面的調入過程對用戶是透明的。實習原理——算法思想:.先進先出(FIFO)置換算法的思路口該算法總是淘汰最先進入內存的頁面,即選擇在內存中駐留時間最久的頁面予以淘汰。該算法實現簡單,只需把一個進程已調入內存的頁面,按照先后次序連接成一個隊列,并設置一個替換指針,使它總指向最老的頁面。.最近久未使用(LRU)置換算法的思路口最近久未使用置換算法的替換規(guī)則,是根據頁面調入內存后的使用情況來進行決策的。該算法賦予每個頁面一個訪問字段,用來記錄一個頁面自上次被訪問以來所經歷的時間,當需淘汰一個頁面的時候選擇現有頁面中其時間值最大的進行淘汰。.最佳(OPT)置換算法的思路口其所選擇的被淘汰的頁面,獎是以后不使用的,或者是在未來時間內不再被訪問的頁面,采用最佳算法,通??杀WC獲得最低的缺頁率。實習編程思路和流程——數據結構tructpageInfor{claPRA{public:PRA(void);intfindReplace(void);//intfindReplace(void);//查找應予置換的頁面口intfindSpace(void);//intfindSpace(void);//查找是否有空閑內存口intfindE某it(intcurpage);//查找內存中是否有該頁面intfindReplace(void);//查找應予置換的頁面voiddiplay(void);//顯示voidFIFO(void);//FIFO算法voidLRU(void);//LRU算法口voidBlockClear(void);//BLOCK清空,以便用另一種方法重新演示pageInfor某block;//物理塊pageInfor某口@80;//頁面號串private:};口FIFO頁面置換算法口LRU頁面置換算法口當需要訪問一個新的頁面時,首先調用findE某it(i)函數來查看物理塊中是否就有這個頁面OPT頁面置換算法口當需要訪問一個新的頁面時,也首先調用findE某it(i)函數來查看物理塊中是否就有這個頁面尋找應予置換頁面函數findReplace開始取一條指令取指令中訪問的頁號=>L查頁表頁標記=1?形成絕對地址是“存”指令?否否(產生缺頁中斷)是置L頁修改標記“1”輸出“某頁號”輸出絕對地址有后繼指令?是取一條指令結束J頁的修改標記是輸出“OUTj”否否J:=P[k]輸出“INL”P[k]:=Lk:=(k+1)modm修改頁面程序流程圖源程序結構分析——程序結構程序共有以下九個部分:intfindE某it(intcurpage);//查找內存中是否有該頁面intfindReplace(void);//查找應予置換的頁面voiddiplay(void);//顯示voidFIFO(void);//FIFO算法voidLRU(void);//LRU算法voidOPT(void);//OPT算法;口voidBlockClear(void);//BLOCK清空,以便用另一種方法重新演示intmain()//主程序口源程序代碼#include#defineBize3#definePize20tructpageInfor{claPRA{public:PRA::PRA(void){intQString[20]={7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1};block=newpageInfor[Bize];PRA(void);intfindSpace(void);//查找是否有空閑內存口intfindE某it(intcurpage);//查找內存中是否有該頁面口voiddiplay(void);//顯示voidFIFO(void);//FIFO算法voidLRU(void);//LRU算法口voidOptimal(void);//OPTIMAL算法voidBlockClear(void);//BLOCK恢復pageInfor某block;//物理塊pageInfor某口@80;//頁面號串口private:};for(inti=0;ipage=newpageInfor[Pize];for(i=0;i{intPRA::findSpace(void){for(inti=0;ireturni;//找到空閑內存,返回BLOCK中位置returnT;}口intPRA::findE某it(intcurpage){口for(inti=0;ireturni;//找到內存中有該頁面,返回BLOCK中位置口return-1;}intPRA::findReplace(void){intpo=0;po=i;//找到應予置換頁面,返回BLOCK中位置returnpo;}口voidPRA::diplay(void){for(inti=0;icout<voidPRA::Optimal(void){inte某it,pace,poition;口for(inti=0;ie某it=findE某it(i);if(e某it!=T)口{cout<pace=findSpace();if(pac

溫馨提示

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

最新文檔

評論

0/150

提交評論