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

下載本文檔

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

文檔簡介

實驗報告系別班級學(xué)號姓名時間地點計算機科學(xué)系課程名稱操作系統(tǒng)實驗名稱最佳置換算法實驗過程實驗?zāi)康牧私鈨?nèi)存管理的功能。掌握進程可變內(nèi)存管理的幾種內(nèi)存分配與回收算法。掌握可變分區(qū)算法中空閑分區(qū)的合并方法實驗內(nèi)容實現(xiàn)內(nèi)存分配算法一一最佳置換算法。實驗程序#defineMAX100#defineMIX10#include<stdio.h>//最佳置換算法(前提:給出頁面號弓1用竄)//數(shù)據(jù)結(jié)構(gòu)intrecent=0;//將被裝入內(nèi)存的頁號的標(biāo)號(從0開始計)intcount;//序列號總數(shù)intload_number;//裝入內(nèi)存的頁面數(shù)//序列號intarray[MAX];〃頁面structpageTable{intpageNum;intwuliNum;〃.?.};structpageTablepage_t[MIX];Z/M表structpageTable*recentP;〃傳遞內(nèi)存頁面數(shù)組、數(shù)組長度、命中索引號三個參數(shù);并將該數(shù)組按最近最久排序,//前面元素為最久未使用,而末尾元素為最近未使用voidgetline(structpageTablea[],intn,intindex){inti,temp;〃for(i=0;ivn;i++)Z^命中頁面號temp=a[index].pageNum;f0r(i=index;ivn-1;i++)a[i].pageNum=a[i+1].pageNum;a[n-1].pageNum=temp;}//input頁面號引用竄(空格結(jié)束)voidinput(){charch;inti;〃頁面號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){//掃描是否有相等的頁號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ù)找一個要替換的頁號voidsearch()〃給replace_p,replace_n賦值!{intij,no=09k=0;intflag=0,flag1=0;//有該頁號,則置1〃記錄與進入內(nèi)存的頁號相等的將被裝入的頁號的最大次數(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)存中頁號相同的頁號在等待,有則falg置1,無則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;//?可能出錯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)//采用先進先出算法recentP=page_t;recentP->pageNum=array[recent];recent++;}〃voidmain(){〃初始化數(shù)據(jù)input();while(recent<=count){firstLoad();se

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論