• 2025年8月19日 星期二

H30615-实验八-主存管理

6 月 10, 2023

一、实验目的

1、学会内存的申请、释放和管理

2、掌握内存的分配方法  (FF,BF,WF)

3用链表的形式输出内存申请和释放过程的状态,通过编程进一步了解内存管理。

二、实验内容

用Vim编写一个程序:仿真实现某个内存管理算法,测试给出结果,解释运行结果。

三、实验主要步骤

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

2、记录空闲分区

3、内存分配算法-最佳分配算法(Best Fit Allocation)的原理是空闲分区列表按照大小排序,在分配时,查找一个合适的分区(分配n字节分区时,查找并使用不小于n的最小空间分区);在释放时,查找并且合并临近的空闲分区(如果找到的话)。

4、内存释放算法-运行结果-产生测试数据-随机为3个进程分配、释放内存10次以上,即随机产生10组以上数据。

四、实验结果测试

1.程序源代码如图1-图16所示。

图1
图2
图3
图4
图5
图6
图7
图8
图9
图10
图11
图12
图13
图14
图15
图16

2.使用gcc编译后,运行测试,进行内存的第一次分配操作:创建一个新进程,测试以PPT内容数据为例,分配给进程1的内存大小为24,然后显示内存使用情况,如图17所示。

图17

3.进行内存的第二次分配操作:继续创建一个新进程,分配给进程2的内存大小为74,然后显示内存使用情况,如图18所示。

图18

4.进行内存的第三次分配操作:继续创建一个新进程,分配给进程3的内存大小为36,然后显示内存使用情况,如图19所示。

图19

5.进行内存的第一次释放操作:终止已有进程,选择进程3,然后显示内存使用情况,如图20所示。

图20

6.进行内存的第二次释放操作:终止已有进程,选择进程1,然后显示内存使用情况,可见此时内存空闲区因为是在连续的地址中存在进程2使用内存,将进程1和进程3的内存空间隔断了,如图21所示。

图21

7.进行内存的第四次分配操作:继续创建一个新进程,分配给进程4的内存大小为50,此时虽然有第一段空闲地址,但由于大小不匹配,因此使用了第二段空闲部分的地址。显示内存使用情况,如图22所示。

图22

8.进行内存的第五次分配操作:继续创建一个新进程,分配给进程5的内存大小为16,此时第一段空闲地址大小符合,因此使用了第一段空闲部分的地址。显示内存使用情况,如图23所示。

图23

五、附件下载

Avatar photo

李星海

简介: 2025-今 浙江农林大学 | 2022-今 广州白蓝碗蛋科技有限公司 | 2022-2024 广州商学院 | 2019-2022 广东工贸职业技术学院 | 服务宗旨:心始至客,行亦致远。