[發明專利]內存管理方法無效
| 申請號: | 200910079057.4 | 申請日: | 2009-03-05 |
| 公開(公告)號: | CN101499034A | 公開(公告)日: | 2009-08-05 |
| 發明(設計)人: | 王世初;陳紹新 | 申請(專利權)人: | 北京中星微電子有限公司 |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02 |
| 代理公司: | 上海和躍知識產權代理事務所 | 代理人: | 李崧巖 |
| 地址: | 100083北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存 管理 方法 | ||
技術領域
本發明涉及一種內存管理方法,尤其是一種可用于嵌入式系統使用的內存管理方法。
背景技術
隨著計算機微處理器的技術發展以及計算機網絡技術的發展,使得嵌入式系統的功能越來越強大同時應用范圍越來越廣泛。而基于網絡的視頻監控系統為了提高其自身的系統性能,便使用了嵌入式系統于其中。
進一步的,嵌入式應用系統為了更好的運行其設定功能,其對內存管理就有以下要求。
實時性。從實時性的角度出發,要求內存分配過程要盡可能地快。因此,在嵌入式系統中,不會采用通用操作系統的一些復雜而完善的內存分配策略,一般沒有段頁式的虛存管理機制。而是采用簡單、快速的內存分配方案,其分配方案也因程序對實時性的要求而異。
可靠性。嵌入式系統應用的環境千變萬化,在有些特定情況下,對系統的可靠性要求極高,內存分配的請求必須得到滿足,如果分配失敗則可能會帶來災難性的后果。
高效性。內存分配要盡可能地減少浪費,不能為了保證滿足所有的內存分配請求而將內存配置的很大。這是因為,一方面,嵌入式系統對成本的要求使得內存只是它的一種很有限的資源;另一方面,即使不考慮成本的因素,系統硬件環境有限的空間和有限的板面積決定了可配置的內存容量是很有限的。
因此,業界亟待提出一種新的用于嵌入式系統的內存管理方法,使得其可有效的實現上述要求。
發明內容
有鑒于此,本發明的一個目的在于提供一種內存管理方法,其可被用于嵌入式系統使用。該方法可以在嵌入式系統的程序啟動時分配并初始化程序要用到的內存空間,通過相應的算法可以高效地完成內存的分配、回收工作。
為了達到上述目的,本發明的一個實施方式提供了一種內存管理方法,其中涉及的內存區域被劃分為若干個內存分區,每個內存分區被劃分為若干個單元內存塊,每個內存分區內的單元內存塊的容量相同,而各內存分區中的單元內存塊的容量不同。該方法包括有以下步驟。接收包括有內存需求容量的內存分配請求。找到其內的單元內存塊的容量大于該內存需求容量且最小的內存分區。在該找到的內存分區內找到使用狀態為未使用的單元內存塊,并將該找到的未使用的單元內存塊分配給此次內存分配請求,將被分配出的單元內存塊的使用狀態修改為已使用。接收用于釋放指定單元內存塊的內存釋放請求。找到該需要釋放指定單元內存塊所在的內存分區。在該找到的內存分區內找到該需要釋放的指定單元內存塊,釋放該指定單元內存塊,將被釋放的單元內存塊的使用狀態修改為未使用。
進一步的,在不同實施方式中,各內存分區都有各自的內存管理參數,其包括可用內存塊數量索引、未使用內存塊索引、釋放內存塊索引以及釋放內存塊存儲棧。其中可用內存塊數量索引用于表明本內存分區內使用狀態為未使用的可用于分配的單元內存塊數量。未使用內存塊索引則是用于存儲本內存分區內未使用的單元內存塊編號。釋放內存塊索引以及釋放內存塊存儲棧則都是用于存儲本內存分區內釋放的單元內存塊編號,其中釋放內存塊存儲棧則是在釋放內存塊索引存儲了一個釋放單元內存塊之后,再進行其它的釋放單元內存塊編號的存儲。
進一步的,在不同實施方式中,在步驟B后,根據找到的內存分區的可用內存塊數量索引判斷找到的內存分區內是否還有可用單元內存塊,如果有,則進入步驟C;如果否,則找到相鄰的下一個內存分區,并再次根據找到的內存分區的可用內存塊數量索引判斷該內存分區內是否有可用單元內存塊,如果有,則進入步驟C;否則繼續重復上述步驟直到找到具有可用單元內存塊的內存分區并進入步驟C;
步驟C包括:查看找到的內存分區的釋放內存塊索引是否為空,如果不為空,則將其內存儲的釋放單元內存塊編號對應的單元內存塊分配給該內存分配請求,將分配出的單元內存塊的狀態修改為使用,查看釋放內存塊存儲棧內是否存儲有釋放單元內存塊編號,如果有,則將釋放內存塊存儲棧中存儲的一個釋放單元內存塊的編號賦值給釋放內存塊索引;如果沒有,則將釋放內存塊索引的值修改為空值,并將分區內可用內存塊數量索引的數值減1。如果釋放內存塊索引為空值,則將未使用內存塊索引內存儲的從未使用的單元內存塊的編號所對應的單元內存塊分配給內存分配請求,然后將分區內下一個從未使用的單元內存塊編號賦值給未使用內存塊索引,將被分配出的單元內存塊的使用狀態修改為已使用。最后將可用內存塊數量索引的數值減1。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京中星微電子有限公司,未經北京中星微電子有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910079057.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:用于光學用途的撓性材料
- 下一篇:基于共同元素的用于過濾和組織條目的系統





