當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]通過任務分割提高嵌入式系統(tǒng)的實時性

摘要:分析長任務對嵌入式系統(tǒng)實時性的影響,在此基礎上提出任務分割是提高嵌入式系統(tǒng)實時性的一種有效途徑;總結長任務分割的方法,給出一個通過任務分割提高嵌入式系統(tǒng)實時性的實例。

    關鍵詞:嵌入式系統(tǒng) 實時內(nèi)核 時間片 任務分割

引言

隨著工業(yè)的飛速發(fā)展,人們對系統(tǒng)實時性的要求越來越高。計算機技術的進步客觀上也為進一步提高實時性提供了可能。因此近年來,嵌入式實時系統(tǒng)的研究已經(jīng)成為單片同應用領域的又一大熱點,實編排軟件也越來越多,有商業(yè)軟件,也有免費的代碼。然而影響系統(tǒng)實時性的因素很多,有硬件,也有軟件的。這就決定了提高系統(tǒng)的實時性并不是一件十分容易的事情,除了使用高性能的CPU和高效的實時內(nèi)核外,在實時系統(tǒng)應用的過程中,還要結合具體情況進行具體分析,充分利用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本質上就是嵌入的實時內(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的實時性構成威脅的那些任務。

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í)行時間。這也就是說由于長任務的存在,任務級的響應時間要變長。其結果是CPU長時間停留在長任務中,其它的任務得不到實時的響應,甚至于根本得不到執(zhí)行,系統(tǒng)的實時性勢必要下降。

總之,無論是使用可剝奪型內(nèi)核,還是使用不可剝奪型內(nèi)核,長任務都會對RTOS構成嚴重的威脅。

3 長任務問題的解決

解決長任務問題最有效的途徑是進行任務分割。所謂任務分割指將影響系統(tǒng)實時性的長任務分割成若干個小任務。這樣單個任務的執(zhí)行時間變短,系統(tǒng)的任務級響應時間變短,實時性提高。

3.1 對RTOS的分析與計算

當然,長任務的分割必須結合系統(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)>min(1/f1,1/f2,1/f3……1/fn)

則存在長任務,而且執(zhí)行時間為max(t1,t2,t3……tn)的那個任務就是要找的長任務。

④分析此長任務是否需要分割

分析一下是什么原因導致執(zhí)行的時間過長,這個時間還能夠通過程序的優(yōu)化來縮短?如果能,則不需要進行任務分割;否則要對這個長任務進行分割。

    3.2 任務分割

常用的任務分割的方法有以下兩種:

①將長任務按功能分為若干個小模塊,每一個模塊構成一個小任務,每個小任務執(zhí)行一個相對獨立的功能,且要保證執(zhí)行時間t<min(1/f1,1/f2,1/f3……1/fn)。各個任務被內(nèi)核順序調(diào)用,合起來完成整個任務的功能。

②有的長任務比較特殊,例如鍵盤任務和動態(tài)LED顯示任務,很難按照方法1所說的把它分成若干個功能相對獨立的小模塊。這時,一般是按照方便保存現(xiàn)場信息原則,強制將其分割成若干個小任務,每個任務在min(1/f1,1/f2,1/f3……1/fn)時間內(nèi)主動保存現(xiàn)場信息、放棄CPU的控制權,等到再次被內(nèi)核調(diào)度時繼續(xù)執(zhí)行。

這種分割方法相對復雜,各任務之間界限不是很明顯,看似未經(jīng)分割,但實際上它確實是由多次任務中斷來完成。下面就以這種分割方法為例具體說明。

4 實例分析

4.1 系統(tǒng)介紹

在此,系統(tǒng)的硬件基礎是基于MC68HC908GP32單片機系統(tǒng)的,用其普通I/O口作為矩陣式鍵盤的輸入輸出引腳;軟件基礎是在MC68HC908GP32中運行Motorola公司的Joanne Santangeli編寫的基于時間片的不可剝奪的實時內(nèi)核,如圖2所示。

    此內(nèi)核主要是利用微控制器內(nèi)部的時間模塊產(chǎn)生恒定的實時中斷,將CPU的運行時間分成一個個時間片。內(nèi)核的任務調(diào)度工作都是在時間片的開始階段完成的,而每個任務都必須在單個時間片內(nèi)完成。

在這個內(nèi)核中,每0.5ms發(fā)生1次時鐘中斷,而每10次時鐘中斷組成了1個時間片(5ms)。任務1的優(yōu)先級最高,每2個時間片(10ms)會執(zhí)行1次,任務2每4個時間片(20ms)執(zhí)行1次,優(yōu)先級最低的任務6則每64個時間片(320ms)會執(zhí)行1次。

4.2 系統(tǒng)中的鍵盤任務問題

在單片機系統(tǒng)中,鍵盤主要用于輸入數(shù)據(jù)、代碼和命令,因此系統(tǒng)必須循環(huán)不停地掃描掃描;一是有鍵波按下,CPU立即做出響應。鍵盤任務子程序也是根據(jù)這個要求而設計的。一般有兩種處理方式:一是中斷方式,二是查詢方式。從有鍵按下時開始,到按鍵釋放并轉相應子程序而終止。該任務被內(nèi)核調(diào)度的情況如圖3所示。

圖3中,Δt是人手按鍵的時間,一般為100~300ms。為了能說明問題,這里取100ms。

令 t1'-t1=Δt1,t2'-t2=Δt2

則一次鍵盤任務的執(zhí)行時間

Δt'=t'2-t'1=t2+(t'2-t2)-[t1+(t'1-t1)]=

t2+Δt2-t1-Δt1=

t2-t1+(Δt2+Δt1)=

Δt+(Δt2-Δt1)

由圖3可知

Δt1≤tms Δt2≤5ms

實際上,由于兩次任務執(zhí)行的情況不完全相同,Δt1Δt2可能會有相當于幾個指令周期的時間差異,但也只是μs級的誤差。而且,這里是以時間片的形式來計算的,所以依然可以認為

Δt2-Δt1=0

因而有

Δt'=Δt+(Δt2-Δt1)=Δt=100ms(20個時間片)

也就是說,在這20個時鐘片內(nèi)只執(zhí)行1次鍵盤任務,大部分的時間都在空等待。在此期間,系統(tǒng)中會有20-1=19次其它任務的執(zhí)行被錯過,圖3中虛線所示就是在此100ms期間被錯過執(zhí)行的19個任務。顯然,這在大多數(shù)多任務系統(tǒng)中都是不允許的。

因此,在這個多任務實時系統(tǒng)中,鍵盤任務是個典型的長任務,要使其它19次任務中斷都有被應用的機會,必須對該鍵盤任務進行分割。

4.3 鍵盤任務的分割

鍵盤分割的方法是將一次鍵盤任務分成多個小任務,通過多次任務中斷來完成。我們將其放在任務4中(80ms執(zhí)行1次)。這樣有ttask4≤ttask≤2ttask4,即可以保證鍵盤任務完整可靠地執(zhí)行,又提高了CPU的效率。圖4是分割后的鍵盤任務的執(zhí)行過程。

    從圖4可以看出,1次完整的鍵盤任務是由2~3次任務中斷來完成的。情況a中,每一次任務中斷發(fā)生在ta1時刻,在接下來的一個時間片(5ms)內(nèi),檢測到有鍵按下,調(diào)用查詢值任務;第一次任務中斷發(fā)生在ta2時刻,在接下來的一個時間片(5ms)內(nèi),檢測到按鍵已釋放,跳轉并執(zhí)行相應鍵處理程序。

情況b中,第二次任務中斷時(tb2時刻),鍵還沒有松開,因此實際上什么也不做;第三次中斷(tb3時刻)才跳到與鍵值對應的子程序。

通過這樣的分割,每個子任務都可以在5ms內(nèi)完成。如果系統(tǒng)中還有大于5ms的長任務的話,可按此法繼續(xù)進行分割;如果沒有的話,系統(tǒng)任務級響應時間一定小于5ms。這樣,此系統(tǒng)的實時性大大提高,由100ms提高到5ms。本刊網(wǎng)絡補充版(http://www.dpj.com.cn)中,介紹了此任務改進后的部分源程序。

結語

通過任務分割,可以顯著地提高多任務系統(tǒng)的實時性。本文改進后的源程序已經(jīng)在基于MC68HC908GP32的溫室控制器中成功地運行過。除此以外,還成功地對LED和SCI任務進行了分割。改進后,除了實時性大大提高外,CPU的執(zhí)行效率也有顯著提高。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉