麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

計算機程序內存動態配置方法

文檔序號:6438782閱讀:268來源:國知局
專利名稱:計算機程序內存動態配置方法
技術領域
本發明涉及計算機程序內存配置方法,特別涉及一種根據計算機系統當前環境進行內存動態配置的方法。
背景技術
計算機內存是指CPU能夠直接訪問的存儲器,如R0M(只讀存儲器)、RAM(隨機讀寫存儲器)、SDRAM(靜態隨機讀寫存儲器)等。內存作為計算機快速讀寫數據的存儲設備, 在計算機程序中應用廣泛。與其他外置存儲設備(如磁盤、移動存儲設備等)相比,內存的主要優勢為,讀寫數據高于磁盤或其他10(輸入輸出)設備讀寫速度上千倍,內存的主要缺點為,價格相對昂貴,且斷電之后數據通常會丟失。
應用程序使用內存來緩存IO外設上的數據,讓程序運行時能夠直接訪問內存,避免額外的IO開銷,達到大幅度提高程序運行速度的目的。例如系統對文件緩存的管理,具體包括WINDOWS的FAT和NTFS文件系統,或LINUX和EXT2文件系統等。這些文件系統通過緩存文件的數據到內存中,讓下一次該文件的訪問或修改操作直接在內存中完成。由于計算機系統不可能配置太多的內存,系統對各種應用程序運行時的內存資源都有一定限制, 可以是先進先出(FIFO)或最后使用最佳(LRU)等內存數據塊管理方式,確定內存使用限制值F,保證準確限制內存的最大使用量。例如殺毒軟件緩存病毒庫特征碼,讓病毒文件掃描時,特征碼的匹配在內存中進行。這些特定的內存管理方法,根據內存的最大限制,優先緩存最頻繁訪問的數據,優先釋放使用最遙遠的數據。
這些特定的管理方法存在以下兩個缺點1、無法即時響應環境變化,當用戶的機器和環境動態發生變化時,這種管理方法不適應這個運行環境。如內存大量被消耗,CPU資源緊張時,這種方法會導致程序或者整個系統的性能全面降低。當過度空閑資源出現時,這種方法又因為最大限制,不能實時地擴大內存使用量,更優秀的發揮系統的性能,浪費用戶的時間;2、這種同一個管理方法應用在眾多不同系統和環境中,如常見的文件系統緩存機制,對于大多數環境而言,這種方法兼顧了平均狀況,但是對每一個系統和環境來說,這種方法的內存配置都不是最優。發明內容
本發明所要解決的技術問題,就是針對現有技術內存配置方法不靈活,不能適應系統環境變化的缺點,提供一種計算機系統內存動態配置方法。
本發明解決所述技術問題,采用的技術方案是,計算機程序內存動態配置方法,其特征在于,包括以下步驟
a、創建列表L,記錄程序運行時在不同系統資源W條件下,內存使用限制值F和數據訪問速率H;
b、獲取當前系統W、F和H值填入所述列表L ;
C、在列表L中搜索W值與當前系統W值相近的記錄項,把這些記錄項記錄到一個新的列表L'中;
d、在列表L'中根據H值進行排序,取H值最大的記錄項,并獲取該記錄項的F值;
e、根據步驟d獲取的F值來設置當前程序的F值,清空列表L';
f、間隔周期T,重復步驟b f。
本發明定期檢測外界環境的變化,并調整程序運行時內存使用限制值,能夠隨時適應環境變化,避免由于外界環境變化而產生的內存配置不適當的情況。本發明統計了長期執行過程中的環境與程序運行狀況的對應關系,能夠明確本程序在不同環境下的最佳運行條件。隨著運行時間的延長,列表L中記錄和統計的數據就越全面,以這個統計列表為基礎的執行策略隨著時間的推移,會變得更加智能。本發明為當前環境量身定制內存配置方法,比其他通用的方案在當前環境下更加優秀。列表L中預先填入的經驗數據,可以作為前幾次搜索時建議性數據。這些經驗數據,作為初始時,在不同系統資源W條件下,建議的內存使用限制值。
系統資源 W 可以通過系統提供的 API (Application Programming Interface)函數或服務獲取。本發明的系統資源W可以是一個廣義的概念,既可以是某個系統參數,又可以是某些系統參數的組合,如以百分比表示的空閑內存比、CPU占用率等。數據訪問速率 H可以根據程序自身功能邏輯的運行,統計程序對數據的有效訪問量,獲取當前系統數據訪問速率H。內存使用限制值F通常當前運行程序的設定獲得。這些系統參數都可以采用本領域常用手段獲得。
具體的,所述W值相近的記錄項是指W值相差范圍在士3% 士20%之間的記錄項。
根據不同的匹配要求選擇W值相差范圍,相差范圍越小,匹配精度越高。通常選擇的W值相差范圍為士 10%。
進一步的,如果存在系統資源W由最小值Wmin向最大值Wmax變化時,內存使用限制值F對應由最小值Fmin變化至最大值Fmax的關系,則所述步驟a具體為將系統資源W 由最小值Wmin至最大值Wmax分為η個等級,將內存使用限制值F由最小值Fmin至最大值 Fmax分為η個等級,兩者一一對應,并分別記錄每個等級對應的程序運行時的數據訪問速率H,其中,η > 2。
對于與內存使用限制值F正相關的系統資源W,如空閑內存比、CPU占用率,其通常的表述為百分比。當系統資源W為最小值Wmin = 0%時,表示系統資源最緊張,最不利于程序運行,此時的內存使用限制值F對應為最小值Fmin,表示程序運行可用內存最小。當系統資源W為最大值Wmax = 100%時,表示系統資源富余,最有利于程序運行,此時的內存使用限制值F對應為最大值Fmax,表示程序運行可用內存最大。
進一步的,如果存在系統資源W由最小值Wmin向最大值Wmax變化時,內存使用限制值F對應由最大值Fmax變化至最小值Fmin的關系,則所述步驟a具體為將系統資源W 由最小值Wmin至最大值Wmax分為η個等級,將內存使用限制值F由最大值Fmax至最小值 Fmin分為η個等級,兩者一一對應,并分別記錄每個等級對應的程序運行時的數據訪問速率H,其中,η > 2。
這是系統資源W與內存使用限制值F為負相關的情況,如系統的IO吞吐量(輸入輸出吞吐量)。當系統資源W為最小值Wmin時,表示系統資源最富余,最有利于程序運行,此時的內存使用限制值F對應為最大值Fmax,表示程序運行可用內存最大。當系統資源W 為最大值Wmax時,表示系統資源緊張,最不利于程序運行,此時的內存使用限制值F對應為最小值Fmin,表示程序運行可用內存最小。
具體的,η個等級之間間距相等。
這是最簡單的等級劃分方法,即等分的方法。當然也可以根據情況采用線性遞增或線性遞減的等級劃分方法,以適應不同的系統資源和運行環境。
更具體的,η = 10。
η的取值越大,越有利于獲得更恰當的內存使用限制值F,但也會增加資源耗費。 通常將等級分成10等分比較合適。
本發明的有益效果是,能夠根據每次不同環境的執行情況,調整自身執行的條件, 并根據以前的歷史記錄來決定當前的執行限制,更易于獲得當前最佳的執行條件,本發明既兼顧了平均環境條件,更能夠適應環境條件的變化,充分發揮系統性能優勢。


圖la、圖Ib是緩存數據塊序列狀態示意圖2是緩存數據塊飽和限制狀態示意圖3是實施例的流程圖。
具體實施方式
下面結合附圖及實施例,詳細描述本發明的技術方案。
本發明的計算機系統內存動態配置方法,可以用于常見的系統程序和服務程序中,可以用于系統中的內存管理策略,適用于無人值守的后臺程序中。本發明可以實際應用于備份還原軟件自動備份的備份策略中,能夠實用于連續備份的備份策略中,能夠在殺毒軟件的定期掃描策略中發揮作用。該方法還可以作為一種信息搜集的手段,在不同環境和條件下進行的數據搜集,為統計和分析數據提供物質基礎,為得出實際結論提供更廣泛的真實依據。
實施例1
下面的實施例以虛擬文件數據塊的緩存訪問為例進行描述。
在正常運行的系統中,通過掛載鏡像文件產生的虛擬文件,需要被反復的訪問,這些被訪問文件的源數據塊存放于IO物理設備中。訪問文件的時候,程序通過文件的偏移和文件系統,換算出需要訪問數據的數據塊編號,再根據數據塊編號去訪問IO設備中對應偏移位置的數據。如果每次訪問都通過IO物理設備,勢必會影響訪問速度,浪費時間。讓數據訪問步驟先通過內存管理方法獲取內存中的數據塊,如果不存在該數據緩存,再通過IO 物理設備訪問,勢必可以減少眾多訪問IO物理設備的次數。所以,合理的內存配置可以提高運行效率。
數據塊緩存控制步驟
初始化
初始化創建一個數據塊索引,和一個數據塊的雙向鏈表。數據塊索引包含數據塊編號和數據塊偏移,如圖Ia ;雙向鏈表初始化之后只包括頭尾節點,如圖lb。
當數據塊訪問的請求到達時
1、從緩存中獲取數據塊請求到達時,查詢索引是否存在數據塊指針,如果存在則跳至步驟4。
2、根據索引中的數據塊偏移讀取數據塊到數據塊指針中,把這個索引項的數據塊偏移替換成數據塊指針。
3、把數據塊指針添加到雙向鏈表頭部。
4、獲取數據塊緩存指針,并反饋給1中的請求;在鏈表中,把該數據塊移動到鏈表頭部。
當雙向鏈表到達內存使用限制值F時
5、從鏈表尾部釋放超過的數據塊。如圖2緩存數據塊飽和限制狀態所示。
該緩存管理方法,緩存了數據塊,保證下一次訪問同樣數據塊的時候能夠通過內存獲得,而不需要訪問IO設備,通常情況下IO訪問的時間是同樣數據量內存訪問時間的 1000倍,所以本發明能夠大幅度提高數據塊訪問速度。本發明通過限制內存使用總量,保證內存不會被無限制的使用,影響系統正常運行。但是內存總量限制的具體數量同樣影響運行的效果,在不同系統資源和不同運行環境情況下各不相同。
如圖3所示,本例程序流程如下
a、創建列表L,記錄程序運行時在不同系統資源W條件下,內存使用限制值F和數據訪問速率H。
本例選擇系統參數空閑內存比作為系統資源W,空閑內存比與內存使用限制值F 正相關。也就是系統資源W由最小值Wmin向最大值Wmax變化時,內存使用限制值F對應由最小值Fmin變化至最大值Fmax。這種情況下,當系統資源W為最小值Wmin = 0%時,表示系統資源最緊張,最不利于程序運行,此時的內存使用限制值F對應為最小值Fmin,表示程序運行可用內存最小。當系統資源W為最大值Wmax = 100%時,表示系統資源富余,最有利于程序運行,此時的內存使用限制值F對應為最大值Fmax,表示程序運行可用內存最大。
本例步驟a具體為將系統資源W由最小值Wmin至最大值Wmax分為η個等級,將內存使用限制值F由最小值Fmin至最大值Fmax分為η個等級,兩者一一對應,分別記錄每個等級對應的程序運行時的數據訪問速率H。η為等級劃分的級數,本例取η = 10,分為10 個等級。列表L如表1所示。
權利要求
1.計算機程序內存動態配置方法,其特征在于,包括以下步驟a、創建列表L,記錄程序運行時在不同系統資源W條件下,內存使用限制值F和數據訪問速率H;b、獲取當前系統W、F和H值填入所述列表L;c、在列表L中搜索W值與當前系統W值相近的記錄項,把這些記錄項記錄到一個新的列表L'中;d、在列表L'中根據H值進行排序,取H值最大的記錄項,并獲取該記錄項的F值;e、根據步驟d獲取的F值來設置當前程序的F值,清空列表L';廠間隔周期1\重復步驟13 1
2.根據權利要求1所述的計算機程序內存動態配置方法,其特征在于,所述W值相近的記錄項是指W值相差范圍在士 3% 士 20%之間的記錄項。
3.根據權利要求2所述的計算機程序內存動態配置方法,其特征在于,所述W值相差范圍為士 10%。
4.根據權利要求1所述的計算機程序內存動態配置方法,其特征在于,如果存在系統資源W由最小值Wmin向最大值Wmax變化時,內存使用限制值F對應由最小值Fmin變化至最大值Fmax的關系,則所述步驟a具體為將系統資源W由最小值Wmin至最大值Wmax分為η個等級,將內存使用限制值F由最小值Fmin至最大值Fmax分為η個等級,兩者一一對應,并分別記錄每個等級對應的程序運行時的數據訪問速率H,其中,η > 2。
5.根據權利要求4所述的計算機程序內存動態配置方法,其特征在于,所述系統參數W 為空閑內存比;所述Wmin = 0%,ffmax = 100%。
6.根據權利要求4所述的計算機程序內存動態配置方法,其特征在于,所述系統資源W 為 CPU 占用率;所述 Wmin = 0%, Wmax = 100%。
7.根據權利要求1所述的計算機程序內存動態配置方法,其特征在于,如果存在系統資源W由最小值Wmin向最大值Wmax變化時,內存使用限制值F對應由最大值Fmax變化至最小值Fmin的關系,則所述步驟a具體為將系統資源W由最小值Wmin至最大值Wmax分為η個等級,將內存使用限制值F由最大值Fmax至最小值Fmin分為η個等級,兩者一一對應,并分別記錄每個等級對應的程序運行時的數據訪問速率H,其中,η > 2。
8.根據權利要求7所述的計算機程序內存動態配置方法,其特征在于,所述系統資源W 為系統的IO吞吐量。
9.根據權利要求4 8任意一項所述的計算機程序內存動態配置方法,其特征在于,η 個等級之間間距相等。
10.根據權利要求9所述的計算機程序內存動態配置方法,其特征在于,η= 10。
全文摘要
本發明涉及計算機程序內存配置方法。本發明針對現有技術內存配置方法不靈活,不能適應系統環境變化的缺點,公開了一種計算機系統內存動態配置方法。本發明的技術方案是,計算機程序內存動態配置方法。其通過定期檢測外界環境的變化,調整程序運行時內存使用限制值,能夠隨時適應環境變化,避免由于外界環境變化而產生的內存配置不適當的情況。本發明統計了長期執行過程中的環境與程序運行狀況的對應關系,能夠明確本程序在不同環境下的最佳運行條件。隨著運行時間的延長,列表中記錄和統計的數據就越全面,以這個統計列表為基礎的執行策略隨著時間的推移,會變得更加智能。本發明用于計算機內存的智能配置,可以提高程序運行效率。
文檔編號G06F12/02GK102495763SQ20111036775
公開日2012年6月13日 申請日期2011年11月18日 優先權日2011年11月18日
發明者廖蘭君 申請人:成都易我科技開發有限責任公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 永川市| 丹江口市| 休宁县| 梁山县| 兰溪市| 石屏县| 汉源县| 华安县| 正镶白旗| 浦北县| 泰宁县| 玛纳斯县| 河西区| 桑日县| 赣州市| 贡嘎县| 加查县| 扎鲁特旗| 黑水县| 论坛| 松阳县| 平安县| 武义县| 依安县| 南乐县| 托克逊县| 南汇区| 通城县| 鹤庆县| 中阳县| 曲阜市| 榆中县| 广平县| 林州市| 加查县| 什邡市| 达州市| 津南区| 嵩明县| 麟游县| 永登县|