專利名稱:一種管理設備驅動緩存的方法
技術領域:
本發(fā)明涉及操作系統(tǒng)的設備管理和內存管理,尤其涉及一種管理設備驅 動緩存的方法。
背景技術:
設備驅動程序是操作系統(tǒng)設備管理中最重要組成部分,在系統(tǒng)中承擔著 輸入輸出、數(shù)據(jù)交換、數(shù)據(jù)存儲、數(shù)據(jù)通信,以及調試工具等作用。
驅動緩存作為系統(tǒng)設備輸入/輸出(10, Input and output)的內存數(shù)據(jù)備 份,在系統(tǒng)運行中可以起到減少對設備I/O的讀寫頻率,從而提高設備吞吐 效率的作用,達到通過"空間換取時間,,的效果。緩存從本質來說無非是按 某一規(guī)則組織起來,采用統(tǒng)一管理方式組織的內存,主要應用在設備驅動設 計中。緩存作為系統(tǒng)設備數(shù)據(jù)交換的加速利器,在嵌入式領域的作用越來越 重要,幾乎所有的驅動都有獨立的數(shù)據(jù)緩存管理機制,大同而小異。傳統(tǒng)的 設備驅動設計基本上采用在設備初始化時預先分配的內存,釆用鏈表形式管 理,在設備進行數(shù)據(jù)輸入輸出時提供給硬件作為數(shù)據(jù)臨時存放或中轉之用。 所以需要將系統(tǒng)中所有的驅動所需所有緩存的數(shù)量配置為最大,才能完全滿 足系統(tǒng)需要。這往往對系統(tǒng)可用內存提出了非常高的需要,甚至大大超過了 硬件所允許的范疇。如果強行把驅動緩存數(shù)量加以限制,則限制了系統(tǒng)設備 在極限情況下的處理能力,無法達到"空間換取時間"的作用,使系統(tǒng)設備 的性能無法進一步提升。而且,事實上系統(tǒng)能夠處理的設備10能力是一定的, 很少有所有設備同 一時刻都滿負荷運行的情況。為每個設備驅動提供盡可能 多的緩存以提高性能的方式,在實際中往往表現(xiàn)出緩存利用率不高,在特定 條件下各驅動緩存配置不合理,內存資源浪費嚴重的現(xiàn)象
發(fā)明內容
本發(fā)明要解決的技術問題是提供一種管理設備驅動緩存的方法,使系統(tǒng) 中的內存資源能夠充分利用,提高系統(tǒng)設備的數(shù)據(jù)吞吐效率。
為了解決上述問題,本發(fā)明提供了一種管理設備驅動緩存的方法,包括
對設備驅動緩存進行初始化配置;系統(tǒng)運行過程中,設備驅動緩存不足 時從系統(tǒng)內存中申請內存以擴展所述設備驅動緩存。
進一步地,所述方法還包括系統(tǒng)內存充足時,為所述設備驅動緩存提 供內存支持;系統(tǒng)內存不足時,將其它設備驅動緩存回收到內存中,為所述 設備驅動緩存提供內存支持。
進一步地,采用Slab大塊內存管理方式對所述^:備驅動緩存進行管理。
進一步地,對設備驅動緩存進行初始化配置時,為設備驅動緩存設置靜 態(tài)優(yōu)先級,系統(tǒng)確定多個依次從高到低的管理級別,根據(jù)各個設備在系統(tǒng)中 的重要性大小為其確定管理級別,并將靜態(tài)優(yōu)先級劃分為與設備管理級別個 數(shù)相同的多個依次從高到低的級別,對應所述設備的管理級別分別為所述設 備驅動緩存分配相應的靜態(tài)優(yōu)先級。
進一步地,對設^^驅動緩存進行初始化配置時,為設^^驅動緩存設置動 態(tài)優(yōu)先級,在設備驅動緩存使用 一次的過程中即從被申請到被釋放過程中, 計算系統(tǒng)設定的統(tǒng)計時間段內所述設備驅動緩存使用一次的平均時間,將此 平均時間經過加權后作為該設備驅動緩存的動態(tài)優(yōu)先級。
進一步地, 一個設備驅動緩存不足而系統(tǒng)內存資源充足時,發(fā)起動態(tài)內 存申請,系統(tǒng)內存向所述設備驅動緩存支付內存申請后內存總量仍大于系統(tǒng) 設置的保留內存值時,將所述設備驅動申請的內存構造成設備驅動緩存,加 入到該設備驅動緩存的隊列中;系統(tǒng)內存向所述設備驅動緩存支付內存申請 后內存總量小于系統(tǒng)設置的保留內存值時,將其它設備驅動緩存回收到內存 中,回收成功后,將所述設備驅動申請的內存構造成設備驅動緩存,加入到 該設備驅動緩存的隊列中,完成所述設備驅動緩存的擴展。
進一步地,多個設備驅動緩存不足而系統(tǒng)內存資源充足時,發(fā)起動態(tài)內 存申請,系統(tǒng)內存向所述各個設備驅動緩存支付內存申請后內存總量仍大于系統(tǒng)設置的保留內存值時,將所述各個設備驅動申請的內存構造成設備驅動
緩存,加入到各個設備驅動的緩存隊列中;系統(tǒng)內存向所述設備驅動緩存支
付內存申請后內存總量小于系統(tǒng)設置的保留內存值時,將其它設備驅動緩存 回收到內存中,回收成功后,將所述設備驅動申請的內存構造成設備驅動緩 存,加入到各個設備驅動緩存的隊列中,完成所述多個設備驅動緩存的擴展。
進一步地,將其它設備驅動緩存回收到內存中后,按照設備驅動緩存優(yōu) 先級從高到低的順序對所述多個設備驅動緩存進行擴展,即按照設備驅動緩 存的靜態(tài)優(yōu)先級從高到低的順序對相應的設備驅動緩存進行擴展,如果兩個 或多個設備驅動緩存的靜態(tài)優(yōu)先級相同,則按照其動態(tài)優(yōu)先級從高到低的順 序依次進行擴展。
進一步地,將其它設備驅動緩存回收到內存中時,先回收處于閑置狀態(tài) 的設備驅動緩存,然后按照設備驅動緩存的靜態(tài)優(yōu)先級從低到高的順序依次 回收其緩存,如果兩個或多個設備驅動緩存的靜態(tài)優(yōu)先級相同,則按照設備 驅動緩存的動態(tài)優(yōu)先級從低到高的順序依次回收其緩存。
進一步地,對設備驅動緩存進行初始化配置時,為各個設備驅動緩存設 置最高門限,設備驅動緩存獲得申請后的容量不大于所述最高門限設定的值。
進一步地,對設備驅動緩存進行初始化配置時,為各個設備驅動緩存設 置最低門限,將設備驅動緩存回收到內存中后,設備驅動緩存的容量不小于 所述最低門限設定的值。
采用本發(fā)明的方法,統(tǒng)一管理系統(tǒng)中所有的設備驅動緩存,支持設備緩 存的動態(tài)擴展和不同設備緩存間的復用,使系統(tǒng)中的內存資源能夠充分利用, 提高系統(tǒng)設備的數(shù)據(jù)吞吐效率。
圖1是本發(fā)明管理驅動緩存的方法流程圖2是本發(fā)明中設備驅動緩存管理配置初始化方法的流程圖3是本發(fā)明中驅動緩存動態(tài)優(yōu)先級計算方法的流程圖;圖4是本發(fā)明中驅動緩存回收方法的流程圖; 圖5是本發(fā)明中驅動緩存動態(tài)擴展方法的流程圖。
具體實施例方式
本發(fā)明提出的設備驅動緩存管理方法,采用統(tǒng)一的方式管理系統(tǒng)中所有 的設備驅動緩存,支持設備緩存的動態(tài)擴展和不同設備緩存間的復用。本發(fā) 明中提供的基于可擴展和優(yōu)先級管理的設備驅動緩存管理方法,結合操作系 統(tǒng)自身的動態(tài)內存管理,應用在設備驅動的緩存管理中,保證設備忙時系統(tǒng) 內空閑內存資源可以被設備驅動加以利用,保證相對重要的和實時性高的設 備驅動能夠盡可能多的使用系統(tǒng)內存資源。這樣,在系統(tǒng)處于滿負荷的情況 下,可以充分使用系統(tǒng)內所有的內存資源,可以優(yōu)先保證重要的和實時性高 的設備能夠快速響應系統(tǒng)的設備10請求,而次要的和實時性低的設備可以延 遲處理,從而通過操作系統(tǒng)內存管理提供的平衡機制,提升系統(tǒng)的綜合處理 能力和極限情況下的快速響應能力。
本發(fā)明的管理設備驅動緩存的方法包括以下步驟 步驟101,對設備驅動緩存進行初始化配置;
設備驅動的作用在于處理器和系統(tǒng)10設備間的數(shù)據(jù)交換,驅動緩存管理 中可以采用現(xiàn)有的內存管理技術,如Slab (稱為大塊)內存管理方法(Slab 內存管理方法中包括把內存作為對象分組放進緩沖區(qū),緩沖區(qū)的組織和管理 與硬件高速緩存的命中率相關,緩沖區(qū)由一連串的大塊構成,而每個大塊中 包含了若干個同種類型的已被分配或空閑的對象)用以實現(xiàn)內存的分塊管理、 內存的動態(tài)擴展、內存申請、分配、釋放和回收接口控制等內存管理的基本 功能。在此現(xiàn)有內存管理技術的基礎上,結合驅動緩存的特點,為設備驅動 緩存中增加優(yōu)先權的設置、內存動態(tài)擴展的限制門限,以及緩存內存類型等 配置。配置時,需要注意設備驅動的特點主處理器(如CPU)通過Cache (內存)訪問系統(tǒng)物理內存,在物理內存中暫存緩設備驅動的數(shù)據(jù)時,多數(shù) 驅動硬件緩存中數(shù)據(jù)需要和系統(tǒng)主處理器Cache (內存)中的數(shù)據(jù)保持一致,可以通過操作系統(tǒng)提供的MMU ( Memory Management Unit,內存管理單元)
的操作接口來實現(xiàn)。
設備驅動緩存的管理數(shù)據(jù)結構包括Slab內存管理控制塊結構體 MemoryCtrl,該緩存的靜態(tài)優(yōu)先級參數(shù)dwStaticPrio,該緩存的動態(tài)優(yōu)先級 dwDynPrio,該緩存的最低配置門限MemLowlevel,該緩存的最高配置門限 MemHighLevel ,該緩存的內存類型dwMemType ,該緩存的內存類型 dwMemType,該緩存的回收策略函數(shù)(在系統(tǒng)內存管理中調用)pFunc。
如圖2所示,在系統(tǒng)啟動時或用戶主動發(fā)起設備驅動緩存初始化時,對 設備驅動緩存進行初始化配置,其方法具體包括以下步驟
步驟201,登記設備的驅動緩存,并為設備驅動緩存設置優(yōu)先級;
系統(tǒng)設備驅動緩存需要分優(yōu)先級管理,所有設備驅動采用相同的方式管 理緩存,初始化配置時需要為每一個設備驅動緩存設置優(yōu)先級。
為驅動緩存設置的優(yōu)先級包括靜態(tài)優(yōu)先級和動態(tài)優(yōu)先級。系統(tǒng)運行時, 緩存優(yōu)先級的首先由靜態(tài)優(yōu)先級決定,在靜態(tài)優(yōu)先級相同時由其動態(tài)優(yōu)先級 決定。緩存的靜態(tài)優(yōu)先級在系統(tǒng)運行過程中不變化,緩存的動態(tài)優(yōu)先級可以 在系統(tǒng)運行過程中變化,可在系統(tǒng)運行時計算緩存的動態(tài)優(yōu)先級。
驅動緩存靜態(tài)優(yōu)先級的設置系統(tǒng)確定多個依次從高到低的管理級別(如 從管理級別1至管理級別5),按使用需要根據(jù)各個設備在系統(tǒng)中的重要性 大小為其確定管理級別,設備在系統(tǒng)中重要性較高的(如管理級別1),為 其分配較高的管理級別;設備在系統(tǒng)中重要性較低的(如管理級別5),為 其分配較低的管理級別。將靜態(tài)優(yōu)先級劃分為與設備管理級別個數(shù)相同的多 個依次從高到低的級別(如從靜態(tài)優(yōu)先級級別1到靜態(tài)優(yōu)先級級別5),對 應設備的管理級別分別為其驅動緩存分配相應的靜態(tài)優(yōu)先級級別。如設置一 管理級別為1的設備其靜態(tài)優(yōu)先級級別為1。
驅動緩存動態(tài)優(yōu)先級的設置驅動設備可劃分為"處理器消耗型"或"輸 入輸出消耗型", 一般情況,處理器消耗型的設備,處理數(shù)據(jù)速度慢,運算 時主要占用處理器資源;輸入輸出消耗型的設備,處理數(shù)據(jù)速度快,運算時主要占用外設資源。為"處理器消耗型"的設備緩存設置相對較低的動態(tài)優(yōu) 先級,為"輸入輸出消耗型"的設備設置相對較高的動態(tài)優(yōu)先級。在緩存被 申請至被釋放的過程中,計算某一固定時間段(系統(tǒng)設定的統(tǒng)計時間段)內 此緩存從申請到釋放的間隔(即被使用時間)的平均時間,將此平均時間經 過加權后作為該驅動緩存的動態(tài)優(yōu)先級??捎靡韵路椒ㄓ嬎憔彺姹徊僮鞯钠?br>
均時間在某一固定時間段內,統(tǒng)計同一類型驅動所有緩存從申請到釋放的 平均時間,并考慮除掉數(shù)據(jù)異常的最高的10°/。和最低的10%。如圖3所示, 設備驅動緩存的動態(tài)優(yōu)先級計算的方法具體包括以下步驟
步驟301,開始計時;
步驟302,申請設備驅動緩存時在緩存的頭部記錄緩存申請的時間;
步驟303,釋放該緩存時,記錄該緩存被使用的時間間隔;
步驟304,判斷是否到達系統(tǒng)設定的統(tǒng)計間隔時間,如果是,進行下一 步,否則,轉到步驟302,
步驟305,統(tǒng)計在系統(tǒng)設定的時間段內此緩存的平均使用時間;
其中,計算平均使用時間時,不包括所有時間間隔數(shù)據(jù)中取值最大的10% 的數(shù)據(jù)和取值最小的10%的數(shù)據(jù)。
步驟306,根據(jù)平均使用時間計算該驅動緩存動態(tài)優(yōu)先級,并記錄在該 驅動緩存的控制塊中;
步驟307,清除所有統(tǒng)計數(shù)據(jù),以便于重新開始統(tǒng)計。
通過優(yōu)先級管理,為下一步驟的緩存動態(tài)平衡提供了依據(jù),通過重要性 規(guī)則和實時性規(guī)則將設備驅動緩存設置為不同的優(yōu)先級。
步驟202,設置驅動緩存的配置最高門限和配置最低門限;
上述配置最高門限和配置最低門限是指可用緩存的空間大小。配置最高 門限和配置最低門限的設置可以避免設備過多或過少的占有系統(tǒng)內存資源。 且不必專門為一個設備配置精確的緩存數(shù)量,只是將配置限制在一個范圍內, 允許其動態(tài)滿足系統(tǒng)設備的實際需要。步驟203,以Slab方式為設備按其最小配置門限申請內存;
步驟204,設置緩存的內存相關屬性,比如是否需要保證與主處理Cache 的一致性;
步驟205,設置驅動緩存控制的緩存回收策略,并登記到系統(tǒng)內存回收 機制中,流程結束。
上述緩存回收策略是系統(tǒng)中已有的機制。如在Linux系統(tǒng)上使用 set一shrinker接口注冊到kswapd線程的內存回收機制中,在系統(tǒng)內存不足時 kswapd線程主動調用注冊的內存回收策略回收空閑驅動緩存。
步驟102,系統(tǒng)運行過程中,設備驅動緩存不足時從系統(tǒng)內存中申請內 存以擴展所述設備驅動緩存,系統(tǒng)內存充足時,為所述設備驅動緩存提供內 存支持;系統(tǒng)內存不足時,將其它設備驅動緩存回收到內存中,為所述設備 驅動緩存提供內存支持。
統(tǒng)一考慮系統(tǒng)中所有的驅動緩存和用戶內存申請需求,系統(tǒng)中各設備ll 存和用戶動態(tài)內存申請都足夠滿足需要,或者可以通過一次驅動緩存擴展?jié)M 足需要的,稱之為平衡狀態(tài),即系統(tǒng)中所有驅動對緩存的要求和用戶動態(tài)內 存申請都能得到滿足;若多個驅動同時出現(xiàn)了緩存不足,或某個驅動和用戶 動態(tài)內存申請同時出現(xiàn)了不足,或動態(tài)內存不足但設備驅動緩存足夠時,必 須在緩存擴展或用戶動態(tài)內存申請中作選擇的情況,稱之為不平衡狀態(tài)。如 果出現(xiàn)了不平衡狀態(tài),則首先保證應用動態(tài)內存申請,然后根據(jù)優(yōu)先級從高 到低依次保證驅動對緩存的需求。
緩存的動態(tài)擴展與采用內存管理方式相關。
某個驅動緩存不足而系統(tǒng)內存資源充足的情況下,該驅動的內存管理主 動發(fā)起動態(tài)內存申請,系統(tǒng)內存向所述驅動緩存支付內存申請后內存總量仍 大于系統(tǒng)設置的保留內存值時,將所述設備驅動申請的內存構造成驅動緩存, 加入到驅動的緩存隊列中,實現(xiàn)驅動緩存的擴展;系統(tǒng)內存向所述驅動緩存 支付內存申請后內存總量小于系統(tǒng)設置的保留內存值時,將其它設備驅動緩 存回收到內存中,回收成功后,將設備驅動申請的內存構造成驅動緩存,加入到驅動的緩存隊列中。在系統(tǒng)內存足夠的情況下,緩存也不能夠無限制擴 展,必須保留部分系統(tǒng)內存,即內存的容量需大于保留內存值。
在多個驅動緩存不足而系統(tǒng)內存資源充足的情況下,各個驅動的內存管 理主動發(fā)起動態(tài)內存申請,系統(tǒng)內存向所述驅動緩存支付內存申請后內存總 量仍大于系統(tǒng)設置的保留內存值時,將申請的內存構造成驅動緩存,加入到
各個驅動的緩存隊列中,實現(xiàn)驅動緩存的擴展;系統(tǒng)內存向所述驅動緩存支
付內存申請后內存總量小于系統(tǒng)設置的保留內存值時,發(fā)起驅動緩存回收流 程,回收成功后,按照優(yōu)先級從高到低的順序對各個驅動緩存進行擴展,即 按照驅動緩存的靜態(tài)優(yōu)先級從高到低的順序對相應的驅動緩存進行擴展,如 果兩個或多個驅動緩存的靜態(tài)優(yōu)先級相同,則按照其的動態(tài)優(yōu)先級從高到低 的順序依次進行擴展。當優(yōu)先級高的緩存擴展完成后,再進行低優(yōu)先級的緩 存擴展。如此,通過統(tǒng)一系統(tǒng)設備驅動緩存的動態(tài)平衡管理,通過優(yōu)先級原 則和實時性原則使系統(tǒng)內的設名資源和內存資源得到了最大程度的利用。
依據(jù)優(yōu)先級規(guī)則進行緩存回收后,被回收的緩存逐漸收縮直到最低的配 置門限,并且回收的空閑內存即時轉為高優(yōu)先級驅動緩存使用,直到高優(yōu)先 級的驅動緩存足夠。
緩存的回收依賴于系統(tǒng)的內存管理方式,在此基礎上以優(yōu)先級規(guī)則進行 選擇回收, 一般不主動回收緩存,只有當系統(tǒng)中出現(xiàn)了內存不足或緩存長時 間閑置的情況時,才依據(jù)優(yōu)先級從低到高的順序掃描所有驅動緩存,先回收 處于閑置狀態(tài)的驅動緩存,然后根據(jù)優(yōu)先級從低到高的順序回收緩存。回收 緩存時,先判斷各個緩存的靜態(tài)優(yōu)先級,按照靜態(tài)優(yōu)先級從低到高的順序依 次回收,如果兩個或多個緩存的靜態(tài)優(yōu)先級相同,則按照動態(tài)優(yōu)先級從低到 高的順序依次回收。需要注意的是,對驅動緩存的配置中有一個最低的配置 門限,即驅動對緩存數(shù)量的最低要求,回收驅動緩存后也不能低于該配置。
如圖4所示,統(tǒng)一系統(tǒng)設備驅動緩存的緩存回收方法包括以下步驟 步驟401,系統(tǒng)內存不足時,發(fā)起緩存回收流程; 步驟402,按優(yōu)先級從低到高掃描各個驅動緩存;步驟403,判斷驅動緩存是否達到其最小配置門限,如果是,轉到步驟 402,否則,進行下一步;
步驟404,按步驟205注冊的驅動緩存回收策略回收該驅動緩存,直到 其容量到達最低配置門限;
步驟405,判斷系統(tǒng)內存是否足夠,如果是,流程結束,否則,轉到步 驟402,再次進行緩存回收。
如圖5所示,統(tǒng)一系統(tǒng)設備驅動緩存的動態(tài)平衡擴展方法包括以下步驟 步驟501,驅動的緩存申請失敗;
步驟502,查詢驅動緩存容量,是否達到允許的最大配置門限,如果是, 轉到步驟508,否則,進行下一步;
步驟503,查詢系統(tǒng)動態(tài)內存總量,是否大于保留內存值,如果是,執(zhí) ^f下一步,否則,轉到步驟506;
步驟504,向系統(tǒng)動態(tài)內存中申請Slab內存塊,并加入到驅動緩存中;
步驟505,更新驅動緩存的配置數(shù)據(jù);流程結束;
步驟506,發(fā)起圖4所示的驅動緩存回收流程,按照優(yōu)先級從低到高的 順序回收其它驅動緩存,以獲取足夠的內存實現(xiàn)下一步的內存擴展;
步驟507,判斷回收是否成功,如果是,轉到步驟504,否則,認為處理 失敗,流程結束。
如圖5所示,不平衡狀態(tài)下系統(tǒng)動態(tài)內存不足且驅動緩存不足時,將用 戶動態(tài)內存申請視同于最高優(yōu)先級的驅動緩存申請,需要優(yōu)先保證,再依次 根據(jù)優(yōu)先級從高到低進行驅動緩存的擴展。如此,通過統(tǒng)一系統(tǒng)設備驅動緩 存的動態(tài)平衡管理,通過優(yōu)先級原則和實時性原則使系統(tǒng)內的設備資源和內 存資源得到了最大程度的利用。
本發(fā)明的方法適用于除Linux系統(tǒng)之外的其它嵌入式系統(tǒng)。由上可知,本發(fā)明所述方法的最大特點是對操作系統(tǒng)內的所有設備緩存 進行統(tǒng)一管理,使各設備驅動使用的緩存可以動態(tài)擴展和相互復用,解決了 傳統(tǒng)驅動緩存管理中內存資源浪費嚴重,配置管理困難等問題。本方法充分 考慮到嵌入式系統(tǒng)中不同設備的重要性和實時性的要求不同,在緩存的設計 中引入了優(yōu)先級動態(tài)平衡的管理方式,保證相對重要的和實時性高的設備驅 動能夠盡可能多的使用系統(tǒng)緩存。這樣,系統(tǒng)處于滿負荷的情況下,優(yōu)先保 證重要的和實時性高的設備能夠快速響應系統(tǒng)請求,而次要的和實時性低的 設備可以延遲處理。其最終結果,可以通過緩存的動態(tài)平tf管理機制,提升 系統(tǒng)設備的綜合處理能力和極限情況下的快速響應能力。
另外,本發(fā)明的方法,可以充分結合操作系統(tǒng)中內存管理和設備管理的 特性,采用動態(tài)平衡,資源復用等技術,提高了系統(tǒng)內設備資源和內存資源 的利用率,對系統(tǒng)的設備性能提升有較好的效果。尤其對于大多數(shù)以設備IO 為主的嵌入式系統(tǒng)來說,可以大大提高系統(tǒng)的性能。
但應當理解的是,本發(fā)明的上述針對具體實施例的描述較為具體,并不 能因此而理解為對本發(fā)明的專利保護范圍的限制,本發(fā)明的保護范圍應以所 附權利要求為準。
權利要求
1. 一種管理設備驅動緩存的方法,其特征在于,對設備驅動緩存進行初始化配置;系統(tǒng)運行過程中,設備驅動緩存不足時從系統(tǒng)內存中申請內存以擴展所述設備驅動緩存。
2、 如權利要求l所述的方法,其特征在于,所述方法還包括系統(tǒng)內存充足時,為所述設備驅動緩存提供內存支持; 系統(tǒng)內存不足時,將其它設備驅動緩存回收到內存中,為所述設備驅動緩存 提供內存支持。
3、 如權利要求l所述的方法,其特征在于,釆用Slab大塊內存管理方式對所述設備驅動緩存進行管理。
4、 如權利要求l所述的方法,其特征在于,對設備驅動緩存進行初始化配置時,為設備驅動緩存設置靜態(tài)優(yōu)先級, 系統(tǒng)確定多個依次從高到低的管理級別,根據(jù)各個設備在系統(tǒng)中的重要性大 小為其確定管理級別,并將靜態(tài)優(yōu)先級劃分為與設備管理級別個數(shù)相同的多 個依次從高到低的級別,對應所述設備的管理級別分別為所述設備驅動緩存 分配相應的靜態(tài)優(yōu)先級。
5、 如權利要求4所述的方法,其特征在于,對設備驅動緩存進行初始化配置時,為設備驅動緩存設置動態(tài)優(yōu)先級, 在設備驅動緩存使用 一次的過程中即從被申請到被釋放過程中,計算系統(tǒng)設 定的統(tǒng)計時間段內所述設備驅動緩存使用一次的平均時間,將此平均時間經 過加權后作為該設備驅動緩存的動態(tài)優(yōu)先級。
6、 如權利要求5所述的方法,其特征在于,一個設備驅動緩存不足而系統(tǒng)內存資源充足時,發(fā)起動態(tài)內存申請,系 統(tǒng)內存向所述設備驅動緩存支付內存申請后內存總量仍大于系統(tǒng)設置的保留 內存值時,將所述設備驅動申請的內存構造成設備驅動緩存,加入到該設備 驅動緩存的隊列中;系統(tǒng)內存向所述設備驅動緩存支付內存申請后內存總量 小于系統(tǒng)設置的保留內存值時,將其它設備驅動緩存回收到內存中,回收成功后,將所述設備驅動申請的內存構造成設備驅動緩存,加入到該設備驅動 緩存的隊列中,完成所述設備驅動緩存的擴展。
7、 如權利要求5所述的方法,其特征在于,多個設備驅動緩存不足而系統(tǒng)內存資源充足時,發(fā)起動態(tài)內存申請,系 統(tǒng)內存向所述各個設備驅動緩存支付內存申請后內存總量仍大于系統(tǒng)設置的 保留內存值時,將所述各個設備驅動申請的內存構造成設備驅動緩存,加入到各個設備驅動的緩存隊列中;系統(tǒng)內存向所述設備驅動緩存支付內存申請 后內存總量小于系統(tǒng)設置的保留內存值時,將其它設備驅動緩存回收到內存 中,回收成功后,將所述設備驅動申請的內存構造成設備驅動緩存,加入到 各個設備驅動緩存的隊列中,完成所述多個設備驅動緩存的擴展。
8、 如權利要求7所述的方法,其特征在于,將其它設備驅動緩存回收到內存中后,按照設備驅動緩存優(yōu)先級從高到 低的順序對所述多個設備驅動緩存進行擴展,即按照設備驅動緩存的靜態(tài)優(yōu) 先級從高到低的順序對相應的設備驅動緩存進行擴展,如果兩個或多個設備驅動緩存的靜態(tài)優(yōu)先級相同,則按照其動態(tài)優(yōu)先級^v高到低的順序依次進行擴展。
9、 如權利要求6或7所述的方法,其特征在于,將其它設備驅動緩存回收到內存中時,先回收處于閑置狀態(tài)的設備驅動 緩存,然后按照設備驅動緩存的靜態(tài)優(yōu)先級從低到高的順序依次回收其緩存, 如果兩個或多個設備驅動緩存的靜態(tài)優(yōu)先級相同,則按照設備驅動緩存的動 態(tài)優(yōu)先級從低到高的順序依次回收其緩存。
10、 如權利要求6或7所述的方法,其特征在于,對設備驅動緩存進行初始化配置時,為各個設備驅動緩存設置最高門限, 設備驅動緩存獲得申請后的容量不大于所述最高門限設定的值。
11、 如權利要求6或7所述的方法,其特征在于,對設備驅動緩存進行初始化配置時,為各個設備驅動緩存設置最低門限, 將設備驅動緩存回收到內存中后,設備驅動緩存的容量不小于所述最低門限 設定的值。
全文摘要
本發(fā)明公開了一種管理設備驅動緩存的方法,包括對設備驅動緩存進行初始化配置;系統(tǒng)運行過程中,設備驅動緩存不足時從系統(tǒng)內存中申請內存以擴展所述設備驅動緩存。采用本發(fā)明的方法,統(tǒng)一管理系統(tǒng)中所有的設備驅動緩存,支持設備緩存的動態(tài)擴展和不同設備緩存間的復用,使系統(tǒng)中的內存資源能夠充分利用,提高系統(tǒng)設備的數(shù)據(jù)吞吐效率。
文檔編號G06F12/02GK101286143SQ20081010014
公開日2008年10月15日 申請日期2008年5月26日 優(yōu)先權日2008年5月26日
發(fā)明者忱 劉, 吳應祥, 周元慶, 李忠雷 申請人:中興通訊股份有限公司