[發(fā)明專利]一種提高Linux空閑內存塊利用率的方法在審
| 申請?zhí)枺?/td> | 201310421985.0 | 申請日: | 2013-09-17 |
| 公開(公告)號: | CN103500145A | 公開(公告)日: | 2014-01-08 |
| 發(fā)明(設計)人: | 張樹東;孟兆飛;周麗娟;黃向陽;任仲山 | 申請(專利權)人: | 首都師范大學 |
| 主分類號: | G06F12/06 | 分類號: | G06F12/06 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100048 北京市西三*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 提高 linux 空閑 內存 利用率 方法 | ||
1.一種提高Linux空閑內存塊利用率的方法,其特征在于:Linux伙伴系統(tǒng)中,放寬對伙伴關系的限制,將大小相等,地址連續(xù)但不是從一個大塊拆分而來的兩個空閑塊合并成放寬伙伴關系塊;同時在伙伴系統(tǒng)結構體free_area_struct中增加一個二維數(shù)組(列維為2)與一個整形變量,二維數(shù)組用來記錄下一階放寬伙伴關系兩個空閑塊的序號,整形變量用來記錄下一階放寬伙伴關系塊的數(shù)目,如果系統(tǒng)無法滿足請求者內存分配的需要,系統(tǒng)會查找將放寬伙伴關系的空閑塊,分配給請求者,有效提高了內存利用率;放寬伙伴關系的伙伴塊管理是采用數(shù)組與位圖結合方法,位圖仍采用原位圖,由于放寬伙伴關系內存塊在位圖中占有兩項,所以放寬伙伴關系的內存塊分配或釋放時,需要對位圖操作兩次。
2.根據權利要求1所述的方法,其特征在于:在主要結構體free_area_struct中增加的是一個二維數(shù)組和一個整形變量,并且數(shù)組的列的維數(shù)是2,管理開銷小。
3.根據權利要求2所述的方法,其特征在于:在對算法的改進過程中,沒有改變原伙伴算法的性能,只是增加了一個二維數(shù)組和一個變量的空間開銷。此外,由于伙伴算法使用的是位圖加鏈表的方法管理內存,改進后的算法對放寬伙伴關系塊是使用原來的位圖和新添加的數(shù)組的方法進行管理,不需要增加新的位圖。
4.根據權利要求3所述的方法,其特征在于:伙伴塊的序號二進制形式只有一位不同,而放寬的伙伴關系兩個內存塊的序號二進制形式是有兩位不同的,使用原位圖,在查找空閑塊的放寬伙伴關系塊,我們根據空閑塊序號的第order+1位的值來判斷,若order+1位為O,空閑塊序號減去2order,就得到放寬伙伴關系塊的序號,否則,加上2order。
5.根據權利要求4所述的方法,其特征在于:在對放寬伙伴關系塊管理中,在找到滿足放寬伙伴關系的空閑塊時,只是將這兩個空閑塊的序號記錄在上一階的新增加的數(shù)組中,但是并不將這兩個空閑塊從原來的鏈表中刪除,只是在分配的時候才從鏈表中刪除進行分配,這就最大限度的保證了原伙伴算法的穩(wěn)定性。
6.根據權利要求5所述的方法,其特征在于:內存分配的時候,先通過原伙伴算法分配內存,如果不能滿足分配請求,再使用我們添加的放寬伙伴關系塊進行分配,可以有效的滿足內存緊張時內存分配的請求。
7.根據權利要求6所述的方法,其特征在于:內存分配的時候,在分配空閑塊時,要進行判斷驗證,都要在上一階查找所分配的空閑塊的序號是否在新增加的二維數(shù)組中,如果在,將這個空閑塊的序號以及放寬關系伙伴塊的序號刪除。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于首都師范大學,未經首都師范大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310421985.0/1.html,轉載請聲明來源鉆瓜專利網。





