Posted on 2007-11-21 20:23
天衣有缝 阅读(1708)
评论(0) 编辑 收藏 引用 所属分类:
os stuff
初始化流程参考了linux-2.4.18,并没有在内存管理上作太多的打印。这不是重点,经过严格反复测试,CMemory及其kmalloc主要接口工作正常。
转载请保留原创:http://www.cppbog.com/jinglexy
Mail & MSN:jinglexy at yahoo dot com dot cn
cache_cache是一个全局对象,管理第二级缓冲区,即每个kmem_cache_t表示一种类型(特定大小)的缓冲区。对于on-slab,如mm_struct对应的缓冲区,slab_t管理其列表及对象指针。
对于off-slab对应的缓冲区,其(slab_t和bufctl)对象由slabp_cache指向的slab_t分配,当从中获取到一个对象后,再alloc_pages分配连续的页框,就是左边黄色页框。关联对象1和黄色页框,对象1就是包含slab_t和bufctl的缓冲。