操作系統(tǒng) 七次實(shí)驗(yàn)報(bào)告 常用頁面置換算法模擬實(shí)驗(yàn)_第1頁
操作系統(tǒng) 七次實(shí)驗(yàn)報(bào)告 常用頁面置換算法模擬實(shí)驗(yàn)_第2頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

操作系統(tǒng)課程第七次實(shí)驗(yàn)報(bào)告姓名學(xué)號系計(jì)算機(jī)任課教師賀輝指導(dǎo)教師賀輝評閱教師賀輝實(shí)驗(yàn)地點(diǎn)綜合樓B102實(shí)驗(yàn)時間2012-9-26實(shí)驗(yàn)課表現(xiàn)出勤和個人表現(xiàn)Q1(15+15(組長評分)=30分)得分:實(shí)驗(yàn)總分(Q1+Q2+Q3+Q4)實(shí)驗(yàn)完成情況Q2(45分(組長與教師評分的加權(quán)平均))得分:實(shí)驗(yàn)編號與實(shí)驗(yàn)名稱:面實(shí)驗(yàn)?zāi)康模和ㄟ^模擬實(shí)現(xiàn)請求頁式存儲管理的幾種基本頁面置換算法,了解虛擬存儲技術(shù)的特點(diǎn),掌握虛擬存儲請求頁式存儲管理中幾種基本頁面置換算法的基本思想和實(shí)現(xiàn)過程,并比較它們的效率。實(shí)驗(yàn)內(nèi)容及要求(詳見實(shí)驗(yàn)講義與實(shí)驗(yàn)指導(dǎo)書):要求:1)要求用你熟悉的程序設(shè)計(jì)語言編寫和調(diào)試一個頁面置換模擬程序;要求在主函數(shù)中測試。2)實(shí)驗(yàn)報(bào)告中必須包括:設(shè)計(jì)思想、數(shù)據(jù)定義(包括詳細(xì)說明)、處理流程(詳細(xì)算法描述和算法流程圖)、源代碼、運(yùn)行結(jié)果、體會等部分。3)必須模擬本實(shí)驗(yàn)內(nèi)容中提到的算法中的至少2種頁面置換算法。4)比較不同頁面置換算法的效率內(nèi)容:編寫一個程序,使用以下頁面置換算法中的某2種分別模擬一個分頁系統(tǒng),并統(tǒng)計(jì)同一個頁面訪問序列情況下不同頁面置換算法引發(fā)的缺頁中斷次數(shù)。1、第二次機(jī)會算法(SecondChance)2、最近最少使用算法(LeastRecentlyUsed,LRU)3、最不常用算法(NotFrequentlyUsed,NFU)4、最近未使用算法(NotRecentlyUsed,NRU)5、時鐘頁面置換算法6、老化算法(aging)頁框的數(shù)量固定為4,虛擬頁面數(shù)為8。實(shí)驗(yàn)輸入為訪問頁面序列,比如0,1,3,2,7,1

0111現(xiàn)22回圖1?Main()<用FIFO算法實(shí)現(xiàn)LRU退出EXIT()FIFO()實(shí)現(xiàn)結(jié)果:姓名:黃浩全printf(”|printf(”卜匚作者信息顯示請依次輸入頁面號?50111現(xiàn)22回圖1?Main()<用FIFO算法實(shí)現(xiàn)LRU退出EXIT()FIFO()實(shí)現(xiàn)結(jié)果:姓名:黃浩全printf(”|printf(”卜匚作者信息顯示請依次輸入頁面號?5(1234567designBy()用LRU算法實(shí)I"八5EditSearchViewProjectExecuteDebugToolsCVSWindow旦elp匚主函數(shù),入口/換作至纟.;122222222222222222217218219PRINT()-"■■■.]顯示內(nèi)存頁框每次置換結(jié)果盹igj壯鋁晝?nèi)矢嵩?*匸<Dev-C++4-9-9.0〉|\nr,);1\nr,);實(shí)驗(yàn)七:頁面置換算法學(xué)號:1001010042姓名:黃浩全<Deu-C+*4.9.9.0>回圖2回;bug87567867缺貝率:8/8訪冋命中率:0Z1&?旦|「"hq煙名=苦浩卒ViewProjecttxecuteL>ebugJ_oolsCVSWindowHelp獨(dú)閹昌<Y—;<Dev-C++4回圖2回;bug87567867缺貝率:8/8訪冋命中率:0Z1&?旦|「"hq煙名=苦浩卒ViewProjecttxecuteL>ebugJ_oolsCVSWindowHelp獨(dú)閹昌<Y—;<Dev-C++4.9.9.0代碼:/*物理塊數(shù)*/按任意鍵重新選擇置換算法:pzintf|printf(ri卜1?先進(jìn)先岀<FIFO>3■退岀[請選擇操作="I4:1::1!2!!2:3::3:::4輸人.的頁面號引用串為「12345678*2?最近最久未使用<LRU>**************1-占進(jìn)先出<r'ro>3-iLLJ?arthViewProjectEKe-cute-D^e-buleaIsCVSWindowHelp#includevstdio?h>#includevstdlib?h>#defineMEMORYSIZE4操作系纟122222222222222222217218219220printf(STprintf("-■C:\Users\Administrator\Desktop'擇作蔡統(tǒng)實(shí)驗(yàn)七亡請選擇頁面直換算法’2-齡近最戈未使用4刖八4肓迤莘操怕“]#definePROESS_SIZE8/*頁面號引用串個數(shù)*/#includevstdio.h>#includevstdlib.h>/*全局變量*/intmSIZE=4;intpSIZE=8;staticintmemery[4]={0};/*物理塊中的頁號*/staticintpage[8]={0};/*頁面號引用串*/staticinttemp[8][4]={0};/*輔助數(shù)組*//*置換算法函數(shù)*/voidFIFO();voidLRU();voidOPT();voiddesignBy();/*輔助函數(shù)*/voidprint(unsignedintt);/*主函數(shù)*/intmain(){inti,k,code;designBy();system("color0A");puts("請依次輸入頁面號(8個):");for(i=O;ivpSIZE;i++)scanf("%ld",&page[i]);system("cls");system("color0E");do{puts("輸入的頁面號引用串為:");for(k=0;kv=(pSIZE-1)/20;k++){for(i=20*k;(ivpSIZE)&&(iv20*(k+1));i++){if(((i+1)%20==0)ll(((i+1)%20)&&(i==pSIZE-1)))printf("%d\n",page[i]);elseprintf("%d",page[i]);}}*\n");printf("*\n");printf("*請選擇頁面置換算法:\t\t\t*\n");printf("**\n");printf("*1.先進(jìn)先出(FIFO)2.最近最久未使用(LRU)*\n");printf("*3.退出*\n");printf("***********************\n");printf("請選擇操作:[]\b\b");scanf("%d",&code);switch(code){case1:FIFO();break;case2:LRU();break;case3:system("cls");system("color0A");exit(O);default:printf("輸入錯誤,請重新輸入:”);}printf("按任意鍵重新選擇置換算法:>>>");getch();system("cls");}while(code!=3);getch();}voidprint(unsignedintt){inti,j,k,l;intflag;for(k=0;kv=(pSIZE-l)/20;k++){for(i=20*k;(ivpSIZE)&&(iv20*(k+1));i++){if(((i+1)%20==0)ll(((i+1)%20)&&(i==pSIZE-1)))printf("%d\n",page[i]);elseprintf("%d",page[i]);}for(j=0;j<mSIZE;j++){for(i=20*k;(i<mSIZE+20*k)&&(i<pSIZE);i++){if(i>=j)printf("|%d|",temp[i][j]);elseprintf(“II");}for(i=mSIZE+20*k;(ivpSIZE)&&(iv20*(k+l));i++){for(flag=0,l=0;l<mSIZE;l++)if(temp[i][l]==temp[i-1][l])flag++;if(flag=mSIZE)/*頁面在物理塊中*/printf("");elseprintf("|%d|",temp[i][j]);}一/*每行顯示20個*/if(i%20==0)continue;printf("\n");}}printf("\n");printf("缺頁次數(shù):%d\t\t",t+mSIZE);printf("缺頁率:%d/%d\n",t+mSIZE,pSIZE);printf("置換次數(shù):%d\t\t",t);printf("訪問命中率:%d%%\n",(pSIZE-(t+mSIZE))*100/pSIZE);printf("\n");}/*先進(jìn)先出頁面置換算法*/voidFIFO(){intmemery[10]={0};inttime[10]={0};/*記錄進(jìn)入物理塊的時間*/inti,j,k,m;intmax=0;/*記錄換出頁*/intcount=0;/*記錄置換次數(shù)*//*前mSIZE個數(shù)直接放入*/for(i=0;i<mSIZE;i++){memery[i]=page[i];time[i]=i;for(j=0;j<mSIZE;j++)temp[i][j]=memery[j];}for(i=mSIZE;i<pSIZE;i++){/*判斷新頁面號是否在物理塊中*/for(j=0,k=0;jvmSIZE;j++){if(memery[j]!=page[i])k++;}if(k==mSIZE)/*如果不在物理塊中*/{count++;/*計(jì)算換出頁*/max=time[O]vtime[l]?O:l;for(m=2;mvmSIZE;m++)if(time[m]<time[max])max=m;memery[max]=page[i];time[max]=i;/*記錄該頁進(jìn)入物理塊的時間*/for(j=0;j<mSIZE;j++)temp[i][j]=memery[j];}else{for(j=0;j<mSIZE;j++)temp[i][j]=memery[j];}}print(count);}/*最近最久未使用置換算法*/voidLRU(){intmemery[10]={0};intflag[10]={0};/*記錄頁面的訪問時間*/inti,j,k,m;intmax=0;/*記錄換出頁*/intcount=0;/*記錄置換次數(shù)*//*前mSIZE個數(shù)直接放入*/for(i=O;ivmSIZE;i++){memery[i]=page[i];flag[i]=i;for(j=0;j<mSIZE;j++)temp[i][j]=memery[j];}for(i=mSIZE;ivpSIZE;i++)/*判斷新頁面號是否在物理塊中*/for(j=0,k=0;jvmSIZE;j++){if(memery[j]!=page[i])k++;elseflag[j]=i;/*刷新該頁的訪問時間*/}if(k==mSIZE)/*如果不在物理塊中*/{count++;/*計(jì)算換出頁*/max=flag[O]vflag[l]?O:l;for(m=2;mvmSIZE;m++)if(flag[m]<flag[max])max=m;memery[max]=page[i];flag[max]=i;/*記錄該頁的訪問時間*/for(j=0;j<mSIZE;j++)temp[i][j]=memery[j];}else{for(j=0;j<mSIZE;j++)temp[i][j]=memery[j];}}//compute。;print(count);}/*顯示設(shè)計(jì)者信息*/voiddesignBy(){printf("|1\n");printf("|㊣實(shí)驗(yàn)七:頁面置換算法㊣I\n");printf("|學(xué)號:1001010042|\n");printf("|姓名:黃浩全vDev-C++4.9.9.0〉|\n");printf("|1\n");}實(shí)驗(yàn)過程中遇到的問題解決辦法與實(shí)驗(yàn)體會Q4(需手寫,10得分:分)1、在FIFO算法可以很容易用數(shù)組實(shí)現(xiàn),而LRU算

溫馨提示

  • 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

提交評論