动态分区分配算法

一.顺序搜索的动态分区分配算法

1.首次适应算法(First Fit)

算法思想:将空闲分区链以地址递增的顺序连接;在进行内存分配时,从链首开始顺序查找,直到找到一块分区的大小可以满足需求时,按照该作业的大小,从该分区中分配出内存,将剩下的空闲分区仍然链在空闲分区链中。

动态分区分配算法

优点:高址部分的大的空闲分区得到保留,为大作业的内存分配创造了条件;

缺点:(1)每次都是优先利用低址部分的空闲分区,造成低址部分产生大量的外碎 片。

(2)每次都是从低址部分查找,使得查找空闲分区的开销增大;

2.循环首次适应算法(Next Fit)

算法:分配内存时不是从链首进行查找可以分配 内存的空闲分区,而是从上一次分配内存的空闲分区的下一个分区开始查找,直到找到可以为该进程分配内存的空闲分区;

动态分区分配算法

优点:(1)使得空闲分区分布更加均匀;

(2)空闲分区的查找开销小;

缺点:高址部分的大空闲分区被分小,使得大作业进入无法分配内存;

3.最佳适应算法(Best Fit)

算法:将空闲分区链中的空闲分区按照空闲分区由小到大的顺序排序,从而形成空闲分区链。每次从链首进行查找合适的空闲分区为作业分配内存,这样每次找到的空闲分区是和作业大小最接近的,所谓最佳。

动态分区分配算法

优点:第一次找到的空闲分区是大小最接近待分配内存作业大小的;

缺点:产生大量难以利用的外部碎片。

4.最坏适应算法(Worst Fit)

算法:与最佳适应算法刚好相反,将空闲分区链的分区按照从大到小的顺序排序形成空闲分区链,每次查找时只要看第一个空闲分区是否满足即可。

动态分区分配算法

优点:效率高,分区查找方便;

缺点:当小作业把大空闲分区分小了,那么,大作业就找不到合适的空闲分区。

★《布宫号》提醒您:民俗信仰仅供参考,请勿过度迷信!

(0)

相关推荐