内存管理算法对于高效利用计算机内存至关重要,它们决定内存如何分配,处理位置,组织,以优化性能,防止像破碎和内存泄漏这样的问题,本文章比较了常用算法,提供了使用它们的实际例子.

第一编和最佳编剧算法

第一快件分配了第一个可用的内存块, 足够请求。 它简单快捷, 但可以随时间而分解。 最佳快件搜索全部自由块列表, 以找到符合请求的最小块, 减少浪费, 但增加搜索时间 。

例如,在一个有10、20和30个免费区块的系统中,将分配15个单位的请求如下:

  • 第一Fit会分配20个单元的区块。
  • 如果符合要求的最小,最佳配给会分配30个单元的块。

下个编织和编织系统

Next-Fit是First-Fit的变体,它从最后分配的位置恢复搜索,这可以改善某些情景中的性能. Buddy系统将内存分为大小块,属于两个功率,可以快速分割和合并块.

在Buddy系统,当块解脱时,如果两者都是自由的,则会与它的buddy合并,减少破碎,这种方法对于具有可预见内存分配模式的系统是有效的.

Buddy 系统实例

如果一个系统有一个128个单元的内存, 分为64和64个单元的同僚, 则会请求设置50个单元, 而系统会将一个64个单元的内存分成两个32个单元的同僚。 如果分配后, 如果该单元被释放, 它会重新合并为64个单元的内存, 从而保持有效的内存使用 。