Linux页框&伙伴算法以及slab机制

无论是上层应用还是操作系统内核开发,内存问题都是我们所需要关注的。

我们来看看Linux内核管理和分配机制。

 伙伴算法

  伙伴算法从物理连续的大小固定的段上进行分配。从这个段上分配内存,采用 2 的幂分配器来满足请求分配单元的大小为 2 的幂(4KB、 8KB、16KB 等)。请求单元的大小如不适当,就圆整到下一个更大的 2 的幂。例如,如果请求大小为 11KB,则按 16KB 的段来请求。

  内核使用struct page的结构体来描述每个物理页,也叫做页框。在系统里分配了多少个物理页就会有对应多少个struct page结构体。

slab机制

  slab是针对小内存管理的机制,是分配内核内存的第二种策略,每个 slab 由一个或多个物理连续的页面组成,每个 cache 由一个或多个 slab 组成,每个内核数据结构都有一个 cache。

原文地址:https://www.cnblogs.com/songgj/p/14398372.html