malloc分配内存的原理?
生活随笔
收集整理的這篇文章主要介紹了
malloc分配内存的原理?
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
malloc分配內(nèi)存的原理
- malloc的原理
- 1、放置已分配的塊
- 2、分割空閑塊
- 3、合并空閑塊
malloc的原理
步驟分為放置、分割和合并
在堆中,堆塊由一個(gè)字的頭部、有效載荷、填充以及一個(gè)字的腳部組成,空閑塊是通過頭部中的大小字段隱含地連接在一起形成一個(gè)隱式空閑鏈表,分配器可以通過遍歷堆中所有的塊,從而間接遍歷整個(gè)空閑塊的集合。
1、放置已分配的塊
當(dāng)一個(gè)應(yīng)用請求一個(gè)k字節(jié)的塊時(shí),分配器搜索空閑鏈表,查找一個(gè)足夠大可以放置所請求塊的空閑塊,分配器執(zhí)行這種搜索的方式是放置策略確定的。常見的策略是首次適配、下一次適配和最佳適配。
首次適配:從頭開始搜索空閑鏈表,選擇第一個(gè)適合的空閑塊。
下一次適配:從上一次查詢結(jié)束的地方開始搜索空閑鏈表,選擇第一個(gè)適合的空閑塊。
最佳適配:檢查每個(gè)空閑塊,選擇適合所需請求大小的最小空閑塊。
2、分割空閑塊
一旦分配器找到一個(gè)匹配的空閑塊,它就必須做另一個(gè)策略決定,那就是分配這個(gè)空塊中多少空間。一個(gè)選擇是用整個(gè)空閑塊,另一個(gè)選擇是將這個(gè)空閑塊分割成兩部分。
如果分配器不能為請求塊找到合適的空閑塊將發(fā)生什么呢?一個(gè)選擇是通過合并那些在內(nèi)存中物理上相鄰的空閑塊來創(chuàng)建一些更大的空閑塊。然而,如果這樣還是不能生成一個(gè)足夠大的塊,
總結(jié)
以上是生活随笔為你收集整理的malloc分配内存的原理?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么移动电脑的任务栏图标不见了 电脑任务
- 下一篇: 怎么用大白菜重装系统win8 大白菜教你