[發明專利]一種內存管理的方法及裝置有效
| 申請號: | 201310281094.X | 申請日: | 2013-07-05 |
| 公開(公告)號: | CN103389945B | 公開(公告)日: | 2017-04-12 |
| 發明(設計)人: | 胡國華 | 申請(專利權)人: | 杭州華三通信技術有限公司 |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02 |
| 代理公司: | 北京博思佳知識產權代理有限公司11415 | 代理人: | 林祥 |
| 地址: | 310053 浙江省杭州市高新技術產業*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 內存 管理 方法 裝置 | ||
技術領域
本發明涉及通信技術領域,尤其涉及一種內存管理的方法及裝置。
背景技術
內存是目前通信設備中標準硬件的配置之一,并且隨著業務的發展,內存的需求越來越多,內存容量也越來越大,隨之而來的內存管理策略也越來越復雜。所謂的內存管理,就是對一塊可供各業務模塊共享使用的內存進行切割、分片管理,確保每個業務能及時獲取到相應的內存空間,同時又不影響其他業務的運行。
目前,常用的內存管理方法主要將內存分為2個區域:slice內存區及raw內存區。其中,Slice內存區將內存分成大量的小塊內存,例如:16字節、32字節、64字節、128字節、256字節、512字節、1K字節、2K字節等。這個內存區主要用于業務模塊申請的內存不大于相應slice內存塊,比如某模塊需要申請一個250字節的內存塊,那么就可以直接申請一個256字節的slice內存塊。Raw內存區用于業務模塊申請的內存大于slice內存塊的需求,尤其是大塊內存。比如某模塊要申請一個4M的內存,那么就可以考慮直接從raw內存中申請。
然而,現有內存管理方案最大的問題就是比較容易產生內存碎片,這會導致內存空間不必要的浪費。例如:
一、raw內存區沒有了空間,但是slice內存區還有較多剩余內存。比如:還有10片1M的slice內存塊空閑,但是raw內存已全部被占用,此時有業務模塊需要申請1個8M的內存,則無法申請成功。
二、raw內存區本身存在較小碎片。比如:raw內存目前有2個不連續的4M內存塊,此時如果有業務模塊需要8M內存也是無法申請到的。
發明內容
有鑒于此,本發明提供一種內存管理的方法及裝置,以解決現有技術方案中存在的問題與不足。
本發明是通過如下技術方案實現的:
一種內存管理裝置,用于實現對內存碎片的有效管理,包括連續內存管理單元、空閑內存管理單元和空閑內存塊關聯單元,其中,
連續內存管理單元:用于完成對連續內存空間的管理;
空閑內存管理單元:用于完成對地址非連續的空閑內存塊的管理;
內存塊關聯單元,用于當所述各空閑內存塊和連續內存空間均小于業務模塊請求分配的內存空間時,將所述非連續的空閑內存塊通過尾指針關聯起來形成大塊滿足業務模塊內存要求的內存空間。
進一步地,所述內存塊關聯單元在將空閑內存塊關聯起來之前,還需判斷空閑內存管理單元所管理的所有空閑內存塊的內存空間之和,能否滿足當前業務模塊申請的內存空間要求。
進一步地,如果空閑內存塊地址指針與另一空閑內存塊彼此連續,則所述空閑內存管理單元在該空閑內存塊釋放內存空間時需要將該空閑內存塊與地址連續的內存塊合并形成一個大的空閑內存塊。
本發明同時提供一種內存管理方法,用于實現對內存碎片的有效管理,其中當業務模塊請求分配內存空間時,所述方法包括:
查詢所記錄的空閑內存塊,確定其中是否有滿足內存分配要求的空閑內存塊,如果否,則進行下一步;
查詢所記錄的連續內存空間,確定連續內存空間是否滿足業務模塊請求分配的內存要求,如果否,則進行下一步;
將所述非連續的空閑內存塊通過尾指針關聯起來形成大塊滿足業務模塊內存要求的內存空間。
進一步地,在將空閑內存塊關聯起來之前,還需判斷所有空閑內存塊的空間之和,能否滿足當前業務模塊請求分配的內存空間要求。
進一步地,如果空閑內存塊地址指針與另一空閑內存塊彼此連續,則在該空閑內存塊釋放其內存空間時,將該空閑內存塊與地址連續的內存塊合并形成一個大的空閑內存塊。
與現有的技術相比,本發明在空閑內存管理單元所管理的各空閑內存塊空間以及連續內存管理單元管理的連續內存空間均小于業務模塊請求分配的內存空間時,將空閑內存管理單元所管理的各空閑內存塊借由尾指針關聯起來形成大塊空閑的內存空間,以供分配給業務模塊使用。通過本發明,可以實現對現有內存碎片的充分利用,不會因內存碎片導致設備無內存可用的情況出現。
附圖說明
圖1是典型的內存塊結構示意圖;
圖2是本發明內存管理的裝置結構示意圖;
圖3是地址彼此不相連的空閑內存塊關聯后的結構示意圖;
圖4是存在部分地址相連的空閑內存塊關聯后的結構示意圖;
圖5是本發明為業務模塊分配內存的流程示意圖;
圖6是應用本發明將空閑內存塊通過尾指針關聯起來后為業務模塊分配的內存塊結構示意圖。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州華三通信技術有限公司,未經杭州華三通信技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310281094.X/2.html,轉載請聲明來源鉆瓜專利網。





