內存控制塊OS_MEM的結構
為了使系統能夠感知和有效地管理內存分區,μc/os-ii給每個(gè)內存分區定義了一個(gè)叫做內存控制塊(os_mem)的數據結構。系統就用這個(gè)內存控制塊來(lái)記錄和跟蹤每個(gè)內存分區的狀態(tài)。內存控制塊的結構如下:
當應用程序調用函數osmemcreate()建立了一個(gè)內存分區之后,內存控制塊與內存分區和內存塊之間的關(guān)系如圖所示。
從圖(b)中可知,內存控制塊的內存分區指針osmemaddr指向了內存分區,內存分區中的各個(gè)內存塊又組成了一個(gè)單向鏈表,內存控制塊的鏈表指針osmemfreelist就指向了這個(gè)單向鏈表的頭。
內存控制塊的其他三個(gè)變量分別記錄了分區中內存塊的長(cháng)度、總數目以及現在還未被分配的內存塊數目。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論