Posted on 2007-11-21 20:23
天衣有縫 閱讀(1731)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
os stuff
初始化流程參考了linux-2.4.18,并沒有在內(nèi)存管理上作太多的打印。這不是重點(diǎn),經(jīng)過嚴(yán)格反復(fù)測(cè)試,CMemory及其kmalloc主要接口工作正常。
轉(zhuǎn)載請(qǐng)保留原創(chuàng):http://www.cppbog.com/jinglexy
Mail & MSN:jinglexy at yahoo dot com dot cn

cache_cache是一個(gè)全局對(duì)象,管理第二級(jí)緩沖區(qū),即每個(gè)kmem_cache_t表示一種類型(特定大小)的緩沖區(qū)。對(duì)于on-slab,如mm_struct對(duì)應(yīng)的緩沖區(qū),slab_t管理其列表及對(duì)象指針。
對(duì)于off-slab對(duì)應(yīng)的緩沖區(qū),其(slab_t和bufctl)對(duì)象由slabp_cache指向的slab_t分配,當(dāng)從中獲取到一個(gè)對(duì)象后,再alloc_pages分配連續(xù)的頁(yè)框,就是左邊黃色頁(yè)框。關(guān)聯(lián)對(duì)象1和黃色頁(yè)框,對(duì)象1就是包含slab_t和bufctl的緩沖。