袁志祥,甘正良
(安徽工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽馬鞍山243032)
基于μC/OS-Ⅲ的實(shí)時內(nèi)核中斷管理機(jī)制
袁志祥,甘正良
(安徽工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽馬鞍山243032)
在嵌入式實(shí)時內(nèi)核中,低優(yōu)先級中斷對緊急任務(wù)的截止期干擾較大。針對該問題,提出一種改進(jìn)的μC/OS-Ⅲ實(shí)時內(nèi)核中斷管理機(jī)制。利用共用優(yōu)先級空間的方式實(shí)現(xiàn)中斷和任務(wù)優(yōu)先級統(tǒng)一分配。根據(jù)當(dāng)前任務(wù)在執(zhí)行過程中發(fā)生中斷的緊急程度為中斷分配相應(yīng)的優(yōu)先級,如果中斷比任務(wù)重要,則其優(yōu)先級高于當(dāng)前任務(wù),反之則低于當(dāng)前任務(wù)。優(yōu)先級低于當(dāng)前任務(wù)的中斷以任務(wù)方式處理,高于的則通過中斷服務(wù)程序處理。理論推導(dǎo)和實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的中斷管理機(jī)制可以縮短當(dāng)前執(zhí)行任務(wù)的響應(yīng)時間,保證緊急任務(wù)的可調(diào)度性和可預(yù)測性。
嵌入式實(shí)時內(nèi)核;低優(yōu)先級中斷;共用優(yōu)先級空間;中斷服務(wù)程序;可調(diào)度性;可預(yù)測性
嵌入式實(shí)時系統(tǒng)是一個能夠在指定或者確定的時間內(nèi)對外部事件作出響應(yīng)的系統(tǒng),其重要的特性是實(shí)時響應(yīng)性。嵌入式實(shí)時系統(tǒng)對外部事件的響應(yīng)一般都是通過中斷來處理的,其對中斷的處理方式直接影響到系統(tǒng)的實(shí)時性能[1]。
傳統(tǒng)嵌入式實(shí)時系統(tǒng)的中斷優(yōu)先級由硬件決定,而任務(wù)優(yōu)先級由內(nèi)核軟件決定,中斷服務(wù)程序(Interrupt Service Routine,ISR)的處理順序也是由硬件優(yōu)先級決定,中斷優(yōu)先級獨(dú)立于任務(wù)優(yōu)先級并高于任務(wù)優(yōu)先級。任務(wù)在執(zhí)行過程中如果有硬件中斷發(fā)生,只要沒有關(guān)閉硬件中斷,系統(tǒng)會立即響應(yīng)中斷,執(zhí)行ISR。所以,在傳統(tǒng)實(shí)時系統(tǒng)中,如果中斷響應(yīng)及時,則系統(tǒng)負(fù)載也小。
中斷發(fā)生后ISR立即執(zhí)行的中斷處理方式雖然會有上述優(yōu)點(diǎn),但是也會帶來低優(yōu)先級ISR影響緊急任務(wù)的執(zhí)行、關(guān)中斷導(dǎo)致中斷丟失、高優(yōu)先級中斷破壞任務(wù)的臨界區(qū)、ISR執(zhí)行帶來時序顛倒和系統(tǒng)過于復(fù)雜等問題[2-3]。
中斷處理的另一種方式是中斷以線程方式處理[4],其本質(zhì)是中斷發(fā)生后中斷管理模塊首先進(jìn)入ISR進(jìn)行簡單處理,然后調(diào)用中斷服務(wù)任務(wù)(Interrupt Service Task,IST),這樣中斷的主要工作就以任務(wù)方式處理(在實(shí)時內(nèi)核中,線程和任務(wù)是同一個概念)。中斷以任務(wù)處理的好處是系統(tǒng)中只有任務(wù)這一種異步事件,IST和任務(wù)之間的交互就可以像普通任務(wù)之間交互一樣,例如IST可以進(jìn)入等待列表,可以使用信號量、消息等。
實(shí)時系統(tǒng)中有3類中斷[5]會對當(dāng)前任務(wù)執(zhí)行產(chǎn)生影響:(1)軟實(shí)時中斷;(2)中斷周期大于當(dāng)前任務(wù)周期的硬實(shí)時中斷;(3)中斷周期小于當(dāng)前任務(wù)周期的硬實(shí)時中斷。根據(jù)實(shí)時內(nèi)核基礎(chǔ)理論RMS[6]算法,前兩類中斷實(shí)際處理的內(nèi)容沒有當(dāng)前任務(wù)緊急,如果按照傳統(tǒng)內(nèi)核中斷處理方式,中斷發(fā)生后立即搶占當(dāng)前任務(wù)執(zhí)行就代表低優(yōu)先級事件搶占高優(yōu)先級事件,存在不合理性,因此,前兩類中斷可以看作是優(yōu)先級低于當(dāng)前任務(wù)的中斷。而第(3)類中斷無論以IST方式還是ISR方式處理,優(yōu)先級都比當(dāng)前任務(wù)優(yōu)先級高,因此,搶占當(dāng)前任務(wù)執(zhí)行是合理的,這類中斷看作是優(yōu)先級高于當(dāng)前任務(wù)的中斷Hi。本文針對μC/OS-Ⅲ實(shí)時內(nèi)核,提出一種新的中斷管理機(jī)制,以降低優(yōu)先級中斷對緊急任務(wù)截止期的干擾。
μC/OS-Ⅲ是M icrium公司開發(fā)的一個可裁剪、可固化、可剝奪的多任務(wù)內(nèi)核,沒有任務(wù)數(shù)目限制,是第3代內(nèi)核,提供所有現(xiàn)代實(shí)時內(nèi)核所需的功能,包括資源管理、同步、任務(wù)通信等,此外,μC/OS-Ⅲ還提供了很多其他類似內(nèi)核所不具備的獨(dú)特功能,例如內(nèi)嵌的實(shí)時性能測試、向任務(wù)直接發(fā)送信號量和消息、同時等待多個內(nèi)核對象等[7]。
2.1 μC/OS-Ⅲ中斷
μC/OS-Ⅲ采用2種中斷管理模式,在系統(tǒng)初始化時選擇其中的一種。一種是傳統(tǒng)中斷管理模式,即中斷以ISR方式處理,在當(dāng)前任務(wù)執(zhí)行的過程中,只要沒有關(guān)硬件中斷,無論何種級別的IRQ發(fā)生就立即處理,也稱為直接處理模式;另一種是以IST方式處理,在IRQ發(fā)生后先進(jìn)入ISR,向中斷隊(duì)列OSINT-Q發(fā)送信號,退出ISR直接調(diào)度中斷隊(duì)列處理任務(wù)OS-IntQTask,即延時處理模式。
μC/OS-Ⅲ的2種中斷管理模式如圖1和圖2所示。在直接模式中,外設(shè)產(chǎn)生IRQ并調(diào)用ISR,ISR處理該IRQ的實(shí)際工作,這個過程中ISR可能會激活一個任務(wù),該任務(wù)優(yōu)先級可能比當(dāng)前運(yùn)行任務(wù)的優(yōu)先級高,也可能低。退出ISR之后會進(jìn)行任務(wù)調(diào)度,ISR激活任務(wù)過程中系統(tǒng)關(guān)中斷。
圖1 直接處理模式
圖2 延時處理模式
在延時處理模式中,外設(shè)產(chǎn)生IRQ后,依舊調(diào)用ISR,但不在ISR中激活新任務(wù),ISR主要是向中斷隊(duì)列OS-INT-Q發(fā)送信號量,有內(nèi)核服務(wù)參與的工作由中斷處理任務(wù)OS-IntQTask來處理,OS-IntQTask是系統(tǒng)中優(yōu)先級最高的任務(wù),一旦ISR退出,系統(tǒng)就立即調(diào)度OS-IntQTask,該任務(wù)主要是向新任務(wù)發(fā)送內(nèi)核消息(如信號量)來激活新任務(wù)。該模式本質(zhì)是把ISR分為兩部分處理,前半段是處理沒有涉及內(nèi)核服務(wù)參與的工作,后半段向OS-INT-Q發(fā)送內(nèi)核信息,激活新任務(wù)的工作由OS-IntQTask完成,并且ISR只在向OS-INT-Q發(fā)送內(nèi)核信息時關(guān)中斷,即在圖2中時刻(4)關(guān)中斷,這樣即可減少關(guān)中斷時間。
2.2 μC/OS-Ⅲ中斷管理的缺點(diǎn)
μC/OS-Ⅲ延時中斷處理模式實(shí)現(xiàn)了中斷以任務(wù)方式處理,可以最大限度降低關(guān)中斷的時間,但是μC/OS-Ⅲ中斷處理模塊會帶來2個問題:
(1)中斷以任務(wù)方式處理的粒度過粗。系統(tǒng)中僅有一個優(yōu)先級最高的中斷隊(duì)列處理任務(wù)OSIntQTask,沒有實(shí)現(xiàn)中斷任務(wù)細(xì)分。很多異步事件依舊用ISR處理,這樣低優(yōu)先級的ISR對緊急任務(wù)的干擾問題依舊存在。
(2)中斷優(yōu)先級和內(nèi)核任務(wù)優(yōu)先級沒有進(jìn)行統(tǒng)一分配。中斷優(yōu)先級由硬件決定,高于軟件優(yōu)先級,這樣不緊急中斷的優(yōu)先級也會比緊急任務(wù)優(yōu)先級高,會影響緊急任務(wù)的執(zhí)行。
針對2.2節(jié)提出的問題,本文對實(shí)時內(nèi)核μC/ OS-Ⅲ中斷管理機(jī)制進(jìn)行改進(jìn),同時從任務(wù)最大響應(yīng)時間這個角度來比較μC/OS-Ⅲ中斷管理機(jī)制和改進(jìn)后的中斷管理機(jī)制的性能。
3.1 改進(jìn)的中斷管理機(jī)制
改進(jìn)的模式采用共用優(yōu)先級方式實(shí)現(xiàn)中斷和普通內(nèi)核任務(wù)共用優(yōu)先級空間,實(shí)現(xiàn)優(yōu)先級共同分配。系統(tǒng)中每一個IRQ都對應(yīng)一個ISR和IST,具體某個IRQ是以ISR方式執(zhí)行還是以IST方式執(zhí)行取決于系統(tǒng)當(dāng)前執(zhí)行任務(wù)。在當(dāng)前任務(wù)執(zhí)行過程中如果發(fā)生的IRQ屬于Li,則向系統(tǒng)中已經(jīng)在等待信號的該IRQ對應(yīng)的IST發(fā)送一個信號,得到信號后IST就處于就緒態(tài),待當(dāng)前任務(wù)執(zhí)行結(jié)束后再根據(jù)IST的優(yōu)先級和其他低優(yōu)先級任務(wù)一起進(jìn)行處理,即中斷以IST方式處理。如果IRQ屬于Hi則不進(jìn)行延時,直接搶占當(dāng)前任務(wù)以ISR方式處理,雖然以ISR方式處理會帶來傳統(tǒng)模式下的缺點(diǎn),但可以保證高優(yōu)先級IRQ的及時響應(yīng)和最大限度的降低中斷對當(dāng)前執(zhí)行任務(wù)的干擾。本文提出的所有改進(jìn)都是為了實(shí)現(xiàn)2個目標(biāo):實(shí)現(xiàn)緊急IRQ的及時響應(yīng)和高優(yōu)先級任務(wù)的可調(diào)度性和可預(yù)測性。
混合模式中斷處理流程如圖3所示。
圖3 混合模式中斷處理流程
中斷處理的具體過程如下:
(1)當(dāng)任務(wù)ti在執(zhí)行時,一個IRQ發(fā)生,系統(tǒng)首先獲取該IRQ對應(yīng)的ID,通過ID可以確定該IRQ對應(yīng)的中斷源。
(2)通過INT-PRIO[ID]獲取該IRQ優(yōu)先級prio,INT-PRIO數(shù)組下標(biāo)是IRQ的ID,值是該IRQ對應(yīng)的優(yōu)先級。
(3)通過INT-TCB[ID]獲取該IRQ對應(yīng)的IST任務(wù)塊指針tcb-Ptr,INT-TCB數(shù)組下標(biāo)是IRQ的ID,值是該IRQ對應(yīng)的IST任務(wù)控制塊指針,通過該指針調(diào)度IST。獲取指向ISR的函數(shù)指針fun-Ptr,通過該指針調(diào)用ISR。某個IRQ以ISR方式處理還是IST方式并不是固定不變,在一個時間點(diǎn)是以ISR方式處理,但另一個時間點(diǎn)以IST方式處理,這完全由系統(tǒng)當(dāng)前任務(wù)優(yōu)先級和該IRQ的優(yōu)先級決定。
(4)將IRQ的優(yōu)先級prio和ti的優(yōu)先級os-Prio進(jìn)行比較,如果IRQ優(yōu)先級高(優(yōu)先級值越低,優(yōu)先級越高),直接執(zhí)行該IRQ對應(yīng)的ISR,中斷返回后繼續(xù)執(zhí)行ti。如果ti優(yōu)先級高,則發(fā)送信號給該IRQ對應(yīng)的IST,IST一直處于等待信號的狀態(tài),一旦獲取信號就進(jìn)入就緒態(tài)。然后返回到ti繼續(xù)執(zhí)行。
(5)ti結(jié)束后重新獲取系統(tǒng)新的最高優(yōu)先級highst-Prio賦值給os-Prio,然后執(zhí)行該優(yōu)先級對應(yīng)的任務(wù),這個任務(wù)可能是IST或者是普通任務(wù)。
3.2 在低優(yōu)先級IRQ影響下任務(wù)最大響應(yīng)時間
當(dāng)采用μC/OS-Ⅲ直接處理模式時對應(yīng)的任務(wù)調(diào)度如圖4所示。
圖4 直接發(fā)布模式任務(wù)調(diào)度圖
在圖4中,當(dāng)前高優(yōu)先級任務(wù)ti在執(zhí)行的過程中,發(fā)生了中斷請求,執(zhí)行中斷服務(wù)程序ISR(用tISRm表示),tISRm結(jié)束時會激活一個優(yōu)先級低于ti優(yōu)先級的任務(wù)tjm,(假設(shè)優(yōu)先級順序是tj1>tj2…>tjm)ti執(zhí)行結(jié)束后執(zhí)行tjm。
任務(wù)最大響應(yīng)時間是[8-9]:
在式(1)中,cISRm是tISRm實(shí)際執(zhí)行時間;Ci是任務(wù)ti執(zhí)行時間包括上下文切換時間;γ1是激活tjm時間(向tjm發(fā)送信號量所需時間);δI是進(jìn)入和退出中斷進(jìn)行中斷現(xiàn)場保護(hù)時間;ci是任務(wù)ti實(shí)際執(zhí)行時間;δP是任務(wù)切換時間;m是任務(wù)執(zhí)行時發(fā)生的不同種類IRQ的數(shù)目。為了簡化,后文中只給出了一個IRQ,但這不影響分析。
如果采用μC/OS-Ⅲ延時處理模式,對應(yīng)的任務(wù)調(diào)度如圖5所示。
圖5 延時發(fā)布模式任務(wù)調(diào)度圖
在圖5延時發(fā)布模式下,ISR向中斷隊(duì)列OSINT-Q發(fā)布消息,退出中斷后立即執(zhí)行中斷隊(duì)列任務(wù)OS-IntQTask,該任務(wù)把OS-INT-Q中的消息發(fā)布給任務(wù)tjm,由此可見這個過程多了一次任務(wù)調(diào)度。此時任務(wù)ti響應(yīng)時間是:
在式(3)中,ISR執(zhí)行之后向中斷隊(duì)列OS-INTQ發(fā)送消息,耗時是γ2,然后調(diào)用中斷隊(duì)列處理任務(wù)OS-IntQTask,該任務(wù)向tjm發(fā)送該消息(發(fā)送信號量來激活tjm),耗時為γ1注意公式中并沒有考慮中斷隊(duì)列任務(wù)執(zhí)行時間,只是考慮中斷隊(duì)列任務(wù)發(fā)送信號量的時間,所以計(jì)算結(jié)果和測量結(jié)果有一定偏差,但是沒有影響。
改進(jìn)后IRQ和普通內(nèi)核任務(wù)共用同一優(yōu)先級空間(見圖6),IRQ優(yōu)先級低于當(dāng)前任務(wù),在當(dāng)前任務(wù)執(zhí)行時發(fā)生此類IRQ后依舊會立即響應(yīng)IRQ,但是IRQ主要是以IST方式處理,IST處理結(jié)束后向tjm發(fā)送信號,即tISR的處理分為兩部分,第1部分是向IST發(fā)送信號,第2部分才是實(shí)際執(zhí)行(用tIST任務(wù)),IST處理結(jié)束后向tjm發(fā)送信號。
圖6 改進(jìn)后任務(wù)調(diào)度圖
在圖6中,中斷發(fā)生后,tISR并不處理主要的工作,大部分工作由tIST完成(即cISR是tIST消耗而不是ISR消耗),因?yàn)閠IST和ti共用一個優(yōu)先級空間并且沒有ti優(yōu)先級高,所以不會搶占ti的執(zhí)行,所以ti的響應(yīng)時間會減少很多。響應(yīng)時間計(jì)算式如下:
3.3 高優(yōu)先級IRQ下當(dāng)前任務(wù)響應(yīng)時間
如果中斷請求屬于Hi,那么這類中斷比當(dāng)前任務(wù)重要,優(yōu)先級也比當(dāng)前任務(wù)高,改進(jìn)的模式(直接以ISR方式處理)和μC/OS-Ⅲ直接發(fā)布模式一樣,對任務(wù)響應(yīng)時間的影響也是一樣。因?yàn)棣藽/OS-Ⅲ延時發(fā)布需要調(diào)用中斷處理函數(shù)OS-IntQTask,會帶來任務(wù)切換額外的開銷,所以在直接模式下任務(wù)響應(yīng)時間小。
上文從理論分析了在不同中斷管理模式中低優(yōu)先級IRQ的影響的任務(wù)最大響應(yīng)時間,結(jié)果表明改進(jìn)后的中斷管理模式可以降低當(dāng)前執(zhí)行任務(wù)的最大響應(yīng)時間。
仿真實(shí)驗(yàn)硬件平臺是STM 32芯片。STM 32芯片采用的是Cortex-M 3處理器,具有門數(shù)目少、中斷延遲斷、調(diào)試成本低的特點(diǎn),是為要求有快速中斷響應(yīng)能力的深度嵌入式應(yīng)用而設(shè)計(jì)的,該處理器采用的是ARM v7-M構(gòu)架[10]。本文仿真實(shí)驗(yàn)設(shè)置芯片的速度是72 MHz,通過修改μC/OS-Ⅲ內(nèi)核實(shí)現(xiàn)具體的功能。
為了便于觀察,仿真實(shí)驗(yàn)中斷采用STM 32的通用定時器2(TIMER2)產(chǎn)生的中斷,這樣就可以得到周期性中斷,中斷主要的工作是通過串口助手向終端發(fā)送數(shù)據(jù)。
實(shí)驗(yàn)為了模擬多個中斷,設(shè)置定時器2中斷周期小于當(dāng)前任務(wù),這樣當(dāng)前任務(wù)運(yùn)行時可以多次發(fā)生,類似于在任務(wù)一次運(yùn)行時發(fā)生多個中斷。內(nèi)核運(yùn)行的功能耗時如表1所示。
表1 功能耗時μs
對于情況(1)和情況(2)主要考慮中斷對任務(wù)截止期的影響,因此,給定任務(wù)執(zhí)行時間和周期而中斷執(zhí)行時間和周期變化,任意取任務(wù)執(zhí)行時間ci= 100 m s,周期Ti=1 000 m s,對于情況(1),中斷周期固定,執(zhí)行時間不定,任意取中斷周期30 m s(最好在100 m s內(nèi),這樣可以保證任務(wù)執(zhí)行時間內(nèi)中斷至少
因?yàn)楸疚闹攸c(diǎn)討論的是改進(jìn)的模式中低優(yōu)先級中斷對緊急任務(wù)截止期的影響同時也要考慮任務(wù)對中斷完成響應(yīng)時間的影響,之所以不考慮改進(jìn)的模式中高優(yōu)先級中斷是因?yàn)楦邇?yōu)先級中斷直接以ISR方式處理,這個傳統(tǒng)的模式?jīng)]有區(qū)別,因此實(shí)驗(yàn)主要分以下3種情況進(jìn)行:
(1)中斷執(zhí)行時間變化但是周期固定的情況下任務(wù)截止期是如何變化。此時任務(wù)執(zhí)行時間,周期和中斷周期是固定的。
(2)中斷執(zhí)行時間固定但是周期變化的情況下對應(yīng)任務(wù)截止期是如何變化。此時任務(wù)執(zhí)行時間,周期和中斷執(zhí)行時間是固定的。
(3)在任務(wù)執(zhí)行時間和周期變化的情況下,中斷完成響應(yīng)的時間是如何變化的。
在實(shí)時內(nèi)核中事件的可調(diào)度性首要條件是:發(fā)生一次),則根據(jù)式(6),中斷執(zhí)行時間在[0,27]之間,對應(yīng)在3種模式下理論和實(shí)際任務(wù)截止期如圖7所示。
圖7 任務(wù)截止期在不同中斷執(zhí)行時間下的值
由圖7可見,在3種模式中,直接模式和延時模式任務(wù)的截止期受中斷執(zhí)行時間影響比較大,任務(wù)截止期會隨著中斷執(zhí)行時間增加而增加,特別是中斷執(zhí)行時間比較長時任務(wù)截止期會大大增加,這也就是傳統(tǒng)模式中為什么要求中斷盡可能短小的原因,而改進(jìn)的模式無論中斷實(shí)際工作需要多少時間,都不會影響當(dāng)前任務(wù)截止期,即當(dāng)前任務(wù)截止期不會受到中斷的影響,并且對于的任務(wù)截止期最小。
對于中斷執(zhí)行時間固定,周期變化的情況,任意取中斷處理時間是1 m s,根據(jù)式(6)中斷周期在大于10/9,同樣中斷周期最好小于100 m s,這樣可以保證任務(wù)執(zhí)行時可以發(fā)生多次中斷,對應(yīng)的任務(wù)截止期如圖8所示。
圖8 任務(wù)截止期在不同中斷周期下的值
由圖8可見,當(dāng)前任務(wù)截止期在3種模式下都是隨著中斷周期的變大截止期變小,這也很好理解,即中斷周期變大,在任務(wù)執(zhí)行時間內(nèi)中斷發(fā)生的次數(shù)變少,因此對任務(wù)影響也小。
對于情況(3),任務(wù)在不同執(zhí)行時間和周期下,直接模式和延時模式只要發(fā)生中斷都可以立即處理,而改進(jìn)的模式中對于低優(yōu)先級中斷是不處理的,直到當(dāng)前任務(wù)執(zhí)行結(jié)束之后才和其他任務(wù)一起處理,因此,在改進(jìn)德模式低優(yōu)先級中斷最快完成執(zhí)行也要等當(dāng)前任務(wù)處理結(jié)束之后,也就是改進(jìn)的模式中斷完成響應(yīng)的時間大大增加,這點(diǎn)遠(yuǎn)不如直接模式和延時模式。但是為了保證緊急事件的及時響應(yīng),犧牲低優(yōu)先級的事件響應(yīng)時間是值得的。
由理論和實(shí)驗(yàn)數(shù)據(jù)可知,在改進(jìn)后的中斷管理模式中,當(dāng)前中斷請求因?yàn)楹蛢?nèi)核普通任務(wù)共用一個優(yōu)先級空間并且沒有當(dāng)前執(zhí)行的任務(wù)ti優(yōu)先級高(即該類型中斷沒有當(dāng)前執(zhí)行的任務(wù)緊急),所以該類型中斷發(fā)生后并不立即處理,而是等ti結(jié)束后以任務(wù)方式處理。改進(jìn)后的中斷管理模式主要是延時處理當(dāng)前低優(yōu)先級中斷以節(jié)約時間用于高優(yōu)先級任務(wù)ti的處理,是犧牲低優(yōu)先級中斷的及時響應(yīng)來滿足高優(yōu)先任務(wù)對時間需求的。因此,在改進(jìn)后的中斷管理模式中,當(dāng)前任務(wù)ti執(zhí)行需要的最大響應(yīng)時間最小,即截止期最小。
在嵌入式實(shí)時內(nèi)核中,中斷和任務(wù)統(tǒng)一為事件,系統(tǒng)始終處理優(yōu)先級最高的事件,這樣無論是中斷還是任務(wù),始終以優(yōu)先級為處理依據(jù)最符合實(shí)際情況,傳統(tǒng)內(nèi)核中中斷優(yōu)先級由硬件分配并且高于任務(wù)優(yōu)先級,在任務(wù)處理過程中只要發(fā)生中斷就立即處理ISR,這樣設(shè)計(jì)的目的是防止中斷丟失,但對于截止期很小的緊急任務(wù),在執(zhí)行過程中如果中斷頻繁發(fā)生會導(dǎo)致任務(wù)錯過截止期。為保證任務(wù)對時間的需求,系統(tǒng)一般采用關(guān)中斷,這樣會造成優(yōu)先級中斷丟失。因此,目前對實(shí)時內(nèi)核的研究主要集中在提高緊急事件的處理時間和防止中斷丟失2個方面。
本文主要分析了傳統(tǒng)嵌入式實(shí)時內(nèi)核中斷管理的優(yōu)缺點(diǎn),在此基礎(chǔ)上提出了新的中斷管理框架,并通過實(shí)驗(yàn)驗(yàn)證在指定的環(huán)境中該框架比傳統(tǒng)的中斷管理具有更好的性能,在保證緊急中斷及時處理的情況下可以進(jìn)一步降低低優(yōu)先級中斷對緊急任務(wù)執(zhí)行的干擾。后續(xù)的工作主要是繼續(xù)優(yōu)化中斷對任務(wù)的影響,同時也將研究如何保證中斷的及時響應(yīng),降低中斷延時。
[1] 雷紅衛(wèi),桑 楠,熊光澤.嵌入式實(shí)時系統(tǒng)中斷管理技術(shù)研究[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2004,(5):16-19.
[2] Leyva-del-Foyo L E,Mejia-Alvarez P.Custom Interrupt Management for Real-time and Embedded System Kernels[C]//Proceedings of ETRSI'04.Washington D.C.,USA:IEEE Press,2004.
[3] Leyva-del-Foyo L E,Mejia-Alvarez P,de Niz D. Predictable Interrupt Management for Real Time Kernels over Conventional PC Hardware[C]//Proceedings of the 12th IEEE Symposium on Real-time and Embedded Technology and Applications.Washington D.C.,USA:IEEE Press,2006:14-23.
[4] K leiman S,Eykholt J.Interrupts as Threads[J].ACM SIGOPS Operating System s Review,1995,29(2):21-26.
[5] K lein M H,Ralya T,Pollak B,et al.A Practitioner's Handbook for Real-time Analysis[M].Boston,USA:Kluwer Academic Publishers,1993.
[6] Liu C L,Layland J W.Scheduling Algorithm s for Multiprogramming in a Hard-real-time Environment[J]. Journal of the ACM,1973,20(1):46-61.
[7] Labrosse J J.μC/OS-Ⅲ,The Real-time Kernel[M].[S.l.]:Micrium Incorporated,2010.
[8] Lehoczky J,Sha L,Ding Y.The Rate Monotonic Scheduling Algorithm:Exact Characterization and Average Case Behavior[C]//Proceedings of IEEE Real Tim e System s Symposium.Washington D.C.,USA:IEEE Press,1989:166-171.
[9] Audsley N,Burns A,Richardson M,et al.Applying New Scheduling Theory to Static Priority Pre-emptive Scheduling[J].Software Engineering Journal,1993,8(5):284-292.
[10] Yiu J.Cortex-M 3權(quán)威指南[M].宋 巖,譯.北京:北京航空航天大學(xué)出版社,2009.
編輯 金胡考
Real-time Kernel Interrupt Management Mechanism Based on μC/OS-Ⅲ
YUAN Zhixiang,GAN Zhengliang
(School of Computing Science and Technology,Anhui University of Technology,Maanshan 243032,China)
Aiming at the problem that the low-priority interrupts have bad disturbance on high-priority tasks deadline in embedded real-time kernel,an improved interrupt management mechanism for μC/OS-Ⅲis proposed.Priority assignment is based on the importance of interrupts which occurs during execution of the tasks.If interrupt is more important,its priority is higher than tasks priority,otherwise its priority is lower than task priority.Interrupt Service Routine(ISR)deals with the high-priority interrupts and interrupt service task deals with the low-priority interrupts.The result of the experiment and analysis of theory show that the improved interrupt management mechanism can reduce the response time of task and ensure the schedulability and predictability of the task.
embedded real-time kernel;low-priority interrupt;common priority space;Interrupt Service Routine(ISR);schedulability;predictability
袁志祥,甘正良.基于μC/OS-Ⅲ的實(shí)時內(nèi)核中斷管理機(jī)制[J].計(jì)算機(jī)工程,2015,41(11):100-105.
英文引用格式:Yuan Zhixiang,Gan Zhengliang.Real-time Kernel Interrupt Management Mechanism Based on μC/OS-Ⅲ[J].Computing Engineering,2015,41(11):100-105.
1000-3428(2015)11-0100-06
A
TP311
10.3969/j.issn.1000-3428.2015.11.018
國家“十二五”科技支撐計(jì)劃基金資助項(xiàng)目(2012BAK 30B04-02)。
袁志祥(1973-),男,副教授,主研方向:Petri網(wǎng)理論,嵌入式系統(tǒng);甘正良,碩士研究生。
2014-09-01
2014-11-10 E-m ail:zxyuan@ahut.edu.cn