实验四 动态分区分配方式的模拟 答案
Status Initblock()//开创带头结点的内存空间链表
{
block_first=(DuLinkList)malloc(sizeof(DuLNode));
block_last=(DuLinkList)malloc(sizeof(DuLNode));
block_first->prior=NULL;
block_first->next=block_last;
block_last->prior=block_first;
block_last->next=NULL;
block_last->data.address=0;
block_last->data.size=MAX_length;
block_last->data.ID=0;
block_last->data.state=Free;
return OK;
}
//----------------------- 分 配 主 存 ------------------------- Status alloc(int ch)
{
int ID,request;
cout<<"请输入作业(分区号):";
cin>>ID;
cout<<"请输入需要分配的主存大小(单位:KB):";
cin>>request;
if(request<0 ||request==0)
{
}
if(ch==2) //选择最佳适应算法
{
}
else //默认首次适应算法
{
}
}
//------------------ 首次适应算法 ----------------------- Status First_fit(int ID,int request)//传入作业名及申请量 if(First_fit(ID,request)==OK) cout<<"分配成功!"<<endl; else cout<<"内存不足,分配失败!"<<endl; return OK; if(Best_fit(ID,request)==OK) cout<<"分配成功!"<<endl; else cout<<"内存不足,分配失败!"<<endl; return OK; cout<<"分配大小不合适,请重试!"<<endl; return ERROR;