分类: LINUX
2012-07-08 18:22:45
伙伴系统算法的基本内存区是页框,它适合于对大块内存的请求。但是对几十或者几百个字节的请求是不适合的。不可能为这种请求分配一个页框。正确的方法是:引入一种新的数据结构来描述如何在同一页框中如何分配小内存区。这就是SLAB分配器要完成的任务。
SLAB分配器最早出现于SUN公司的solaris2.4操作系统,它把对象分组放进高速缓存。每个高速缓存都是同种类型对象的一种储备。包含高速缓存的主内存区被分成多个SLAB。每个SLAB由一个或多个连续的页框组成。这些页框中既包含已经分配的对象,也包含空闲的对象。内核周期性的扫描高速缓存并释放空slab对应的页框。
高速缓存描述符是kmem_cache_t。
点击(此处)折叠或打开
未完待续