2018-07-25 创建人:Ruo_Xiao
邮箱:xclsoftware@163.com
一、一个简单的堆块的结构
- 一个块由字的头部、有效载荷以及可能的额外的填充组成。
- 头部编码了这个块的大小(包括头部和所有的填充)以及该块的状态(已分配或者空闲的)。
- 上图显示的是该块强加了一个双子的对齐约束条件(一个字为2B),该块的大小就总是8的倍数,则块大小的最低3位总是0。
- 这里的填充有两个原因:
(1)分配器的策略,用于对抗外部碎片。
(2)满足对齐要求。
二、隐式空闲链表
- 定义:空闲块是通过头部中的大小字段隐含地连接着的。
- 后面的已分配但是大小为0的头部做为隐式链表的结尾标志。
(SAW:Game Over!)