實驗六 虛擬存儲管理_第1頁
實驗六 虛擬存儲管理_第2頁
實驗六 虛擬存儲管理_第3頁
實驗六 虛擬存儲管理_第4頁
實驗六 虛擬存儲管理_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗六 虛擬存儲管理一 實驗?zāi)康拇鎯芾淼闹饕δ苤皇呛侠淼胤峙淇臻g。請求頁式管理是一種常用的虛擬存儲管理技術(shù)。本實驗的目的是通過請求頁式管理中頁面置換算法模擬設(shè)計,了解虛擬存儲技術(shù)的特點,掌握請求頁式存儲管理的頁面置換算法。二 實驗內(nèi)容通過計算不同算法的命中率比較算法的優(yōu)劣。同時也考慮了用戶內(nèi)存容量對命中率的影響。頁面失效次數(shù)為每次訪問相應(yīng)指令時,該指令所對應(yīng)的頁不在內(nèi)存中的次數(shù)。計算并輸出下屬算法在不同內(nèi)存容量下的命中率。l 先進先出的算法(FIFO);l 最近最少使用算法(LRU);開 始生成地址流輸入算法號S1S4形成地址頁號用戶內(nèi)存空間msize=2Msize32 OPT()FIF

2、O()LRU()LFU()Msize加1S=? 是否用其他算法繼續(xù)結(jié) 束NY1234YN提示出錯,重新輸入三 系統(tǒng)框圖四頁面置換算法程序代碼#include<stdio.h> #include<string.h> #include<iostream.h>const int MAXSIZE=1000;/定義頁訪問流的最大長度const int MAXQUEUE=3;/定義可用頁面數(shù)typedef struct node int loaded; int hit; page;page pagesMAXQUEUE; /定義頁面表 int queueMAXSIZE;

3、int quantity;/初始化結(jié)構(gòu)函數(shù) void initial() int i; for(i=0;i<MAXQUEUE;i+) pagesi.loaded=-1; pagesi.hit=0; for(i=0;i<MAXSIZE;i+) queuei=-1; quantity=0;/初始化頁面函數(shù) void init() int i; for(i=0;i<MAXQUEUE;i+) pagesi.loaded=-1; pagesi.hit=0; /讀入頁面流void readData() FILE *fp; char fname20;int i;cout<<&q

4、uot;請輸入頁面流文件名:" cin>>fname;if(fp=fopen(fname,"r")=NULL) cout<<"錯誤,文件打不開,請檢查文件名" else while(!feof(fp) fscanf(fp,"%d ",&queuequantity);quantity+; cout<<"讀入的頁訪問流:" for(i=0;i<quantity;i+)cout<<queuei<<" " /FIFO調(diào)度

5、算法void FIFO() int i,j,p,flag;int absence=0;p=0;cout<<endl<<"-"<<endl; cout<<"先進先出調(diào)度算法(FIFO)頁面調(diào)出流:" for(i=0;i<quantity;i+) flag=0; for(j=0;j<MAXQUEUE;j+) if(pagesj.loaded=queuei) flag=1; if(flag=0) if(absence>=MAXQUEUE) cout<<pagesp.loaded<

6、;<" " pagesp.loaded=queuei; p=(p+1)%MAXQUEUE; absence+; absence-=MAXQUEUE; cout<<endl<<"總?cè)表摂?shù):"<<absence+MAXQUEUE<<endl; /最近最少使用調(diào)度算法(LRU)void LRU() int absence=0; int i,j; int flag;for(i=0;i<MAXQUEUE;i+) pagesi.loaded=queuei; cout<<endl<<&

7、quot;-"<<endl; cout<<"最近最少使用調(diào)度算法(LRU)頁面調(diào)出流:"for(i=MAXQUEUE;i<quantity;i+) flag=-1; for(j=0;j<MAXQUEUE;j+) if(queuei=pagesj.loaded) flag=j; /CAUTION pages0是隊列頭if(flag=-1) /缺頁處理cout<<pages0.loaded<<" " for(j=0;j<MAXQUEUE-1;j+) pagesj=pagesj+1;

8、pagesMAXQUEUE-1.loaded=queuei;absence+; else /頁面已載入 pagesquantity=pagesflag;for(j=flag;j<MAXQUEUE-1;j+) pagesj=pagesj+1; pagesMAXQUEUE-1=pagesquantity;cout<<endl<<"總?cè)表摂?shù):"<<absence+MAXQUEUE<<endl; /顯示 void version() cout<<" /*虛擬存儲管理器的頁面調(diào)度*/"<<

9、;endl;cout<<endl; void main() version(); initial();readData();FIFO(); init();LRU(); init(); init();五 操作說明運行程序前先新建一個頁面流文件文件(例如a.txt),在文件中存儲的是一系列頁號(頁號用整數(shù)表示,用空格作為分隔符),用來模擬程序執(zhí)行時的頁訪問次序。六 結(jié)果分析1. 對于如下的頁面訪問序列; 1,2,3,4,1,2,5,1,2,3,4,5 當內(nèi)存頁面數(shù)分別為2、3、4、5時,使用FIFO和LRU置換算法模擬頁面調(diào)度,記錄并分析實驗結(jié)果(分析內(nèi)存頁面的具體調(diào)度情況并計算命中率)。2.思考以下問題,并使用實驗數(shù)據(jù)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論