伙伴算法

159 阅读1分钟
1.外部碎片
  • 定义:系统将1M内存分成4个区域,让每个区域的默认大小为300K。这样的结果是最后一个内存区域将不足300K,此时,这个不足300K的内存区虽然理论上可以被使用,但由于容量偏小,将这段内存分配出去也许不能够满足程序的正常需要的部分就叫做外部碎片。
2.内部碎片
  • 定义:内部碎片是指当某一个程序申请了一块内存,而此时系统中却没有大小恰好合适的内存提供给该程序,于是系统只能给该程序分配一块稍大一点的内存,而这块内存中会有一小部分多余的部分根本不会被使用,这一部分内存就叫做内部碎片。
3.伙伴算法的缺点
  • 伙伴算法虽然能够避免外部碎片的产生,但这恰恰是以产生内部碎片为代价的
4.伙伴算法的原理
  • 二分法拆分以及合并
5.伙伴算法的实现
  • 在Github