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

下載本文檔

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

文檔簡(jiǎn)介

實(shí)驗(yàn)報(bào)告系別班級(jí)學(xué)號(hào)姓名時(shí)間地點(diǎn)計(jì)算機(jī)科學(xué)系課程名稱(chēng)操作系統(tǒng)實(shí)驗(yàn)名稱(chēng)最佳置換算法實(shí)驗(yàn)過(guò)程實(shí)驗(yàn)?zāi)康牧私鈨?nèi)存管理的功能。掌握進(jìn)程可變內(nèi)存管理的幾種內(nèi)存分配與回收算法。掌握可變分區(qū)算法中空閑分區(qū)的合并方法實(shí)驗(yàn)內(nèi)容實(shí)現(xiàn)內(nèi)存分配算法一一最佳置換算法。實(shí)驗(yàn)程序#defineMAX100#defineMIX10#include<stdio.h>//最佳置換算法(前提:給出頁(yè)面號(hào)弓1用竄)//數(shù)據(jù)結(jié)構(gòu)intrecent=0;//將被裝入內(nèi)存的頁(yè)號(hào)的標(biāo)號(hào)(從0開(kāi)始計(jì))intcount;//序列號(hào)總數(shù)intload_number;//裝入內(nèi)存的頁(yè)面數(shù)//序列號(hào)intarray[MAX];〃頁(yè)面structpageTable{intpageNum;intwuliNum;〃.?.};structpageTablepage_t[MIX];Z/M表structpageTable*recentP;〃傳遞內(nèi)存頁(yè)面數(shù)組、數(shù)組長(zhǎng)度、命中索引號(hào)三個(gè)參數(shù);并將該數(shù)組按最近最久排序,//前面元素為最久未使用,而末尾元素為最近未使用voidgetline(structpageTablea[],intn,intindex){inti,temp;〃for(i=0;ivn;i++)Z^命中頁(yè)面號(hào)temp=a[index].pageNum;f0r(i=index;ivn-1;i++)a[i].pageNum=a[i+1].pageNum;a[n-1].pageNum=temp;}//input頁(yè)面號(hào)引用竄(空格結(jié)束)voidinput(){charch;inti;〃頁(yè)面號(hào)printf("pleaseinputananykeynotinclude'q',andthenbegin?\n");scanf("%c”,&ch);while(ch!='q'){printf("pleaseinputacount:\n");scanf("%d",&count);IIprintf("\n");printf("pleaseinputpagenumbers:\n");for(i=0;i<count;i++)scanf("%d",&array[i]);//printf("\n");fOr(i=0;i<count;i++)printf("%d",array[i]);printf("\n");printf("pleaseinputthenumbersofpagetoload:\n");scanf("%d",&load_number);〃〃for(i=0;istructpage_table<count;i++)printf("pleaseinputa'q'toexitinput!\n");scanf("%c”,&ch);scanf("%c",&ch);}recentP=page_t;}〃裝載至內(nèi)存函數(shù)〃voidfirstLoad(){inti,nCount=0flag=0;recentP->pageNum=array[recent];recent++;recentP++;nCount++;while(nCount<load_number){//掃描是否有相等的頁(yè)號(hào)for(i=0;i<nCount;i++)if(page_t[i].pageNum==array[recent]){flag=1;break;}//*{}isimportant*if(flag){recent++;flag=0;printf("%d命中\(zhòng)n",array[recent-1]);}//*importanceelse{recentP->pageNum=array[recent];recent++;recentP++;nCount++;}}〃show()for(i=0;i<nCount;i++)printf("%d",page_t[i].pageNum);printf("\n");}//search函數(shù)找一個(gè)要替換的頁(yè)號(hào)voidsearch()〃給replace_p,replace_n賦值!{intij,no=09k=0;intflag=0,flag1=0;//有該頁(yè)號(hào),則置1〃記錄與進(jìn)入內(nèi)存的頁(yè)號(hào)相等的將被裝入的頁(yè)號(hào)的最大次數(shù)inttime_count1=0,time_count2=0;//先檢查是否與array[recent]命中,是則n置1for(i=0;i<load_number;i++)if(page_t[i].pageNum==array[recent]){no=1;break;}//*{}isimportant*if(!no){printf("%d命中\(zhòng)n",array[recent-1]);//*importancerecent++;getlineCpage—UoadLnumberJ);}else{no=0;//important〃檢查是否有與內(nèi)存中頁(yè)號(hào)相同的頁(yè)號(hào)在等待,有則falg置1,無(wú)則falg置0for(i=0;i<load_number;i++){for(j=recent;j<count;j++)if(page_t[i].pageNum==array[j]){flag=1;break;}if(flag){flag=0;//importantfor(k=recent;page_t[i].pageNum!=array[k];k++);time_count2=k-recent+load_number-i;//?可能出錯(cuò)if(time_count1<time_count2){time_count1=time_count2;flag1=i;//}}for(k=0;k<load_number;k++)if(page_t[k].pageNum==array[recent+time_count1-load_number+flag1]){recentP=&page_t[k];break;}if(j==count)//采用先進(jìn)先出算法recentP=page_t;recentP->pageNum=array[recent];recent++;}〃voidmain(){〃初始化數(shù)據(jù)input();while(recent<=count){firstLoad();se

溫馨提示

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

評(píng)論

0/150

提交評(píng)論