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

  • 姓名:许德阳
  • 学号:201821121045  
  • 班级:计算1812

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

解释你是如何记录内存空间使用情况,给出关键代码。

创建参数为(pid,size,start_addr,process_name,allocated_block*next)的结构体allocated_block

pid 表示进程id

size 表示进程大小

start_addr 表示分配到的内存块的起始地址

process_name 表示进程名

*next 表示下一个进程控制块

2. 记录空闲分区

 

创建(size,start_addr,*next)的结构体链表free_block_type

设置头指针为空指向链表首地址,使用后面的算法进行排序,从低地址开始查找

3. 内存分配算法

内存紧缩技术分配空间:

给新进程分配空间:

最坏与最佳算法:

 

 

 

内存分配:

 

 

 

 

 

 

4. 内存释放算法

退出程序并释放空间:

释放链表结点:

 

 更新分区间:

 

 

5. 运行结果

(1)产生测试数据

输入数字分别进行内存大小的设置。算法的设置。新进程的创建及释放。

 

 

(2)解释结果

每一次内存分配或释放,内存的示意图是怎样的。给出4组分析即可。

设置初始内存为1024,进程标识符为1,空闲地址分区从5开始,1024-5得到进程大小为1019.分配区间开始0,大小为5.

进程2,空闲地址分区从459开始得到进程大小为1019-454=565.分配初始地址为5,大小454

 

进程3,空闲地址分区从651开始得到进程大小为565-222=343,。分配地址初始为459,大小为222.

 

 

删除进程1,空闲地址分区获得1号进程。

 

删除进程2,空闲地址分区从0开始,大小5变为0开始,大小为5+2进程的初始地址454.

 

 

posted on 2020-05-17 12:10  xudeyang  阅读(526)  评论(0编辑  收藏  举报