实验一 可变分区存储管理
(一) 实验题目
编写一个C程序,用char *malloc(unsigned size)函数向系统申请一次内存空间(如size=1000,单位为字节),用循环首次适应法
addr = (char *)lmalloc(unsigned size) 和
lfree(unsigned size,char * addr)模拟UNIX可变分区内存管理,实现对该内存区的分配和释放管理。
(二) 实验目的
1.加深对可变分区的存储管理的理解;
2.提高用C语言编制大型系统程序的能力,特别是掌握C语言编程的难点:指针和指针作为函数参数;
3.掌握用指针实现链表和在链表上的基本操作。
(三) 实验要求
要分配函数lmalloc的参数size和释放函数lfree的参数size、addr以键盘命令的形式输入,每次分配和释放后显示自己的空闲存储区表。
空闲存储区表可采用结构数组的形式(基本要求)或双向链接表的形式(提高一步),建议采用的数据结构为:
结构数组的形式:
struct map {
unsigned m_size;
char * m_addr;
};