[發明專利]一種堆數據處理方法及裝置有效
| 申請號: | 201110418751.1 | 申請日: | 2011-12-14 |
| 公開(公告)號: | CN102521143A | 公開(公告)日: | 2012-06-27 |
| 發明(設計)人: | 蒙磊 | 申請(專利權)人: | 瑞斯康達科技發展股份有限公司 |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02;G06F11/00 |
| 代理公司: | 北京同達信恒知識產權代理有限公司 11291 | 代理人: | 孔凡紅 |
| 地址: | 100085 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據處理 方法 裝置 | ||
1.一種堆數據處理方法,其特征在于,包括:
確定用戶需要分配內存寫入數據時,從堆區中選擇空閑堆進行分配,并動態更新設定區域中與所分配的堆對應的堆元數據;或者,
確定用戶請求釋放已分配堆時,釋放用戶請求的已分配堆,并動態更新設定區域中與所釋放的堆對應的堆元數據;
其中所有堆的堆元數據集中存儲在所有堆所占區域外的內存中的設定區域中。
2.如權利要求1所述的方法,其特征在于,堆元數據包含了對應堆的堆地址信息和堆使用信息;
則確定用戶需要分配內存寫入數據時,從堆區中選擇空閑堆進行分配,并動態更新設定區域中與所分配的堆對應的堆元數據,具體包括:
確定請求分配的內存的長度L;
在所述設定區域中查找第一匹配堆元數據,所述第一匹配堆元數據為堆使用信息為空閑、堆地址信息確定的堆長度與長度L相匹配的堆元數據;
將所述第一匹配堆元數據對應的堆分配給用戶,同時更新所述第一匹配堆元數據中的堆使用信息為已分配。
3.如權利要求2所述的方法,其特征在于,確定不存在第一匹配堆元數據時,進一步包括:
在當前所有堆所占區域和設定區域以外的內存空間中,劃分一個新空閑堆進行分配,所述新空閑堆的堆長度與長度L相匹配;同時,
在所述設定區域中創建對應所述新空閑堆的堆元數據。
4.如權利要求2所述的方法,其特征在于,確定第一匹配堆元數據至少有兩個時,從所述至少兩個第一匹配堆元數據中,隨機選取一個第一匹配堆元數據,并將選取的第一匹配堆元數據對應的堆進行分配。
5.如權利要求2所述的方法,其特征在于,使用不同的鏈表鏈接堆長度不同的空閑堆的堆元數據;
則查找第一匹配堆元數據,具體包括:
查找第一匹配鏈表,所述第一匹配鏈表鏈接的是堆長度與長度L相匹配的空閑堆的堆元數據;
確定所述第一匹配鏈表所鏈接的堆元數據為第一匹配堆元數據。
6.如權利要求1所述的方法,其特征在于,堆元數據包含了對應堆的堆地址信息和堆使用信息;
則確定用戶請求釋放已分配堆時,釋放用戶請求的已分配堆,并動態更新設定區域中與所釋放的堆對應的堆元數據,具體包括:
根據請求釋放的已分配堆的堆地址信息,在所述設定區域中查找第二匹配堆元數據,所述第二匹配堆元數據為堆使用信息為已分配、堆地址信息與請求釋放已分配堆的堆地址信息一致的堆元數據;
釋放所述第二匹配堆元數據對應的已分配堆,同時更新所述第二匹配堆元數據中的堆使用信息為空閑。
7.如權利要求6所述的方法,其特征在于,使用不同的鏈表對應鏈接堆長度不同的空閑堆的堆元數據,則更新所述第二匹配堆元數據中的堆使用信息為空閑之后,還包括:
根據所述第二匹配堆元數據中堆地址信息確定的堆長度,將所述第二匹配堆元數據鏈接至相應的鏈表。
8.如權利要求6所述的方法,其特征在于,還包括:
確定堆區中所述請求釋放的已分配堆的相鄰堆為空閑堆時,將所述請求釋放的已分配堆與所述相鄰堆合并成一個空閑堆;同時,執行以下步驟:
將所述設定區域中所述相鄰堆的堆元數據刪除,并將所述第二匹配堆元數據中的堆地址信息修改為合并后的空閑堆的堆地址信息;或者,
將所述設定區域中的所述第二匹配堆元數據刪除,并將所述相鄰堆的堆元數據中的堆地址信息修改為合并后的空閑堆的堆地址信息;或者,
將所述設定區域中的所述第二匹配堆元數據、以及所述相鄰堆的堆元數據都刪除,并在所述設定區域中創建合并后的空閑堆的堆元數據。
9.如權利要求8所述的方法,其特征在于,還包括:
在將所述第二匹配堆元數據中堆地址信息修改為合并后的空閑堆的堆地址信息后,根據合并后的空閑堆的堆地址信息確定的堆長度,將所述第二匹配堆元數據鏈接至相應的鏈表;
在將所述相鄰堆的堆元數據中堆地址信息修改為合并后的空閑堆的堆地址信息之后,根據合并后的空閑堆的堆地址信息確定的堆長度,將所述相鄰堆的堆元數據鏈接至相應的鏈表;
在所述設定區域中創建合并后的空閑堆的堆元數據之后,根據合并后的空閑堆的堆地址信息確定的合并空閑堆的堆長度,將合并后空閑堆的堆元數據鏈接至相應的鏈表。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于瑞斯康達科技發展股份有限公司,未經瑞斯康達科技發展股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110418751.1/1.html,轉載請聲明來源鉆瓜專利網。





