資源簡介
存儲器的分配與回收算法其中有最先適應(yīng)法、最佳適應(yīng)法、最壞適應(yīng)法三種 另外還有運(yùn)行結(jié)果截圖

代碼片段和文件信息
//Memory?allocation?and?recovery?algorithm
#include?
#include?
#include?
typedef?struct?Freelink{//定義自由鏈
struct?Freelink?*prior;
char?name;
int?start;
int?size;
bool?flag;
struct?Freelink?*next;
}*?ptr*head;
head?top;
ptr?p;
void?print(){//將內(nèi)存分配情況打印到屏幕上
p=top;
cout<<“************************內(nèi)存分配情況表************************“< cout<<“區(qū)號\t\t“<<“起始位置\t“<<“區(qū)間長度\t“<<“區(qū)間狀態(tài)\t“< do{
cout<name<<“\t\t“<start<<“\t\t“<size<<“\t\t“;
if(p->flag==false){cout<<“空閑“< else{cout<<“已占用“< p=p->next;
}
while(p!=NULL);
}
void?clear(){//結(jié)束操作時清空“內(nèi)存”以備其他操作
do{
p=top;
top=top->next;
free(p);
}
while(top!=NULL);
}
void?asc(ptr?&p){//最佳適應(yīng)法的內(nèi)存分配函數(shù)
int?min;
ptr?op;
Freelink?*fl=(Freelink?*)malloc(sizeof(Freelink));
cout<<“請輸入要分配內(nèi)存的進(jìn)程名“< cin>>fl->name;
cout<<“請輸入要分配內(nèi)存的大小“< cin>>fl->size;
min=256;
fl->flag=true;
do{
if(p->flag==false&&p->size<=min&&p->size>=fl->size){
min=p->size;
op=p;
}
p=p->next;
}
while(p!=NULL);
if(op->size>fl->size){
???fl->start=op->start;
???op->start=fl->start+fl->size;
???op->size=op->size-fl->size;
???fl->next=op;
???fl->prior=op->prior;
???op->prior->next=fl;
???????op->prior=fl;
???????goto?flag1;
}
if(op->size==fl->size){
???????op->flag=fl->flag;
???????op->name=fl->name;
???free(fl);
???????goto?flag1;
}
cout<<“內(nèi)存過小,分配失敗!“< flag1:??cout<<“分配成功!“< flag2:??;
}
void?dec(ptr?&p){//最壞適應(yīng)法的內(nèi)存分配函數(shù)
int?max;
ptr?op;
Freelink?*fl=(Freelink?*)malloc(sizeof(Freelink));
cout<<“請輸入要分配內(nèi)存的進(jìn)程名“< cin>>fl->name;
cout<<“請輸入要分配內(nèi)存的大小“< cin>>fl->size;
max=fl->size;
fl->flag=true;
do{
if(p->flag==false&&p->size>=max){
max=p->size;
op=p;
}
p=p->next;
}
while(p!=NULL);
if(op->size>fl->size){
???fl->start=op->start;
???op->start=fl->start+fl->size;
???op->size=op->size-fl->size;
???fl->next=op;
???fl->prior=op->prior;
???op->prior->next=fl;
???????op->prior=fl;
???????goto?flag3;
}
if(op->size==fl->size){
???????op->flag=fl->flag;
???????op->name=fl->name;
???free(fl);
???????goto?flag3;
}
cout<<“內(nèi)存過小,分配失敗!“< flag3:??cout<<“分配成功!“< flag4:??;
}
void?splice(ptr?&p){//若被操作的內(nèi)存有相鄰空閑區(qū)則將空閑區(qū)拼接合并
int?x;
if(p->prior->flag==false&&p->next->flag==false)x=1;
if((p->prior->flag==false&&p->next->flag==true)||(p->prior->flag==false&&p->next==NULL))x=2;
if((p->prior->flag==true&&p->next->flag==false)||(p->prior==NULL&&p->next->flag==false))x=3;
if((p->prior->flag==true&&p->next->flag==true)||(p->prior==NULL&&p->next->flag==true)||(p->prior->flag==true&&p->next==NULL))x=4;
????switch(x){
case?1:p->next->prior=p->prior;
???p->prior->next=p->next;
???p->prior->size=p->prior->size+p->size+p->next->size;
???p->prior->next=p->next->next;
???if(p->next->next!=NULL)p->next->next->prior=p->next->prior;
???free(p->n
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????8526??2009-06-15?22:24??存儲器的分配與回收算法實現(xiàn)\MAAR\maar.cpp
?????文件???????4260??2009-06-11?21:31??存儲器的分配與回收算法實現(xiàn)\MAAR\MAAR.dsp
?????文件????????533??2009-06-11?20:05??存儲器的分配與回收算法實現(xiàn)\MAAR\MAAR.dsw
?????文件??????50176??2009-06-15?22:51??存儲器的分配與回收算法實現(xiàn)\MAAR\MAAR.ncb
?????文件??????53760??2009-06-15?22:51??存儲器的分配與回收算法實現(xiàn)\MAAR\MAAR.opt
?????文件???????1287??2009-06-15?22:14??存儲器的分配與回收算法實現(xiàn)\MAAR\MAAR.plg
????I.A....?????80400??2009-06-15?21:32??存儲器的分配與回收算法實現(xiàn)\截圖\最佳適應(yīng)法\bfa.jpg
????I.A....?????47781??2009-06-15?21:35??存儲器的分配與回收算法實現(xiàn)\截圖\最佳適應(yīng)法\bfa2.jpg
????I.A....?????49431??2009-06-15?21:40??存儲器的分配與回收算法實現(xiàn)\截圖\最佳適應(yīng)法\bfa3.jpg
????I.A....?????49254??2009-06-15?21:42??存儲器的分配與回收算法實現(xiàn)\截圖\最佳適應(yīng)法\bfa4.jpg
????I.A....?????80267??2009-06-15?22:04??存儲器的分配與回收算法實現(xiàn)\截圖\最先適應(yīng)法\ffa.jpg
????I.A....?????42945??2009-06-15?22:06??存儲器的分配與回收算法實現(xiàn)\截圖\最先適應(yīng)法\ffa2.jpg
????I.A....?????44075??2009-06-15?22:07??存儲器的分配與回收算法實現(xiàn)\截圖\最先適應(yīng)法\ffa3.jpg
????I.A....?????80441??2009-06-15?21:52??存儲器的分配與回收算法實現(xiàn)\截圖\最壞適應(yīng)法\wfa.jpg
????I.A....?????64389??2009-06-15?21:54??存儲器的分配與回收算法實現(xiàn)\截圖\最壞適應(yīng)法\wfa2.jpg
?????目錄??????????0??2009-06-15?22:54??存儲器的分配與回收算法實現(xiàn)\截圖\最佳適應(yīng)法
?????目錄??????????0??2009-06-15?22:54??存儲器的分配與回收算法實現(xiàn)\截圖\最先適應(yīng)法
?????目錄??????????0??2009-06-15?22:55??存儲器的分配與回收算法實現(xiàn)\截圖\最壞適應(yīng)法
?????目錄??????????0??2009-06-15?22:52??存儲器的分配與回收算法實現(xiàn)\MAAR
?????目錄??????????0??2009-06-15?22:55??存儲器的分配與回收算法實現(xiàn)\截圖
?????目錄??????????0??2009-06-15?22:56??存儲器的分配與回收算法實現(xiàn)
-----------?---------??----------?-----??----
???????????????657525????????????????????21
評論
共有 條評論