操作系統(tǒng)實(shí)驗(yàn)四報(bào)告材料-主存空間分配和回收(含源碼)_第1頁
操作系統(tǒng)實(shí)驗(yàn)四報(bào)告材料-主存空間分配和回收(含源碼)_第2頁
操作系統(tǒng)實(shí)驗(yàn)四報(bào)告材料-主存空間分配和回收(含源碼)_第3頁
操作系統(tǒng)實(shí)驗(yàn)四報(bào)告材料-主存空間分配和回收(含源碼)_第4頁
操作系統(tǒng)實(shí)驗(yàn)四報(bào)告材料-主存空間分配和回收(含源碼)_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí)用標(biāo)準(zhǔn)文案計(jì)算機(jī) 學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù) 專業(yè)_班學(xué)號_姓名教師評定實(shí)驗(yàn)題目 主存空間的分配和回收一、實(shí)驗(yàn)?zāi)康氖煜ぶ鞔娴姆峙渑c回收。 理解在不同的存儲(chǔ)管理方式下,如何實(shí)現(xiàn)主存空間的分配與回收。掌握動(dòng)態(tài)分區(qū)分配方式中的數(shù)據(jù)結(jié)構(gòu)和分配算法及動(dòng)態(tài)分區(qū)存儲(chǔ)管理方式及其實(shí)現(xiàn)過 程。二、實(shí)驗(yàn)內(nèi)容和要求主存的分配和回收的實(shí)現(xiàn)是與主存儲(chǔ)器的管理方式有關(guān)的。所謂分配,就是解決多道作業(yè)或多進(jìn)程如何共享主存空間的問題。所謂回收,就是當(dāng)作業(yè)運(yùn)行完成時(shí)將作業(yè)或進(jìn)程所占的主存空間歸還給系統(tǒng)。可變分區(qū)管理是指在處理作業(yè)過程中建立分區(qū),使分區(qū)大小正好適合作業(yè)的需求,并且分區(qū)個(gè)數(shù)是可以調(diào)整的。當(dāng)要裝入一個(gè)作業(yè)時(shí),根據(jù)作業(yè)需要

2、的主存量查看是否有足夠的空 閑空間,若有,則按需要量分割一個(gè)分區(qū)分配給該作業(yè);若無,則作業(yè)不能裝入,作業(yè)等待。隨著作業(yè)的裝入、完成, 主存空間被分成許多大大小小的分區(qū),有的分區(qū)被作業(yè)占用,而有的分區(qū)是空閑的。實(shí)驗(yàn)要求使用可變分區(qū)存儲(chǔ)管理方式,分區(qū)分配中所用的數(shù)據(jù)結(jié)構(gòu)采用空閑分區(qū)表和空閑分區(qū)鏈來進(jìn)行,分區(qū)分配中所用的算法采用首次適應(yīng)算法、最佳適應(yīng)算法、最差適應(yīng)算法三種算法來實(shí)現(xiàn)主存的分配與回收。同時(shí),要求設(shè)計(jì)一個(gè)實(shí)用友好的用戶界面,并顯示分配與回收的過程。同時(shí)要求設(shè)計(jì)一個(gè)實(shí)用友好的用戶界面,并顯示分配與回收的過程。三、實(shí)驗(yàn)主要儀器設(shè)備和材料實(shí)驗(yàn)環(huán)境硬件環(huán)境:舊M-PC或兼容機(jī)軟件環(huán)境:VC+ 6

3、.0四、實(shí)驗(yàn)原理及設(shè)計(jì)分析某系統(tǒng)采用可變分區(qū)存儲(chǔ)管理,在系統(tǒng)運(yùn)行當(dāng)然開始,假設(shè)初始狀態(tài)下,可用的內(nèi)存空間為640KB,存儲(chǔ)器區(qū)被分為操作系統(tǒng)分區(qū)(40KB)和可給用戶的空間區(qū)(600KB)。(作業(yè)1申請130KR 作業(yè)2申請60KB作業(yè)3申請100KB、作業(yè)2釋放60KB、作業(yè)4申請200KB、作業(yè)3釋放100KR 作業(yè)1釋放130KB、作業(yè)5申請140KB、 作業(yè)6申請60KB、作業(yè)7申請50KB)當(dāng)作業(yè)1進(jìn)入內(nèi)存后,分給作業(yè) 1 (130KB),隨著作業(yè)1、2、3的進(jìn)入,分別分配 60KR 100KB,經(jīng)過一段時(shí)間的運(yùn)行后,作業(yè) 2運(yùn)行完畢,釋放所占內(nèi)存。此時(shí),作業(yè) 4進(jìn)入系統(tǒng), 要求分配

4、200KB內(nèi)存。作業(yè)3、1運(yùn)行完畢,釋放所占內(nèi)存。此時(shí)又有作業(yè) 5申請140KB, 作業(yè)6申請60KB,作業(yè)7申請50KR為它們進(jìn)行主存分配和回收。1、采用可變分區(qū)存儲(chǔ)管理,使用空閑分區(qū)鏈實(shí)現(xiàn)主存分配和回收??臻e分區(qū)鏈:使用鏈指針把所有的空閑分區(qū)鏈成一條鏈,為了實(shí)現(xiàn)對空閑分區(qū)的分配和鏈接,在每個(gè)分區(qū)的起始部分設(shè)置狀態(tài)位、分區(qū)的大小和鏈接各個(gè)分區(qū)的前向指針,由狀態(tài)位指示該分區(qū)是否分配出去了;同時(shí),在分區(qū)尾部還設(shè)置有一后向指針,用來鏈接后面的分區(qū);分區(qū)中間部分是用來存放作業(yè)的空閑內(nèi)存空間,當(dāng)該分區(qū)分配出去后,狀態(tài)位就由“0”置為“1”。設(shè)置一個(gè)內(nèi)存空閑分區(qū)鏈,內(nèi)存空間分區(qū)通過空閑分區(qū)鏈來管理,在進(jìn)

5、行內(nèi)存分配時(shí), 系統(tǒng)優(yōu)先使用空閑低端的空間。設(shè)計(jì)一個(gè)空閑分區(qū)說明鏈,設(shè)計(jì)一個(gè)某時(shí)刻主存空間占用情況表,作為主存當(dāng)前使用基礎(chǔ)。初始化空間區(qū)和已分配區(qū)說明鏈的值,設(shè)計(jì)作業(yè)申請隊(duì)列以及作業(yè)完成后釋放順序,實(shí)現(xiàn)主存的分配和回收。 要求每次分配和回收后顯示出空閑內(nèi)存分區(qū)鏈的情況。把空閑區(qū)說明鏈的變化情況以及各作業(yè)的申請、釋放情況顯示打印出來。2.采用可變分區(qū)存儲(chǔ)管理,分別采用首次適應(yīng)算法、最佳適應(yīng)算法和最壞適應(yīng)算法實(shí)現(xiàn) 主存分配和回收。3、主存空間分配(1)首次適應(yīng)算法在該算法中,把主存中所有空閑區(qū)按其起始地址遞增的次序排列。在為作業(yè)分配 存儲(chǔ)空間時(shí),從上次找到的空閑分區(qū)的下一個(gè)空閑分區(qū)開始查找,直到找

6、到第一個(gè)能 滿足要求的空閑區(qū),從中劃出與請求的大小相等的存儲(chǔ)空間分配給作業(yè),余下的空閑 區(qū)仍留在空閑區(qū)鏈中。(2)最佳適應(yīng)算法在該算法中,把主存中所有空閑區(qū)按其起始地址遞增的次序排列。在為作業(yè)分配 存儲(chǔ)空間時(shí),從上次找到的空閑分區(qū)的下一個(gè)空閑分區(qū)開始查找,直到找到一個(gè)能滿 足要求的空閑區(qū)且該空閑區(qū)的大小比其他滿足要求的空閑區(qū)都小,從中劃出與請求的 大小相等的存儲(chǔ)空間分配給作業(yè),余下的空閑區(qū)仍留在空閑區(qū)鏈中 (3)最壞適應(yīng)算法在該算法中,把主存中所有空閑區(qū)按其起始地址遞增的次序排列。在為作業(yè)分配 存儲(chǔ)空間時(shí),從上次找到的空閑分區(qū)的下一個(gè)空閑分區(qū)開始查找,直到找到一個(gè)能滿 足要求的空閑區(qū)且該空閑區(qū)

7、的大小比其他滿足要求的空閑區(qū)都大,從中劃出與請求的 大小相等的存儲(chǔ)空間分配給作業(yè),余下的空閑區(qū)仍留在空閑區(qū)鏈中。4、主存空間回收當(dāng)一個(gè)作業(yè)執(zhí)行完成撤離時(shí),作業(yè)所占的分區(qū)應(yīng)該歸還給系統(tǒng)。 歸還的分區(qū)如果與其 它空閑區(qū)相鄰,則應(yīng)合成一個(gè)較大的空閑區(qū), 登記在空閑區(qū)說明鏈中,此時(shí),相鄰空閑區(qū)的 合并問題,要求考慮四種情況:(1) 釋放區(qū)下鄰空閑區(qū)(低地址鄰接)(2) 釋放區(qū)上鄰空閑區(qū)(高地址鄰接)(3) 釋放區(qū)上下都與空閑區(qū)鄰接(4) 釋放區(qū)上下鄰都與空閑區(qū)不鄰接五、程序流程圖main函數(shù)里的流程圖精彩文檔分配空間里的流程圖回收空間里的流程圖六、相關(guān)數(shù)據(jù)結(jié)構(gòu)及關(guān)鍵函數(shù)說明本程序采用了一個(gè)struct

8、 free_table數(shù)據(jù)結(jié)構(gòu),里面包含分區(qū)序號( num)、起始地址(address)、分區(qū)長度(length)和分區(qū)狀態(tài)(state)。還用了線性表的雙性鏈表存儲(chǔ)結(jié)構(gòu) (struct Node),里面包含前區(qū)指針(prior)和后繼指針(next)。一開始定義一條(含有 first和end) 的鏈,用開始指針和尾指針開創(chuàng)空間鏈表。然后分別按三種算法進(jìn)行分配和回收。在該程序中關(guān)鍵函數(shù)有,sort ()、allocation ()、recovery ()、和 First_fit ()、Best_fit()、Worst_fit ();其中sort ()函數(shù)是用來整理分區(qū)序號的,如在刪序號3時(shí),她

9、與前面序號2相連在一起了,然后序號 2中的長度總滿足申請的內(nèi)存大小,就會(huì)在序號2中分配,然后序號在2的基礎(chǔ)上加1, 一直加,加到與原本序號3的下一個(gè)序號也就是 4相等,這時(shí)sort ()就開始有明顯的工作了;allocation ()是分配空間的,也是過渡到三個(gè)算法中的,當(dāng)三個(gè)算法中滿足或者不滿足分配請求,都會(huì)又返回值給allocation () ; recovery ()是用來回收內(nèi)存的,里面包含了四種情況相連結(jié)果,即釋放區(qū)上與空閑區(qū)鄰接、釋放區(qū)下與空閑區(qū)鄰接、釋放區(qū)上下都與空閑區(qū)鄰接、釋放區(qū)上下都與空閑區(qū)不鄰接這四種情況的結(jié)果。七、源代碼#include<stdio.h>#in

10、clude<stdlib.h>#define OK 1/完成#define ERROR 0 / 出錯(cuò)typedef int Status;typedef struct free_table/定義一個(gè)空閑區(qū)說明表結(jié)構(gòu) int num; 分區(qū)序號long address; 起始地址long length;/ 分區(qū)大小int state;分區(qū)狀態(tài)ElemType;typedef struct Node/線性表的雙向鏈表存儲(chǔ)結(jié)構(gòu) ElemType data;struct Node *prior; / 前趨指針struct Node *next; 后繼指針Node,*LinkList;Lin

11、kList first; / 頭結(jié)點(diǎn)LinkList end;/尾結(jié)點(diǎn)int flag;/記錄要?jiǎng)h除的分區(qū)序號Status Initblock()開創(chuàng)帶頭結(jié)點(diǎn)的內(nèi)存空間鏈表 first=(LinkList)malloc(sizeof(Node);end=(LinkList)malloc(sizeof(Node);first->prior=NULL;first->next=end;end->prior=first;end->next=NULL;end->data.num=1;end->data.address=40;end->data.length=60

12、0;end->data.state=0;return OK; void sort()/分區(qū)序號重新排序Node *p=first->next,*q;q=p->next;for(;p!=NULL;p=p->next)for(q=p->next;q;q=q->next)if(p->data.num>=q->data.num)q->data.num+=1;顯示主存分配情況void show() int flag=0;用來記錄分區(qū)序號Node *p=first;p->data.num=0;p->data.address=0;p-&

13、gt;data.length=40;p->data.state=1;sort();printf("ntt »主存空間分配情況« n");printf("*nn");printf("分區(qū)序號t起始地址t分區(qū)大小t分區(qū)狀態(tài)nn"); while(p)printf("%dtt%dtt%d",p->data.num,p->data.address,p->data.length);if(p->data.state=0) printf("皿 空閑 nn");

14、else printf("皿已分配 nn");p=p->next;printf("*nn");首次適應(yīng)算法Status First_fit(int request)為申請作業(yè)開辟新空間且初始化Node *p=first->next;LinkList temp=(LinkList)malloc(sizeof(Node);temp->data.length=request;temp->data.state=1;p->data.num=1;while(p)if(p->data.state=0)&&(p->

15、;data.length=request)/有大小恰好合適的空閑塊p->data.state=1;return OK;break;else if(p->data.state=0) && (p->data.length>request)/有空閑塊能滿足需求且有剩余temp->prior=p->prior;temp->next=p;temp->data.address=p->data.address;temp->data.num=p->data.num;p->prior->next=temp;p->

16、prior=temp;p->data.address=temp->data.address+temp->data.length;p->data.length-=request;p->data.num+=1;return OK;break;p=p->next;return ERROR;最佳適應(yīng)算法Status Best_fit(int request)int ch; 記錄最小剩余空間Node *p=first;Node *q=NULL; 記錄最佳插入位置LinkList temp=(LinkList)malloc(sizeof(Node);temp->d

17、ata.length=request;temp->data.state=1;p->data.num=1;while(p) 初始化最小空間和最佳位置if(p->data.state=0) && (p->data.length>=request)if(q=NULL)q=p;ch=p->data.length-request;else if(q->data.length > p->data.length)q=p;ch=p->data.length-request;p=p->next;if(q=NULL) return

18、ERROR;/ 沒有找到空閑塊else if(q->data.length=request)q->data.state=1;return OK;elsetemp->prior=q->prior;temp->next=q;temp->data.address=q->data.address;temp->data.num=q->data.num;q->prior->next=temp;q->prior=temp;q->data.address+=request;q->data.length=ch;q->dat

19、a.num+=1;return OK;return OK;最差適應(yīng)算法Status Worst_fit(int request)int ch; 記錄最大剩余空間Node *p=first->next;Node *q=NULL; 記錄最佳插入位置LinkList temp=(LinkList)malloc(sizeof(Node);temp->data.length=request;temp->data.state=1;p->data.num=1;while(p) 初始化最大空間和最佳位置if(p->data.state=0 && (p->da

20、ta.length>=request) if(q=NULL) q=p;ch=p->data.length-request;else if(q->data.length < p->data.length)q=p;ch=p->data.length-request;p=p->next;if(q=NULL) return ERROR;/ 沒有找到空閑塊else if(q->data.length=request)q->data.length=1;return OK;elsetemp->prior=q->prior;temp->n

21、ext=q;temp->data.address=q->data.address;temp->data.num=q->data.num;q->prior->next=temp;q->prior=temp;q->data.address+=request;q->data.length=ch;q->data.num+=1;return OK;return OK;/分配主存Status allocation(int a)int request;/申請內(nèi)存大小printf("請輸入申請分配的主存大小(單位:KB):");s

22、canf("%d",&request);if(request<0 |request=0)printf("分配大小不合適,請重試!");return ERROR;switch(a)case 1: 默認(rèn)首次適應(yīng)算法if(First_fit(request)=OK) printf("t*分配成功!*");else printf("t* 內(nèi)存不足,分配失敗! *");return OK;break;case 2: 選擇最佳適應(yīng)算法if(Best_fit(request)=OK) printf("t*

23、分配成功!*");else printf("t* 內(nèi)存不足,分配失?。?*");return OK;break;case 3: 選擇最差適應(yīng)算法if(Worst_fit(request)=OK) printf("t*分配成功! *");else printf("t* 內(nèi)存不足,分配失?。?");return OK;break;Status deal1(Node *p)/ 處理回收空間Node *q=first;for(;q!=NULL;q=q->next)if(q=p)if(q->prior->data.s

24、tate=0&&q->next->data.state!=0) q->prior->data.length+=q->data.length;q->prior->next=q->next;q->next->prior=q->prior;q=q->prior;q->data.state=0;q->data.num=flag-1;if(q->prior->data.state!=0&&q->next->data.state=0)q->data.length

25、+=q->next->data.length;q->next=q->next->next;q->next->next->prior=q;q->data.state=0;q->data.num=flag;if(q->prior->data.state=0&&q->next->data.state=0)q->prior->data.length+=q->data.length;q->prior->next=q->next;q->next->prior=

26、q->prior;q=q->prior;q->data.state=0;q->data.num=flag-1;if(q->prior->data.state!=0&&q->next->data.state!=0)q->data.state=0;return OK;Status deal2(Node *p)/ 處理回收空間Node *q=first;for(;q!=NULL;q=q->next)if(q=p)if(q->prior->data.state=0&&q->next->d

27、ata.state!=0)q->prior->data.length+=q->data.length;q->prior->next=q->next;q->next->prior=q->prior;q=p->prior;q->data.state=0;q->data.num=flag-1;)if(q->prior->data.state!=0&&q->next->data.state=0)q->data.state=0;)if(q->prior->data.state

28、=0&&q->next->data.state=0)q->prior->data.length+=q->data.length;q->prior->next=q->next;q->next->prior=q->prior;q=q->prior;q->data.state=0;q->data.num=flag-1;)if(q->prior->data.state!=0&&q->next->data.state!=0)q->data.state=0;)r

29、eturn OK;)/主存回收Status recovery(int flag)Node *p=first;for(;p!=NULL;p=p->next)if(p->data.num=flag)if(p->prior=first)if(p->next!=end)/當(dāng)前P指向的下一個(gè)不是最后一個(gè)時(shí)if(p->next->data.state=0)與后面的空閑塊相連p->data.length+=p->next->data.length;p->next->next->prior=p;p->next=p->next-

30、>next;p->data.state=0;p->data.num=flag;else p->data.state=0;if(p->next=end)/當(dāng)前P指向的下一個(gè)是最后一個(gè)時(shí)p->data.state=0;/ 結(jié)束 if(p->prior=block_first)的情況else if(p->prior!=first)if(p->next!=end)deal1(p);elsedeal2(p);/ 結(jié)束 if(p->prior!=block_first)的情況結(jié)束 if(p->data.num=flag)的情況printf(

31、"t* 回收成功 *");return OK;/主函數(shù)void main()int i;/操作選擇標(biāo)記int a;算法選擇標(biāo)記 printf(,*I*n");printf("tt用以下三種方法實(shí)現(xiàn)主存空間的分配n");printf("t(1)首次適應(yīng)算法t(2)最佳適應(yīng)算法t(3)最差適應(yīng)算法n");I*n");printf("n");printf("請輸入所使用的內(nèi)存分配算法:");scanf("%d",&a);while(a<1|a>

32、;3)printf("輸入錯(cuò)誤,請重新輸入所使用的內(nèi)存分配算法:n");scanf("%d",&a);switch(a)case 1:printf("nt* 使用首次適應(yīng)算法:*n");break;case 2:printf("nt* 使用最佳適應(yīng)算法:*n");break; case 3:printf("nt* 使用最壞適應(yīng)算法:*n");break; Initblock();/開創(chuàng)空間表while(1)show();printf("t1:分配內(nèi)存t2:回收內(nèi)存t0:退出n&

33、quot;);printf("請輸入您白操作:");scanf("%d",&i);if(i=1)allocation(a);/ 分配內(nèi)存 else if(i=2)/ 內(nèi)存回收printf("請輸入您要釋放的分區(qū)號:"); scanf("%d",&flag);recovery(flag);else if(i=0) printf("n 退出程序 n");break; 退出else 輸入操作有誤printf("輸入有誤,請重試!"); continue;八、執(zhí)行結(jié)果

34、和結(jié)果分析初始化首次適應(yīng)算法:清輸入所使用的內(nèi)存分配算法:工*使用首次適應(yīng)算法:*主存空間分配情況分區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)0040已分配140600空閑0 :退出當(dāng)作業(yè)1、2、3順利分配內(nèi)存空間后:1:%掣內(nèi)存2=回收內(nèi)存的攝信1信分屯己的正左大小單位工HBf時(shí)*吩配成功! *至存空間分配情況M:MXK:KM:ME>EXME>EM:ME>EXMEX<>XXM:X<M:<XM:>tM 球 XX 球 XX 球 XX 速 XXltXKMMiXltXXaCXXKXXJt分區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)Hg40已分配14B130已分配2170G3已

35、分配3230100已分配-4330310空閑XKMMEKXMEXMMEXXMEXMMEXMXMXXKXXJOEXXaCXXXXXatXXJEXiMaCXiMitNiMJfXWXiMJfXiMJE回收序號2里面的內(nèi)存:2=回收內(nèi)存0:退出曦存MEXXMEXXMEXXMEXXXKK 睡 KKXKKitKKXXKitHKitXKItMiKitMiKICMiXICMiXatMiXatMiXMMiXatMiXat分區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)040已分配140130已分配217065空閑3230100已分配433W310空閑XKKMEmMEXKMEXJKMEJitKMEXJKaiEXJKaiEXKai

36、EmaiEXKKXKaCXKKXXaCKXJCXiWiiWiWXiMaiEXXK分配作業(yè)4:王行空間分配情沉分區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)0040已分配14日130已分配217060空閑3230100已分配43302B0已分配5536110空閑已內(nèi)存回收內(nèi)存分區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)已分配已分配已分配JiW*王存空間分配情況回收序號3里面的內(nèi)存(與上鄰序號 2相連了)回收序號1里的內(nèi)存(與下鄰序號 2相連了)請己內(nèi)存 2:回收內(nèi)存 0:退出I薔分配情況分區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)0040已分配143290空閑4330200已分配553H110空閑繼續(xù)分配(會(huì)發(fā)現(xiàn)總是按順序查找滿足要

37、求的第一個(gè)空閑塊,一旦發(fā)現(xiàn)就會(huì)分配)2:回收內(nèi)存 0=退出大小 < 單位;KBX1的*分配成功!*噎存空間分配情況藕潞雌施分區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)回040已分配140140已分配2180150空閑433H200已分配5530110空閑1 :箕鼻內(nèi)存2=回收內(nèi)存0=退出需入甯蓍舞酉頡玉本大小單位= «B>:60酉己成功!""""生存空間分配情況g分區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)M&已分配14014。已分配218060已分配32459M空閑433R200己分配5530110空閑1;方喧己內(nèi)存2;回收內(nèi)存0:圈翦簞甯患W商

38、 3 套大小 < 單位= KB> = 50酉己成功!"""">王存空間分配情況退出分區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)0040已分配140140已分配2180fa0己分配324050已分配429043空閑5330200已分配6530110空閑初始化最佳適應(yīng)算法:請輸入所使用的內(nèi)存分配算法;2*使用最佳適應(yīng)算法*主存空間分配情況產(chǎn)區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)040已分配140S00空閑小色翩己內(nèi)存 2;回收內(nèi)存 0:退出 僵需工國請溫市點(diǎn)存大單位;KB二L*配成功! *王存空間分配情況分區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)W0已分配140130已

39、分配217060已分配3230100已分配4330310空閑1:分配內(nèi)存2:回收內(nèi)存 0:退出您的操伯2恩要釋汆聯(lián)笈屋號;2*回收成功*全存空間分配情況分區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)040已分配4013M已分配1706日空閑2301刖已分配33031H空閑,一二允配內(nèi)存2:回收內(nèi)存質(zhì)退出扁人您要釋成的雞號回收成功* 王存空間分配情況分區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)0040已分配140290空閑4330200已分配b530110空閑繼續(xù)分配(會(huì)發(fā)現(xiàn)總是查找滿足要求的空閑塊且其比其他空閑塊長度小,一旦發(fā)現(xiàn)就會(huì)分 配):1=維a內(nèi)存2:回收內(nèi)存 0:退出請領(lǐng)人蟹的噪有L 清輸人苗請芬熙的四J大小單

40、位二HB): 140*配成功! * 王存空間分配情況分區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)0040已分配140140已分配2180150空閑4330200已分配5530110空閑、,:殺己內(nèi)存2:回收內(nèi)存0=退出胃鸚嘴曾*酉說金大小單位麗:60*71配成功! * 王存空間分配情況分區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)3040已分配140140已分配218015W空閑4330200已分配55306目已分配b59050空閑WH±iiUUHjiUWHjiUUHjiUWHjiUUHjiUWHjiUUHjiUWHdiUUHjiUWHdiUUHjiUWHdiWUHjiUUHdiWUHjiUUHdiUUHji

41、UUHdiUUN單位口乂切! *王存空間分配情況0:退出分區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)日040已分配140140已分配21髓150空閑4330260已分配553060已分配65905目已分配初始化最壞適應(yīng)算法:請輸入所使用的內(nèi)存分配算法:3用最壞適應(yīng)算法:*«* MH舞鴛就空間分配,而巳內(nèi)存 2:回收內(nèi)存 0=退出 :1分區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)U04M已分配140130已分配217W6購已分配3230100已分配4330310空閑額入份曲翻I己內(nèi)存2=回收內(nèi)存0:退出睡耳M X一的益筌號:2回收成功*王存空間分配情況主存空間分配情況HKIMKXlilCIHMKKMEHXHK

42、iMMiKiMMEMEiMMMiltMKiMMiHif Mi JCM MiM:iMMM:«:!<«:HMHK MH MIMI9區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)0040已分配140608空閑M H XU X K X M: MEN K KMHMHMHMHM: XML X MtMX HJtJC KOtH XXX KMX MX 芭 K MM MKK M XM M M: X K KM M X JC *分區(qū)序號起始地址分區(qū)大小分區(qū)狀態(tài)0040已分配|40130已分配21706??臻e3230100已分配4333310空閑MKNXKJtXXMJKNHKKMNMMXKKMKMJtMHXM

43、KXMMItXMMNKMNJitJKKHJCNJCMJCXMJCJCMJCKK0:退出繼續(xù)分配(會(huì)發(fā)現(xiàn)總是查找滿足要求的空閑塊且其比其他空閑塊長度小,一旦發(fā)現(xiàn)就會(huì)分 配):2:回收內(nèi)存1: 己內(nèi)存造裝不婚的凰辰4修輸人:愚要釋汆的分三號,工*回收成功王存空間分配情況分區(qū)序號起史時(shí)也址分區(qū)大小分區(qū)狀態(tài)0040已分配140290空閑433H200已分配553M110空閑1*«rlF 2=回收內(nèi)存 0=退出存大小單位:KB:140f 功! *王存空間分配情況分區(qū)序號|起始地址分區(qū)大小分區(qū)狀態(tài)040已分配40140已分配180空閑33D200已分配53g1.1R空閑1:分配內(nèi)存2=回收內(nèi)存 0:退出請領(lǐng)入罐的探程:1、請輸人$情芬配的主在人小單

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論