操作系统第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.