vxworks內(nèi)存管理(二)

5.3 內(nèi)存分配算法

內(nèi)存可用表、自由鏈2種方法進(jìn)行空閑內(nèi)存塊管理。

可用表:二維表,每個(gè)表項(xiàng)記錄了一個(gè)空閑內(nèi)存塊,主要參數(shù)包括塊號(hào)、長(zhǎng)度、起始地址。表格管理過(guò)程較簡(jiǎn)單,但表大小難以確定,表本身需占用一部分內(nèi)存。

自由鏈:利用空閑塊的開(kāi)始幾個(gè)單元存放本空閑塊的大小及下個(gè)空閑塊的開(kāi)始地址。空閑內(nèi)存塊的查詢(xún)工作量較大,但不占用額外的內(nèi)存塊。且鏈表無(wú)大小限制,容易添加或刪除節(jié)點(diǎn)。

vxworks中采用的是自由鏈管理內(nèi)存空閑塊。

3種內(nèi)存分配算法:最先適應(yīng)法、最佳適應(yīng)法、最壞適應(yīng)法。

最先適應(yīng)法:可用表/自由鏈按起始地址遞增順序排列。一旦找到 ≥ 需求長(zhǎng)度的內(nèi)存塊,結(jié)束搜索。從找到的內(nèi)存塊中劃分出所需大小,并將余下部分進(jìn)行合并(如相鄰內(nèi)存塊是空閑的,合并并修改參數(shù))

最佳適應(yīng)法:按內(nèi)存塊空閑從小到大的次序排列,找到第一個(gè)滿(mǎn)足的即停止。

最壞適應(yīng)法:按大至小排序。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容