先决条件 – 分区分配方法
静态分区方案受到活动进程数量固定的限制,并且空间的使用也可能不是最佳的。伙伴系统是一种内存分配和管理算法,它以两个增量的幂管理内存。假设内存大小为 2 U ,假设需要 S 大小。
- 如果 2 U-1
U :分配整个块 - Else:递归地等分块并每次测试条件,当满足时,分配块并退出循环。
系统还保存了所有未分配块的记录,并且可以将这些不同大小的块合并成一个大块。
优势 –
- 轻松实现好友系统
- 分配正确大小的块
- 很容易合并相邻的孔
- 快速分配内存和取消分配内存
坏处 –
- 它要求所有分配单元都是 2 的幂
- 导致内部碎片化
例子 –
考虑一个具有物理地址空间为 128 KB 的伙伴系统的系统。计算 18 KB 进程的分区大小。
解决方案 –
因此,18 KB 进程的分区大小 = 32 KB。它除以 2,直到可能得到最小块以适合 18 KB。