国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種檢測實時操作系統(tǒng)cpu占用率的方法

      文檔序號:6391713閱讀:280來源:國知局
      專利名稱:一種檢測實時操作系統(tǒng)cpu占用率的方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種采用任務(wù)調(diào)度機(jī)制的實時操作系統(tǒng)進(jìn)行通訊軟件開發(fā)的領(lǐng)域,尤其涉及一種基于實時操作系統(tǒng)的CPU占用率的檢測方法。
      背景技術(shù)
      在嵌入式軟件開發(fā)過程中,當(dāng)多個任務(wù)運行在一塊目標(biāo)板上時,各個任務(wù)需要根據(jù)一定的規(guī)則占用CPU運行,因此通過對CPU占用率的檢測,可以檢測出系統(tǒng)在某一時間段內(nèi)的忙閑情況,從而調(diào)整任務(wù)自身的屬性、減少任務(wù)間的相互影響,最終使系統(tǒng)達(dá)到較為理想的吞吐量值;而且當(dāng)系統(tǒng)發(fā)生某些故障時,通過對CPU占用率的檢測也能達(dá)到查錯的目的。
      目前普遍使用的CPU占用率檢測方法是與實時操作系統(tǒng)密切結(jié)合的統(tǒng)計任務(wù)執(zhí)行次數(shù)法,此方法要對任務(wù)進(jìn)行運行計數(shù),而要對任務(wù)進(jìn)行運行計數(shù)就需要實時操作系統(tǒng)內(nèi)核提供任務(wù)切換時的鉤子函數(shù),由于實時操作系統(tǒng)的實現(xiàn)的多樣性,如果它沒有提供這樣的切入內(nèi)核的方法,就無法實現(xiàn)CPU占用率的統(tǒng)計。
      現(xiàn)有技術(shù)還有一種方法是利用實時操作系統(tǒng)自身提供的CPU占用率檢測方法,如vxworks系統(tǒng)提供的spy功能。但實踐中表明使用該功能會在系統(tǒng)中額外增加一個優(yōu)先級非常高的任務(wù),同時其在顯示指定時間段內(nèi)系統(tǒng)執(zhí)行情況的信息量過多,而且比較復(fù)雜難懂,其中包含了中斷和內(nèi)核切換的時間數(shù)統(tǒng)計等數(shù)值。并且當(dāng)統(tǒng)計的時間點正處于內(nèi)核切換過程中時,所檢測到的CPU占用率值與其它情況下的值相差很大,而應(yīng)用者一般往往只需要知道應(yīng)用本身的CPU占用率情況。因此現(xiàn)有技術(shù)存在上述缺陷,有待于進(jìn)一步改進(jìn)。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于提供一種檢測實時操作系統(tǒng)CPU占用率的方法,針對目前廣泛應(yīng)用于嵌入式開發(fā)的各種實時操作系統(tǒng)環(huán)境,提出一種基于該環(huán)境的CPU占用率檢測方法,該方法不影響實時操作系統(tǒng)自身的運行,其通過計算出具體CPU的處理速度就可以實現(xiàn)檢測CPU的占用率。
      本發(fā)明的技術(shù)方案如下一種檢測實時操作系統(tǒng)CPU占用率的方法,其包括以下步驟a)在系統(tǒng)啟動時初始化相關(guān)的變量;b)進(jìn)行CPU處理速度檢測,獲得基準(zhǔn)值;c)啟動空閑任務(wù)開始運行無限循環(huán),并記錄循環(huán)次數(shù);d)在定時任務(wù)時間到時,檢查是否到了所述CPU占用率的計算點,沒有則執(zhí)行其他事務(wù);e)到所述CPU占用率計算點時,根據(jù)下述公式CPU占用率=1000-((總循環(huán)執(zhí)行時間*空閑任務(wù)執(zhí)行循環(huán)次數(shù))/(總循環(huán)次數(shù)*統(tǒng)計時間))*1000計算出所述CPU占用率。
      所述的方法,其中,所述方法還包括所述系統(tǒng)在執(zhí)行循環(huán)時增加保護(hù)機(jī)制,進(jìn)行關(guān)中斷;在循環(huán)次數(shù)到的判斷前開中斷,取消保護(hù),以使系統(tǒng)時鐘中斷得以處理。
      所述的方法,其中,所述CPU占用率值可以通過與歷史值的比較,獲得系統(tǒng)運行至今的CPU占用率峰值。
      所述的方法,其中,所述系統(tǒng)還設(shè)置有一輸出CPU占用率情況的時間,在該時間到時將所述CPU占用率信息值輸出到對應(yīng)顯示設(shè)備上。
      所述的方法,其中,所述系統(tǒng)啟動時初始化相關(guān)的變量包括總循環(huán)時間變量、空閑任務(wù)循環(huán)計數(shù)變量、統(tǒng)計時間變量、當(dāng)前CPU占用率值變量和CPU占用率峰值變量。
      本發(fā)明所提供的一種檢測實時操作系統(tǒng)CPU占用率的方法,由于使用者只需要在第一次時根據(jù)需要調(diào)整好總循環(huán)次數(shù)的值,并在系統(tǒng)的定時任務(wù)中添加計算處理就可以了,不需要任何其他復(fù)雜的額外的操作;而且本發(fā)明方法實現(xiàn)的代碼非常簡短,通用性強(qiáng),適用于各種采用任務(wù)調(diào)度的實時操作系統(tǒng);本發(fā)明方法作為一個獨立的單元,可隨時加入系統(tǒng)或從系統(tǒng)中剝離,其計算過程對整個系統(tǒng)性能的影響較小。本發(fā)明方法具有簡單、靈活性高的優(yōu)點。


      圖1a為本發(fā)明方法的系統(tǒng)初始化時的檢測原理示意圖;圖1b為本發(fā)明方法系統(tǒng)運行中的檢測原理圖;圖2為本發(fā)明方法的主流程示意圖;圖3為本發(fā)明方法的CPU處理速度計算流程圖;圖4為本發(fā)明方法的空閑任務(wù)執(zhí)行流程示意圖;圖5為本發(fā)明方法的CPU占用率計算流程示意圖。
      具體實施例方式
      下面結(jié)合附圖,通過具體實施例對本發(fā)明方法加以詳細(xì)描述首先說明使用本發(fā)明方法檢測CPU占用率的原理。
      在實時操作系統(tǒng)中,單位時間內(nèi)的CPU處理能力是一定的,根據(jù)這點就可以在系統(tǒng)初始化的最初位置對CPU處理速度進(jìn)行測定,并通過一個衡量值來表示之。如圖1a所示的,計算當(dāng)時CPU處理指定總循環(huán)次數(shù)的有限次數(shù)循環(huán)所使用的時間,即執(zhí)行了指定總循環(huán)次數(shù)的有限次數(shù)循環(huán),得到總循環(huán)執(zhí)行時間T,該時間的衡量單位就是該實時操作系統(tǒng)的計時單位(時鐘節(jié)拍),也即計時基準(zhǔn)值。總循環(huán)次數(shù)/總循環(huán)執(zhí)行時間就可以表示單位時間內(nèi)CPU全部忙碌時的處理速度,且表明在總循環(huán)執(zhí)行時間內(nèi),CPU最多處理總循環(huán)次數(shù)次循環(huán)。一般情況下,要求得到的總循環(huán)執(zhí)行時間為一秒,并根據(jù)這個要求來設(shè)置總循環(huán)次數(shù)的值。對于不同CPU,由于其處理速度的不同,總循環(huán)次數(shù)的值應(yīng)相應(yīng)改變。CPU處理速度越快,該值就越大。
      實時操作系統(tǒng)中的空閑任務(wù)是在CPU相對較閑時被調(diào)度運行的。在該任務(wù)中可統(tǒng)計無限循環(huán)執(zhí)行的次數(shù)。這樣,在定時任務(wù)近似于總循環(huán)執(zhí)行時間的CPU占用率統(tǒng)計時間,如圖1b中的所示的時間T1,到時,空閑任務(wù)此時執(zhí)行的循環(huán)次數(shù)的值就表明了該任務(wù)在統(tǒng)計時間段內(nèi)的執(zhí)行比例,如圖1b所示。通過比例式(總循環(huán)次數(shù)*CPU空閑比例)/總循環(huán)執(zhí)行時間=空閑任務(wù)執(zhí)行循環(huán)次數(shù)/統(tǒng)計時間(式1)的計算,就可以得到在統(tǒng)計時間內(nèi)CPU空閑的比例為CPU空閑比例=(總循環(huán)執(zhí)行時間*空閑任務(wù)執(zhí)行循環(huán)次數(shù))/(總循環(huán)次數(shù)*統(tǒng)計時間)如果設(shè)統(tǒng)計時間內(nèi)CPU運行狀態(tài)為1,則CPU忙碌的比例即為CPU忙碌比例=1-CPU空閑比例最后就可以近似的計算出CPU占用率為CPU占用率=1000-((總循環(huán)執(zhí)行時間*空閑任務(wù)執(zhí)行循環(huán)次數(shù))/(總循環(huán)次數(shù)*統(tǒng)計時間))*1000(式2)此公式中為了減小誤差和基于通訊用CPU的特性(如有些CPU沒有浮點運算功能)考慮,將得到的值放大了1000倍,即保留了計算結(jié)果值的4位有效位。
      通過上面的描述,可以看出為了使計算結(jié)果更精確,就必須使總循環(huán)執(zhí)行時間的值盡量與統(tǒng)計時間的值接近。因此根據(jù)CPU的不同,需要在系統(tǒng)調(diào)試初期對總循環(huán)次數(shù)進(jìn)行校正。
      本發(fā)明方法的主要流程圖如圖2所示,由于實時操作系統(tǒng)并發(fā)處理的特殊性,此流程圖顯示的是個不連續(xù)的處理過程。
      首先系統(tǒng)啟動運行后,在初始化階段,對計算CPU占用率要使用的總循環(huán)時間變量、空閑任務(wù)循環(huán)計數(shù)變量、統(tǒng)計時間變量、當(dāng)前CPU占用率值變量和CPU占用率峰值變量等變量進(jìn)行初始化;然后計算CPU處理速度,并保存總循環(huán)時間;啟動空閑任務(wù)。之后,將控制權(quán)交給實時操作系統(tǒng),由操作系統(tǒng)調(diào)度優(yōu)先級較高的任務(wù)運行。當(dāng)系統(tǒng)空閑時,會運行優(yōu)先級最低的空閑任務(wù),執(zhí)行無限循環(huán)計數(shù)。當(dāng)系統(tǒng)時鐘定時到時,會運行定時任務(wù),如果CPU占用率的統(tǒng)計時間到了,就進(jìn)行CPU占用率的計算。
      以下說明主要步驟的流程圖1、計算CPU處理速度此時需要注意的是系統(tǒng)可能由于受到外界的干擾,如中斷等,造成計算的結(jié)果異常。此時必須在執(zhí)行循環(huán)時增加保護(hù)機(jī)制,如關(guān)中斷;在循環(huán)次數(shù)到的判斷前開中斷,取消保護(hù),以使系統(tǒng)時鐘中斷得以處理。這樣即可以保證前后兩次記錄系統(tǒng)時間的正確性,也可以保證整個循環(huán)計數(shù)的過程不受外界的干擾。
      如圖3所示,為本發(fā)明方法的所述CPU處理過程,首先循環(huán)計數(shù)清零,開始循環(huán)計數(shù),并記錄當(dāng)前系統(tǒng)時間;然后開始執(zhí)行循環(huán),每循環(huán)一次,所述循環(huán)計數(shù)加1,直至預(yù)定循環(huán)次數(shù)到;結(jié)束循環(huán),并記錄結(jié)束時的系統(tǒng)時間;將先后得到的系統(tǒng)時間相減得到循環(huán)所用時間,并換算為以時鐘節(jié)拍為單位的時間值;最后對該時間值根據(jù)系統(tǒng)開銷進(jìn)行修正后得到總循環(huán)執(zhí)行時間。
      所述根據(jù)系統(tǒng)開銷修正得到的總循環(huán)執(zhí)行時間,是指在整個計算CPU處理速度時記錄系統(tǒng)時間、開關(guān)中斷保護(hù)等的額外處理所占用的時間。修正的方法是在得到的總循環(huán)執(zhí)行時間上減去一個值,該值需要根據(jù)實時操作系統(tǒng)的系統(tǒng)調(diào)用處理時間來定,具體可以參考該實時操作系統(tǒng)的手冊。
      2、啟動空閑任務(wù)在空閑任務(wù)中執(zhí)行的無限循環(huán),其循環(huán)方式必須與計算CPU處理速度時的循環(huán)方式一致,以保證得到的循環(huán)次數(shù)值的可比性。如圖4所示的,空閑任務(wù)時執(zhí)行無限循環(huán)直至中斷開或高優(yōu)先級的任務(wù)搶占CPU。
      3、計算CPU占用率系統(tǒng)定時任務(wù)的定時精度是根據(jù)系統(tǒng)應(yīng)用的需要而定的,在實時軟件開發(fā)應(yīng)用中一般設(shè)置為10毫秒到100毫秒之間,太快則所述CPU負(fù)擔(dān)過重,太慢則不符合快速響應(yīng)的要求。這樣,CPU占用率的統(tǒng)計時間就一般是該定時精度的倍數(shù),通過在定時任務(wù)中計數(shù)就可以得到CPU占用率的計算點,也就是統(tǒng)計時間。
      如圖5所示的,本發(fā)明方法對CPU占用率的計算流程為系統(tǒng)定時任務(wù)定時到時,計算時間計數(shù)加1;然后對計算時間進(jìn)行檢測是否到時,如未到,則等待下一次系統(tǒng)定時認(rèn)為定時到;如到,則進(jìn)行計算所述CPU的占用率,然后可以通過該值與歷史值的比較,獲得系統(tǒng)運行至今的CPU占用率峰值。
      為了滿足系統(tǒng)調(diào)試等的需要,可以設(shè)置一個輸出CPU占用率情況的時間,在該時間到時將所述CPU占用率信息值輸出到對應(yīng)顯示設(shè)備上,如打印機(jī)或顯示屏。
      如果有循環(huán)計算的要求的話,可以在得到當(dāng)前CPU占用率值和峰值后,將空閑任務(wù)循環(huán)計數(shù)變量、統(tǒng)計時間變量清零,這樣就可以在下次定時任務(wù)時間到時,按圖5的流程進(jìn)行下一輪的計算。
      應(yīng)當(dāng)理解的是,本發(fā)明所述的檢測實時操作系統(tǒng)CPU占用率的方法,在上述具體實施例中進(jìn)行了詳細(xì)描述,然而對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)本發(fā)明的技術(shù)方案及其構(gòu)思進(jìn)行各種可能的改進(jìn)或替換,而所有這些改進(jìn)或替換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。
      權(quán)利要求
      1.一種檢測實時操作系統(tǒng)CPU占用率的方法,其包括以下步驟a)在系統(tǒng)啟動時初始化相關(guān)的變量;b)進(jìn)行CPU處理速度檢測,獲得基準(zhǔn)值;c)啟動空閑任務(wù)開始運行無限循環(huán),并記錄循環(huán)次數(shù);d)在定時任務(wù)時間到時,檢查是否到了所述CPU占用率的計算點,沒有則執(zhí)行其他事務(wù);e)到所述CPU占用率計算點時,根據(jù)下述公式CPU占用率=1000-((總循環(huán)執(zhí)行時間*空閑任務(wù)執(zhí)行循環(huán)次數(shù))/(總循環(huán)次數(shù)*統(tǒng)計時間))*1000,計算出所述CPU占用率。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括所述系統(tǒng)在執(zhí)行循環(huán)時增加保護(hù)機(jī)制,進(jìn)行關(guān)中斷;在循環(huán)次數(shù)到的判斷前開中斷,取消保護(hù),以使系統(tǒng)時鐘中斷得以處理。
      3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述CPU占用率值可以通過與歷史值的比較,獲得系統(tǒng)運行至今的CPU占用率峰值。
      4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述系統(tǒng)還設(shè)置有一輸出CPU占用率情況的時間,在該時間到時將所述CPU占用率信息值輸出到對應(yīng)顯示設(shè)備上。
      5.根據(jù)權(quán)利要求1~4任一權(quán)項所述的方法,其特征在于,所述系統(tǒng)啟動時初始化相關(guān)的變量包括總循環(huán)時間變量、空閑任務(wù)循環(huán)計數(shù)變量、統(tǒng)計時間變量、當(dāng)前CPU占用率值變量和CPU占用率峰值變量。
      全文摘要
      本發(fā)明的一種檢測實時操作系統(tǒng)CPU占用率的方法,其包括以下步驟在系統(tǒng)啟動時初始化相關(guān)的變量;進(jìn)行CPU處理速度檢測,獲得基準(zhǔn)值;啟動空閑任務(wù)開始運行無限循環(huán),并記錄循環(huán)次數(shù);在定時任務(wù)時間到時,檢查是否到了所述CPU占用率的計算點,沒有則執(zhí)行其他事務(wù);到所述CPU占用率計算點時,根據(jù)下述公式進(jìn)行測算1000-((總循環(huán)執(zhí)行時間*空閑任務(wù)執(zhí)行循環(huán)次數(shù))/(總循環(huán)次數(shù)*統(tǒng)計時間)) *1000計算出所述CPU占用率。本發(fā)明方法不需要任何其他復(fù)雜的額外的操作,實現(xiàn)的代碼非常簡短,通用性強(qiáng),并作為一個獨立的單元,可隨時加入系統(tǒng)或從系統(tǒng)中剝離,簡單易懂、易用、靈活性高。
      文檔編號G06F11/34GK1664789SQ200410026409
      公開日2005年9月7日 申請日期2004年3月4日 優(yōu)先權(quán)日2004年3月4日
      發(fā)明者邱靜, 陳愛民 申請人:中興通訊股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1