实验四 动态分区分配方式内存管理模拟
实验五 动态分区分配方式内存管理模拟 一、 实验目的
1) 掌握连续分配方式内存管理理论
2) 掌握动态分区分配方式内存管理理论
二、 实验原理
动态分区分配:根据进程的实际需要,动态地为之分配内存空间,在实现动态分区分配时,将涉及分区分配中所使用的数据结构,分区分配算法和分区的分配与回收操作等问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
。
) 分区分配中的数据结构 1
, 空闲分区表:一个数据表,用于记录每个空闲块的情况,如起始地址、大
小、使用情况等;
, 空闲分区链表:把所有的空闲分区链接成一个链表,便于内存空间查看与
分配回收。
2) 分配算法
, 首次适应法:空闲分区按首地址递增次序组织,每次查找时从链首出发,
寻找满足要求的内存块。
, 循环首次适应算法:空闲分区按首地址递增次序组织,每次从上次查找的
下一个空闲块开始查找,直到找到满足要求的内存块。
, 最佳适应法:空闲分区按空闲分区大小址递增次序组织,每次查找时从链
首出发,寻找满足要求的最小内存块进行分配。
, 最坏适应法:空闲分区按空闲分区大小递减次序组织,每次查找时直接判
断最大空闲分区是否满足要求。
3) 内存分配过程
利用分配算法找到满足要求的内存块,设请求的内存大小为size:
, 若找到的空闲分区的大小等于size,完全分配;
, 若找到的空闲分区大小大于size,且一分为二后,剩余大小小于1K,则
不再分割;否则一分为二,剩余部分仍然作为空闲分区存在;
, 若无满足要求空闲分区,则分配失败
4) 内存回收
根据释放区首址和大小,查找空闲分区表/链表,判断是否有相邻的空闲分区存在:
释放区与前空闲区相邻:将释放区与前空闲区合并为一个空闲区。其, 前邻
首址仍为前空闲区首址,大小为释放区大小与空闲区大小之和。
, 释放区与前后两个空闲区相邻:将这三个区合为一个空闲区,其首址为前
空闲区首址,大小为这三个区大小之和,并取消原后空闲区表目。
, 释放区与后空闲区相邻:则把释放区合并到后空闲,首地址为释放区首地
址,大小为二者大小之和。
, 释放区不与任何空闲区相邻:将释放区作为一个空闲区,将其大小和首址
插入到空闲区表的适当位置。
三、 实验内容
要求编写一个程序实现一块内存空间的管理,包括内存分配与回收功能。具体要求完成功能:
1) 模拟实现64M内存空间的管理
2) 设计内存分配结构,记录内存使用情况
3) 设计内存分配算法(首次适应法、最佳适应法、最坏适应法或循环首次适应
法,任选一个)
4) 设计内存回收算法(考虑相邻空间的合并)
5) 可动态显示内存分区状况
四、 实验要求
1) 实验数据可以设计要求:至少完成10次以上内存分配、5次以上内存回收(其
中分配与回收需要混合进行,且回收过程中至少涉及2次以上内存合并处理)
2) 实验工具不限
3) 实验学时6学时
4) 实验报告包含:
, 实验目的、实验要求
, 实验数据
, 相关数据结构设计说明
, 算法思路
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
, 算法各数据运行结果截图