操作系统第5次实验报告:内存管理
- 姓名 危文涛
- 学号 201821121048
- 班级 计算1812
1. 记录内存空间使用情况
解释你是如何记录内存空间使用情况,给出关键代码。
2. 记录空闲分区
用什么样的方法记录内存空闲区,给出关键代码。
3. 内存分配算法
使用什么样的内存分配算法,给出算法源代码,并解释。
首次适应算法从空闲分区表的第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,这种方法目的在于减少查找时间。为适应这种算法,空闲分区表(空闲区链)中的空闲分区要按地址由低到高进行排序。该算法优先使用低址部分空闲区,在低址空间造成许多小的空闲区,在高地址空间保留大的空闲区
4. 内存释放算法
5. 运行结果
(1)产生测试数据
写程序,产生测试数据(随机)。给出你的源码,以及你生成的测试数据是什么。
随机为3个进程分配、释放内存10次以上,即随机产生10组以上数据:(进程Pi 分配内存大小) 或者 (进程Pi结束)
(2)解释结果
每一次内存分配或释放,内存的示意图是怎样的。给出4组分析即可。
第一次操作为进程process-03分配了从0开始,大小为66的一块内存单元,分配后空闲分区内存剩余地址从66开始,大小为958的一块区域。
第二次操作为进程process-01分配了从66开始,大小为78的一块内存单元,分配后空闲分区内存剩余地址从144开始,大小为880的一块区域。
第三次操作为进程process-02分配了从144开始大小为57的一块内存单元,分配后空闲分区内存剩余地址从201开始,大小为823的一块区域。
第四次操作释放了进程process-01的内存空间,释放后空闲分区内存剩余地址从66开始大小为78的一块区域和地址从201开始大小为823的一块区域。