亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種數(shù)據(jù)通信設(shè)備中的內(nèi)存管理方法

文檔序號(hào):9616073閱讀:364來(lái)源:國(guó)知局
一種數(shù)據(jù)通信設(shè)備中的內(nèi)存管理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種數(shù)據(jù)通信設(shè)備中的內(nèi)存管理方法。
【背景技術(shù)】
[0002]在各種數(shù)據(jù)通信設(shè)備中,內(nèi)存空間按不同字節(jié)數(shù)分成多種分片,各種分片的長(zhǎng)度即字節(jié)數(shù)包括32字節(jié)、64字節(jié)、128字節(jié)、256字節(jié)、512字節(jié)、1024字節(jié)、2048字節(jié)、4096字節(jié)等類型。設(shè)備運(yùn)行中對(duì)各種類型的內(nèi)存的需求不斷變化。為了高速地進(jìn)行內(nèi)存的申請(qǐng)、釋放等操作,對(duì)于同一種內(nèi)存的申請(qǐng)通常采取成批申請(qǐng)的方式,即在系統(tǒng)的編譯時(shí)決定各種分片的數(shù)目,進(jìn)入運(yùn)行過(guò)程后,這種數(shù)目將無(wú)法根據(jù)實(shí)際需要進(jìn)行動(dòng)態(tài)調(diào)整。例如,我們憑經(jīng)驗(yàn)估計(jì)某種設(shè)備通常情況下對(duì)于32字節(jié)的內(nèi)存分片大約需要5萬(wàn)片即可,于是在系統(tǒng)初始化時(shí),一次性申請(qǐng)能夠存放5萬(wàn)片32字節(jié)的內(nèi)存區(qū)用于存取。在系統(tǒng)運(yùn)行過(guò)程中,當(dāng)需要申請(qǐng)32字節(jié)的內(nèi)存時(shí),便從此內(nèi)存區(qū)中取一片空閑的32字節(jié)內(nèi)存分片來(lái)使用,如果內(nèi)存區(qū)中已沒(méi)有空閑的內(nèi)存分片,則系統(tǒng)將返回申請(qǐng)失敗提示,即使此時(shí)其它種類的內(nèi)存區(qū)中還有很多空閑的內(nèi)存空間。這種固定分配的內(nèi)存管理方法雖然容易實(shí)現(xiàn),但在使用中,對(duì)空閑的內(nèi)存資源無(wú)法充分利用,造成浪費(fèi)。

【發(fā)明內(nèi)容】

[0003]為解決上述現(xiàn)有的缺點(diǎn),本發(fā)明的主要目的在于提供一種實(shí)用的數(shù)據(jù)通信設(shè)備中的內(nèi)存管理方法,對(duì)各種分片類型的內(nèi)存,在運(yùn)行過(guò)程中根據(jù)實(shí)際需要?jiǎng)討B(tài)分配,使內(nèi)存資源充分利用。
[0004]為達(dá)成以上所述的目的,本發(fā)明的一種數(shù)據(jù)通信設(shè)備中的內(nèi)存管理方法采取如下技術(shù)方案:
一種數(shù)據(jù)通信設(shè)備中的內(nèi)存管理方法,其特征在于,對(duì)內(nèi)存空間依各種分片的字節(jié)數(shù)劃分不同種類型的頁(yè)面簇,以頁(yè)面簇為單位從占整個(gè)內(nèi)存空間一定比例的空閑內(nèi)存區(qū)中分配以供申請(qǐng),每個(gè)頁(yè)面簇中至少包含一個(gè)頁(yè)面,每個(gè)頁(yè)面的長(zhǎng)度能容納一個(gè)字節(jié)數(shù)最大的分片,在同一種類型的頁(yè)面簇中,所有頁(yè)面中的分片的字節(jié)數(shù)相同,當(dāng)申請(qǐng)某種字節(jié)數(shù)的內(nèi)存時(shí),包括下述步驟:
A、檢查該種字節(jié)數(shù)分片類型的頁(yè)面簇中是否有空閑分片,如果有,轉(zhuǎn)步驟E;如果無(wú),繼續(xù)步驟B
B、判斷空閑內(nèi)存區(qū)占整個(gè)內(nèi)存空間的比例是否小于等于設(shè)定值,如果是,轉(zhuǎn)步驟D;如果否,執(zhí)行步驟C;
C、從空閑內(nèi)存區(qū)中劃分出一個(gè)相應(yīng)類型的頁(yè)面簇,轉(zhuǎn)步驟E;
D、從其他類型的頁(yè)面簇中找出所有分片均處于空閑的頁(yè)面簇,將其改變?yōu)樗桀愋偷捻?yè)面簇;繼續(xù)步驟E;
E、從頁(yè)面簇中分配分片。
[0005]所述頁(yè)面簇中包含的頁(yè)面數(shù)為2、3或4個(gè),將所述空閑內(nèi)存區(qū)占整個(gè)內(nèi)存空間最小比例的設(shè)定值設(shè)為大于10%x小于15%的任一數(shù)值,對(duì)屬于同一頁(yè)面簇的分片予以標(biāo)識(shí),用于在分片被釋放時(shí),將其歸入所屬的頁(yè)面簇,對(duì)每個(gè)頁(yè)面簇設(shè)置用于指向本頁(yè)面簇中第一個(gè)分片的頭指針和用于指向本頁(yè)面簇中最后一個(gè)分片的尾指針,
當(dāng)分片被釋放時(shí),若此分片所在的頁(yè)面簇己經(jīng)有空閑分片,則將該分片加入所述尾指針之后,然后再調(diào)整尾指計(jì)指向剛釋放的分片,若分片所在頁(yè)面簇中無(wú)空閑分片,則將所在頁(yè)面簇的頭指針和尾指針都指向此分片,再將此分片加入由頭指針?biāo)赶虻脑摲N長(zhǎng)度的空閑分片鏈的鏈?zhǔn)住?br>[0006]采用如上技術(shù)方案的本發(fā)明,具有如下有益效果:
本發(fā)明對(duì)各種分片類型的內(nèi)存,在運(yùn)行過(guò)程中根據(jù)實(shí)際需要?jiǎng)討B(tài)分配,使內(nèi)存資源充分利用。
【具體實(shí)施方式】
[0007]為了進(jìn)一步說(shuō)明本發(fā)明,下面結(jié)合實(shí)施例進(jìn)一步進(jìn)行說(shuō)明:
本發(fā)明技術(shù)方案的核心就是對(duì)內(nèi)存空間作出新的劃分,使用戶對(duì)內(nèi)存的申請(qǐng)和釋放在劃分后的區(qū)間進(jìn)行,而這種新的劃分使不同類型的區(qū)間可以相互轉(zhuǎn)換,這樣一來(lái),對(duì)各種類型的內(nèi)存就不必預(yù)留固定的數(shù)量,在運(yùn)行中按照申請(qǐng)動(dòng)態(tài)分配。
[0008]當(dāng)申請(qǐng)某種字節(jié)數(shù)的內(nèi)存時(shí)包括下述步驟:
A、檢查該種字節(jié)數(shù)分片類型的頁(yè)面簇中是否有空閑分片,如果有,轉(zhuǎn)步驟E;如果無(wú),繼續(xù)步驟B ;
B、判斷空閑內(nèi)存區(qū)占整個(gè)內(nèi)存空間的比例是否小于等于設(shè)定值,如果是,轉(zhuǎn)步驟D;如果否,執(zhí)行步驟E;
C、從空閑內(nèi)存區(qū)中劃分出一個(gè)相應(yīng)類型的頁(yè)面簇,轉(zhuǎn)步驟E.D、從其他類型的頁(yè)面簇中找出所有分片均處于空閑的頁(yè)面簇,將其改變?yōu)樗桀愋偷捻?yè)面簇;繼續(xù)步驟E;
E、從頁(yè)面簇中分配分片。
[0009]從空閑內(nèi)存區(qū)中取待用內(nèi)存是以頁(yè)面簇為單位,而申請(qǐng)內(nèi)存是以分片為單位,步驟A的作用就是每次申請(qǐng)時(shí)檢查是否有同類型的分片在相應(yīng)頁(yè)面簇中尚未被申請(qǐng)。如果有,直接分配分片;如果無(wú),就需要再取一個(gè)這種類型的頁(yè)面簇。
[0010]取一個(gè)新的頁(yè)面簇有兩種途徑,第一種是從空閑內(nèi)存區(qū)中劃分出一個(gè)相應(yīng)類型的頁(yè)面簇,第二種是從其他類型的頁(yè)面簇中找出空閑面簇,再將其改變?yōu)樗桀愋偷捻?yè)面簇,所謂改變頁(yè)面簇的類型,就是改變頁(yè)面簇中分片的類型,如可將一個(gè)包含24個(gè)512字節(jié)分片的頁(yè)面簇轉(zhuǎn)換成一個(gè)包含6個(gè)2048字節(jié)分片的頁(yè)面簇,亦可將其轉(zhuǎn)換成一個(gè)包含96個(gè)128字節(jié)分片的頁(yè)面簇。為了減少頁(yè)面簇類型轉(zhuǎn)換可能引起的震蕩,在步驟B中規(guī)定了一個(gè)條件,作為選擇上述兩種途徑的依據(jù),即判斷空閑內(nèi)存區(qū)占整個(gè)內(nèi)存空間的比例是否已小于等于設(shè)定的最小值,如果是,選擇第二種;如果否,選擇第一種。此比例如果太高,系統(tǒng)進(jìn)行頁(yè)面簇類型轉(zhuǎn)換的操作會(huì)增多,而比例太低了,則不利于處理對(duì)于某種類型分片的大量需求。根據(jù)比較,空閑內(nèi)存區(qū)占整個(gè)內(nèi)存空間比例的最小值可設(shè)定為大于10%小于15%的任一數(shù)值。
[0011]本發(fā)明引入頁(yè)面簇作為劃分內(nèi)存空間的單位,每個(gè)頁(yè)面簇中至少包含一個(gè)頁(yè)面,每個(gè)頁(yè)面的長(zhǎng)度能容納一個(gè)字節(jié)數(shù)最大的分片,在同一種類型的頁(yè)面簇中,所有頁(yè)面中的分片的字節(jié)數(shù)相同。每個(gè)頁(yè)面簇中的頁(yè)面數(shù)量可任意設(shè)定,實(shí)際應(yīng)用中,以2至4個(gè)為宜。假設(shè)實(shí)際應(yīng)用中最大的分片長(zhǎng)度為4096字節(jié),每個(gè)頁(yè)面簇中的頁(yè)面數(shù)量為3個(gè),那末頁(yè)面簇就可以是包含6個(gè)2048字節(jié)分片的類型或包含12個(gè)1024字節(jié)分片的類型等,依此類推。
[0012]在使用中,可以鏈表的形式對(duì)頁(yè)面簇進(jìn)行管理,給每個(gè)頁(yè)面簇設(shè)置一個(gè)頁(yè)面簇頭記錄以下信息:
(1)頁(yè)面簇類型一頁(yè)面簇包含的分片類型,如32字節(jié)、64字節(jié)、128字節(jié)等;
(2)頁(yè)面數(shù)一本頁(yè)面簇包含的頁(yè)面數(shù)量;
(3)空閑指針一在本頁(yè)面簇空閑時(shí),指向同一類型的下一個(gè)空閑頁(yè)面簇的頁(yè)面簇頭。
[0013]頁(yè)面簇頭中還可以攜帶其他用于算法控制的信息。在本發(fā)明的實(shí)施中,也可以對(duì)相同類型的空閑分片采用鏈表方式管理,設(shè)置空閑分片頭指針用于指向此空閑分片鏈的鏈?zhǔn)?。鏈中的空閑分片分屬于多個(gè)不同的頁(yè)面簇,為了便于對(duì)空閑頁(yè)面簇進(jìn)行回收轉(zhuǎn)換處理,我們需要對(duì)空閑分片的連接順序作一定的限制,即要使位于同一個(gè)頁(yè)面簇中的空閑分片被連在以上鏈表中相連的區(qū)段,于是可對(duì)屬于同一頁(yè)面簇的分片予以標(biāo)識(shí),用于在分片被釋放時(shí),將其歸入所屬的頁(yè)面簇。再對(duì)每個(gè)頁(yè)面簇設(shè)置用于指向本頁(yè)面簇中第一個(gè)分片的頭指針和用于指向本頁(yè)面簇中最后一個(gè)分片的尾指針,用于在分片被釋放時(shí),若此分片所在的頁(yè)面簇已經(jīng)有空閑分片,則將該分片加入尾指針之后,然后再調(diào)整尾指針指向剛釋放的分片;若分片所在頁(yè)面簇中無(wú)空閑分片,則將所在頁(yè)面簇的頭指針和尾指計(jì)都指向此分片,再將此分片加入由頭指針?biāo)赶虻脑摲N長(zhǎng)度的空閑分片鏈的鏈?zhǔn)?。若一個(gè)分片經(jīng)過(guò)釋放后,此分片所在的頁(yè)面簇中所有分片都變?yōu)榭臻e分片,則此頁(yè)面簇變?yōu)榭臻e頁(yè)面簇。
[0014]當(dāng)從某一類型的頁(yè)面簇中進(jìn)行分片申請(qǐng)時(shí),若空閑分片頭指針不為空,則將其所指向的分片分配給該申請(qǐng),并將空閑分片頭指針指向下一個(gè)空閑分片;若空閑分片頭指針為空,表示此類型的頁(yè)面簇已經(jīng)被全部使用,則先分配一個(gè)同類型的頁(yè)面簇,然后再?gòu)拇诵碌捻?yè)面簇中進(jìn)行分片的分配。
[0015]系統(tǒng)亦可預(yù)留一部分不使用本發(fā)明方法的內(nèi)存空間,用于對(duì)大于最大分片的內(nèi)存申請(qǐng)進(jìn)行分配。
【主權(quán)項(xiàng)】
1.一種數(shù)據(jù)通信設(shè)備中的內(nèi)存管理方法,其特征在于,對(duì)內(nèi)存空間依各種分片的字節(jié)數(shù)劃分不同種類型的頁(yè)面簇,以頁(yè)面簇為單位從占整個(gè)內(nèi)存空間一定比例的空閑內(nèi)存區(qū)中分配以供申請(qǐng),每個(gè)頁(yè)面簇中至少包含一個(gè)頁(yè)面,每個(gè)頁(yè)面的長(zhǎng)度能容納一個(gè)字節(jié)數(shù)最大的分片,在同一種類型的頁(yè)面簇中,所有頁(yè)面中的分片的字節(jié)數(shù)相同,當(dāng)申請(qǐng)某種字節(jié)數(shù)的內(nèi)存時(shí),包括下述步驟: A、檢查該種字節(jié)數(shù)分片類型的頁(yè)面簇中是否有空閑分片,如果有,轉(zhuǎn)步驟E;如果無(wú),繼續(xù)步驟B B、判斷空閑內(nèi)存區(qū)占整個(gè)內(nèi)存空間的比例是否小于等于設(shè)定值,如果是,轉(zhuǎn)步驟D;如果否,執(zhí)行步驟C; C、從空閑內(nèi)存區(qū)中劃分出一個(gè)相應(yīng)類型的頁(yè)面簇,轉(zhuǎn)步驟E; D、從其他類型的頁(yè)面簇中找出所有分片均處于空閑的頁(yè)面簇,將其改變?yōu)樗桀愋偷捻?yè)面簇;繼續(xù)步驟E; E、從頁(yè)面簇中分配分片。2.如權(quán)利要求1所述的一種數(shù)據(jù)通信設(shè)備中的內(nèi)存管理方法,其特征在于,所述頁(yè)面簇中包含的頁(yè)面數(shù)為2、3或4個(gè),將所述空閑內(nèi)存區(qū)占整個(gè)內(nèi)存空間最小比例的設(shè)定值設(shè)為大于10%X小于15%的任一數(shù)值,對(duì)屬于同一頁(yè)面簇的分片予以標(biāo)識(shí),用于在分片被釋放時(shí),將其歸入所屬的頁(yè)面簇,對(duì)每個(gè)頁(yè)面簇設(shè)置用于指向本頁(yè)面簇中第一個(gè)分片的頭指針和用于指向本頁(yè)面簇中最后一個(gè)分片的尾指針。3.根據(jù)權(quán)利要求2所述的一種數(shù)據(jù)通信設(shè)備中的內(nèi)存管理方法,其特征在于,當(dāng)分片被釋放時(shí),若此分片所在的頁(yè)面簇己經(jīng)有空閑分片,則將該分片加入所述尾指針之后,然后再調(diào)整尾指計(jì)指向剛釋放的分片,若分片所在頁(yè)面簇中無(wú)空閑分片,則將所在頁(yè)面簇的頭指針和尾指針都指向此分片,再將此分片加入由頭指針?biāo)赶虻脑摲N長(zhǎng)度的空閑分片鏈的鏈?zhǔn)住?br>【專利摘要】本發(fā)明公開(kāi)一種數(shù)據(jù)通信設(shè)備中的內(nèi)存管理方法,其特征在于,對(duì)內(nèi)存空間依各種分片的字節(jié)數(shù)劃分不同種類型的頁(yè)面簇,以頁(yè)面簇為單位從占整個(gè)內(nèi)存空間一定比例的空閑內(nèi)存區(qū)中分配以供申請(qǐng),每個(gè)頁(yè)面簇中至少包含一個(gè)頁(yè)面,每個(gè)頁(yè)面的長(zhǎng)度能容納一個(gè)字節(jié)數(shù)最大的分片,在同一種類型的頁(yè)面簇中,所有頁(yè)面中的分片的字節(jié)數(shù)相同。本發(fā)明對(duì)各種分片類型的內(nèi)存,在運(yùn)行過(guò)程中根據(jù)實(shí)際需要?jiǎng)討B(tài)分配,使內(nèi)存資源充分利用。
【IPC分類】G06F3/06, G06F12/02
【公開(kāi)號(hào)】CN105373337
【申請(qǐng)?zhí)枴緾N201410409311
【發(fā)明人】何陽(yáng), 米奇
【申請(qǐng)人】西安慧澤知識(shí)產(chǎn)權(quán)運(yùn)營(yíng)管理有限公司
【公開(kāi)日】2016年3月2日
【申請(qǐng)日】2014年8月20日
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1