- 这些算法是用于我们对于连续内存分配中的动态分区分配这种方法使用的算法
首次适应算法
- 这种算法的核心就是将空闲分区以地址递增的次序,每次使用分区的时候,用第一个满足我们进程大小的分区
- 这是算法综合来看,性能是最好的
最佳适应算法
- 思想就是将空闲分区按照容量递增的次序链接,相当于每次都用的是符合要求的最小大端分区
- 缺点
- 每次选最小的分区进行分配,会留下很多很小的外部碎片
- 因为分区的大小变化,所以需要耗时来进行排序
最坏(大)适应算法
- 因为我们的最佳适应算法的分配原理,会导致很多的外部碎片,所以这个算法反其道行之,每次选用最大的分区
- 缺点
- 还是需要耗时来排序分区
- 因为每次用的是最大的分区,导致大分区很快被用,可能造成我们大进程进来的时候就放不下了
临近适应算法
- 还是按照我们递增递增的顺序排列(在数据结构上排成一个循环链表),每次分配内存,从上一个查找结束的位置开始查找空闲分区链,找到一个满足于要求的第一个空闲分区
- 这是算法的规则可能导致无论低地址还是高地址的空闲分区都有相同的概率被使用,也就导致高地址的大分区也可能被使用,变成小分区