内存碎片问题
- 外部碎片
- 在分配单元之间的未使用内存
内部碎片
首次适配
- 空闲块地址排序
- 分配需要寻找一个合适的分区
- 重分配需要检查,看是否自由分区能合并于相领的空间分区
- 优势: 简单、易于产生更大空间块,向着地址空间的结尾
- 劣势:易于产生外部碎片、不确定性
- 最优适配算法
- 寻找空闲块中最适合的空间块,能满足需求且差值最小的分区
- 按尺寸排列的空间块列表
- 分配需要寻找一个合适的分区
- 重分配需要检查,看是否自由分区能合并于相领的空间分区
- 优势:当大部分分配是最小尺寸时非常有效、比较简单
- 劣势:外部碎片、重分配慢、易产生很多没用的微小碎片
- 最差匹配分配
- 寻找空闲块中最差的空间块、能满足需求且差值最大的分区
- 按尺寸排列的空间块列表
- 分配很快(获得最大的分区)
- 重分配需要检查,看是否自由分区能合并于相领的空间分区
- 优势:假如分配是中等尺寸效果最好
- 劣势:重分配慢、外部碎片、易于碎片大的空闲块以致于大分区无法被分配
