[發明專利]一種中間件內存管理方案有效
| 申請號: | 201010527977.0 | 申請日: | 2010-11-02 |
| 公開(公告)號: | CN102455976A | 公開(公告)日: | 2012-05-16 |
| 發明(設計)人: | 姜宇;韋偉;萬英杰;趙新陽;曹杰 | 申請(專利權)人: | 上海寶信軟件股份有限公司 |
| 主分類號: | G06F12/06 | 分類號: | G06F12/06 |
| 代理公司: | 上海伯瑞杰知識產權代理有限公司 31227 | 代理人: | 季申清 |
| 地址: | 201203 上海*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 中間件 內存 管理 方案 | ||
1.一種中間件內存管理的方法,其特征在于包括以下步驟:
1)中間件應用系統啟動,根據配獲取一塊內存區域,并初始化所述內存區域;初始化過程包括首先所述內存區域分為結構化區和擴展區,再結構化區分為多個固定容量大小的存儲單元,并設有結構化區總體頭部信息,保存該區的存儲單元信息,而在擴展區設有擴展區總體頭部信息,在所述擴展區總體頭部信息中包括空閑單元鏈表和已用單元鏈表;
2)運行時,當有模塊根據需要在所述內存區域內申請一定大小的內存時,需要進行內存分配,內存分配過程包括:
判斷的步驟,即首先判斷所申請大小是否超過結構化區存儲單元最大單元臨界值,
分配的步驟,即判斷后如大小沒有超過,則在結構化區中,按照申請內存的大小查找空閑的存儲單元,如找到則分配成功,如沒有找到或所申請大小超過結構化區存儲單元最大單元臨界值,則在擴展區中查找,從空閑單元鏈表中找到一個大小足夠的單元,并找到的單元拆分成兩個,一個按照申請的大小響應這次申請,放入已用單元鏈表,另一個保留在空閑單元鏈表,而如果找到的這個單元大小等于申請內存的大小,則不用拆分,接放入已用單元鏈表,如從空閑單元鏈表中沒有找到大小足夠的單元,則分配失敗,
響應的步驟,即如果分配成功,則返回可用的存儲單元的地址,如分配失敗,則返回空值;
3)步驟2中所述可用的存儲單元使用完畢后,需要釋放,內存釋放的過程包括:
判斷的步驟,根據傳入的地址判斷屬于結構化區還是擴展區,
釋放的步驟,如屬于結構化區,則更新結構化區的頭部信息,該存儲單元為空閑狀態,如屬于擴展區,則該存儲單元移出已用單元鏈表,并查看該存儲單元是否有相鄰的空閑單元,如有相鄰的空閑單元,則該存儲單元和相鄰的空閑單元合并為一個單元,并修改空閑單元鏈表,更新擴展區的頭部信息。
4)當應用系統停止,清除所述內存區域的內容。
2.如權利要求1所述的中間件內存管理的方法,其特征在于:所述結構化區的多個固定容量大小的存儲單元分別包括多種不同的容量大小,每種容量大小的存儲單元有多個。
3.如權利要求2所述的中間件內存管理的方法,其特征在于:所述多種容量大小的存儲單元中,相同容量大小的多個存儲單元位于同一存儲區域,并設有區域頭部信息。
4.如權利要求2或3所述的中間件內存管理的方法,其特征在于:所述多種容量大小的存儲單元的容量大小為按照倍數遞增。
5.如權利要求3所述的中間件內存管理的方法,其特征在于:所述區域頭部信息保存有該區域的存儲單元信息和鎖信息。
6.如權利要求3所述的中間件內存管理的方法,其特征在于:所述區域頭部信息保存有區域內各單元的使用者ID信息和使用時間信息。
7.如權利要求1所述的中間件內存管理的方法,其特征在于:所述擴展區的存儲單元生成時設有單元頭部信息,所述單元頭部信息或包括該單元的使用者ID信息和使用時間信息。
8.如權利要求6或7所述的中間件內存管理的方法,其特征在于:所述中間件包括管理模塊,所述管理模塊定時檢查存儲單元的使用者ID信息和使用時間信息,判斷該單元是否超出使用期限,長時間不釋放并且使用者模塊已經異常退出的存儲單元進行釋放。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海寶信軟件股份有限公司,未經上海寶信軟件股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010527977.0/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:機床的監視方法、監視裝置和機床
- 下一篇:注射裝置





