版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、μCOSII軟件定時器管理算法分析及改進摘要:軟件定時器是常用于內(nèi)核設(shè)計和應(yīng)用程序設(shè)計的一項基礎(chǔ)軟件措施。本文對μCOSIIV2.86中新增的用于管理軟件定時器的定時器輪進行了重新規(guī)劃,并對處理算法進行了重新設(shè)計,有效提高了軟件定時器的到期命中率,驗證表明,新改進的算法在同等負載下可降低CPU的負載率約9%左右。1、概述軟件定時器是一種軟件措施,通過它可以使一項特定的任務(wù)在給定的時間段后被執(zhí)行。軟件定時器廣泛地應(yīng)用于內(nèi)核設(shè)計和應(yīng)用程序設(shè)
2、計中,例如,一個進程使用軟件定時器等待其他的進程完成特定的動作以使任務(wù)間的操作同步等,因此,對軟件定時器的高效實現(xiàn)對提升系統(tǒng)的響應(yīng)效率是至關(guān)重要的。作為一種基礎(chǔ)的軟件措施,μCOSII[1]的V2.86版本中增加了對軟件定時器的支持。使用μCOSII提供的軟件定時器,應(yīng)用程序可以方便地完成特定的定時任務(wù)。本文對μCOSII的軟件定時器的實現(xiàn)機制進行簡要分析,然后提出了對μCOSII的軟件定時器的實現(xiàn)進行改進的方法。2、μCOSII軟件定
3、時器的實現(xiàn)機制及算法分析2.1μCOSII軟件定時器的核心數(shù)據(jù)結(jié)構(gòu)μCOSII實現(xiàn)軟件定時器的核心數(shù)據(jù)結(jié)構(gòu)是OS_TMR,其定義如下:typedefstructos_tmrINT8UOSTmrType應(yīng)該設(shè)置為OS_TMR_TYPEOS_TMR_CALLBACKOSTmrCallback指定時間到達時要執(zhí)行的回調(diào)函數(shù)voidOSTmrCallbackArg傳遞給回調(diào)函數(shù)的參數(shù)voidOSTmrNext軟件定時器鏈表管理指針voidOST
4、mrPrevINT32UOSTmrMatch當OSTmrTime==OSTmrMatch時表示定時器時間到INT32UOSTmrDly對于周期性定時器,再次啟動定時器前的延時時間INT32UOSTmrPeriod對于周期性定時器,時鐘周期的長度INT8UOSTmrOpt選項(如OS_TMR_OPT_xxx等)INT8UOSTmrState定時器的狀態(tài)OS_TMR每個OS_TMR結(jié)構(gòu)的實例定義了一個軟件定時器,多個軟件定時器通過結(jié)構(gòu)中的O
5、STmrNext和OSTmrPrev構(gòu)成一個定時器雙向鏈表。為了提高對軟件定時器的管理效率,μCOSII引入了“定時器輪”數(shù)據(jù)結(jié)構(gòu),所謂定時器輪,是將定時器實例中的OSTmrMatch域的值參照某一個預(yù)先設(shè)計的數(shù)(稱為輪數(shù))進行求余運算,并根據(jù)求余結(jié)果將定時器進行分組以改善對到期定時器的命中率。定時器輪數(shù)缺省配置如下:typedefstructos_tmr_wheelOS_TMROSTmrFirst指向第一定時器的指針I(yè)NT16UOST
6、mrEntries該定時器輪中的定時器項數(shù)OS_TMR_WHEEL缺省配置下,μCOSII定義的輪數(shù)為8,因此,μCOSII的定時器輪為如下的一個數(shù)組:OS_TMR_WHEELOSTmrWheelTbl[8]理算法效率進行一個簡單的分析:在下一次時鐘滴答,也就是時鐘滴答6時,沒有定時器到期,而f循環(huán)必須對每個時鐘進行檢查,類似的情況還發(fā)生在自時鐘到達10以后的多個檢查中。根據(jù)系統(tǒng)中的定時器的數(shù)量,這種無謂的檢查將占用大量的CPU時間。3
7、、對μCOSII的定時器管理算法的改進3.1改進以后的數(shù)據(jù)結(jié)構(gòu)設(shè)計對μCOSII的定時器管理算法進行改進的主要目標是:要么不對定時器進行檢查,要檢查則一定有定時器到期[2]。為了達到這個設(shè)計目標,需要對μCOSII的定時器輪進行重新設(shè)計。采用同樣的OS_TMR數(shù)據(jù)結(jié)構(gòu)和OS_TMR_WHEEL定時器輪結(jié)構(gòu),但是,對定時器輪的每一個項的功能進行重新規(guī)劃:(1)定時器輪的第1項到第7項,即OSTmrWheelTbl[1]到OSTmrWhee
8、lTbl[7]的定時器輪,分別表示將在此后的第1個時鐘滴答到第7個時鐘滴答將到期的定時器項,此時,每個定時器結(jié)構(gòu)的OSTmrMatch中的值表示需要經(jīng)過多少個時鐘滴答該定時器項將到期。在同一個定時器輪中的多個定時器項通過OSTmrNext和OSTmrPrev指針構(gòu)成雙向鏈表。(2)定時器輪的第0項,表示將至少需要經(jīng)過8個時鐘滴答才到期的定時器,并通過OSTmrNext和OSTmrPrev指針將這些定時器構(gòu)成雙向鏈表。針對上面的同一個例子
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- ucos-ii軟件定時器管理算法
- ucos-ii內(nèi)核架構(gòu)解析
- ucos-ii中斷服務(wù)程序代碼分析
- 基于arm9的ucos-ii移植
- ucos-ii移植arm的讀書筆記
- 在51系列單片機上移植ucos-ii
- 一步一步教你使用ucos-ii
- 基于ucos-ii的時鐘設(shè)計實驗報告
- ucos-ii操作系統(tǒng)練習(xí)題
- hg-ii調(diào)光數(shù)顯暗室定時器
- 基于uCOS-II的無線居民抄表系統(tǒng)設(shè)計.pdf
- 定時器定時1秒
- 定時器85044
- js定時器
- 定時器84516
- 集成定時器
- 定時器85190
- 定時器84631
- vb定時器
- 定時器84659
評論
0/150
提交評論