【发布时间】:2018-05-31 00:35:58
【问题描述】:
我对 Linux 内核中的好友系统分配器有疑问。
考虑这个例子:
假设伙伴系统正在分配 128KB RAM。 如果我使用 kmalloc 分配 32KB,我的理解是,
在步骤 1 中,128KB 被拆分为两个 64KB,第一个 64KB 被拆分为两个 32KB。 然后前 32KB 分配给我。
显然仍有 96KB 的连续内存可用。
现在如果我在这个阶段分配 90KB,会发生什么? kmalloc 会失败还是伙伴(甚至是slab)分配器会处理这个并成功分配请求的内存?
【问题讨论】:
标签: linux memory-management linux-kernel