slab allocator 内存分配技术
缓存:专用,通用
数据结构:
static kmem_cache_t cache_cache; // 缓存的描述符号
struct cache_sizes malloc_sizes[]; // 所有通用Slab缓存的描述符号的指针
struct list_head cache_chain; // 描述符号的链表表头
struct semaphore cache_chain_mem; // 同步信号量,防止同时访问cache_chain
API:
kmem_cache_create();
kmem_cache_init();
kmem_cache_destroy();
kmem_cache_alloc();
kmem_cache_zalloc();
kmem_cache_free();
kmem_cache_size();
kmem_cache_name();
kmem_cache_shrink();
缓存:专用,通用
数据结构:
static kmem_cache_t cache_cache; // 缓存的描述符号
struct cache_sizes malloc_sizes[]; // 所有通用Slab缓存的描述符号的指针
struct list_head cache_chain; // 描述符号的链表表头
struct semaphore cache_chain_mem; // 同步信号量,防止同时访问cache_chain
API:
kmem_cache_create();
kmem_cache_init();
kmem_cache_destroy();
kmem_cache_alloc();
kmem_cache_zalloc();
kmem_cache_free();
kmem_cache_size();
kmem_cache_name();
kmem_cache_shrink();