目录
首次适应算法(first fit ,ff)
要求
以地址递增的方式链接
工作方式
从链首开始查找,直到找到一个大小能满足要求的空闲分区为止
特点
- 优先利用内存中低地址部分
- 高地址空闲区大,可以给大程序使用
- 低地址不断被分割,形成碎片
- 每次从低地址查找,开销大
循环首次适应算法(next fit,nf)
解决问题
为了解决 ff 算法的缺点
特点
- 从上一次找到的空闲分区的下一个空闲分区开始查找(循环)
- 缺点是,缺乏大型空闲分区
最佳适应算法(best fit,bf)
要求
容量递增方式链接
特点
- “最佳”是指,既能满足大小,又是一最小的空闲分区划分,避免大材小用
- 缺点是容易形成碎片
【注】如果进程和空闲区使用不同的链表,则可以按照大小对空闲区链表排序,以提高最佳适配算法的速度
最坏适应算法(worst fit,wf)
要求
容量递减方式链接
特点
- 和 bf 算法相反,wf 算法是一开始就分配大的空间,这样便难以形成碎片
【注】其中最坏适应算法和最佳适应算法需要在每一次使用或回收块后重新排序