📜  伙伴系统 – 内存分配技术

📅  最后修改于: 2021-09-27 22:44:50             🧑  作者: Mango

先决条件 – 分区分配方法
静态分区方案受到活动进程数量固定的限制,并且空间的使用也可能不是最佳的。伙伴系统是一种内存分配和管理算法,它以两个增量的幂管理内存。假设内存大小为 2 U ,假设需要 S 大小。

  • 如果 2 U-1 U :分配整个块
  • Else:递归地等分块并每次测试条件,当满足时,分配块并退出循环。

系统还保存了所有未分配块的记录,并且可以将这些不同大小的块合并成一个大块。
优势 –

  • 轻松实现好友系统
  • 分配正确大小的块
  • 很容易合并相邻的孔
  • 快速分配内存和取消分配内存

坏处 –

  • 它要求所有分配单元都是 2 的幂
  • 导致内部碎片化

例子 –
考虑一个具有物理地址空间为 128 KB 的伙伴系统的系统。计算 18 KB 进程的分区大小。
解决方案 –


因此,18 KB 进程的分区大小 = 32 KB。它除以 2,直到可能得到最小块以适合 18 KB。