特牛网址导航

块分配器SLAB的内核实现_slab实现-CSDN博客

网友收藏
假设一个slab包含4个对象,使用1号对象存放空闲对象链表,初始状态如图3.28所示。这种方案会不会导致可以分配的对象减少一个呢?答案是不会,存放空闲对象链表的对象可以被分配。这种方案采用了巧妙的方法。(1)必须把存放空闲对象链表的对象索引放在空闲对象数组的最后面,保证这个对象是最后一个被分配出去的。(2)分配最后一个空闲对象,page->active增加到4,page->freelist变成空指针,所有对象被分配出去,已经不需要空闲对象链表,如图3.29所示。..._slab实现
标签:slab实现