[發(fā)明專利]一種內(nèi)存管理方法和裝置在審
| 申請?zhí)枺?/td> | 201410348883.5 | 申請日: | 2014-07-21 |
| 公開(公告)號: | CN105302739A | 公開(公告)日: | 2016-02-03 |
| 發(fā)明(設(shè)計)人: | 張曉艷;沈寒 | 申請(專利權(quán))人: | 深圳市中興微電子技術(shù)有限公司 |
| 主分類號: | G06F12/06 | 分類號: | G06F12/06 |
| 代理公司: | 北京派特恩知識產(chǎn)權(quán)代理有限公司 11270 | 代理人: | 張穎玲;蔣雅潔 |
| 地址: | 518085 廣*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 內(nèi)存 管理 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及內(nèi)存管理技術(shù)領(lǐng)域,尤其涉及一種終端上高效內(nèi)存管理方法和裝置。
背景技術(shù)
目前,內(nèi)存管理在軟件開發(fā)和應用中占有重要的地位,并且對軟件的性能有重要的影響。隨著軟件行業(yè)的迅猛發(fā)展及各類終端的涌現(xiàn),用戶對終端的需求越來越多,要求也越來越高。雖然隨著軟件技術(shù)的發(fā)展,各種終端的內(nèi)存容量越來越大,但是目前的內(nèi)存管理技術(shù)仍然不能完全滿足軟件發(fā)展的需要,因此,內(nèi)存仍然是一種寶貴且緊俏的資源,如何對內(nèi)存實施有效的管理也一直是研究的熱點。
由于操作系統(tǒng)要考慮底層硬件管理、內(nèi)存限制、內(nèi)存碎片、多軟件同時運行、多線程環(huán)境等情況,導致現(xiàn)有的內(nèi)存的分配和回收操作都非常復雜,內(nèi)存管理操作所消耗的時間成本成為軟件開發(fā)和內(nèi)存管理技術(shù)的瓶頸。目前,各類終端上現(xiàn)有的內(nèi)存管理方法基本上都是通過動態(tài)分配內(nèi)存實現(xiàn)的,根據(jù)系統(tǒng)需要的內(nèi)存大小動態(tài)申請內(nèi)存使用。由于外部系統(tǒng)需要的內(nèi)存大小不一致,在動態(tài)申請使用內(nèi)存時很容易產(chǎn)生內(nèi)存碎片,無形中降低了內(nèi)存使用效率。
另外,一些傳統(tǒng)的方法在分配和回收時都需要進行大量的內(nèi)存塊結(jié)構(gòu)查詢,才能完成分配和回收操作,這就導致了內(nèi)存管理的效率低下。在高性能的軟件開發(fā)及應用領(lǐng)域,尤其是在迅猛發(fā)展的終端上,內(nèi)存管理是關(guān)鍵的基礎(chǔ)功能,內(nèi)存管理的性能直接影響了整個軟件系統(tǒng)的運行。
可見,現(xiàn)有內(nèi)存管理方法中,內(nèi)存管理效率低下以及內(nèi)存分配和回收的過程中存在大量的內(nèi)存碎片等問題是目前亟待解決的問題。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實施例期望提供一種內(nèi)存管理方法和裝置,能夠在一定程度上提高內(nèi)存分配和回收的效率,減少內(nèi)存碎片的產(chǎn)生,提高內(nèi)存管理的效率,進而提升終端上的軟件運行速度及數(shù)據(jù)傳輸速率。
為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
本發(fā)明實施例提供了一種內(nèi)存管理方法,所述方法包括:
分配具有固定起始地址和結(jié)束地址的物理內(nèi)存;
將所述物理內(nèi)存劃分為多個固定大小的緩沖區(qū)buffer,并將所述buffer串聯(lián)成單鏈表結(jié)構(gòu);
通過對單鏈表節(jié)點的刪除操作,對所述buffer進行分配;并通過對單鏈表節(jié)點的插入操作,對所述buffer進行回收。
上述方案中,所述通過對單鏈表節(jié)點的刪除操作,對所述buffer進行分配包括:將所述單鏈表的頭指針指向的buffer分配給申請內(nèi)存的線程或功能模塊,并將單鏈表的頭指針指向下一個buffer,同時buffer個數(shù)減1。
上述方案中,所述通過對單鏈表節(jié)點的插入操作,對所述buffer進行回收包括:將所述線程或功能模塊釋放的buffer的首地址插入到所述單鏈表的尾部,并將單鏈表的尾指針后指向所述插入的buffer,同時將buffer個數(shù)加1。
上述方案中,所述方法還包括:在單鏈表中每個buffer節(jié)點的數(shù)據(jù)部分設(shè)置用于標記當前buffer是否空閑的空閑標記。
上述方案中,所述方法還包括:在單鏈表中每個buffer節(jié)點的數(shù)據(jù)部分設(shè)置用于判斷當前buffer是否發(fā)生越界訪問的越界訪問標記。
本發(fā)明實施例還提供了一種內(nèi)存管理裝置,所述裝置包括:內(nèi)存分配模塊、buffer處理模塊、分配回收模塊,其中,
所述內(nèi)存分配模塊,用于分配具有固定的起始地址和結(jié)束地址的物理內(nèi)存;
所述buffer處理模塊,用于將所述物理內(nèi)存劃分為多個固定大小的緩沖區(qū)buffer,并將所述buffer串聯(lián)成單鏈表結(jié)構(gòu);
所述分配回收模塊,用于通過對單鏈表節(jié)點的刪除操作,對所述buffer進行分配;并通過對單鏈表節(jié)點的插入操作,對所述buffer進行回收。
上述方案中,所述分配回收模塊通過對單鏈表節(jié)點的刪除操作,對所述buffer進行分配包括:所述分配回收模塊將所述單鏈表的頭指針指向的buffer分配給申請內(nèi)存的線程或功能模塊,并將單鏈表的頭指針指向下一個buffer,同時buffer個數(shù)減1;
上述方案中,所述分配回收模所述通過對單鏈表節(jié)點的插入操作,對所述buffer進行回收包括:所述分配回收模塊將所述線程或功能模塊釋放的buffer的首地址插入到所述單鏈表的尾部,并將單鏈表的尾指針后指向所述插入的buffer,同時將buffer個數(shù)加1。
上述方案中,所述buffer處理模塊還用于:在單鏈表中每個buffer節(jié)點的數(shù)據(jù)部分設(shè)置用于標記當前buffer是否空閑的空閑標記。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于深圳市中興微電子技術(shù)有限公司,未經(jīng)深圳市中興微電子技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410348883.5/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





