- 相關推薦
通過任務分割提高嵌入式系統(tǒng)的實時性
摘要:分析長任務對嵌入式系統(tǒng)實時性的影響,在此基礎上提出任務分割是提高嵌入式系統(tǒng)實時性的一種有效途徑;總結(jié)長任務分割的方法,給出一個通過任務分割提高嵌入式系統(tǒng)實時性的實例。引言
隨著工業(yè)的飛速發(fā)展,人們對系統(tǒng)實時性的要求越來越高。計算機技術的進步客觀上也為進一步提高實時性提供了可能。因此近年來,嵌入式實時系統(tǒng)的研究已經(jīng)成為單片同應用領域的又一大熱點,實編排軟件也越來越多,有商業(yè)軟件,也有免費的代碼。然而影響系統(tǒng)實時性的因素很多,有硬件,也有軟件的。這就決定了提高系統(tǒng)的實時性并不是一件十分容易的事情,除了使用高性能的CPU和高效的實時內(nèi)核外,在實時系統(tǒng)應用的過程中,還要結(jié)合具體情況進行具體分析,充分利用CPU的效率,挖掘內(nèi)核的實時潛能。
1 任務與嵌入式多任務實時系統(tǒng)
1.1 任務與多任務
在嵌入式多任務實時系統(tǒng)時,任務是指一個程序分段。這個分段被操作系統(tǒng)當作一個基本單元來調(diào)度。
典型地,每個任務都是一個無限的循環(huán),而且在同一時刻只能處于以下5種狀態(tài)之一。這5種狀態(tài)是休眠態(tài)、就緒態(tài)、運行態(tài)、等待態(tài)和被中斷態(tài),如圖1所示。
多任務系統(tǒng)的執(zhí)行過程實際上就是一系列任在這5種狀態(tài)中循環(huán)流動、輪流被內(nèi)核調(diào)度的過程。多任務運行使CPU的利用率得到最大的發(fā)揮,并使應用程序模塊化。
1.2 嵌入式多任務實時系統(tǒng)
RTOS本質(zhì)上就是嵌入的實時內(nèi)核,它負責管理各個任務,或者說是為每上任務分配CPU時間,并且負責任務之間的通信。實時內(nèi)核可分為可剝奪型和不同剝奪型兩類。因此,按照所使用內(nèi)核的不同,嵌入式實時系統(tǒng)也可分為兩類:使用不可剝奪型內(nèi)核的嵌入式實時系統(tǒng)和使用可剝奪型內(nèi)核的嵌入式實時系統(tǒng)。
2 實時系統(tǒng)中的長任務問題
2.1 長任務的定義
在RTOS中,長任務就是指整個任務的執(zhí)行時間較長,超出了RTOS中其它某一個或某幾個任務的實時要求容限,而對整個RTOS的實時性構(gòu)成威脅的那些任務。
2.2 長任務對RTOS的影響
當使用可剝奪型實時內(nèi)核時,長任務由于執(zhí)行的時間較長,因而更容易被高優(yōu)先級的任務打斷;一旦高優(yōu)先級的任務進入了就緒態(tài),當前任務的CPU使用權就被剝奪了,或者說任務被掛起了,那個高優(yōu)先級的任務立刻得到了CPU的控制權。這樣會出現(xiàn)兩個問題:一是長任務可能在一次執(zhí)行的過程中被頻敏打斷,長時間得不到一次完整的執(zhí)行;二是長任務被打斷時,可能要保存大量的現(xiàn)場信息,其目的是為了保證在高優(yōu)先級的任務執(zhí)行完返回后,長任務能得以繼續(xù)執(zhí)行。然而,這樣做要占用一定的系統(tǒng)資源,同時保存現(xiàn)場本身也是要占用CPU時間的,因此,實時性也會下降。
當使用不可剝奪型實時內(nèi)核時,長任務對RTOS的影響更為明顯,因為在這種內(nèi)核中,任務級響應時間取決于最長的任務執(zhí)行時間。這也就是說由于長任務的存在,任務級的響應時間要變長。其結(jié)果是CPU長時間停留在長任務中,其它的任務得不到實時的響應,甚至于根本得不到執(zhí)行,系統(tǒng)的實時性勢必要下降。
總之,無論是使用可剝奪型內(nèi)核,還是使用不可剝奪型內(nèi)核,長任務都會對RTOS構(gòu)成嚴重的威脅。
3 長任務問題的解決
解決長任務問題最有效的途徑是進行任務分割。所謂任務分割指將影響系統(tǒng)實時性的長任務分割成若干個小任務。這樣單個任務的執(zhí)行時間變短,系統(tǒng)的任務級響應時間變短,實時性提高。
3.1 對RTOS的分析與計算
當然,長任務的分割必須結(jié)合系統(tǒng)中所使用的內(nèi)核,以及各任務對實時性的要求情況,進行必要的分析計算,才能保證分割的合理性和有效懷,具體的步驟如下:
①分析系統(tǒng)共有多少個任務,這些任務對實時性的要求有多高,求出各個任務所要求的最小執(zhí)行頻率f1,f2,f3……fn。
②計算目前各任務的實際執(zhí)行時間t1,t2,t3……tn。
③確定系統(tǒng)中的長任務
如果max(t1,t2,t3……tn)≤min(1/f1,1/f2,1/f3……1/fn)
則此系統(tǒng)中不存在長任務。
如果max(t1,t2,t3……tn)
【通過任務分割提高嵌入式系統(tǒng)的實時性】相關文章:
嵌入式系統(tǒng)的實時數(shù)據(jù)接口擴展03-20
嵌入式實時操作系統(tǒng)研究與分析03-12
嵌入式實時系統(tǒng)中的優(yōu)先級反轉(zhuǎn)問題03-18
基于MSP430單片機的實時多任務操作系統(tǒng)03-18
實時嵌入式操作系統(tǒng)μC/OS-II在MPC555上的移植03-19
車載實時定位系統(tǒng)的研究與設計03-07