精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
操作系统实验报告
录一个大小不小于要求的分区的最小分区,在查找完毕后进行分配。
首次适应算法
空闲区首地址
无法分配
取下一块
调整链表
该区大小>=n?
该区大小=n?
返回分配起始地址
截取长度并修改链表
已到末端?
N
N
N
Y
Y
最佳适应算法
开始
p=av,p=av
<X
q=p,p=p->next
-X>S
将p指向的分区分割,-X大小的作为自由分区,修改长度信息,将之摘除。将后面X大小的分区进行分配
直接分配p所指全部空间,并摘除自由链表中p所指分区
将p所指分区按长度升序重新插入自由链表
结束
精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
F
T
T F
首次适应算法
#include<>
#include<>
#include<>
#include<>
#define N 10000
int n1;//空闲分区的个数
int n2;//作业区的个数
struct kongxian
{
int start; //起址
int end; //结束
int length; //长度
精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
}kongxian[N];
struct zuoye
{
int start; //起址
int end; //结束
int length; //长度
}zuoye[N];
int cmp1(const void *a,const void *b)
{
return (*(struct kongxian *)a).start-(*(struct kongxian *)b).start;
}
int cmp2(const void *a,const void *b)
{
return (*(struct zuoye *)a).start-(*(struct zuoye *)b).start;
}
void init()
{
n1=1; /
存储器管理实验报告(共10页) 来自淘豆网m.daumloan.com转载请标明出处.