新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 內(nèi)存控制塊OS_MEM的結(jié)構(gòu)

內(nèi)存控制塊OS_MEM的結(jié)構(gòu)

作者: 時(shí)間:2011-07-12 來(lái)源:網(wǎng)絡(luò) 收藏
為了使系統(tǒng)能夠感知和有效地管理內(nèi)存分區(qū),μc/os-ii給每個(gè)內(nèi)存分區(qū)定義了一個(gè)叫做內(nèi)存控制塊(os_mem)的數(shù)據(jù)結(jié)構(gòu)。系統(tǒng)就用這個(gè)內(nèi)存控制塊來(lái)記錄和跟蹤每個(gè)內(nèi)存分區(qū)的狀態(tài)。內(nèi)存控制塊的結(jié)構(gòu)如下:

當(dāng)應(yīng)用程序調(diào)用函數(shù)osmemcreate()建立了一個(gè)內(nèi)存分區(qū)之后,內(nèi)存控制塊與內(nèi)存分區(qū)和內(nèi)存塊之間的關(guān)系如圖所示。

從圖(b)中可知,內(nèi)存控制塊的內(nèi)存分區(qū)指針osmemaddr指向了內(nèi)存分區(qū),內(nèi)存分區(qū)中的各個(gè)內(nèi)存塊又組成了一個(gè)單向鏈表,內(nèi)存控制塊的鏈表指針osmemfreelist就指向了這個(gè)單向鏈表的頭。

內(nèi)存控制塊的其他三個(gè)變量分別記錄了分區(qū)中內(nèi)存塊的長(zhǎng)度、總數(shù)目以及現(xiàn)在還未被分配的內(nèi)存塊數(shù)目。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉