算法-------动态分配策略

动态分区分配算法

1.首次适应算法(First Fit) 算法思想:将空闲分区链以地址递增的顺序连接;在进行内存分配时,从链首开始顺序查找,直到找到一块分区的大小可以满足需求时,按照该作业的大小,从该分区中分配出内存,将剩下的空闲分区仍然链在空闲分区链中。 优点:高址部分的大的空闲分区得到保留,为大作业的内存分配创造了条件; 缺点:(1)每次都是优先利用低址部分的空闲分区,造成低址部分产生大量的外碎 片。 (2)每次都是从低址部分查找,使得查找空闲分区的开销增大;

2.循环首次适应算法(Next Fit) 算法:分配内存时不是从链首进行查找可以分配 内存的空闲分区,而是从上一次分配内存的空闲分区的下一个分区开始查找,直到找到可以为该进程分配内存的空闲分区; 优点:(1)使得空闲分区分布更加均匀; (2)空闲分区的查找开销小; 缺点:高址部分的大空闲分区被分小,使得大作业进入无法分配内存;

3.最佳适应算法(Best Fit) 算法:将空闲分区链中的空闲分区按照空闲分区由小到大的顺序排序,从而形成空闲分区链。每次从链首进行查找合适的空闲分区为作业分配内存,这样每次找到的空闲分区是和作业大小最接近的,所谓“最佳”。 优点:第一次找到的空闲分区是大小最接近待分配内存作业大小的; 缺点:产生大量难以利用的外部碎片。

4.最坏适应算法(Worst Fit) 算法:与最佳适应算法刚好相反,将空闲分区链的分区按照从大到小的顺序排序形成空闲分区链,每次查找时只要看第一个空闲分区是否满足即可。 优点:效率高,分区查找方便; 缺点:当小作业把大空闲分区分小了,那么,大作业就找不到合适的空闲分区。

猜你喜欢

转载自blog.csdn.net/Mr_Effiya/article/details/84147015