實(shí)驗(yàn)六請求分頁存儲管理_第1頁
實(shí)驗(yàn)六請求分頁存儲管理_第2頁
實(shí)驗(yàn)六請求分頁存儲管理_第3頁
實(shí)驗(yàn)六請求分頁存儲管理_第4頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精品實(shí)驗(yàn)六: 請求分頁存儲管理一實(shí)驗(yàn)?zāi)康纳钊肜斫庹埱箜撌酱鎯芾淼幕靖拍詈蛯?shí)現(xiàn)方法,重點(diǎn)認(rèn)識其中的地址變換、缺頁中斷、置換算法等實(shí)現(xiàn)思想。二實(shí)驗(yàn)屬性該實(shí)驗(yàn)為綜合性、設(shè)計(jì)性實(shí)驗(yàn)。三實(shí)驗(yàn)儀器設(shè)備及器材普通 PC386 以上微機(jī)四實(shí)驗(yàn)要求本實(shí)驗(yàn)要求2 學(xué)時完成。本實(shí)驗(yàn)要求完成如下任務(wù):( 1 ) 建立相關(guān)的數(shù)據(jù)結(jié)構(gòu):頁表、頁表寄存器、存儲塊表等;( 2 ) 指定分配給進(jìn)程的內(nèi)存物理塊數(shù),設(shè)定進(jìn)程的頁面訪問順序;( 3 ) 設(shè)計(jì)頁面置換算法,可以選擇OPT 、FIFO 、LRU 等,并計(jì)算相應(yīng)的缺頁率,以比較它們的優(yōu)劣;( 4 ) 編寫 地址轉(zhuǎn)換函數(shù),實(shí)現(xiàn)通過查找頁表完成邏輯地址到物理地址的轉(zhuǎn)換;若

2、發(fā)生缺頁則選擇某種置換算法(OPT 、 FIFO 、 LRU 等)完成頁面的交換;感謝下載載精品( 5 ) 將整個過程可視化顯示出來。實(shí)驗(yàn)前應(yīng)復(fù)習(xí)實(shí)驗(yàn)中所涉及的理論知識和算法,針對實(shí)驗(yàn)要求完成基本代碼編寫并完成預(yù)習(xí)報告、實(shí)驗(yàn)中認(rèn)真調(diào)試所編代碼并進(jìn)行必要的測試、記錄并分析實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)后認(rèn)真書寫符合規(guī)范格式的實(shí)驗(yàn)報告(參見附錄 A ),并要求用正規(guī)的實(shí)驗(yàn)報告紙和封面裝訂整齊,按時上交。三、設(shè)計(jì)過程3.1 算法原理分析OPT 算法是未來最遠(yuǎn)出現(xiàn),當(dāng)當(dāng)前內(nèi)存中沒有正要訪問的頁面時,置換出當(dāng)前頁面中在未來的訪問頁中最遠(yuǎn)出現(xiàn)的頁面或再也不出現(xiàn)的頁面。FIFO 算法是先進(jìn)先出,當(dāng)當(dāng)前內(nèi)存中沒有正要訪問的頁

3、面時,置換出最先進(jìn)來的頁面。LRU 算法是最近最久未使用,當(dāng)當(dāng)前內(nèi)存中沒有正要訪問的頁面時,置換出在當(dāng)前頁面中最近最久沒有使用的頁面。3.2 數(shù)據(jù)定義intlength,num_page,count,seed;/length記 錄 訪 問 串 的 長 度 ,num_page頁面數(shù), count記錄缺頁次數(shù)感謝下載載精品intresult2030,order30,a10;/result記錄結(jié)果 ,order存儲訪問串 ,a 存儲當(dāng)前頁面中的值int pos1,flag1,flag2,flag3; /pos1位置變量, flag1等為標(biāo)志變量char result130; /記錄缺頁數(shù)組void

4、opt()/ 最佳void fifo() /先進(jìn)先出bool search(int n)/ 查找當(dāng)前內(nèi)存中是否已存在該頁3.3 流程圖與運(yùn)行截圖開始得到執(zhí)行的指令指令是否在內(nèi)存中是是最先存入指下面是否還有指令令被淘否汰否得出命中率結(jié)束圖 6.1 FIFO ()函數(shù)流程圖;感謝下載載精品感謝下載載精品開始輸入內(nèi)存中分配頁據(jù)第一個訪問頁初始化第一列值還有請求訪問頁?是直接復(fù)制前一列內(nèi)容否是內(nèi)存中是否已存否內(nèi)存有空頁?否是直接插入替換內(nèi)存中將來不出現(xiàn)或離當(dāng)前最輸出全部頁面變結(jié)束圖 2.2 OPT 算法流程圖感謝下載載精品四、小結(jié)本次課程設(shè)計(jì)目的是通過請求頁式管理中頁面置換算法模擬設(shè)計(jì),了解虛擬存儲技

5、術(shù)的特點(diǎn),掌握請求頁式存儲管理的頁面置換算法。要求設(shè)計(jì)隨機(jī)頁面產(chǎn)生程序,并說明隨機(jī)的性能和其性能可能對算法的影響, 對隨機(jī)性要有一定的參數(shù)控制能力;計(jì)算并輸出FIFO 及LRU 算法在不同內(nèi)存容量下的命中率。由于上學(xué)期做過頁面置換的實(shí)驗(yàn),內(nèi)容包括先進(jìn)先出算法 ( FIFO )、最近最久未使用頁面置換算法(LRU )和理想淘汰算法(OPT ), 3 種算法思想簡單明確,選好數(shù)據(jù)結(jié)構(gòu),思路清晰便基本沒問題了。所以相對來說,這次操作系統(tǒng)的課程設(shè)計(jì)容易許多,只是在之前實(shí)驗(yàn)基礎(chǔ)上,要附加設(shè)計(jì)隨機(jī)頁面產(chǎn)生程序,對隨機(jī)性要有一定的參數(shù)控制能力。對于隨機(jī)頁面產(chǎn)生程序,我們之前沒做過,在網(wǎng)上查閱資料,使用了庫函

6、數(shù)srand ()和 rand (),實(shí)現(xiàn)了簡單的隨機(jī)頁面產(chǎn)生程序,功能基本完成。我們知識所限,沒有使用漂亮可視化界面編程實(shí)現(xiàn)功感謝下載載精品能,用簡單的C 語言編程實(shí)現(xiàn)的。不管怎么樣,最終還是實(shí)現(xiàn)的本次課程設(shè)計(jì)要求的。五、源程序#include<iostream>#include<stdlib.h>using namespace std;int length,num_page,count,seed;int result2030,order30,a10;int pos1,flag1,flag2,flag3;char result130;void init()memset

7、(a,-1,sizeof(a);int i;cout<<"輸入訪問串的長度:"cin>>length;cout<<"輸入種子數(shù)控制產(chǎn)生的隨機(jī)值:"cin>>seed;srand(seed); cout<<"產(chǎn)生的隨機(jī)訪問串:"for(i=0;i<length;i+)orderi=rand()%10; cout<<orderi<<" "<<endl;感謝下載載精品cout<<"輸入頁面的個數(shù):&

8、quot;cin>>num_page;void print()int i,j;cout<<"表示缺頁 "<<endl;for( j=0;j<length;j+)printf("%2d ",orderj);cout<<endl;for( i=0;i<num_page;i+)for( j=0;j<length;j+)if(resultij=-1)printf("");else printf("%2d ",resultij);cout<<end

9、l;for( j=0;j<length;j+)printf("%2c ",result1j); cout<<endl;感謝下載載精品cout<<"缺頁率: "<<count<<"/"<<length;printf("=%.1lf",(count*1.0)/(length*1.0)*100);cout<<"%"<<endl;bool search(int n)/ 查找當(dāng)期內(nèi)存是否已存在int i; for(i

10、=0;i<num_page;i+)if(ai=n)return true;return false;void opt()/ 最佳int i,pos10,flag10; while(1) flag1=flag2=0;for(i=0;i<length;i+)if(!search(orderi) count+;result1i='*'感謝下載載精品if(anum_page-1!=-1)/ 表示當(dāng)前頁面已滿要淘汰一個memset(pos,-1,sizeof(pos);memset(flag,0,sizeof(flag);int j,k;for(j=i;j<length

11、;j+)/找出當(dāng)前頁中的值在將來訪問串中對應(yīng)的最近位置for( k=0;k<num_page;k+)if(orderj=ak&&flagk=0)posk=j;flagk=1;cout<<endl;int max=-10,max_pos;for(k=0;k<num_page;k+)/找出位置最遠(yuǎn)的那個值if(posk=-1)/未出現(xiàn)則跳出,替換該值感謝下載載精品max_pos=k; break;else if(max<posk)max=posk;m ax_pos=k;amax_pos=orderi;else / 還有空頁for(int j=0;j&l

12、t;num_page;j+)if(a j=-1)a j=orderi;break;else result1i=' 'for(int j=0;j<num_page;j+)result ji=aj;print();感謝下載載精品if(flag1=0&&flag2=0)b reak;void fifo() /先進(jìn)先出int i,thisn=0; while(1)count=0; flag1=flag2=0; for(i=pos1;i<length;i+)if(!search(orderi)count+;result1i='*'if(anum

13、_page-1!=-1)/ 表示當(dāng)前頁面已滿要淘汰一個athisn= orderi;thisn+;if(thisn>=num_page)thisn=0;elsefor(int j=0;j<num_page;j+) if(a j=-1)感謝下載載精品a j=orderi;break;else result1i=' 'for(int j=0;j<num_page;j+)result ji=aj; print();if(flag1=0&&flag2=0)break;void main()/ 主函數(shù)int m;printf(" 1.OPT.n");printf(" 2.FIFO.n");printf(" 0.退出 .n");printf("選擇所要操作 :");感謝

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論