mm(use slab arithmetic) for jinix-1.2.1(原创)

初始化流程参考了linux-2.4.18,并没有在内存管理上作太多的打印。这不是重点,经过严格反复测试,CMemory及其kmalloc主要接口工作正常。
转载请保留原创:http://www.cppbog.com/jinglexy
Mail & MSN:jinglexy at yahoo dot com dot cn

mm(use slab arithmetic)  for jinix-1.2.1(原创)_第1张图片





mm(use slab arithmetic)  for jinix-1.2.1(原创)_第2张图片

cache_cache是一个全局对象,管理第二级缓冲区,即每个kmem_cache_t表示一种类型(特定大小)的缓冲区。对于on-slab,如mm_struct对应的缓冲区,slab_t管理其列表及对象指针。





mm(use slab arithmetic)  for jinix-1.2.1(原创)_第3张图片

对于off-slab对应的缓冲区,其(slab_tbufctl)对象由slabp_cache指向的slab_t分配,当从中获取到一个对象后,再alloc_pages分配连续的页框,就是左边黄色页框。关联对象1和黄色页框,对象1就是包含slab_tbufctl的缓冲。




你可能感兴趣的:(mm(use slab arithmetic) for jinix-1.2.1(原创))