內(nèi)存管理方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種內(nèi)存管理方法及裝置,大大提高了內(nèi)存管理的效率,該方法包括:所述內(nèi)存單元包括動(dòng)態(tài)存儲(chǔ)內(nèi)存和靜態(tài)存儲(chǔ)內(nèi)存,其中,所述靜態(tài)存儲(chǔ)內(nèi)存中每種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量都介于其最大閾值和最小閾值之間;當(dāng)某種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量大于其最大閾值時(shí),將所述靜態(tài)存儲(chǔ)內(nèi)存上該種容量二級(jí)指針存儲(chǔ)單元放回到動(dòng)態(tài)存儲(chǔ)內(nèi)存中,作為一級(jí)指針存儲(chǔ)單元;當(dāng)某種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量小于其最小閾值時(shí),所述動(dòng)態(tài)存儲(chǔ)內(nèi)存上取出該種容量的一級(jí)指針存儲(chǔ)單元到靜態(tài)存儲(chǔ)內(nèi)存中,作為二級(jí)指針存儲(chǔ)單元。該裝置包括:設(shè)置單元和分配單元。
【專利說明】內(nèi)存管理方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,尤其涉及一種內(nèi)存管理方法及裝置。
【背景技術(shù)】
[0002]現(xiàn)有的內(nèi)存管理方法是通過在動(dòng)態(tài)內(nèi)存上分配不同的內(nèi)存單元,然后給每一個(gè)內(nèi)存單元分配一個(gè)管理該內(nèi)存單元的指針,外部系統(tǒng)需要內(nèi)存時(shí),查詢滿足外部系統(tǒng)需要的條件的內(nèi)存單元的空閑的指針,如果有滿足外部系統(tǒng)條件的空閑指針,外部系統(tǒng)占用該空閑指針對(duì)應(yīng)的內(nèi)存單元,如果沒有滿足條件的空閑指針,外部系統(tǒng)則不能用該內(nèi)存。
[0003]現(xiàn)有技術(shù)的不足之處在于:外部系統(tǒng)通過動(dòng)態(tài)內(nèi)存上的指針查詢內(nèi)存單元的效率低。
【發(fā)明內(nèi)容】
[0004]鑒于上述的分析,本發(fā)明旨在提供一種內(nèi)存管理方法及裝置,用以解決現(xiàn)有技術(shù)中外部系統(tǒng)通過動(dòng)態(tài)內(nèi)存上的指針查詢內(nèi)存單元的效率低的問題。
[0005]本發(fā)明的目的主要是通過以下技術(shù)方案實(shí)現(xiàn)的:
[0006]一種內(nèi)存管理方法,該方法包括以下步驟:
[0007]內(nèi)存包括動(dòng)態(tài)存儲(chǔ)內(nèi)存和靜態(tài)存儲(chǔ)內(nèi)存,其中,所述靜態(tài)存儲(chǔ)內(nèi)存中每種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量都介于其最大閾值和最小閾值之間;
[0008]當(dāng)某種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量大于其最大閾值時(shí),將所述靜態(tài)存儲(chǔ)內(nèi)存上該種容量二級(jí)指針存儲(chǔ)單元放回到動(dòng)態(tài)存儲(chǔ)內(nèi)存中,作為一級(jí)指針存儲(chǔ)單元;當(dāng)某種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量小于其最小閾值時(shí),從所述動(dòng)態(tài)存儲(chǔ)內(nèi)存上取出該種容量的一級(jí)指針存儲(chǔ)單元到靜態(tài)存儲(chǔ)內(nèi)存中,作為二級(jí)指針存儲(chǔ)單元。
[0009]優(yōu)選地,當(dāng)收到緩沖申請(qǐng)時(shí),判斷所述靜態(tài)存儲(chǔ)內(nèi)存中二級(jí)指針存儲(chǔ)單元的數(shù)量是否滿足所述緩沖申請(qǐng)所要占用的內(nèi)存單元的數(shù)量,如果是,則占用該內(nèi)存單元;如果否,再重新發(fā)起緩沖申請(qǐng),直到將查找到滿足要求的二級(jí)指針存儲(chǔ)單元;其中,所述靜態(tài)存儲(chǔ)內(nèi)存中二級(jí)指針存儲(chǔ)單元的容量大于等于所述緩沖申請(qǐng)所要占用的內(nèi)存單元的容量。
[0010]優(yōu)選地,判斷滿足要求的所述二級(jí)指針存儲(chǔ)單元的步驟具體包括:
[0011]根據(jù)所述緩沖申請(qǐng)中的內(nèi)存單元容量,在靜態(tài)存儲(chǔ)內(nèi)存中查找對(duì)應(yīng)容量的二級(jí)指針存儲(chǔ)單元,判斷未被占用的該容量的二級(jí)指針存儲(chǔ)單元的數(shù)量是否滿足所述內(nèi)存單元的數(shù)量,如果是,占用該內(nèi)存單元,如果否,則判斷大一級(jí)容量的所述二級(jí)指針存儲(chǔ)單元的數(shù)量是否滿足所述內(nèi)存單元的數(shù)量,逐級(jí)判斷,直到所有所述二級(jí)指針存儲(chǔ)單元都遍歷完。
[0012]優(yōu)選地,當(dāng)接收到外部系統(tǒng)發(fā)來的指針釋放申請(qǐng),如果經(jīng)過判斷確定要釋放的二級(jí)指針是在合法地址范圍、低位地址是O且不是重復(fù)釋放,則釋放對(duì)應(yīng)的二級(jí)指針,否則結(jié)束。
[0013]優(yōu)選地,所述最大閾值為104,所述最小閾值為24。
[0014]本發(fā)明還提供了一種內(nèi)存管理裝置,該裝置包括:[0015]設(shè)置單元,用于在靜態(tài)存儲(chǔ)內(nèi)存中為每種容量未被占用的二級(jí)指針存儲(chǔ)單元設(shè)置最大閾值和最小閾值;
[0016]分配單元,用于當(dāng)某種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量大于其最大閾值時(shí),將所述靜態(tài)存儲(chǔ)內(nèi)存上該種容量二級(jí)指針存儲(chǔ)單元放回到動(dòng)態(tài)存儲(chǔ)內(nèi)存中,作為一級(jí)指針存儲(chǔ)單元;當(dāng)某種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量小于其最小閾值時(shí),從所述動(dòng)態(tài)存儲(chǔ)內(nèi)存上取出該種容量的一級(jí)指針存儲(chǔ)單元到靜態(tài)存儲(chǔ)內(nèi)存中,作為二級(jí)指針存儲(chǔ)單元;使該容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量介于其最大閾值和最小閾值之間。
[0017]優(yōu)選地,該裝置還包括,
[0018]判斷單元,用于判斷所述靜態(tài)存儲(chǔ)內(nèi)存中二級(jí)指針存儲(chǔ)單元的數(shù)量是否滿足所述緩沖申請(qǐng)所要占用的內(nèi)存單元的數(shù)量,如果是,占用該內(nèi)存單元;如果否,觸發(fā)外部系統(tǒng)重新發(fā)起緩沖申請(qǐng),直到將查找到滿足要求的所述二級(jí)指針存儲(chǔ)單元;其中,所述靜態(tài)存儲(chǔ)內(nèi)存中二級(jí)指針存儲(chǔ)單元的容量大于等于所述緩沖申請(qǐng)所要占用的內(nèi)存單元的容量。
[0019]優(yōu)選地,所述判斷單元具體用于,根據(jù)所述緩存申請(qǐng)中的內(nèi)存單元容量,在靜態(tài)存儲(chǔ)內(nèi)存中查找對(duì)應(yīng)容量的二級(jí)指針存儲(chǔ)單元,判斷未被占用的該容量的二級(jí)指針存儲(chǔ)單元的數(shù)量是否滿足所述內(nèi)存單元的數(shù)量,如果是,占用該內(nèi)存單元,如果否,則判斷大一級(jí)容量的所述二級(jí)指針存儲(chǔ)單元的數(shù)量是否滿足所述內(nèi)存單元的數(shù)量,逐級(jí)判斷,直到所有所述二級(jí)指針存儲(chǔ)單元都遍歷完,如果都沒有滿足的,觸發(fā)外部系統(tǒng)重新發(fā)起緩沖申請(qǐng),直到將查找到滿足要求的所述二級(jí)指針存儲(chǔ)單元。
[0020]優(yōu)選地,該裝置還包括,
[0021]釋放單元,用于在接收到外部系統(tǒng)發(fā)來的指針釋放申請(qǐng)時(shí),判斷要釋放的二級(jí)指針是在合法地址范圍、低位地址是O且不是重復(fù)釋放,則釋放對(duì)應(yīng)的二級(jí)指針,否則結(jié)束。
[0022]優(yōu)選地,所述設(shè)置單元進(jìn)一步設(shè)有最大閾值為104,最小閾值為24。
[0023]本發(fā)明有益效果如下:
[0024]本發(fā)明提供的一種內(nèi)存管理方法,在動(dòng)態(tài)存儲(chǔ)內(nèi)存中,按內(nèi)存單元容量分別取預(yù)定數(shù)量的一級(jí)指針存儲(chǔ)單元,移到靜態(tài)存儲(chǔ)內(nèi)存上,成為二級(jí)指針存儲(chǔ)單元,并且各個(gè)容量的二級(jí)指針存儲(chǔ)單元均設(shè)有最大閾值和最小閾值,如果不滿足上述閾值范圍,可通過移動(dòng)一級(jí)指針存儲(chǔ)單元或二級(jí)指針存儲(chǔ)單元使所述二級(jí)指針存儲(chǔ)單元各個(gè)容量均在閾值范圍內(nèi),外部系統(tǒng)通過二級(jí)指針存儲(chǔ)單元查詢內(nèi)存單元,大大提高了訪問速度,進(jìn)而提高了內(nèi)存管理的效率。
[0025]本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分的從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
【專利附圖】
【附圖說明】
[0026]圖1為本發(fā)明實(shí)施例1的一種內(nèi)存管理方法的流程圖;
[0027]圖2為本發(fā)明實(shí)施例2的一種內(nèi)存管理方法的流程圖;
[0028]圖3為本發(fā)明實(shí)施例3的一種內(nèi)存管理裝置示意圖;
[0029]圖4為本發(fā)明實(shí)施例4的一種內(nèi)存管理裝置示意圖?!揪唧w實(shí)施方式】
[0030]下面結(jié)合附圖來具體描述本發(fā)明的優(yōu)選實(shí)施例,其中,附圖構(gòu)成本申請(qǐng)一部分,并與本發(fā)明的實(shí)施例一起用于闡釋本發(fā)明的原理。為了清楚和簡化目的,當(dāng)其可能使本發(fā)明的主題模糊不清時(shí),將省略本文所描述的器件中已知功能和結(jié)構(gòu)的詳細(xì)具體說明。
[0031]實(shí)施例1
[0032]本發(fā)明實(shí)施例提供的一種內(nèi)存管理方法,參見圖1,該方法包括:
[0033]S101、在動(dòng)態(tài)存儲(chǔ)內(nèi)存中,按內(nèi)存單元容量分別取預(yù)定數(shù)量的一級(jí)指針存儲(chǔ)單元,移到靜態(tài)存儲(chǔ)內(nèi)存上,成為二級(jí)指針存儲(chǔ)單元;
[0034]S102、所述靜態(tài)存儲(chǔ)內(nèi)存中每種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量都介于其最大閾值和最小閾值之間;
[0035]當(dāng)某種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量大于其最大閾值時(shí),將所述靜態(tài)存儲(chǔ)內(nèi)存上該種容量二級(jí)指針存儲(chǔ)單元放回到動(dòng)態(tài)存儲(chǔ)內(nèi)存中,作為一級(jí)指針存儲(chǔ)單元;當(dāng)某種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量小于其最小閾值時(shí),從所述動(dòng)態(tài)存儲(chǔ)內(nèi)存上取出該種容量的一級(jí)指針存儲(chǔ)單元到靜態(tài)存儲(chǔ)內(nèi)存中,作為二級(jí)指針存儲(chǔ)單元;
[0036]S103、當(dāng)接收到外部系統(tǒng)發(fā)送來的緩沖申請(qǐng)時(shí),根據(jù)所述緩沖申請(qǐng)中的內(nèi)存單元容量和數(shù)量到所述靜態(tài)存儲(chǔ)內(nèi)存中查找滿足要求的所述二級(jí)指針存儲(chǔ)單元,如果是,進(jìn)入S104 ;否則,進(jìn)入S105 ;
[0037]S104、反饋對(duì)應(yīng)的二級(jí)指針給所述外部系統(tǒng);
[0038]S105 ;所述外部系統(tǒng)再重新發(fā)起申請(qǐng)。
[0039]本發(fā)明實(shí)施例提供的一種內(nèi)存管理方法,在動(dòng)態(tài)存儲(chǔ)內(nèi)存中,按內(nèi)存單元容量分別取預(yù)定數(shù)量的一級(jí)指針存儲(chǔ)單元,移到靜態(tài)存儲(chǔ)內(nèi)存上,成為二級(jí)指針存儲(chǔ)單元,且各個(gè)容量的二級(jí)指針存儲(chǔ)單元均設(shè)有最大閾值和最小閾值,如果不滿足上述閾值范圍,可通過移動(dòng)一級(jí)指針存儲(chǔ)單元或二級(jí)指針存儲(chǔ)單元使所述二級(jí)指針存儲(chǔ)單元各個(gè)容量均在閾值范圍內(nèi),外部系統(tǒng)通過二級(jí)指針存儲(chǔ)單元查詢內(nèi)存單元,大大提高了訪問速度,進(jìn)而提高了內(nèi)存管理的效率。
[0040]實(shí)施例2
[0041]本發(fā)明實(shí)施例提供了一種內(nèi)存管理方法,參見圖2,該方法包括:
[0042]S201、在動(dòng)態(tài)存儲(chǔ)內(nèi)存中,按內(nèi)存單元容量分別取預(yù)定數(shù)量的一級(jí)指針存儲(chǔ)單元,移到靜態(tài)存儲(chǔ)內(nèi)存上,成為二級(jí)指針存儲(chǔ)單元;
[0043]S202、所述靜態(tài)存儲(chǔ)內(nèi)存中每種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量都介于其最大閾值和最小閾值之間;
[0044]本發(fā)明實(shí)施例設(shè)定初始的所述二級(jí)指針存儲(chǔ)單元的數(shù)量為64,設(shè)定的最小閾值為24,最大閾值為104 ;
[0045]S203、當(dāng)外部系統(tǒng)發(fā)起緩沖申請(qǐng)時(shí),根據(jù)緩沖申請(qǐng)中的內(nèi)存單元容量到靜態(tài)存儲(chǔ)內(nèi)存中查找對(duì)應(yīng)的二級(jí)指針存儲(chǔ)單元,判斷未被占用的該容量的二級(jí)指針存儲(chǔ)單元的數(shù)量是否滿足,如果是,進(jìn)入S204,否則進(jìn)入S205 ;
[0046]S204、將對(duì)應(yīng)的所述二級(jí)指針返回給所述外部系統(tǒng);
[0047]S205、判斷大一級(jí)容量的未被占用的所述二級(jí)指針存儲(chǔ)單元的數(shù)量是否滿足,如果是,進(jìn)入S204 ;如果不是,進(jìn)入S206 ;[0048]S206、繼續(xù)向上搜索,直到所有所述二級(jí)指針存儲(chǔ)單元都遍歷完,都沒有滿足的,則觸發(fā)外部系統(tǒng)重新發(fā)起申請(qǐng);
[0049]所述二級(jí)指針存儲(chǔ)單元的數(shù)量設(shè)有最大閾值和最小閾值,當(dāng)某種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量大于其最大閾值時(shí),將所述靜態(tài)存儲(chǔ)內(nèi)存上該種容量二級(jí)指針存儲(chǔ)單元放回到動(dòng)態(tài)存儲(chǔ)內(nèi)存中,作為一級(jí)指針存儲(chǔ)單元;當(dāng)某種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量小于其最小閾值時(shí),所述動(dòng)態(tài)存儲(chǔ)內(nèi)存上取出該種容量的一級(jí)指針存儲(chǔ)單元到靜態(tài)存儲(chǔ)內(nèi)存中,作為二級(jí)指針存儲(chǔ)單元;因?yàn)橄到y(tǒng)能夠自動(dòng)調(diào)整二級(jí)指針存儲(chǔ)單元的數(shù)量,使所有容量的二級(jí)指針存儲(chǔ)單元都在最大閾值和最小閾值之間時(shí),所以當(dāng)該次查找不到滿足要求的二級(jí)指針存儲(chǔ)單元時(shí),當(dāng)外部系統(tǒng)再次發(fā)起申請(qǐng)的時(shí)候,就會(huì)有滿足要求的二級(jí)指針存儲(chǔ)單元。
[0050]其中,本發(fā)明實(shí)施例的二級(jí)指針存儲(chǔ)單元采用先進(jìn)先出原則。
[0051]S207、當(dāng)接收到外部系統(tǒng)發(fā)來的指針釋放申請(qǐng),判斷要釋放的一級(jí)或二級(jí)指針是否滿足在合法地址范圍、低位地址是O且不是重復(fù)釋放,如果是進(jìn)入S208,否則進(jìn)入S209 ;
[0052]S208、釋放對(duì)應(yīng)的一級(jí)或二級(jí)指針;
[0053]S209、結(jié)束程序。
[0054]其中,具體判斷過程是:
[0055]判斷所述釋放的指針是否在合法地址范圍,如果不是,則結(jié)束程序,如果是,
[0056]進(jìn)一步判斷其低位地址是否是0,如果不是,則結(jié)束程序,如果是,
[0057]進(jìn)一步判斷是否是重復(fù)釋放,如果是,則結(jié)束程序,如果不是,則將所述釋放的指針存入所述二級(jí)指針存儲(chǔ)單元。
[0058]本發(fā)明實(shí)施例提供的一種內(nèi)存管理方法,在動(dòng)態(tài)存儲(chǔ)內(nèi)存中,按內(nèi)存單元容量分別取預(yù)定數(shù)量的一級(jí)指針存儲(chǔ)單元,移到靜態(tài)存儲(chǔ)內(nèi)存上,成為二級(jí)指針存儲(chǔ)單元,外部系統(tǒng)通過二級(jí)指針存儲(chǔ)單元查詢內(nèi)存單元,大大提高了訪問速度,進(jìn)而提高了內(nèi)存管理的效率;
[0059]而且本發(fā)明實(shí)施例提供的內(nèi)存管理方法中的二級(jí)指針存儲(chǔ)單元設(shè)有最大閾值和最小閾值,當(dāng)某種容量的二級(jí)指針存儲(chǔ)單元的數(shù)量不在最大閾值和最小閾值之間時(shí),系統(tǒng)自動(dòng)調(diào)整該容量的二級(jí)指針存儲(chǔ)單元的數(shù)量,保證外部系統(tǒng)發(fā)來的請(qǐng)求都能得到滿足。
[0060]本發(fā)明實(shí)施例提供的內(nèi)存管理方法還要對(duì)外部系統(tǒng)釋放的指針進(jìn)行判斷,將符合判斷條件的指針收回,不符合的指針予以放棄,提高了系統(tǒng)的可靠性。
[0061]實(shí)施例3
[0062]本發(fā)明實(shí)施例提供了一種內(nèi)存管理裝置,該裝置包括:
[0063]設(shè)置單元31,用于在靜態(tài)存儲(chǔ)內(nèi)存中為每種容量未被占用的二級(jí)指針存儲(chǔ)單元設(shè)置最大閾值和最小閾值;
[0064]分配單元32,用于當(dāng)某種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量大于其最大閾值時(shí),將所述靜態(tài)存儲(chǔ)內(nèi)存上該種容量二級(jí)指針存儲(chǔ)單元放回到動(dòng)態(tài)存儲(chǔ)內(nèi)存中,作為一級(jí)指針存儲(chǔ)單元;當(dāng)某種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量小于其最小閾值時(shí),從所述動(dòng)態(tài)存儲(chǔ)內(nèi)存上取出該種容量的一級(jí)指針存儲(chǔ)單元到靜態(tài)存儲(chǔ)內(nèi)存中,作為二級(jí)指針存儲(chǔ)單元;使該容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量介于其最大閾值和最小閾值之間。[0065]動(dòng)態(tài)存儲(chǔ)內(nèi)存33,存放不同容量和數(shù)量的內(nèi)存單元和剩余的一級(jí)指針存儲(chǔ)單元;
[0066]靜態(tài)存儲(chǔ)內(nèi)存34,存放不同容量和數(shù)量的所述二級(jí)指針存儲(chǔ)單元。
[0067]本發(fā)明實(shí)施例提供的一種內(nèi)存管理裝置,在動(dòng)態(tài)存儲(chǔ)內(nèi)存中,按內(nèi)存單元容量分別取預(yù)定數(shù)量的一級(jí)指針存儲(chǔ)單元,移到靜態(tài)存儲(chǔ)內(nèi)存上,成為二級(jí)指針存儲(chǔ)單元,并且各個(gè)容量的二級(jí)指針存儲(chǔ)單元均設(shè)有最大閾值和最小閾值,如果不滿足上述閾值范圍,可通過移動(dòng)一級(jí)指針存儲(chǔ)單元或二級(jí)指針存儲(chǔ)單元使所述二級(jí)指針存儲(chǔ)單元各個(gè)容量均在閾值范圍內(nèi),外部系統(tǒng)通過二級(jí)指針存儲(chǔ)單元查詢內(nèi)存單元,大大提高了訪問速度,進(jìn)而提高了內(nèi)存管理的效率。
[0068]實(shí)施例4
[0069]本發(fā)明實(shí)施例還提供了一種內(nèi)存管理裝置,參見圖4,該裝置包括:設(shè)置單元41、分配單元42、判斷單元43、釋放單元44和動(dòng)態(tài)存儲(chǔ)內(nèi)存單元45和靜態(tài)存儲(chǔ)內(nèi)存46,其中,
[0070]設(shè)置單元41,用于在靜態(tài)存儲(chǔ)內(nèi)存中為每種容量未被占用的二級(jí)指針存儲(chǔ)單元設(shè)置最大閾值和最小閾值;其中,所述最大閾值為104,所述最小閾值為24。
[0071]分配單元42,用于當(dāng)某種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量大于其最大閾值時(shí),將所述靜態(tài)存儲(chǔ)內(nèi)存上該種容量二級(jí)指針存儲(chǔ)單元放回到動(dòng)態(tài)存儲(chǔ)內(nèi)存中,作為一級(jí)指針存儲(chǔ)單元;當(dāng)某種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量小于其最小閾值時(shí),從所述動(dòng)態(tài)存儲(chǔ)內(nèi)存上取出該種容量的一級(jí)指針存儲(chǔ)單元到靜態(tài)存儲(chǔ)內(nèi)存中,作為二級(jí)指針存儲(chǔ)單元;使該容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量介于其最大閾值和最小閾值之間;
[0072]判斷單元43,用于判斷所述靜態(tài)存儲(chǔ)內(nèi)存中二級(jí)指針存儲(chǔ)單元的數(shù)量是否滿足所述緩沖申請(qǐng)所要占用的內(nèi)存單元的數(shù)量,如果是,占用該內(nèi)存單元;如果否,觸發(fā)外部系統(tǒng)重新發(fā)起緩沖申請(qǐng),直到將查找到滿足要求的所述二級(jí)指針存儲(chǔ)單元;其中,所述靜態(tài)存儲(chǔ)內(nèi)存中二級(jí)指針存儲(chǔ)單元的容量大于等于所述緩沖申請(qǐng)所要占用的內(nèi)存單元的容量。
[0073]所述判斷單元43具體用于,根據(jù)所述緩存申請(qǐng)中的內(nèi)存單元容量,在靜態(tài)存儲(chǔ)內(nèi)存中查找對(duì)應(yīng)容量的二級(jí)指針存儲(chǔ)單元,判斷未被占用的該容量的二級(jí)指針存儲(chǔ)單元的數(shù)量是否滿足所述內(nèi)存單元的數(shù)量,如果是,占用該內(nèi)存單元,如果否,則判斷大一級(jí)容量的所述二級(jí)指針存儲(chǔ)單元的數(shù)量是否滿足所述內(nèi)存單元的數(shù)量,逐級(jí)判斷,直到所有所述二級(jí)指針存儲(chǔ)單元都遍歷完,如果都沒有滿足的,觸發(fā)外部系統(tǒng)重新發(fā)起緩沖申請(qǐng),直到將查找到滿足要求的所述二級(jí)指針存儲(chǔ)單元。
[0074]釋放單元44,用于在接收到外部系統(tǒng)發(fā)來的指針釋放申請(qǐng)時(shí),判斷要釋放的二級(jí)指針是在合法地址范圍、低位地址是O且不是重復(fù)釋放,則釋放對(duì)應(yīng)的二級(jí)指針,否則結(jié)束。
[0075]動(dòng)態(tài)存儲(chǔ)內(nèi)存45,存放不同容量和數(shù)量的內(nèi)存單元和剩余的一級(jí)指針存儲(chǔ)單元;
[0076]靜態(tài)存儲(chǔ)內(nèi)存46,存放不同容量和數(shù)量的所述二級(jí)指針存儲(chǔ)單元。
[0077]綜上所述,本發(fā)明實(shí)施例提供了一種內(nèi)存管理系統(tǒng)及系統(tǒng),至少能帶來一種以下有益效果:
[0078]1、本發(fā)明實(shí)施例提供的一種內(nèi)存管理方法,在動(dòng)態(tài)存儲(chǔ)內(nèi)存中,按內(nèi)存單元容量分別取預(yù)定數(shù)量的一級(jí)指針存儲(chǔ)單元,移到靜態(tài)存儲(chǔ)內(nèi)存上,成為二級(jí)指針存儲(chǔ)單元,并且各個(gè)容量的二級(jí)指針存儲(chǔ)單元均設(shè)有最大閾值和最小閾值,如果不滿足上述閾值范圍,可通過移動(dòng)一級(jí)指針存儲(chǔ)單元或二級(jí)指針存儲(chǔ)單元使所述二級(jí)指針存儲(chǔ)單元各個(gè)容量均在最大閾值和最小閾值范圍內(nèi),外部系統(tǒng)通過二級(jí)指針存儲(chǔ)單元查詢內(nèi)存單元,大大提高了訪問速度,進(jìn)而提高了內(nèi)存管理的效率。
[0079]2、本發(fā)明實(shí)施例提供的內(nèi)存管理方法還對(duì)外部系統(tǒng)釋放的指針進(jìn)行判斷,將符合判斷條件的指針收回,不符合的指針予以放棄,提高了系統(tǒng)的可靠性。
[0080]以上所述,僅為本發(fā)明較佳的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求書的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種內(nèi)存管理方法,其特征在于,該方法包括以下步驟: 內(nèi)存包括動(dòng)態(tài)存儲(chǔ)內(nèi)存和靜態(tài)存儲(chǔ)內(nèi)存,其中,所述靜態(tài)存儲(chǔ)內(nèi)存中每種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量都介于其最大閾值和最小閾值之間; 當(dāng)某種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量大于其最大閾值時(shí),將所述靜態(tài)存儲(chǔ)內(nèi)存上該種容量二級(jí)指針存儲(chǔ)單元放回到動(dòng)態(tài)存儲(chǔ)內(nèi)存中,作為一級(jí)指針存儲(chǔ)單元;當(dāng)某種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量小于其最小閾值時(shí),從所述動(dòng)態(tài)存儲(chǔ)內(nèi)存上取出該種容量的一級(jí)指針存儲(chǔ)單元到靜態(tài)存儲(chǔ)內(nèi)存中,作為二級(jí)指針存儲(chǔ)單元。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)收到緩沖申請(qǐng)時(shí),判斷所述靜態(tài)存儲(chǔ)內(nèi)存中二級(jí)指針存儲(chǔ)單元的數(shù)量是否滿足所述緩沖申請(qǐng)所要占用的內(nèi)存單元的數(shù)量,如果是,則占用該內(nèi)存單元;如果否,再重新發(fā)起緩沖申請(qǐng),直到將查找到滿足要求的二級(jí)指針存儲(chǔ)單元;其中,所述靜態(tài)存儲(chǔ)內(nèi)存中二級(jí)指針存儲(chǔ)單元的容量大于等于所述緩沖申請(qǐng)所要占用的內(nèi)存單元的容量。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,判斷滿足要求的所述二級(jí)指針存儲(chǔ)單元的步驟具體包括: 根據(jù)所述緩沖申請(qǐng)中的內(nèi)存單元容量,在靜態(tài)存儲(chǔ)內(nèi)存中查找對(duì)應(yīng)容量的二級(jí)指針存儲(chǔ)單元,判斷未被占用的該容量的二級(jí)指針存儲(chǔ)單元的數(shù)量是否滿足所述內(nèi)存單元的數(shù)量,如果是,占用該內(nèi)存單元,如果否,則判斷大一級(jí)容量的所述二級(jí)指針存儲(chǔ)單元的數(shù)量是否滿足所述內(nèi)存單元的數(shù)量,逐級(jí)判斷,直到所有所述二級(jí)指針存儲(chǔ)單元都遍歷完。
4.根據(jù)權(quán)利要求1-3任意一項(xiàng)所述的方法,其特征在于,當(dāng)接收到外部系統(tǒng)發(fā)來的指針釋放申請(qǐng),如果經(jīng)過判斷確定要釋放的二級(jí)指針是在合法地址范圍、低位地址是O且不是重復(fù)釋放,則釋放對(duì)應(yīng)的二級(jí)指針,否則結(jié)束。`
5.根據(jù)權(quán)利要求1-3任意一項(xiàng)所述的方法,其特征在于,所述最大閾值為104,所述最小閾值為24。
6.一種內(nèi)存管理裝置,其特征在于,該裝置包括: 設(shè)置單元,用于在靜態(tài)存儲(chǔ)內(nèi)存中為每種容量未被占用的二級(jí)指針存儲(chǔ)單元設(shè)置最大閾值和最小閾值; 分配單元,用于當(dāng)某種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量大于其最大閾值時(shí),將所述靜態(tài)存儲(chǔ)內(nèi)存上該種容量二級(jí)指針存儲(chǔ)單元放回到動(dòng)態(tài)存儲(chǔ)內(nèi)存中,作為一級(jí)指針存儲(chǔ)單元;當(dāng)某種容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量小于其最小閾值時(shí),從所述動(dòng)態(tài)存儲(chǔ)內(nèi)存上取出該種容量的一級(jí)指針存儲(chǔ)單元到靜態(tài)存儲(chǔ)內(nèi)存中,作為二級(jí)指針存儲(chǔ)單元;使該容量未被占用的二級(jí)指針存儲(chǔ)單元的數(shù)量介于其最大閾值和最小閾值之間。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括, 判斷單元,用于判斷所述靜態(tài)存儲(chǔ)內(nèi)存中二級(jí)指針存儲(chǔ)單元的數(shù)量是否滿足所述緩沖申請(qǐng)所要占用的內(nèi)存單元的數(shù)量,如果是,占用該內(nèi)存單元;如果否,觸發(fā)外部系統(tǒng)重新發(fā)起緩沖申請(qǐng),直到將查找到滿足要求的所述二級(jí)指針存儲(chǔ)單元;其中,所述靜態(tài)存儲(chǔ)內(nèi)存中二級(jí)指針存儲(chǔ)單元的容量大于等于所述緩沖申請(qǐng)所要占用的內(nèi)存單元的容量。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于, 所述判斷單元具體用于,根據(jù)所述緩存申請(qǐng)中的內(nèi)存單元容量,在靜態(tài)存儲(chǔ)內(nèi)存中查找對(duì)應(yīng)容量的二級(jí)指針存儲(chǔ)單元,判斷未被占用的該容量的二級(jí)指針存儲(chǔ)單元的數(shù)量是否滿足所述內(nèi)存單元的數(shù)量,如果是,占用該內(nèi)存單元,如果否,則判斷大一級(jí)容量的所述二級(jí)指針存儲(chǔ)單元的數(shù)量是否滿足所述內(nèi)存單元的數(shù)量,逐級(jí)判斷,直到所有所述二級(jí)指針存儲(chǔ)單元都遍歷完,如果都沒有滿足的,觸發(fā)外部系統(tǒng)重新發(fā)起緩沖申請(qǐng),直到將查找到滿足要求的所述二級(jí)指針存儲(chǔ)單元。
9.根據(jù)權(quán)利要求6-8任意一項(xiàng)所述的裝置,其特征在于,還包括, 釋放單元,用于在接收到外部系統(tǒng)發(fā)來的指針釋放申請(qǐng)時(shí),判斷要釋放的二級(jí)指針是在合法地址范圍、低位地址是O且不是重復(fù)釋放,則釋放對(duì)應(yīng)的二級(jí)指針,否則結(jié)束。
10.根據(jù)權(quán)利要求6-8任意一項(xiàng)所述的裝置,其特征在于, 所述設(shè)置單元進(jìn)一步設(shè)有最大閾值為104,最小閾值為24。
【文檔編號(hào)】G06F12/08GK103678161SQ201210325439
【公開日】2014年3月26日 申請(qǐng)日期:2012年9月6日 優(yōu)先權(quán)日:2012年9月6日
【發(fā)明者】朱劍平, 鄭學(xué)進(jìn), 鞠海英 申請(qǐng)人:中興通訊股份有限公司