一、复习三个模块对应结构
1、thread cache
自由链表数组,自由链表链接一个个小内存块。
FreeList _freeLists[MAX_LISTS];
2、central cache
Span链表数组,Span链表链接一个个Span(Span中_freeList的小内存块大小一样)
SpanList _spanLists[MAX_LISTS];
central cache中的span是已经初始化好页号,页数,前后span链表指针和内部保存对齐数大小的自由链表(供thread cache直接使用)
central cache中span链表结构如图:
3、page cache
Span链表数组,Span链表链接一个个大小k页的Span
SpanList _pageLists[NPAGES];
其实central cache中span的页号和页数是在page cache向系统申请k页span时已经处理好的,但span的自由链表没有初始化。