本發明專利技術提出一種測量多任務操作系統任務CPU占用率的方法,包含如下步驟:(a)創建一個高優先級定時統計任務,對所有的統計量清零,設定統計間隔;(b)記錄中斷處理例程入口以及出口的時間點,二者差值為中斷處理例程一次執行時長,對其進行累加;(c)任務切換時,分別記錄切換入任務的任務開始時間點和切換出任務的任務結束時間點,同一任務的任務結束時間點和任務開始時間點之差,再減去該任務執行過程中所包含的中斷處理例程執行時長,即為該任務的一次執行時長,對其進行累加;(d)統計間隔到時,將累加得到各任務的總執行時長和中斷處理例程的總執行時長相加,得到該統計間隔內系統的總執行時長,從而計算各任務和中斷的CPU占用率。
【技術實現步驟摘要】
本專利技術涉及多任務操作系統,特別涉及一種測量多任務操作系統任務CPU占用率的方法。
技術介紹
在計算機軟件系統中,基本上都采用了某種形式的多任務操作系統,所 有的應用和功能都是通過任務承載,并在多任務協作下完成的。由于系統應 用日益復雜,多任務操作系統的任務數越來越多,任務的運行狀態在多任務的協作中起著越來越重要的作用,而任務的CPU占用率是任務運行狀態的 一個很重要組成部分。如果可以實時精確測量系統中各個任務的CPU占用率,則可用于確定整個系統的設計是否是正常的,各個任務的設計是否是正 確的、是否存在執行效率的問題。在目前的操作系統中,對任務CPU占用率的測量方法有兩類1. 專利號CN02132247.3中描述的硬件測量方法。該方法描述了一種用于測量實時系統中任務的CPU占用率的裝置,包 括用于在標志位中注冊待測任務的任務注冊單元;用于在設置的標志位中 選擇具有高優先級的標志位的地址的任務選擇模塊;用于處理由任務選擇模 塊輸入的位地址并生成計數信號的計數信號發生單元;用于根據計數信號來 計數任務執行時長的計數單元;以及用于在任務執行時設定標志位并根據由 計數單元生成的計數值計算執行次數和任務的CPU占用率的CPU。該專利 是使用硬件計數器來計時的,應該是實時精確的,但沒有說明計時精度。這 種方法存在的缺陷主要有需要有專利的硬件裝置,如果配置,則將提高成 本。2. 軟件方法,比如嵌入式操作系統VXWORKS提供的SPY工具。該工具在系統中使用了定時間隔的硬件輔助時鐘中斷,中斷到達時即進行采樣;額外增加一個高優先級的任務,用于上報采樣后的統計數據。這個方法 有兩個缺陷該方法認為,當采樣時間點到時,就認為當前運行的任務運行了一個采 樣間隔。 一般來說,在一個采樣間隔內,可發生多次任務切換,即多個任務 都運行過,但采樣的做法只會認為采樣時的當前任務運行過。特別是如果采 樣時間點處于操作系統內核任務切換過程剛結束不久時,則當前任務運行到 這個采樣時間點的實際運行的時長是遠小于一個采樣間隔,而該方法也只能 認為當前任務運行了一個采樣間隔。在這種情況下,任務的CPU占用率值 與其它情況下的值相差很大。該方法只有在一次采樣間隔內基本不發生任務 切換才是較準確的,而這4叉僅是假設,實際運行的系統,特別是復雜的電信 級系統,常常不是如此。如果要更準確地檢測,則必須減少采樣間隔,即提高硬件輔助時鐘率。 但這樣會使檢測方法本身所占用的系統開銷增大,影響系統的應用功能,造 成矛盾。故該方法默認配置的硬件輔助時鐘中斷僅為10ms,如果是性能較 強的CPU,可人為改為lms。該方法的計時精度為毫秒級,精度不足。該方法在不同的情況下,存在的誤差是不同的,有時還存在很大的誤差, 并且計時精度不足。因而一般用于筒單的調試,而不用于實際系統運行。由上述可知,現有方法存在不少缺點有待改進。
技術實現思路
本專利技術的目的是提供一種實現多任務操作系統任務CPU占用率的實時精確測量的方法。本專利技術提出一種測量多任務操作系統任務CPU占用率的方法,包含如 下步驟(a) 創建一個定時統計任務,其優先級高于要統計的任務。對所有的 統計量清零,設定一統計間隔,啟動統計流程;(b) 記錄任務到中斷處理例程的入口以及中斷處理例程到任務的出口 的時間點,二者差值為中斷處理例程一次執行時長,對其進行累加;(c) 發生任務切換時,對切換入的任務,記錄此次調度的任務開始時 間點,對切換出的任務,記錄此次調度的任務結束時間點,同一任務的任務 結束時間點和任務開始時間點之差,再減去該任務執行過程中所包含的中斷 處理例程執行時長,即為該任務的一次執行時長,對其進行累加;(d) 設定的統計間隔到時,將累加得到各任務的總執行時長和中斷處 理例程的總執行時長相加,得到該統計間隔內系統的總執行時長,則各任務 的CPU占用率=該任務總執行時長/系統的總執行時長,中斷的CPU占用率 -中斷處理例程總執行時長/系統的總執行時長。在步驟(a)中,需要結合具體操作系統的任務切換過程掛接一個任務 切換鉤子,該任務切換鉤子執行步驟(c)中流程。所述流程中時間點的記錄是通過讀取硬件計時器計時值得到的,所述統 計間隔不得大于硬件定時器的最大計時長度。所述硬件計時器的精度等于或 高于微秒級。所述統計變量為4字節長。所述步驟(b)是在所有中斷處理例程的共同入口的開始處讀取硬件計 時器值為Tib,結束處讀取硬件計時器值為Tie,將其差值Tie-Tib即為中斷 處理例程的此次執行時長Di,在一次任務執行過程中對Di進行累計Dits = Dits + Di, Dits即為在一次任務執行過程中的中斷處理例程執行時長。Dits是在任務切換鉤子中清零的,即其表示的是在一次任務執行過程中的 中斷處理例程執行時長,而從上次的統計點到本次的調度結束點之間,中斷 處理例程的累計執行時長Dit = Dit + Dits。所述步驟(d)中統計完成后,對所有統計量清零。與現有技術相比,本專利技術采用的硬件計時器在目前的硬件配置上均具 備,且為微秒級以上,不需要額外的硬件設備,具有成本節省,計時精度高 的優點;另外,設定較短的統計間隔時,可以實時的對不同的任務和中斷, 進行精確的CPU占用率測量。由于本專利技術不是一種采樣方法,而是在任務切換時,記錄切換出任務的運行時長,記錄切換入任務開始運行的時間點。 因此可以準確地測量任務的運行時長。附圖說明圖1是本專利技術實施例用于測量多任務操作系統任務CPU占用率裝置的 結構方框圖;圖2是本專利技術實施例系統任務運行示意圖。具體實施方式下面結合附圖和實施例對本專利技術作進一步詳細的說明。3G系統由多個嵌入式系統組成,這里以其中一個單板嵌入式系統為例 說明,這個系統使用PPC755 CPU和VXWORKS操作系統。圖1是本專利技術實施例用于測量多任務操作系統任務CPU占用率的裝置 的結構方框圖。包括硬件計時器101, PPC755CPU和VXWORKS搡作系統 102,中斷計數器103和PC顯示設備104。本實例中硬件計時器是PPC755 CPU BSP提供的納秒級的硬件計時器, PPC755 CPU所有中斷的共同入口是500號異常向量處理例程,所有的統計 量都是4字節長的變量。本專利技術提出的多任務操作系統任務CPU占用率的測量方法中,首先假 定系統有X個任務,編號為1至X, m, n分別為其中的某一個任務編號。 系統運行如圖2所示。其中,任務和中斷所對應的橫線表示占用CPU運行時長,由于在進入 中斷服務時并不產生任務切換,則任務的運行時長包含了中斷的運行時長, 每個橫線都有開始和結束的時間點記錄,具體詳見下面的步驟。本專利技術提出的方法其主要步驟如下第一步使用VXWORKS的接口掛接一個任務切換鉤子。創建一個優 先級30的定時統計任務,統計間隔設為20s,該任務剛啟動時,對所有的記 錄和統計量做清零操作,啟動統計流程。第二步在所有中斷處理例;艮的共同入口,即500號異常向量處理例程 的開始處讀取硬件計時器值為Tib,結束處讀取^^件計時器值為Tie,其差 值Tie-Tib即為中斷處理例程的此次執行時長Di,這個時長也可能包含了中 斷處理例程嵌套了其它的中斷處理例程的情況,本實施例只記錄任務到中斷 處理例程的本文檔來自技高網...
【技術保護點】
一種測量多任務操作系統任務CPU占用率的方法,其特征在于包含如下步驟:(a)創建一個定時統計任務,其優先級高于要統計的任務。對所有的統計量清零,設定一統計間隔,啟動統計流程;(b)記錄任務到中斷處理例程的入口以及中斷處理例程 到任務的出口的時間點,二者差值為中斷處理例程一次執行時長,對其進行累加;(c)發生任務切換時,對切換入的任務,記錄此次調度的任務開始時間點,對切換出的任務,記錄此次調度的任務結束時間點,同一任務的任務結束時間點和任務開始時間點之差, 再減去該任務執行過程中所包含的中斷處理例程執行時長,即為該任務的一次執行時長,對其進行累加;(d)設定的統計間隔到時,將累加得到各任務的總執行時長和中斷處理例程的總執行時長相加,得到該統計間隔內系統的總執行時長,則各任務的CPU占用 率=該任務總執行時長/系統的總執行時長,中斷的CPU占用率=中斷處理例程總執行時長/系統的總執行時長。
【技術特征摘要】
【專利技術屬性】
技術研發人員:傅仁武,
申請(專利權)人:中興通訊股份有限公司,
類型:發明
國別省市:94[中國|深圳]
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。