[發(fā)明專利]內(nèi)存的分配、清理和釋放方法及內(nèi)存管理的裝置無效
| 申請?zhí)枺?/td> | 200810048215.5 | 申請日: | 2008-06-27 |
| 公開(公告)號: | CN101320351A | 公開(公告)日: | 2008-12-10 |
| 發(fā)明(設(shè)計)人: | 余鑫;李江雄 | 申請(專利權(quán))人: | 華中科技大學(xué) |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02 |
| 代理公司: | 北京市德權(quán)律師事務(wù)所 | 代理人: | 王建國 |
| 地址: | 430074湖北*** | 國省代碼: | 湖北;42 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 內(nèi)存 分配 清理 釋放 方法 管理 裝置 | ||
1、一種內(nèi)存的分配方法,在接收到內(nèi)存請求時,其特征在于,包括以下步驟:
從大小最合適的空閑隊列為所述內(nèi)存請求分配內(nèi)存塊,對內(nèi)存分配時產(chǎn)生的內(nèi)部碎片進行回收,將所述內(nèi)部碎片分別插到不同的空閑隊列;當(dāng)最大的空閑內(nèi)存塊也無法滿足所述內(nèi)存請求時,進行內(nèi)存塊合并操作。
2、根據(jù)權(quán)利要求1所述的方法,其特征在于,所述從大小最合適的空閑隊列分配內(nèi)存塊具體包括:
根據(jù)請求的內(nèi)存塊的大小,找到內(nèi)存塊大小為2i個頁面大小的空閑隊列,i值滿足2i-1<m<2i,m為請求的內(nèi)存塊的大小;
判斷大小為2i個頁面大小的空閑隊列中是否有空閑內(nèi)存塊,有則執(zhí)行下一步;否則將空閑內(nèi)存塊大小的指數(shù)標(biāo)志i遞增,直到獲得空閑內(nèi)存塊;
分配大小為2i個頁面大小的空閑內(nèi)存塊,從該內(nèi)存塊的尾部起分配所述請求的內(nèi)存頁。
3、根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述對內(nèi)部碎片進行回收具體包括:
從分配后的內(nèi)存塊首部起向后找到盡可能大的2的冪次方個頁面,掛入相應(yīng)的空閑隊列,然后依次用同樣的方法把剩下的空閑頁面都分別掛入相應(yīng)的隊列中。
4、根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述空閑隊列為伙伴忙空閑隊列,當(dāng)合適的伙伴忙空閑隊列均為空時,再分配伙伴閑空閑隊列。
5、根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述內(nèi)存塊合并操作具體包括:
從i=0開始,遍歷2i個頁面大小的伙伴閑空閑隊列;
遍歷2i個頁面大小的伙伴閑空閑隊列中每個節(jié)點,從節(jié)點中獲取內(nèi)存塊,將該內(nèi)存塊和其伙伴塊合并,根據(jù)合并后的2i+1個頁面大小的內(nèi)存塊其伙伴塊的分配情況,將其添加到2i+1個頁面大小的伙伴忙或伙伴閑空閑隊列中,并將該內(nèi)存塊和其伙伴塊從2i隊列中刪除。
6、一種清理內(nèi)存的方法,在接收到內(nèi)存請求時,其特征在于,如果空閑內(nèi)存中最大的內(nèi)存塊也無法滿足所述內(nèi)存請求時,進行內(nèi)存塊合并操作。
7、根據(jù)權(quán)利要求6所述的方法,其特征在于,所述內(nèi)存塊合并操作具體包括:
從i=0開始,遍歷2i個頁面大小的伙伴閑空閑隊列;
遍歷2i個頁面大小的伙伴閑空閑隊列中每個節(jié)點,從節(jié)點中獲取內(nèi)存塊,將該內(nèi)存塊和其伙伴塊合并,根據(jù)合并后的2i+1個頁面大小的內(nèi)存塊其伙伴塊的分配情況,將其添加到2i+1個頁面大小的伙伴忙或伙伴閑空閑隊列中,并將該內(nèi)存塊和其伙伴塊從2i隊列中刪除。
8、根據(jù)權(quán)利要求7所述的方法,其特征在于,該方法進一步包括:當(dāng)i等于MAX-1時,將該空閑隊列中的所有內(nèi)存塊及其伙伴添加到2i+1個頁面大小的伙伴忙空閑隊列中,所述MAX為系統(tǒng)默認的最大內(nèi)存塊的大小。
9、一種釋放內(nèi)存的方法,當(dāng)內(nèi)存塊被釋放時,其特征在于,將釋放的內(nèi)存塊插入到相應(yīng)的伙伴忙空閑隊列,或?qū)⒒锇槊臻e隊列中的內(nèi)存塊轉(zhuǎn)移到伙伴閑空閑隊列,并不立即對內(nèi)存塊進行合并操作,僅僅當(dāng)最大的空閑內(nèi)存塊也無法滿足內(nèi)存請求時,才進行內(nèi)存塊合并操作。
10、根據(jù)權(quán)利要求9所述的方法,其特征在于,所述將釋放的內(nèi)存塊插入到相應(yīng)的伙伴忙空閑隊列具體包括:
根據(jù)釋放的內(nèi)存塊大小的二進制值,將所述釋放的內(nèi)存塊按照2的冪次方分成若干子內(nèi)存塊,對于每個子內(nèi)存塊,如果其伙伴塊忙,將釋放的內(nèi)存塊添加到相應(yīng)的2的冪次方個頁面大小的伙伴忙空閑隊列中。
11、根據(jù)權(quán)利要求9或10所述的方法,其特征在于,所述將伙伴忙空閑隊列中的內(nèi)存塊轉(zhuǎn)移到伙伴閑空閑隊列具體包括:
根據(jù)釋放的內(nèi)存塊大小的二進制值,將所述釋放的內(nèi)存塊按照2的冪次方分成若干子內(nèi)存塊,對于每個子內(nèi)存塊,如果其伙伴塊閑,將所述伙伴塊從伙伴忙空閑隊列中移除,并將此兩個伙伴塊添加到相應(yīng)的2的冪次方個頁面大小的伙伴閑空閑隊列中。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華中科技大學(xué),未經(jīng)華中科技大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200810048215.5/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





