操作系统第5次实验报告:内存管理
- 姓名:江雄鹏
- 学号:201821121043
- 班级:计算1812
1. 记录内存空间使用情况
建立一个链表来记录内存空间的使用情况
创建参数为(pid,size,start_addr,process_name,allocated_block*next)的结构体allocated_block
2. 记录空闲分区
建立一个链表来记录空闲分区。
设置头指针为空指向链表首地址,使用后面的算法进行排序,从低地址开始查找
3. 内存分配算法
分配内存:
分配内存模块:
为进程分配内存:
4. 内存释放算法
释放进程内存包括更新分区表和进程节点两个部分。
释放链表节点:
更新分区表:
5. 运行结果
选取4组结果分析:
创建PID:3,从地址0处开始,分配了42个大小的空间。分配后空闲内存从地址42开始,大小为982。
创建PID:4,从地址42开始,分配了79个大小的空间。分配后空闲内存从地址121开始,大小为903。
释放PID3,空闲内存获得了从0开始大小为42的空间。
创建了PID:5,从地址121开始,分配了大小为44的空间。同样的空闲内存由原来121开始的903大小空间变成了165开始的859大小空间