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

下載本文檔

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

文檔簡介

1、實驗報告系別班級學(xué)號姓名時間地點計算機(jī)科學(xué)系課程名稱操作系統(tǒng)實驗名稱最佳置換算法實驗過程一. 實驗?zāi)康?. 了解內(nèi)存管理的功能。2. 掌握進(jìn)程可變內(nèi)存管理的幾種內(nèi)存分配與回收算法。3. 掌握可變分區(qū)算法中空閑分區(qū)的合并方法二. 實驗內(nèi)容實現(xiàn)內(nèi)存分配算法一一最佳置換算法。三. 實驗程序#defi ne MAX 100#defi ne MIX 10#i nclude <stdio.h>/最佳置換算法(前提:給出頁面號引用竄)/數(shù)據(jù)結(jié)構(gòu)int recent=O;將被裝入內(nèi)存的頁號的標(biāo)號(從 0開始計)in t cou nt;序列號總數(shù)int load_number;裝入內(nèi)存的頁面數(shù)/序列

2、號int arrayMAX;/頁面struct pageTableint pageNum;int wuliNum;;struct pageTable page_tMIX; 頁表struct pageTable*rece ntP;/傳遞內(nèi)存頁面數(shù)組、數(shù)組長度、命中索引號三個參數(shù);并將該數(shù)組按最近最久排序,/前面元素為最久未使用,而末尾元素為最近未使用void getl in e(struct pageTable a,i nt n ,i nt in dex)int i,temp;for(i=0;i< n;i+)找命中頁面號temp=ai ndex.pageNum ;for(i=i ndex;

3、i <n-1;i+)ai.pageNum =ai+1.pageNum;a n-1.pageNum=temp;/input 頁面號引用竄(空格結(jié)束)void in put()char ch;i nt i;/頁面號prin tf("please in put an an ykey not in clude 'q',a nd the n beg in.n ");sca nf("%c",&ch);while(ch!='q')prin tf("please in put a coun t:n");s

4、ca nf("%d",&cou nt); /prin tf("n");prin tf("please in put page nu mbers:n");for(i=0;i<co un t;i+)sea nf("%d",&arrayi); /prin tf("n");for(i=0;i<co un t;i+)prin tf("%d ",arrayi);prin tf("n");prin tf("please in put

5、 the nu mbers of page to load:' n");sca nf("%d",&load_number); /for(i=0;istruct page_table<co un t;i+)prin tf("please in put a 'q' to exit in put!n");sca nf("%c",&ch);sca nf("%c",&ch);rece ntP=page_t;/裝載至內(nèi)存函數(shù)/void firstLoad()int

6、 i,nCoun t=0,flag=0;rece ntP->pageNum =arrayrece nt;rece nt+;rece ntP+;nCoun t+;while( nCou ntvload _nu mber) /掃描是否有相等的頁號for(i=0;i< nCoun t;i+)if(page_ti.pageNum =arrayrece nt) flag=1;break;/*is importa nt*if(flag)rece nt+;flag=O;prin tf("%d命中 n",arrayrece nt-1);/*importa nceelserece

7、 ntP->pageNum=arrayrece nt;rece nt+;rece ntP+;nCoun t+;show()for(i=0;i< nCoun t;i+)prin tf("%d ”,page_ti.pageNum);prin tf("n");/search函數(shù)找一個要替換的頁號void search() / 給 replace_p , replace_n 賦值!int i,j, no=0,k=0;int flag=0,flag1=0;/有該頁號,則置 1/記錄與進(jìn)入內(nèi)存的頁號相等的將被裝入的頁號的最大次數(shù)int time_co un t1=

8、0,time_co un t2=0;/ 先檢查是否與arrayrecent 命中,是則n置1 for(i=0;i<load_ nu mber;i+)if(page_ti.pageNum =arrayrece nt) no=1;break;/*is importa nt*if(!no)pri ntf("%d命中 n",arrayrece nt-1);/*importa ncerece nt+;getl in e(page_t,load_ nu mber,i);elseno=0 ;/importa nt/檢查是否有與內(nèi)存中頁號相同的頁號在等待,有則falg置1,無則fal

9、g置0for(i=0;i<load_ nu mber;i+) for(j=rece nt;j<co un t;j+)if(page_ti.pageNum =arrayj)flag=1;break;if(flag) flag=0;/importa ntfor(k=recent;page_ti.pageNum !=arrayk;k+)Jtime_c oun t2=k-rece nt+load_ nu mber-i;?可能出錯if(time_co un t1<time_co un t2) time_c oun t1=time_co un t2;flag仁i;for(k=0;k<

10、;load_ nu mber;k+)if(page_tk.pageNum =arrayrece nt+time_cou nt1-load _nu mbe 葉flag1) rece ntP=&page_tk;break;if(j=cou nt)采用先進(jìn)先出算法rece ntP=page_t;rece ntP->pageNum =arrayrece nt;rece nt+;/void mai n()/初始化數(shù)據(jù)in put();while(rece nt<=co unt)firstLoad(); search();四.運行截圖'C:Ue rsBjtu h bxyD es ktc p 程序找件 De bugl-exe'228pleasecpl色版嵯a 20plzueI? 9lease0命中0命中6命中0阿命中ressinputinput37 0回Ian anykey not inc lude f q1 , and t hen b&rin.a count-page nunbcrs:2030423421input Che numbers of pasfe to lod =input a pq* t

溫馨提示

  • 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

提交評論