本發明專利技術公開了一種存儲管理系統及其存儲管理方法,其中該存儲管理系統包括:分配子系統,用于結合根據用戶系統的內存使用分布情況所配置的策略與內存分配和回收算法高效分配和回收用戶系統的內存,以優化用戶系統的內存使用;統計信息子系統,連接所述分配子系統,用于獲取用戶系統的內存使用分布情況的統計信息,以便于所述分配子系統高效分配和回收用戶系統的內存;診斷子系統,連接所述分配子系統,用于診斷用戶系統的內存使用異常。本發明專利技術提高嵌入式存儲管理系統的空間利用效率和運行的時間效率;提供完整、準確、實時的診斷信息和統計分布信息,幫助開發人員迅速定位系統存在的問題。
【技術實現步驟摘要】
本專利技術涉及數據存儲管理領域,特別是涉及一種。
技術介紹
一個完整的內存管理系統包括①內存分配,②內存使用統計情況,③內存診斷三部分。一般嵌入式系統平臺上提供的內存管理功能,大多數都只包含內存分配的部分,部分系統有一些粗略的統計功能,很少有診斷系統。內存分配和釋放算法的好壞程度也大相徑庭,主要體現在算法的空間利用率和時間效率上。空間利用率即系統中內存碎片的多少;時間效率即分配和釋放的快慢程度。現有嵌入式存儲管理系統存儲管理的缺點表現在分配算法和外圍功能的完整性 和易用性上I)現有嵌入式存儲管理系統在內存分配管理算法上是剛性的,不能根據不同系統的實際分配情況去調整。不同的嵌入式系統的內存使用情況特點不同,不能表現在算法中;2)現有嵌入式存儲管理系統大多沒有將外圍功能細化,外圍功能包括統計內存分配及分布情況的信息功能,診斷功能。檢查內存泄露很不系統,診斷功能并不能很直觀的讓開發人員迅速定位信息的不精確(如不能給出具體位置)和信息的不實時(比如程序突然崩潰了,沒有來的及輸出診斷信息)。
技術實現思路
本專利技術的目的在于提供一種,能結合用戶系統自身的內存使用分布特點,提供一個良好的內存分配和回收的算法,以解決傳統嵌入式存儲管理系統內存分配算法上空間或時間效率上的利用率不高、碎片多以及研發人員無法對軟件開發過程中出現的各種內存問題進行快速、精確、實時定位的問題。為了實現上述目的,本專利技術提供了一種存儲管理系統,其特征在于,包括分配子系統,用于結合根據用戶系統的內存使用分布情況所配置的策略與內存分配和回收算法高效分配和回收用戶系統的內存,以優化用戶系統的內存使用;統計信息子系統,連接所述分配子系統,用于獲取用戶系統的內存使用分布情況的統計信息,以便于所述分配子系統高效分配和回收用戶系統的內存;診斷子系統,連接所述分配子系統,用于診斷用戶系統的內存使用異常。所述的存儲管理系統,其中,還包括初始化系統,連接所述分配子系統、所述統計信息子系統、所述診斷子系統,用于對所述分配子系統及其結構、所述統計信息子系統及其結構、所述診斷子系統及其結構以及所述存儲管理系統的安全性保護進行初始化處理。所述的存儲管理系統,其中,所述統計信息子系統獲取的統計信息包括用戶系統中使用塊大小的頻度統計,使用內存大小和峰值。所述的存儲管理系統,其中,所述配置的策略中的信息包括塊大小、初始分配多少塊、要不要被預留、預留多少塊。所述的存儲管理系統,其中,所述診斷子系統還包括越界檢測模塊,用于通過判斷內存塊的標記是否被破壞掉進行內存使用越界檢測;泄露檢測模塊,用于通過記錄分配和釋放的情況進行內存泄露檢測;釋放檢測模塊,用于通過判斷是否找到對應的內存塊或內存塊的狀態是否處于正在使用狀態進行多次釋放檢測; 指針檢測模塊,用于通過判斷內存塊的地址范圍是否處于所管理的內存區域進行釋放非法指針檢測;異常大檢測模塊,用于通過判斷申請的內存塊的大小是否超出所允許的范圍來進行申請內存塊異常大檢測;以及使用異常檢測模塊,用于通過判斷用戶自定義的判斷條件是否滿足進行用戶自定義的內存使用異常檢測。為了實現上述目的,本專利技術還提供了一種存儲管理方法,用于對存儲管理系統進行存儲管理,其特征在于,包括步驟一,分配子系統對用戶系統的內存進行分配并管理;步驟二,統計信息子系統獲取用戶系統的內存使用分布情況的統計信息,分配子系統結合根據用戶系統的內存使用分布情況所配置的策略與內存分配和回收算法高效分配和回收用戶系統的內存,診斷子系統診斷程序代碼中的內存使用異常。所述的存儲管理方法,其中,在所述步驟一之前,還包括對所述存儲管理系統進行初始化的步驟,具體是獲取要管理的系統內存,查看用戶是否配置自定義策略,如是,則根據該自定義策略將該系統內存區分為高頻區域和一般區域,并進行初始化,如否,則根據缺省策略將該系統內存區分為高頻區域和一般區域,并進行初始;對所述分配子系統及其結構、所述統計信息子系統及其結構、所述診斷子系統及其結構以及所述存儲管理系統的自身安全性保護進行初始化。所述的存儲管理方法,其中,所述步驟一中,還包括對用戶系統的內存進行分配的步驟,具體是調用分配函數進行內存分配,指定申請大小,根據申請大小找出高頻區域、一般區域對應的空閑塊鏈表;從該空閑塊鏈表中查找與申請大小對應的空閑塊,若找到,將該空閑塊從該空閑塊鏈表中刪除,并標記該空閑塊已分配,進入下一步,若未找到,從大一級的空閑塊鏈表中查找若找到,則對找到的大一級空閑塊進行分割處理,并標記該大一級空閑塊,進入下一步,若未找到,則進一步查找有無更大的空閑塊,若無,則啟動合并掃描處理,并當合并成功時,對該大一級空閑塊進行分割處理,并標記該大一級空閑塊,進入下一步;得到分配塊的首地址,加入統計信息子系統進行統計,對該分配塊進行診斷,并返回該分配塊的首地址。所述的存儲管理方法,其中,所述步驟一中,還包括對用戶系統的內存進行釋放的步驟,具體是調用釋放函數,指定待釋放塊的首地址;根據該首地址找出對應的分配塊,根據配置策略決定是否對該分配塊的周圍塊進行合并若是,則對周圍塊進行雙向合并,并將得到的合并區間進行處理,標記該合并區間可用,進入下一步,若否,直接進入下一步;啟動統計信息子系統進行處理,啟動診斷子系統進行診斷;將空閑塊加入空閑鏈表。所述的存儲管理方法,其中,所述步驟二中,還包括 統計信息子系統對周圍塊合并的次數和周圍塊的信息進行統計;診斷子系統對分配和合并過程中的內部邏輯是否正確進行診斷。與現有技術相比,本專利技術的有益技術效果是I)分配算法的空間效率高,碎片少,分配和釋放的時間效率高;2)算法具有可調整與可配置的柔性,實現用戶的需求交互,用戶根據系統的特點,配置自己系統需要的策略,空間利用率更高,碎片更少,并且還能大幅提升時間效率;3)完整性。作為內存管理系統的輔助功能的統計子系統,診斷子系統齊全。統計包括總體統計信息和區段(以分配塊大小為單位)統計的各種信息。診斷包括內存泄露,越界檢查,多次釋放,釋放非法指針,分配塊過大。還支持用戶自定義的異常檢測;4)信息的精確性。統計子系統比一般嵌入式存儲管理系統提供更精確更完整的信息。診斷子系統能夠把問題定位到源碼級,直接輸出問題所在點,如文件名、函數名、行號;5)實時性。問題一旦出現,馬上報告出來。即使問題很嚴重(如程序崩潰),用戶也可以在第一時間看到問題所在。附圖說明圖I為本專利技術的存儲管理系統結構圖;圖2為本專利技術的存儲管理系統的初始化流程圖;圖3為本專利技術的存儲管理系統的內存分配流程圖;圖4為本專利技術的存儲管理系統的內存釋放流程圖。具體實施例方式以下結合附圖和具體實施例對本專利技術進行詳細描述,但不作為對本專利技術的限定。如圖I所示,為本專利技術的存儲管理系統結構圖。整個存儲管理系統100分為三個部分分配子系統10、統計信息子系統20、診斷子系統30。分配子系統10,主要負責內存的分配和回收,為存儲管理系統100的主要部分,用于通過一個柔性的可以配置的、高效的分配和回收算法來管理一塊系統內存,通過分配和釋放的程序接口得到或者釋放所使用的內存塊。同時使得開發人員可以根據自己系統的實際情況(比如對內存塊大小的需求分布)來靈活配置策略,然后告知分配子系統10,分配子系統10結合所配置的策略與內存分配和回收算法高效分配和本文檔來自技高網...
【技術保護點】
一種存儲管理系統,其特征在于,包括:分配子系統,用于結合根據用戶系統的內存使用分布情況所配置的策略與內存分配和回收算法高效分配和回收用戶系統的內存,以優化用戶系統的內存使用;統計信息子系統,連接所述分配子系統,用于獲取用戶系統的內存使用分布情況的統計信息,以便于所述分配子系統高效分配和回收用戶系統的內存;診斷子系統,連接所述分配子系統,用于診斷用戶系統的內存使用異常。
【技術特征摘要】
【專利技術屬性】
技術研發人員:張翀,韓兆強,冀德,
申請(專利權)人:風網科技北京有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。