Posted on 2007-11-21 20:23
天衣有縫 閱讀(1721)
評論(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的緩沖。