欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種內(nèi)存分配的方法及裝置的制造方法_2

文檔序號:9547115閱讀:來源:國知局
以免影響業(yè)務(wù)的運行。
[0048]S206、業(yè)務(wù)運行結(jié)束后,對所述另一個block解鎖,并將所述另一個block釋放到總內(nèi)存中申請所述另一個block的位置。
[0049]S207、對初始化時申請的一個block對應(yīng)的空閑鏈表freelist加鎖。
[0050]S208、確定freelist是否為空,當(dāng)不為空時,執(zhí)行步驟S209,當(dāng)為空時執(zhí)行步驟S212。
[0051]S209、從freelist中查找到適用于所述業(yè)務(wù)的chunk的指針,根據(jù)所述chunk的指針找到對應(yīng)的chunk。
[0052]S210、freelist解鎖,并將該對應(yīng)的chunk分配給所述業(yè)務(wù)使用,業(yè)務(wù)運行時對所述對應(yīng)的chunk加鎖。
[0053]S211、業(yè)務(wù)結(jié)束后,對所述對應(yīng)的chunk解鎖,將所述對應(yīng)的chunk釋放到原來的位置。
[0054]S212、當(dāng)freelist為空時,對freelist解鎖,并從所述一個block中劃分所述需求量大小的一個chunk。
[0055]S213、將新劃分的一個chunk的指針和大小信息加入freelist。
[0056]S214、將所述新劃分的一個chunk分配給所述業(yè)務(wù),并在業(yè)務(wù)運行時加鎖。
[0057]S215、業(yè)務(wù)運行結(jié)束后,對所述新劃分的一個chunk解鎖,并將所述一個chunk釋放到原來劃分時的位置。
[0058]本發(fā)明實施例描述了內(nèi)存分配、使用及釋放的過程,可以對內(nèi)存進(jìn)行預(yù)先劃分,使用時選擇適合業(yè)務(wù)的block或chunk使用,從而提高了內(nèi)存的分配效率核使用效率,而且在每個Block和每個Chunk中都可以設(shè)置獨立的鎖,避免了業(yè)務(wù)間的干擾。
[0059]參閱圖5,圖5為本發(fā)明實施例中內(nèi)存釋放過程的示意圖:
[0060]S300、業(yè)務(wù)運行后,內(nèi)存要釋放時,根據(jù)內(nèi)存塊chunk或block頭部存儲的內(nèi)存分配器的信息找到對應(yīng)的內(nèi)存分配器。
[0061]S305、判斷要釋放的內(nèi)存的大小是否大于freelist中最大chunk的容量,當(dāng)是時執(zhí)行步驟S310,當(dāng)否時執(zhí)行步驟S315。
[0062]S310、對blockl 1st加鎖,找到要釋放內(nèi)存在總內(nèi)存中的位置,釋放該內(nèi)存,blocklist 解鎖。
[0063]S315、將freelist加鎖,將要釋放的內(nèi)存釋放到對應(yīng)的位置,并對freelist解鎖。
[0064]參閱圖6,本發(fā)明實施例提供的內(nèi)存分配的方法的一實施例包括:
[0065]301、從總內(nèi)存中獲取一個第一內(nèi)存塊,所述一個第一內(nèi)存塊中包含多個不同大小的第二內(nèi)存塊。
[0066]302、根據(jù)業(yè)務(wù)對內(nèi)存的需求量,從所述一個第一內(nèi)存塊中確定滿足所述需求量的一個第二內(nèi)存塊,或者,從所述總內(nèi)存中獲取滿足所述需求量的另一個第一內(nèi)存塊。
[0067]303、將所述一個第二內(nèi)存塊或者所述另一個第一內(nèi)存塊,分配給所述業(yè)務(wù)。
[0068]本發(fā)明實施例米用從總內(nèi)存中獲取一個第一內(nèi)存塊,所述一個第一內(nèi)存塊中包含多個不同大小的第二內(nèi)存塊;根據(jù)業(yè)務(wù)對內(nèi)存的需求量,從所述一個第一內(nèi)存塊中確定滿足所述需求量的一個第二內(nèi)存塊,或者,從所述總內(nèi)存中獲取滿足所述需求量的另一個第一內(nèi)存塊;將所述一個第二內(nèi)存塊或者所述另一個第一內(nèi)存塊,分配給所述業(yè)務(wù)。與現(xiàn)有技術(shù)中只能從總內(nèi)存中申請內(nèi)存塊,而且每次只能申請一個內(nèi)存塊相比,本發(fā)明實施例提供的內(nèi)存分配的方法,可以根據(jù)業(yè)務(wù)對內(nèi)存的需求量,從總內(nèi)存的一個第一內(nèi)存塊中申請合適的第二內(nèi)存塊,這樣,就可以實現(xiàn)內(nèi)存的并行分配,可以提高內(nèi)存分配效率和內(nèi)存使用率。
[0069]可選地,在上述圖6對應(yīng)的實施例的基礎(chǔ)上,本發(fā)明實施例提供的內(nèi)存分配的方法的另一實施例中,所述根據(jù)業(yè)務(wù)對內(nèi)存的需求量,從所述一個第一內(nèi)存塊中確定滿足所述需求量的一個第二內(nèi)存塊,或者,從所述總內(nèi)存中獲取滿足所述需求量的另一個第一內(nèi)存塊,可以包括:
[0070]根據(jù)業(yè)務(wù)對內(nèi)存的需求量,確定所述一個第一內(nèi)存塊中是否有內(nèi)存滿足所述需求量的所述一個第二內(nèi)存塊;
[0071]當(dāng)所述一個第一內(nèi)存塊中有內(nèi)存滿足所述需求量的第二內(nèi)存塊時,則確定一個滿足所述需求量的所述一個第二內(nèi)存塊;
[0072]當(dāng)沒有內(nèi)存滿足所述需求量的第二內(nèi)存塊時,則從所述總內(nèi)存中獲取一個滿足所述需求量的所述另一個第一內(nèi)存塊。
[0073]可選地,在上述圖6對應(yīng)的實施例或可選實施例的基礎(chǔ)上,本發(fā)明實施例提供的內(nèi)存分配的方法的另一實施例中,所述從所述一個第一內(nèi)存塊中確定滿足所述需求量的一個第二內(nèi)存塊,可以包括:
[0074]查找預(yù)先生成的第二內(nèi)存塊鏈表,所述第二內(nèi)存塊鏈表中記錄有所述第一內(nèi)存塊中每個第二內(nèi)存塊的指針和大小信息;
[0075]根據(jù)所述業(yè)務(wù)對內(nèi)存的需求量和所述大小信息,確定所述一個第二內(nèi)存塊的指針;
[0076]根據(jù)所述一個第二內(nèi)存塊的指針,查找到所述一個第二內(nèi)存塊。
[0077]可選地,在上述圖6對應(yīng)的可選實施例的基礎(chǔ)上,本發(fā)明實施例提供的內(nèi)存分配的方法的另一實施例中,所述方法還可以包括:
[0078]當(dāng)所述第二內(nèi)存塊鏈表中記錄的所述每個第二內(nèi)存塊的大小信息都不滿足所述需求量時,且所述一個第一內(nèi)存塊中未被劃分的內(nèi)存量大于所述需求量時,從所述一個第一內(nèi)存塊中未被劃分的內(nèi)存量中劃分出滿足所述需求量的所述一個第二內(nèi)存塊。
[0079]可選地,在上述圖6對應(yīng)的實施例或可選實施例的基礎(chǔ)上,本發(fā)明實施例提供的內(nèi)存分配的方法的另一實施例中,所述從所述總內(nèi)存中獲取滿足所述需求量的另一個第一內(nèi)存塊時,所述方法還可以包括:
[0080]將所述另一個第一內(nèi)存塊的指針加入到第一內(nèi)存塊鏈表中,所述第一內(nèi)存塊鏈表中記錄有已獲取的每個第一內(nèi)存塊的指針,所述每個第一內(nèi)存塊的指針用于在釋放對應(yīng)的第一內(nèi)存塊時,將所述對應(yīng)的第一內(nèi)存塊釋放到獲取時所述對應(yīng)的第一內(nèi)存塊時的位置。
[0081]可選地,在上述圖6對應(yīng)的可選實施例的基礎(chǔ)上,本發(fā)明實施例提供的內(nèi)存分配的方法的另一實施例中,所述方法還可以包括:
[0082]當(dāng)釋放所述一個第二內(nèi)存塊時,根據(jù)所述一個第二內(nèi)存塊的指針,將所述一個第二內(nèi)存塊釋放到獲取所述一個第二內(nèi)存塊時的位置。
[0083]可選地,在上述圖6對應(yīng)的實施例或可選實施例的基礎(chǔ)上,本發(fā)明實施例提供的內(nèi)存分配的方法的另一實施例中,所述將所述一個第二內(nèi)存塊或者所述另一個第一內(nèi)存塊,分配給所述業(yè)務(wù)時,所述方法還可以包括:
[0084]為所述一個第二內(nèi)存塊或者所述另一個第一內(nèi)存塊設(shè)置鎖,使所述一個第二內(nèi)存塊或者所述另一個第一內(nèi)存塊只用于所述業(yè)務(wù)。
[0085]可選地,在上述圖6對應(yīng)的可選實施例的基礎(chǔ)上,本發(fā)明實施例提供的內(nèi)存分配的方法的另一實施例中,所述方法還可以包括:
[0086]在釋放所述一個第二內(nèi)存塊或者所述另一個第一內(nèi)存塊的內(nèi)存時,解除所述一個第二內(nèi)存塊或者所述另一個第一內(nèi)存塊中的鎖。
[0087]本發(fā)明實施例提供的內(nèi)存分配的方法可以參閱圖1至圖5中的過程進(jìn)行理解,本處不做過多贅述。
[0088]參閱圖7,本發(fā)明實施例提供的內(nèi)存分配的裝置的一實施例包括:
[0089]獲取單元401,用于從總內(nèi)存中獲取一個第一內(nèi)存塊,所述一個第一內(nèi)存塊中包含多個不同大小的第二內(nèi)存塊;
[0090]確定單元402,用于根據(jù)業(yè)務(wù)對內(nèi)存的需求量,從所述獲取單元401獲取的所述一個第一內(nèi)存塊中確定滿足所述需求量的一個第二內(nèi)存塊,或者,從所述總內(nèi)存中獲取滿足所述需求量的另一個第一內(nèi)存塊;
[0091]分配單元403,用于將所述確定單元402確定的所述一個第二內(nèi)存塊或者所述另一個第一內(nèi)存塊,分配給所述業(yè)務(wù)。
[0092]本發(fā)明實施例中,獲取單元401從總內(nèi)存中獲取一個第一內(nèi)存塊,所述一個第一內(nèi)存塊中包含多個不同大小的第二內(nèi)存塊;確定單元402根據(jù)業(yè)務(wù)對內(nèi)存的需求量,從所述獲取單元401獲取的所述一個第一內(nèi)存塊中確定滿足所述需求量的一個第二內(nèi)存塊,或者,從所述總內(nèi)存中獲取滿足所述需求量的另一個第一內(nèi)存塊;分配單元403將所述確定單元402確定的所述一個第二內(nèi)存塊或者所述另一個第一內(nèi)存塊,分配給所述業(yè)務(wù)。與現(xiàn)有技術(shù)中只能從總內(nèi)存中申請內(nèi)存塊,而且每次只能申請一個內(nèi)存塊相比,本發(fā)明實施例提供的內(nèi)存分配的裝置,可以根據(jù)業(yè)務(wù)對內(nèi)存的需求量,從總內(nèi)存的一個第一內(nèi)存塊中申請合適的第二內(nèi)存塊,這樣,就可以實現(xiàn)內(nèi)存的并行分配,可以提高內(nèi)存分配效率和內(nèi)存使用率。
[0093]可選地,在上述圖7對應(yīng)的實施例的基礎(chǔ)上,本發(fā)明實施例提供的內(nèi)存分配的裝置的另一實施例中,
[0094]所述確定單元402,用于根據(jù)業(yè)務(wù)對內(nèi)存的需求量,確定所述一個第一內(nèi)存塊中是否有內(nèi)存滿足所述需求量的所述一個第二內(nèi)存塊;當(dāng)所述一個第一內(nèi)存塊
當(dāng)前第2頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
卢湾区| 台北市| 岢岚县| 克山县| 微山县| 弥渡县| 乃东县| 石狮市| 青河县| 会理县| 邹城市| 保德县| 千阳县| 清徐县| 沅陵县| 宝坻区| 铁岭市| 建湖县| 乐清市| 盐池县| 名山县| 阜城县| 台山市| 瑞安市| 阳泉市| 安塞县| 卓尼县| 苏尼特右旗| 新竹县| 巴彦县| 城口县| 绵竹市| 合江县| 海口市| 绥宁县| 哈巴河县| 大名县| 怀远县| 鹤庆县| 襄汾县| 余庆县|