[發(fā)明專利]一種內(nèi)存管理方法及系統(tǒng)在審
| 申請?zhí)枺?/td> | 201810382186.X | 申請日: | 2018-04-14 |
| 公開(公告)號: | CN108647150A | 公開(公告)日: | 2018-10-12 |
| 發(fā)明(設(shè)計)人: | 張得佳 | 申請(專利權(quán))人: | 溫州職業(yè)技術(shù)學(xué)院 |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 325006 浙江省溫州市甌海*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 內(nèi)存塊 閑置 內(nèi)存 分配 內(nèi)存管理 字節(jié)內(nèi)存 算法 塊存儲 存儲 內(nèi)存管理系統(tǒng) 內(nèi)存利用率 高效利用 管理效率 設(shè)置標記 算法存儲 系統(tǒng)存儲 字節(jié)存儲 釋放 首址 | ||
本發(fā)明公開了一種內(nèi)存管理方法。涉及內(nèi)存管理領(lǐng)域。包括如下步驟:采用buddy算法對內(nèi)存塊存儲分配;內(nèi)存塊內(nèi)的字節(jié)內(nèi)存采用slub算法存儲分配;完全釋放內(nèi)存塊中的字節(jié)內(nèi)存后釋放內(nèi)存塊。還提供一種內(nèi)存管理系統(tǒng)。本發(fā)明通過采用buddy算法對內(nèi)存塊存儲分配以及采用slub算法對存儲塊內(nèi)的閑置字節(jié)存儲分配,避免了內(nèi)存塊內(nèi)的閑置字節(jié)內(nèi)存的浪費、提高了內(nèi)存利用率以及系統(tǒng)存儲效率;通過對每塊已分配的內(nèi)存塊設(shè)置閑置率閾值f并對內(nèi)存塊設(shè)置標記sign,提高了內(nèi)存塊內(nèi)閑置內(nèi)存的管理效率;通過將內(nèi)存塊中閑置內(nèi)存首址pointer與閑置內(nèi)存大小size作為數(shù)據(jù)對存儲到slub_free列表中,提高了內(nèi)存塊的閑置內(nèi)存高效利用與分配。
技術(shù)領(lǐng)域
本發(fā)明屬于內(nèi)存管理技術(shù)領(lǐng)域,特別是涉及一種內(nèi)存管理方法及系統(tǒng)。
背景技術(shù)
計算機中的數(shù)據(jù)存儲效率以及內(nèi)存空間的有效利用率對計算機系統(tǒng)運行效率至關(guān)重要。常用的針對內(nèi)存塊分配釋放的buddy算法對內(nèi)存的存儲管理能一定程度生提高內(nèi)存的利用率以及內(nèi)存的存儲效率。但是buddy算法同樣會存在較為嚴重的內(nèi)存浪費。在已經(jīng)分配的內(nèi)存塊中存在大量的字節(jié)內(nèi)存閑置,導(dǎo)致內(nèi)存浪費,且存儲效率不高。
本發(fā)明致力于發(fā)明一種內(nèi)存管理方法及系統(tǒng),用于解決現(xiàn)有單純采用buddy算法對內(nèi)存塊分配的內(nèi)存浪費且存儲效率有待提高的問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種內(nèi)存管理方法及系統(tǒng),通過采用buddy算法對內(nèi)存塊存儲分配以及采用slub算法對存儲塊內(nèi)的閑置字節(jié)存儲分配,實現(xiàn)了對內(nèi)存塊內(nèi)的閑置字節(jié)內(nèi)存的最大利用,解決了現(xiàn)有單純采用buddy算法對內(nèi)存塊分配的內(nèi)存浪費且存儲效率有待提高的問題。
為解決上述技術(shù)問題,本發(fā)明是通過以下技術(shù)方案實現(xiàn)的:
本發(fā)明為一種內(nèi)存管理方法,包括如下步驟:
S000:采用buddy算法對內(nèi)存塊存儲分配;
S001:內(nèi)存塊內(nèi)的字節(jié)內(nèi)存采用slub算法存儲分配;
S002:完全釋放內(nèi)存塊中的字節(jié)內(nèi)存后釋放內(nèi)存塊。
優(yōu)選地,S000中采用采用buddy算法對內(nèi)存塊存儲分配的具體步驟如下:
T000:計算內(nèi)存請求大小并計算需求內(nèi)存塊大小2n;
T001:判斷free_area[n]數(shù)組是否存在滿足需求內(nèi)存塊的充分內(nèi)存塊,若是,則執(zhí)行T002;若否,則執(zhí)行T005;
T002:判斷充分內(nèi)存塊是需求內(nèi)存塊的倍數(shù)m是否大于1;若是,則執(zhí)行T003;若否,則執(zhí)行T005;
T003:將充分內(nèi)存塊分成m個需求內(nèi)存塊并將以充分內(nèi)存塊為首址的需求內(nèi)存塊分配給內(nèi)存請求;
T004:將剩余m-1需求內(nèi)存塊首址存入對應(yīng)的free_area[t]列表中并執(zhí)行T006,其中,t<m+n-1;
T005:令n=n+1并執(zhí)行T001;
T006:判斷需求內(nèi)存塊閑置率是否超過閑置率閾值f;若是,則執(zhí)行T007,若否,則執(zhí)行T008;
T007:需求內(nèi)存塊標記sign為1;
T008:free_area[n]數(shù)組中刪除對應(yīng)需求內(nèi)存塊。
優(yōu)選地,S001中內(nèi)存塊內(nèi)的字節(jié)內(nèi)存采用slub算法存儲分配的具體過程如下:
A000:檢索free_area[s]內(nèi)存塊標記sign為1的內(nèi)存塊,其中s為任意正整數(shù);
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于溫州職業(yè)技術(shù)學(xué)院,未經(jīng)溫州職業(yè)技術(shù)學(xué)院許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810382186.X/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





