1 / 19
文档名称:

动态分区分配 最佳 最坏 适应算法.docx

格式:docx   大小:330KB   页数:19页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

动态分区分配 最佳 最坏 适应算法.docx

上传人:xiaobaizhua 2022/5/22 文件大小:330 KB

下载得到文件列表

动态分区分配 最佳 最坏 适应算法.docx

文档介绍

文档介绍:我伟大的母校
课程设计报告书
实践课题 姓 名 学 号 指导老师 学 院
动态分区分配
路人甲
20XXXXXX
路人乙
计算及科学与技术学院
课程设计实践时间

ch; 〃记录最小剩余空间
DuLnikList temp=(DuLnikList)malloc(sizeof(DuLNode));// 申请内存空间 temp->=request;
temp->=Busy;
DuLNode *p=block_first->next;
DuLNode *q=NULL; //记录最佳插入位置
while(p) 〃初始化最小空间和最佳位置
{
if(p->==Free && (p->>=request))
{
if(q=NULL)
{
q=p;
ch=p->-request;
}
else if(q-> > p->)
{
q=p;
ch=p->-request;
}
}
p=p->next;
if(q==NULL) letiirn ERROR;//没有找到空闲块
else if(q->==request)
q->=Busy;
retuin OK;
}
else
i
temp->prior=q->pnor;
temp->next=q; temp->=q->; q->pnor->next=temp;
q->pnor=temp;
q->+=request;
q->=ch;
retuin OK;
}
retuin OK;
}
〃最差适应算法
Status WorsCfit(int request)
{
mt ch; 〃记录最人剩余空间
DuLnikList temp=(DuLnikList)malloc(sizeof(DuLNode)); temp->=request;
temp->=Busy;
DuLNode *p=block_first->next;
DuLNode *q=NULL; //记录最佳插入位置
while(p) 〃初始化最人空间和最佳位置
{
if(p->==Free && (p->>=request))
if(q==NULL)
{
q=p;
ch=p->-request;
}
else if(q-> < p->)
{
q=p;
ch=p->-request;
}
p=p->next;
if(q=NULL) leturn ERROR;//没有找到空闲块
else if(q->==request)
f
i
q->data. state=Busy;
return OK;
}
else
f
i
temp->prior=q->pnor;
temp->next=q;
temp->=q->;
q->prior->next=temp;
q->prior=temp;
q->+=request;
q->=ch;
retuni OK;
}
return OK;
}
〃主存回收
Status fiee(int flag)
{
DuLNode *p=block_first;
fbr(int i= 0; i <= flag; i++)
if(p!=NULL)
p=p->next;
else
return ERROR;
p->data. state=Free;
if(p->pnor!=block_fiist && p->piior->=Free)//4 前而的空闲块相连 {
p->pnor->+=p->;
p->pnor->next=p->next;
p->next->piioi-p prior;
p=p->prioi;
}
if(p->next!=block_last && p->next->=Free)//与后而的空闲块相连
p->+=p->next->;