实验四 动态分区分配方式的模拟 答案
}
while(p)
{
}
if(q==NULL) return ERROR;//没有找到空闲块
else
{//找到了最佳位置并实现分配
}
}
//----------------------- 主 存 回 收 -------------------- temp->prior=q->prior; temp->next=q; temp->data.address=q->data.address; q->prior->next=temp; q->prior=temp; q->data.address+=request; q->data.size=ch; return OK; if(p->data.state==Free && p->data.size==request) {//空闲块大小恰好合适 } if(p->data.state==Free && p->data.size>request) {//空闲块大于分配需求 } p=p->next; if(p->data.size-request<ch)//剩余空间比初值还小 { } ch=p->data.size-request;//更新剩余最小值 q=p;//更新最佳位置指向 p->data.ID=ID; p->data.state=Busy; return OK; break; if(p->data.state==Free && { } p=p->next; q=p; ch=p->data.size-request; break; (p->data.size>request || p->data.size==request) )