实验三 使用动态分区分配方式的模拟 1、实验目的 了解动态分区分配方式中使用的数据结构和分配算法,并进一步加深对动态分区存储管理方式及其实现过程的理解
2、实验内容 (1) 用C 语言分别实现采用首次适应算法和最佳适应算法的动态分区分配过程alloc( )和回收过程free( )
其中,空闲分区通过空闲分区链来管理:在进行内存分配时,系统优先使用空闲区低端的空间
(2) 假设初始状态下,可用的内存空间为640KB,并有下列的请求序列: •作 业 1 申 请130KB
•作 业 2 申 请60KB
•作 业 3 申 请100KB
•作 业 2 释 放 60KB
•作 业 4 申 请200KB
•作 业 3 释 放 100KB
•作 业 1 释 放 130KB
•作 业 5 申 请140KB
•作 业 6 申 请60KB
•作 业 7 申 请50KB
•作 业 6 释 放 60KB
请分别采用首次适应算法和最佳适应算法,对内存块 进行分配和回收,要 求每 次分配和回收后 显 示 出 空闲分区链的情 况
程序代码——C 语言实现 #include #include struct node //空闲分区链结点 的定 义 { node *before; node *after; int size; int address; int state; }; node L; struct usenode { usenode *next; int num; int add; int size; }U,*n; void Init() //空闲分区链的初始化 { node *p; p=(node *)malloc(sizeof(node)); p->before=&L; p->after=NULL; p->size=640; p->address=0; p->stat