当前位置: 技术问答>linux和unix
关于slab的简单问题
来源: 互联网 发布时间:2016-01-08
本文导语: linux 2.4 在内核初始化slab的时候,首先初始化cache_cache:kmem_cache_init(),然后初始化通用cache: kmem_cache_sizes_init() 由于cache_cache是最高层次的slab队列,队列中每个slab载有若干个kmem_cache_t数据结构,而这个数据结构又是某缓冲队...
linux 2.4
在内核初始化slab的时候,首先初始化cache_cache:kmem_cache_init(),然后初始化通用cache: kmem_cache_sizes_init()
由于cache_cache是最高层次的slab队列,队列中每个slab载有若干个kmem_cache_t数据结构,而这个数据结构又是某缓冲队列slab的头部
是不是可以这么理解,就是通用缓冲队列和专用缓冲队列的队列头都村在cache_cache的slab队列中?即通用队列可以看做是专用队列的一个特例,通用队列和其他数据结构如vm_area_struct一样在cache_cache队列中的地位其实是一样的?
如果不是这样的话,通用缓冲队列的特殊性又体现在哪里?
请大家指教,谢谢!!
在内核初始化slab的时候,首先初始化cache_cache:kmem_cache_init(),然后初始化通用cache: kmem_cache_sizes_init()
由于cache_cache是最高层次的slab队列,队列中每个slab载有若干个kmem_cache_t数据结构,而这个数据结构又是某缓冲队列slab的头部
是不是可以这么理解,就是通用缓冲队列和专用缓冲队列的队列头都村在cache_cache的slab队列中?即通用队列可以看做是专用队列的一个特例,通用队列和其他数据结构如vm_area_struct一样在cache_cache队列中的地位其实是一样的?
如果不是这样的话,通用缓冲队列的特殊性又体现在哪里?
请大家指教,谢谢!!
|
只有专用缓冲队列在cache_cache的slab队列中。
通用缓冲队列不在其中,不过也是采用slab方式管理(好像称为slab cache),slab cache顶层是个数组(不像cache_cache是队列),其中每个元素指向不同的slab队列(每个slab队列的对象大小固定,可为32,64,128...,具体可以参考mm/slab.c)。
通用缓冲队列不在其中,不过也是采用slab方式管理(好像称为slab cache),slab cache顶层是个数组(不像cache_cache是队列),其中每个元素指向不同的slab队列(每个slab队列的对象大小固定,可为32,64,128...,具体可以参考mm/slab.c)。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。