南华大学 计算机科学与 技 术 学院 实 验 报 告 ( 2010 ~2011 学年度 第 二 学期 ) 课程名称 计算机操作系统 实验名称 可变分区存储管理 姓名 肖喜武 学号 20094350225 专业 软件工程 班级 本 09软件 02班 地点 8-212 教师 曹 军 日期 2011-06-25 一、实验内容 编写程序模拟内存分配与回收的过程。 二、实验目的 1.加深对可变分区的存储管理的理解; 2.提高用 C 语言编制大型系统程序的能力,特别是掌握C 语言编程的难点: 指针和指针作为函数参数; 3.掌握用指针实现链表和在链表上的基本操作。 三、实验题目 本实验题目为:用循环首次适应法模拟 UNIX 可变分区内存管理,实现对该内存区的分配和释放管理。 (1)设计思路 用 char*malloc(unsigned size)函数向系统申请一次内存空间(如 size=1000,单位为字节),用循环首次适应法 addr = (char *)lmalloc(unsigned size)和lfree(unsigned size,char * addr)模拟 UNIX 可变分区内存管理,实现对该内存区的分配和释放管理。 (2)循环首次适应算法 模拟 UNIX 的进程管理程序采用的是循环首次适应算法,具体算法如下: 系统每次为进程分配资源时,从上次找到的空闲分区的下一个空闲分区开始查找,直到找到一个能满足要求的空闲分区,从中划出一块与请求大小相等的内存空间分配给作业。 (3)数据结构 (4 )系统总体框图 四、源程序代码 五、程序运行时初值和运行结果 六、实验总结 通过本次实验加深了对循环首次适应算法,内存分配与回收的机制的理解,也巩固了 C++程序语言设计的基础。