操作系统第5次实验报告:内存管理

  • 姓名:张一鸣
  • 学号:201821121050
  • 班级:计算1812

1. 记录内存空间使用情况

进程使用了包括pid,大小,起始地址,进程名,next指向下一分区等空间

2. 记录空闲分区

创建一个结构体链表free_block_type,来记录空闲分区。并且设置头指针为空,指向表头,再使用后面的算法进行排序,从低地址开始进行查找。

3. 内存分配算法

首次适应算法从空闲分区表的第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,这种方法目的在于减少查找时间。为适应这种算法,空闲分区表(空闲区链)中的空闲分区要按地址由低到高进行排序。该算法优先使用低址部分空闲区,在低址空间造成许多小的空闲区,在高地址空间保留大的空闲区。

 

4. 内存释放算法

  释放进程内存包括更新分区表和进程节点两个部分。更新分区表的步骤可以分为以下几点:将新释放的结点插入到空闲分区队列末尾;对空闲链表按照地址有序排列;检查并合并相邻的空闲分区;将空闲链表重新按照首次适配算法排序

5. 运行结果

1、产生测试数据

随机为3个进程分配、释放内存10次以上,即随机产生10组以上数据:(进程Pi 分配内存大小) 或者 (进程Pi结束)

运行结果(可见每次产生的数据以及内存使用情况和空闲分区情况)

2.解释结果

第一次为process-02分配了从0开始大小为54的一块内存单元,分配后空闲分区内存剩余地址从54开始,大小为970的一块区域。

第二次为process-01分配了从0开始大小为12的一块内存单元,分配后空闲分区内存剩余地址从12开始,大小为1012的一块区域。

第三次为process-03分配了从92开始大小为27的一块内存单元,分配后空闲分区内存剩余地址从119开始,大小为905的一块区域。

第四次释放了process-02的内存空间,释放后空闲分区内存剩余地址从92开始大小为61的一块区域和地址从200开始大小为824的一块区域。

 

posted on 2020-05-16 18:44  噬世  阅读(200)  评论(0编辑  收藏  举报

导航