动态分区分配方式首次适应算法(2)

2019-08-29 22:27

Status First_fit(int ID,int request)//传入作业名及申请量,真正实现首次适应算法,从头开始查找合适的空间 {

//为申请作业开辟新空间且初始化

DuLinkList temp=(DuLinkList)malloc(sizeof(DuLNode));

temp->data.ID=ID; temp->data.size=request; temp->data.state=Busy; DuLNode *p=block_first->next;

while(p) {

if(p->data.state==Free && p->data.size==request) { }

if(p->data.state==Free && p->data.size>request) {

//有空闲块能满足需求且有剩余 temp->prior=p->prior; temp->next=p;

temp->data.address=p->data.address; p->prior->next=temp; //有大小恰好合适的空闲块 p->data.state=Busy; p->data.ID=ID; return OK; break;

p->prior=temp;

p->data.address=temp->data.address+temp->data.size; p->data.size-=request;

5

}

}

}

return OK; break;

p=p->next;

return ERROR;

5)主存回收 Status free(int ID) {

DuLNode *p=block_first; while(p) {

if(p->data.ID==ID) {

p->data.state=Free; p->data.ID=Free;

if(p->prior->data.state==Free)//与前面的空闲块相连 {

p->prior->data.size+=p->data.size;

p->prior->next=p->next; p->next->prior=p->prior;

}

if(p->next->data.state==Free)//与后面的空闲块相连 {

p->data.size+=p->next->data.size; if(p->next->next==NULL)p->next=null; else{

p->next->next->prior=p;

6

p->next=p->next->next;

}

}

}

} break;

p=p->next;

cout<<”分区号:”<

6)显示主存分配情况 void show() {

cout<<\cout<<\主存分配情况 ++++++\\n\

return OK;

cout<<\DuLNode *p=block_first->next; while(p) {

cout<<\分区号:\if(p->data.ID==Free)

cout<<\

else

cout<data.ID<

cout<<\起始地址:\cout<<\分区大小:\cout<<\状 态:\if(p->data.state==Free)

cout<<\空 闲\

7

}

}

else

cout<<\已分配\

p=p->next;

7)主 函 数 void main() { \

cout<<\动态分区分配方式的模拟一Initblock(); int choice; int i; for(i=0;;i++)

{ cout<<\

+++++++++++++++++\\n\

cout<<\首次适应算法

++++++++++++++++++++++++\\n\

cout<<\cout<<\分配内存 2: 回收内存 ++\\n\cout<<\查看分配 0: 退 出 ++\\n\cout<<\cout<<\请输入您的操作:\cin>>choice;

if(choice==1)// 分配内存

alloc();

else if(choice==2)// 内存回收 {

int ID;

cout<<\请输入您要释放的分区号:\

8

}

cin>>ID; }

free(ID); }

else if(choice==3)//显示主存

show();

else if(choice==0)//退出

break;

else //输入操作有误 { }

cout<<\输入有误,请重试!\continue;

6 调试分析

调试问题结果如图3所示

调试问题结果如图4所示

9


动态分区分配方式首次适应算法(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:河洛与八卦的关系

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: