《操作系統(tǒng)》實(shí)驗(yàn)報(bào)告2 可變分區(qū)存儲(chǔ)管理方式的內(nèi)存分配回收_第1頁
《操作系統(tǒng)》實(shí)驗(yàn)報(bào)告2 可變分區(qū)存儲(chǔ)管理方式的內(nèi)存分配回收_第2頁
《操作系統(tǒng)》實(shí)驗(yàn)報(bào)告2 可變分區(qū)存儲(chǔ)管理方式的內(nèi)存分配回收_第3頁
《操作系統(tǒng)》實(shí)驗(yàn)報(bào)告2 可變分區(qū)存儲(chǔ)管理方式的內(nèi)存分配回收_第4頁
《操作系統(tǒng)》實(shí)驗(yàn)報(bào)告2 可變分區(qū)存儲(chǔ)管理方式的內(nèi)存分配回收_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

實(shí)驗(yàn)項(xiàng)目名稱可變分區(qū)存儲(chǔ)管理方式的內(nèi)存分配回收實(shí)驗(yàn)?zāi)康募耙笊钊肓私獠捎每勺兎謪^(qū)存儲(chǔ)管理方式的內(nèi)存分配回收的實(shí)現(xiàn)實(shí)驗(yàn)內(nèi)容編寫程序完成可變分區(qū)存儲(chǔ)管理方式的內(nèi)存分配回收實(shí)驗(yàn)步驟確定內(nèi)存空間分配表采用最優(yōu)適應(yīng)算法完成內(nèi)存空間的分配和回收編寫主函數(shù)對(duì)所做工作進(jìn)行測(cè)試實(shí)驗(yàn)環(huán)境WindowsXP、visualstudio2005實(shí)驗(yàn)結(jié)果與分析#definen10#definem10#defineminisize100struct{ floataddress; floatlength; intflag;}usedtable[n];struct{ floataddress; floatlength; intflag;}free_table[m];allocate(j,xk)charj;floatxk;{ inti,k; floatad; k=-1; for(i=0;i<m;i++) if(free_table[i].length>=xk&&free_table[i].flag==1) if(k==-1||free_table[i].length<free_table[k].length) k=i; if(k==-1) {printf("無T可¨|用??空?閑D區(qū)?\n"); return; } if(free_table[k].length-xk<=minisize) { free_table[k].flag=0; ad=free_table[k].address; xk=free_table[k].length; } else {free_table[k].length=free_table[k].length-xk; ad-free_table[k].address+free_table[k].length; } i=0; while{used_table[i].flag!=0&&i<n) i++; if(i>=n) {printf("無T表à¨a目?填??寫??已°?分¤?分¤?區(qū)?,ê?錯(cuò)?¨a誤¨?\n"); if(free_table[k].flag==0) free_table[k].flag=1; else {used_table[i].address=ad; used_table[i].length=xk; used_table[i].flag=j; } return; }reclaim(j)charJ;{inti,k,j,s,t;floatS,L;s=0;while((used_table[s].flag!=J||used_table[s].flag==0)&&s<n) s++;if(s>=n){printf("找¨°不?到ì?該?作á??業(yè)°|ì\n");return;}used_table[s].flag=0;s=used_table[s].address;L=used_table[s].length;j==1;k=-1;i=0;while(i<m&&(j==-1||k==-1)){ if(free_table[i].glag==0) {if(free_table[i].address+free_table[i].length==s)k=i; if(free_table[i].address==S+L)j=i; } i++;}if(k!=-1) if(j!=1) {free_table[k].length=free_table[j].length+free_table[k].length+L;free_table[j].flag=0;} else free_table[k].length=free_table[k].length+L;else if(j!=-1) {free_table[j].address=S;free_table[j].length=free_table[j].length+L;} else { t=0; while(free_table[t].flag==1&&t<m) t++; if(t>=m) { printf("內(nèi)¨2存??空?閑D表à¨a沒?有?D空?間?,ê?回?收o?空?間?失o?ì敗?¨1\n"); used_table[s].flag=J; return; } free_table[t].address=S; free_table[t].length=L; free_table[t].flag=1; } return(ture); main() { inti,a; floatxk; charJ; free_table[0].address=10240; free_table[0].length=102400; free_table[0].flag=1; for(i=1;i<m;i++) free_table[i].flag=0; for(i=0;i<n;i++) used_table[i].flag=0; while(l) {printf("選?擇?功|能¨1項(xiàng)?(ê?§0退a?出?,ê?1分¤?配?內(nèi)¨2存??,ê?2回?收o?內(nèi)¨2存??,ê?3顯?示o?內(nèi)¨2存??)ê?\n"); printf("選?擇?功|能¨1項(xiàng)?(ê?§0~3)ê?:êo"); scanf("%d",&a); switch(a) {case0;exit(0); case1; printf("輸o?入¨?作á??業(yè)°|ì名?J和¨a作á??業(yè)°|ì所¨′需¨¨長?è度¨¨xk:êo"); scanf("%*c%c%f",&J,&xk); allocate(J,xk); break; case2; printf("輸o?入¨?要°a回?收o?分¤?區(qū)?的ì?作á??業(yè)°|ì名?"); scanf("%*c%c",&J); reclaim(J); break; case3; printf("輸o?入¨?空?閑D區(qū)?表à¨a:êo\n起e始o(jì)?地ì?址?¤分¤?區(qū)?長?è度¨¨標(biāo)à¨o志?\n"); for(i=0;i<m;i++) printf("%5.0f%10.0f%6d\n",free_table[i].address,free_table[i].length,free_table[i].flag); printr("按???任¨?意°a鍵¨1,ê?輸o?出?已°?分¤?分¤?區(qū)?表à¨a\n"); getch(); printf("輸o?出?已°?分¤?分¤?區(qū)?表à¨a:êo\n起e始o(jì)?地ì?址?¤分¤?區(qū)?長?è度¨¨標(biāo)à¨o志?\n"); for(i=0;i<n;i++) if(used_table[i].flag!=0) printf{"%6.0f%9.0f%6c\n",used_table[i].address,used_table[i].length,used_table[i]flag); else

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論