知识回顾与重要考点之动态分区分配算法
解决问题:在动态分区分配方式中,当很多个空闲分区都能满足需求时候,应该选择哪个分区进行分配?
【1】首次适应
- 算法思想:从头到尾找合适的分区;
- 分区排列顺序:空闲分区以地址递增次序排列;
- 优点:综合性能最好。算法开销小,回收分区后一般不需要对空闲分区队列重新排序;
【2】最佳适应
- 算法思想:优先使用更小的分区,以保留更大的分区;
- 分区排列顺序:空闲分区以容量递增次序排列;
- 优点:会有更多的大分区呗保留下来,更能满足大进程需求;
- 缺点:会产生很多太小的、难以利用的碎片;算法开销大,回收分区后可能需要对空闲分区队列重新排序;
【3】最坏适应
- 算法思想:优先使用更大的分区,以防止产生太小的不可用的碎片;
- 分区排列顺序:空闲分区以容量递减次序排列;
- 优点:可以减少难以利用的小碎片
- 缺点:大分区容易被用完,不利于大进程;算法开销大(回收需要重新排列);
【4】临近适应
- 算法思想:每次从上次查找结束的位置开始查找;
- 分区排列顺序:空闲分区以地址递增次序排列(可排列成循环链表);
- 优点:不用每次从低地址的小分区开始检索,算法开销更小;
- 缺点:会使得高地址的大分区较先被用完;
记录学习点滴,如有违规请告知。