25-动态分区分配算法

动态分区分配包括首次适应、最佳适应、最坏适应和邻近适应等算法。首次适应从低地址开始找满足大小的分区,可能保留大分区;最佳适应力求保留大分区,但可能导致大量小分区;最坏适应优先使用最大分区,可能无法满足后续大进程需求;邻近适应从上次查找结束位置开始,减少查找开销,但可能使大分区被分割。
摘要由CSDN通过智能技术生成

动态分区分配算法

首次适应算法

算法思想:每次都从低地址开始查找,找到第一个能满足大小的空闲分区
实现方法:
空闲分区以地址递增的次序排列,每次分配内存时顺序查找空闲分区链(或空闲分区表),找到能满足大小的第一个空闲分区。
优点

  1. 更有可能把高地址部分的大分区保留下来

最佳适应算法

算法思想:为了各个进程分配的空间必须是连续的一整篇区域,因此可以尝试尽可能多的留下大的空闲区间,优先使用更小的空闲区
如何实现:空闲分区按容量递增次序链接。每次分配内存时顺序查找空闲顺序链(或空闲分区表)找到大小能满足要求的第一个分区

最坏适应算法

算法思想:每次分配的时候优先使用最大的连续空闲区
如何实现:空闲分区按照递减的次序链接,每次分配时查找空闲分区链,找到大小能满足的第一个空闲分区。
缺点
每次都选择最大的分区进行分配,虽然可以让分配后留下的空闲区更大,但是如果之后有大进程到达,就没有内存分区可以用了

邻近适应算法

算法思想:首次适应算法每次都从链头开始查找,这可能导致低地址部分会出现很多小的空闲分区,而每次分配查找时,都要经过这些分区,因此也增加了查找的开销,如果每次都从上次查找结束的位置开始检索,就解决了这个问题。
如何实现:空闲分区以地址递增的顺序排列(可以排成一个循环链表).每次分配内存时都从上次查找结束的位置开始查找空闲分区链,找到大小能满足要求的第一个空闲分区
缺点
1.导致高地址部分的大分区更有可能被使用,划分为小分区,最后可能导致无大分区可用。请添加图片描述请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蓝学不会嵌入式!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值