无论是上层应用还是操作系统内核开发,内存问题都是我们所需要关注的。
我们来看看Linux内核管理和分配机制。
伙伴系统
伙伴系统从物理连续的大小固定的段上进行分配。从这个段上分配内存,采用 2 的幂分配器来满足请求分配单元的大小为 2 的幂(4KB、 8KB、16KB 等)。请求单元的大小如不适当,就圆整到下一个更大的 2 的幂。例如,如果请求大小为 11KB,则按 16KB 的段来请求。
slab是针对小内存管理的机制,是分配内核内存的第二种策略,每个 slab 由一个或多个物理连续的页面组成,每个 cache 由一个或多个 slab 组成,每个内核数据结构都有一个 cache。
原文:https://www.cnblogs.com/songgj/p/14398372.html