内存管理实验报告 联系客服

发布时间 : 星期日 文章内存管理实验报告更新完毕开始阅读9cd1c17188eb172ded630b1c59eef8c75ebf95e0

下载可编辑

操作系统课程设计报告

题 目: 班 级: 学 号: 姓 名: 指导教师: 日 期:

.专业.整理.

动态分区内存管理 计算机1303班 2120131138

徐叶 代仕芳 2015.11.5

下载可编辑

.专业.整理.

下载可编辑

一、 实验目的及要求

本实验要求用高级语言编写模拟内存的动态分区分配和回收算法(不考虑紧凑),以

便加深理解并实现首次适应算法(FF)、循环首次适应算法(NF)、最佳适应算法(BF),

最坏适应算法(WF)的具体实现。

二、实验内容

本实验主要针对操作系统中内存管理相关理论进行实验,要求实验者编写一个程序,该程序管理一块虚拟内存,实现内存分配和回收功能。

1) 设计内存分配的数据结构(空闲分区表/空闲分区链),模拟管理 64M 的内存块;

2) 设计内存分配函数; 3) 设计内存回收函数; 4) 实现动态分配和回收操作; 5) 可动态显示每个内存块信息

动态分区分配是要根据进程的实际需求,动态地分配内存空间,涉及到分区分配所用的数据结构、分区分配算法和分区的分配回收。

程序主要分为四个模块: (1)首次适应算法(FF)

在首次适应算法中,是从已建立好的数组中顺序查找,直至找到第一个大小能满足要求的空

.专业.整理.

下载可编辑

闲分区为止,然后再按照作业大小,从该分区中划出一块内存空间分配给请求者,余下的空间令开辟一块新的地址,大小为原来的大小减去作业大小,若查找结束都不能找到一个满足要求的分区,则此次内存分配失败。 (2)循环首次适应算法(NF)

该算法是由首次适应算法演变而成,在为进程分配内存空间时,不再是每次都从第一个空间开始查找,而是从上次找到的空闲分区的下一个空闲分区开始查找,直至找到第一个能满足要求的空闲分区,从中划出一块与请求大小相等的内存空间分配给作业,为实现本算法,设置一个全局变量f,来控制循环查找,当f%N==0时,f=0;若查找结束都不能找到一个满足要求的分区,则此次内存分配失败。 (3)最佳适应算法(BF)

最坏适应分配算法是每次为作业分配内存时,扫描整个数组,总是把能满足条件的,又是最小的空闲分区分配给作业。 (4)最坏适应算法(WF)

最坏适应分配算法是每次为作业分配内存时,扫描整个数组,总是把能满足条件的,又是最大的空闲分区分配给作业。

系统从空闲分区链表中找到所需大小的分区,如果空闲分区大小大于分区大小,则从分区中根据请求的大小划分出一块内存分配出去,余下的部分则留在空闲链表中。然后,将分配区的首址返回给调用者。

当进程运行完回收内存时,系统根据回收区的首址,从空闲区中找到相应的插入点,此时可能出现四种情况:

.专业.整理.