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

一種內(nèi)存管理方法、裝置、計算機設(shè)備及存儲介質(zhì)與流程

文檔序號:40617116發(fā)布日期:2025-01-10 18:22閱讀:5來源:國知局
一種內(nèi)存管理方法、裝置、計算機設(shè)備及存儲介質(zhì)與流程

本發(fā)明涉及內(nèi)存管理,具體涉及一種內(nèi)存管理方法、裝置、計算機設(shè)備及存儲介質(zhì)。


背景技術(shù):

1、計算機的業(yè)務(wù)種類與日俱增,運行各種業(yè)務(wù)的所需要的內(nèi)存大小也不盡相同,隨著內(nèi)存的申請和釋放的操作次數(shù)增加,使得內(nèi)存不斷區(qū)域碎片化,導(dǎo)致有很多空閑內(nèi)存卻無法分配出一塊連續(xù)的內(nèi)存的情況。

2、目前,通常使用內(nèi)存伙伴算法進(jìn)行內(nèi)存管理以盡量避免出現(xiàn)上述內(nèi)存碎片化的情況,該算法通過將所有空閑內(nèi)存塊分為多個塊鏈表,每個鏈表包含特定大小的連續(xù)內(nèi)存塊,從而實現(xiàn)對內(nèi)存的精細(xì)管理。具體而言,當(dāng)申請內(nèi)存時,內(nèi)存伙伴算法將與申請大小相同的內(nèi)存塊鏈表中的空閑頁分配出去并從鏈表中刪除,若不存在相同大小內(nèi)存塊,則檢查上一級,同時將未分配的剩余部分加入下一級空閑鏈表中,內(nèi)存釋放則是申請的逆過程。

3、然而,上述內(nèi)存管理方法,在內(nèi)存申請和釋放的過程中,內(nèi)存的迭代拆分/合并操作以及遍歷鏈表都會產(chǎn)生很大的時間開銷,這不僅影響內(nèi)存申請/釋放的效率和性能,同時,上述方法的內(nèi)存合并操作還存在著需要第一個內(nèi)存塊地址為2的整數(shù)倍的局限性。


技術(shù)實現(xiàn)思路

1、有鑒于此,本發(fā)明提供了一種內(nèi)存管理方法、裝置、計算機設(shè)備及存儲介質(zhì),以解決目前基于伙伴算法的內(nèi)存管理方法效率較低的問題。

2、第一方面,本發(fā)明提供了一種內(nèi)存管理方法,方法包括:

3、根據(jù)物理內(nèi)存信息中各個原子內(nèi)存塊的使用狀態(tài),生成狀態(tài)信息矩陣;狀態(tài)信息矩陣中的各個元素用于分別指示各個原子內(nèi)存塊是否被使用;

4、基于狀態(tài)信息矩陣生成索引表陣列;索引表陣列包括行內(nèi)索引表陣列以及跨行索引表陣列;索引表陣列用于指示不同規(guī)格的內(nèi)存塊的使用情況;不同規(guī)格的內(nèi)存塊用于指示狀態(tài)信息矩陣中不同長度的連續(xù)未被使用的原子內(nèi)存塊;

5、基于索引表陣列,確定與內(nèi)存申請請求對應(yīng)的目標(biāo)內(nèi)存塊;

6、基于目標(biāo)內(nèi)存塊,更新狀態(tài)信息矩陣以及索引表陣列。

7、本發(fā)明實施例提供的內(nèi)存管理方法,對應(yīng)于每個原子內(nèi)存塊的使用狀態(tài)形成狀態(tài)信息矩陣,并基于信息狀態(tài)矩陣生成索引表陣列,索引表陣列的設(shè)計使得能夠快速找到并分配連續(xù)未被使用的內(nèi)存塊,減少內(nèi)存碎片,從而提高整體內(nèi)存利用率,即通過索引表,系統(tǒng)可以快速定位到合適規(guī)格的內(nèi)存塊,而無需遍歷整個內(nèi)存空間,這大大縮短了內(nèi)存分配和回收的時間,提升了系統(tǒng)性能。

8、在一種可選的實施方式中,基于狀態(tài)信息矩陣生成索引表陣列,包括:

9、基于狀態(tài)信息矩陣生成行內(nèi)索引表陣列和跨行索引表陣列;行內(nèi)索引表陣列和跨行索引表陣列的列數(shù)均為內(nèi)存塊規(guī)格數(shù),行內(nèi)索引表陣列的行數(shù)與狀態(tài)信息矩陣的行數(shù)相等,跨行索引表陣列的行數(shù)比行內(nèi)索引表陣列的行數(shù)少1。

10、本發(fā)明實施例提供的內(nèi)存管理方法,通過將狀態(tài)信息矩陣轉(zhuǎn)化為索引表陣列,包括行內(nèi)索引表陣列和跨行索引表陣列,可以快速定位到合適規(guī)格的內(nèi)存塊,索引表陣列不僅記錄了內(nèi)存塊的使用情況,還根據(jù)內(nèi)存塊的規(guī)格進(jìn)行了分類,從而減少了在整個狀態(tài)信息矩陣中搜索未使用內(nèi)存塊的時間。這種索引方式加速了內(nèi)存分配過程,提高了系統(tǒng)的響應(yīng)速度和整體性能。同時,通過將復(fù)雜的內(nèi)存狀態(tài)信息簡化為結(jié)構(gòu)化的索引表陣列,也使得內(nèi)存管理的邏輯更加清晰和易于維護(hù)。

11、在一種可選的實施方式中,基于索引表陣列,確定與內(nèi)存申請請求對應(yīng)的目標(biāo)內(nèi)存塊,包括:

12、基于內(nèi)存申請請求,在索引表陣列中確定狀態(tài)信息矩陣中的目標(biāo)區(qū)域;

13、在目標(biāo)區(qū)域中選取與內(nèi)存申請請求對應(yīng)大小的目標(biāo)內(nèi)存塊。

14、本發(fā)明實施例提供的內(nèi)存管理方法,通過設(shè)置行內(nèi)索引表陣列和跨行索引表陣列,能夠快速定位到狀態(tài)信息矩陣中可能包含滿足請求大小的連續(xù)未被使用的內(nèi)存塊,即目標(biāo)內(nèi)存塊的區(qū)域。這種快速定位機制避免了在整個物理內(nèi)存空間中進(jìn)行無目的或線性的搜索,從而顯著提高了內(nèi)存分配的效率。

15、在一種可選的實施方式中,基于內(nèi)存申請請求,在索引表陣列中確定狀態(tài)信息矩陣中的目標(biāo)區(qū)域,包括:

16、若索引表陣列中存在與內(nèi)存申請請求大小相同的空閑狀態(tài)內(nèi)存塊,則將空閑狀態(tài)內(nèi)存塊對應(yīng)的狀態(tài)信息矩陣中的區(qū)域確認(rèn)為目標(biāo)區(qū)域;

17、若索引表陣列中不存在與內(nèi)存申請請求大小相同的空閑狀態(tài)內(nèi)存塊,則將大于內(nèi)存申請請求的最小規(guī)格的空閑狀態(tài)內(nèi)存塊對應(yīng)的狀態(tài)信息矩陣中的區(qū)域確認(rèn)為目標(biāo)區(qū)域。

18、本發(fā)明實施例提供的內(nèi)存管理方法,通過首先檢查索引表陣列中是否存在與內(nèi)存申請請求大小完全相同的空閑內(nèi)存塊,如果存在,則直接確定目標(biāo)區(qū)域進(jìn)行該內(nèi)存塊的分配,這樣可以最大化地滿足內(nèi)存請求的需求,同時減少內(nèi)存碎片的產(chǎn)生。如果不存在完全匹配的內(nèi)存塊,則選擇大于請求大小的最小規(guī)格的內(nèi)存塊以確定目標(biāo)區(qū)域,這種策略確保了內(nèi)存的有效利用,避免了不必要的內(nèi)存浪費。

19、在一種可選的實施方式中,在目標(biāo)區(qū)域中選取與內(nèi)存申請請求對應(yīng)大小的目標(biāo)內(nèi)存塊,包括:

20、選取目標(biāo)區(qū)域中地址最小的與內(nèi)存申請請求對應(yīng)大小的目標(biāo)內(nèi)存塊。

21、本發(fā)明實施例提供的內(nèi)存管理方法,選擇地址最小的內(nèi)存塊進(jìn)行分配,有助于保持內(nèi)存空間的連續(xù)性,同時,選擇地址最小的內(nèi)存塊進(jìn)行分配,可以簡化內(nèi)存管理的復(fù)雜性。

22、在一種可選的實施方式中,方法還包括:

23、若內(nèi)存申請請求成功,向業(yè)務(wù)層應(yīng)答內(nèi)存申請成功信息及目標(biāo)內(nèi)存塊的地址,反之則向業(yè)務(wù)層應(yīng)答內(nèi)存申請失敗信息。

24、本發(fā)明實施例提供的內(nèi)存管理方法,通過向業(yè)務(wù)層應(yīng)答內(nèi)存申請的成功或失敗信息,業(yè)務(wù)層能夠即時地知道內(nèi)存請求的處理結(jié)果。如果內(nèi)存申請成功,業(yè)務(wù)層可以獲得目標(biāo)內(nèi)存塊的地址,并繼續(xù)執(zhí)行后續(xù)操作;如果內(nèi)存申請失敗,業(yè)務(wù)層可以及時采取補救措施,如釋放部分不再需要的內(nèi)存、嘗試較小的內(nèi)存請求或通知用戶內(nèi)存資源不足。這種即時的反饋有助于增強程序的穩(wěn)定性和用戶體驗。

25、在一種可選的實施方式中,方法還包括:

26、響應(yīng)于內(nèi)存釋放請求,更新狀態(tài)信息矩陣以及索引表陣列。

27、本發(fā)明實施例提供的內(nèi)存管理方法,當(dāng)內(nèi)存塊被釋放時,及時更新狀態(tài)信息矩陣和索引表陣列,可以確保這些內(nèi)存塊被正確地標(biāo)記為空閑狀態(tài),并在后續(xù)的內(nèi)存分配請求中被重新利用。這有助于提高內(nèi)存資源的再利用率,減少內(nèi)存浪費。

28、在一種可選的實施方式中,方法還包括:

29、若內(nèi)存釋放請求成功,向業(yè)務(wù)層應(yīng)答內(nèi)存釋放成功信息,反之則向業(yè)務(wù)層應(yīng)答內(nèi)存釋放失敗信息。

30、本發(fā)明實施例提供的內(nèi)存管理方法,當(dāng)業(yè)務(wù)層收到內(nèi)存釋放成功的應(yīng)答時,它可以更快地釋放相關(guān)資源,如果內(nèi)存釋放失敗,業(yè)務(wù)層可以采取相應(yīng)的補救措施,如重試釋放操作、記錄錯誤日志或通知用戶,助于增強程序的穩(wěn)定性和用戶體驗。

31、第二方面,本發(fā)明提供了一種內(nèi)存管理裝置,裝置包括:

32、生成矩陣模塊,用于根據(jù)物理內(nèi)存信息中各個原子內(nèi)存塊的使用狀態(tài),生成狀態(tài)信息矩陣;狀態(tài)信息矩陣中的各個元素用于分別指示各個原子內(nèi)存塊是否被使用;

33、生成陣列模塊,用于基于狀態(tài)信息矩陣生成索引表陣列;索引表陣列包括行內(nèi)索引表陣列以及跨行索引表陣列;索引表陣列用于指示不同規(guī)格的內(nèi)存塊的使用情況;不同規(guī)格的內(nèi)存塊用于指示狀態(tài)信息矩陣中不同長度的連續(xù)未被使用的原子內(nèi)存塊;

34、確定模塊,用于基于索引表陣列,確定與內(nèi)存申請請求對應(yīng)的目標(biāo)內(nèi)存塊;

35、更新模塊,用于基于目標(biāo)內(nèi)存塊,更新狀態(tài)信息矩陣以及索引表陣列。

36、第三方面,本發(fā)明提供了一種計算機設(shè)備,包括:存儲器和處理器,存儲器和處理器之間互相通信連接,存儲器中存儲有計算機指令,處理器通過執(zhí)行計算機指令,從而執(zhí)行上述第一方面或其對應(yīng)的任一實施方式的內(nèi)存管理方法。

37、第四方面,本發(fā)明提供了一種計算機可讀存儲介質(zhì),該計算機可讀存儲介質(zhì)上存儲有計算機指令,計算機指令用于使計算機執(zhí)行上述第一方面或其對應(yīng)的任一實施方式的內(nèi)存管理方法。

38、第五方面,本發(fā)明提供了一種計算機程序產(chǎn)品,包括計算機指令,計算機指令用于使計算機執(zhí)行上述第一方面或其對應(yīng)的任一實施方式的內(nèi)存管理方法。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
南宫市| 星座| 诸暨市| 武汉市| 南川市| 新丰县| 黄浦区| 菏泽市| 信宜市| 乌苏市| 罗江县| 新田县| 正阳县| 元氏县| 黄石市| 兴化市| 克拉玛依市| 乡宁县| 山阳县| 全南县| 静宁县| 韩城市| 阜平县| 铁岭市| 浏阳市| 老河口市| 临夏县| 焉耆| 栖霞市| 红安县| 富阳市| 崇礼县| 黔江区| 镶黄旗| 喜德县| 贡山| 莱州市| 阳春市| 建阳市| 定远县| 巴彦县|