999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于μC/OS-Ⅲ的實時內核中斷管理機制

2015-12-06 06:11:14袁志祥甘正良
計算機工程 2015年11期
關鍵詞:系統

袁志祥,甘正良

(安徽工業大學計算機科學與技術學院,安徽馬鞍山243032)

基于μC/OS-Ⅲ的實時內核中斷管理機制

袁志祥,甘正良

(安徽工業大學計算機科學與技術學院,安徽馬鞍山243032)

在嵌入式實時內核中,低優先級中斷對緊急任務的截止期干擾較大。針對該問題,提出一種改進的μC/OS-Ⅲ實時內核中斷管理機制。利用共用優先級空間的方式實現中斷和任務優先級統一分配。根據當前任務在執行過程中發生中斷的緊急程度為中斷分配相應的優先級,如果中斷比任務重要,則其優先級高于當前任務,反之則低于當前任務。優先級低于當前任務的中斷以任務方式處理,高于的則通過中斷服務程序處理。理論推導和實驗結果表明,改進后的中斷管理機制可以縮短當前執行任務的響應時間,保證緊急任務的可調度性和可預測性。

嵌入式實時內核;低優先級中斷;共用優先級空間;中斷服務程序;可調度性;可預測性

1 概述

嵌入式實時系統是一個能夠在指定或者確定的時間內對外部事件作出響應的系統,其重要的特性是實時響應性。嵌入式實時系統對外部事件的響應一般都是通過中斷來處理的,其對中斷的處理方式直接影響到系統的實時性能[1]。

傳統嵌入式實時系統的中斷優先級由硬件決定,而任務優先級由內核軟件決定,中斷服務程序(Interrupt Service Routine,ISR)的處理順序也是由硬件優先級決定,中斷優先級獨立于任務優先級并高于任務優先級。任務在執行過程中如果有硬件中斷發生,只要沒有關閉硬件中斷,系統會立即響應中斷,執行ISR。所以,在傳統實時系統中,如果中斷響應及時,則系統負載也小。

中斷發生后ISR立即執行的中斷處理方式雖然會有上述優點,但是也會帶來低優先級ISR影響緊急任務的執行、關中斷導致中斷丟失、高優先級中斷破壞任務的臨界區、ISR執行帶來時序顛倒和系統過于復雜等問題[2-3]。

中斷處理的另一種方式是中斷以線程方式處理[4],其本質是中斷發生后中斷管理模塊首先進入ISR進行簡單處理,然后調用中斷服務任務(Interrupt Service Task,IST),這樣中斷的主要工作就以任務方式處理(在實時內核中,線程和任務是同一個概念)。中斷以任務處理的好處是系統中只有任務這一種異步事件,IST和任務之間的交互就可以像普通任務之間交互一樣,例如IST可以進入等待列表,可以使用信號量、消息等。

實時系統中有3類中斷[5]會對當前任務執行產生影響:(1)軟實時中斷;(2)中斷周期大于當前任務周期的硬實時中斷;(3)中斷周期小于當前任務周期的硬實時中斷。根據實時內核基礎理論RMS[6]算法,前兩類中斷實際處理的內容沒有當前任務緊急,如果按照傳統內核中斷處理方式,中斷發生后立即搶占當前任務執行就代表低優先級事件搶占高優先級事件,存在不合理性,因此,前兩類中斷可以看作是優先級低于當前任務的中斷。而第(3)類中斷無論以IST方式還是ISR方式處理,優先級都比當前任務優先級高,因此,搶占當前任務執行是合理的,這類中斷看作是優先級高于當前任務的中斷Hi。本文針對μC/OS-Ⅲ實時內核,提出一種新的中斷管理機制,以降低優先級中斷對緊急任務截止期的干擾。

2 μC/OS-Ⅲ中斷管理模式

μC/OS-Ⅲ是M icrium公司開發的一個可裁剪、可固化、可剝奪的多任務內核,沒有任務數目限制,是第3代內核,提供所有現代實時內核所需的功能,包括資源管理、同步、任務通信等,此外,μC/OS-Ⅲ還提供了很多其他類似內核所不具備的獨特功能,例如內嵌的實時性能測試、向任務直接發送信號量和消息、同時等待多個內核對象等[7]。

2.1 μC/OS-Ⅲ中斷

μC/OS-Ⅲ采用2種中斷管理模式,在系統初始化時選擇其中的一種。一種是傳統中斷管理模式,即中斷以ISR方式處理,在當前任務執行的過程中,只要沒有關硬件中斷,無論何種級別的IRQ發生就立即處理,也稱為直接處理模式;另一種是以IST方式處理,在IRQ發生后先進入ISR,向中斷隊列OSINT-Q發送信號,退出ISR直接調度中斷隊列處理任務OS-IntQTask,即延時處理模式。

μC/OS-Ⅲ的2種中斷管理模式如圖1和圖2所示。在直接模式中,外設產生IRQ并調用ISR,ISR處理該IRQ的實際工作,這個過程中ISR可能會激活一個任務,該任務優先級可能比當前運行任務的優先級高,也可能低。退出ISR之后會進行任務調度,ISR激活任務過程中系統關中斷。

圖1 直接處理模式

圖2 延時處理模式

在延時處理模式中,外設產生IRQ后,依舊調用ISR,但不在ISR中激活新任務,ISR主要是向中斷隊列OS-INT-Q發送信號量,有內核服務參與的工作由中斷處理任務OS-IntQTask來處理,OS-IntQTask是系統中優先級最高的任務,一旦ISR退出,系統就立即調度OS-IntQTask,該任務主要是向新任務發送內核消息(如信號量)來激活新任務。該模式本質是把ISR分為兩部分處理,前半段是處理沒有涉及內核服務參與的工作,后半段向OS-INT-Q發送內核信息,激活新任務的工作由OS-IntQTask完成,并且ISR只在向OS-INT-Q發送內核信息時關中斷,即在圖2中時刻(4)關中斷,這樣即可減少關中斷時間。

2.2 μC/OS-Ⅲ中斷管理的缺點

μC/OS-Ⅲ延時中斷處理模式實現了中斷以任務方式處理,可以最大限度降低關中斷的時間,但是μC/OS-Ⅲ中斷處理模塊會帶來2個問題:

(1)中斷以任務方式處理的粒度過粗。系統中僅有一個優先級最高的中斷隊列處理任務OSIntQTask,沒有實現中斷任務細分。很多異步事件依舊用ISR處理,這樣低優先級的ISR對緊急任務的干擾問題依舊存在。

(2)中斷優先級和內核任務優先級沒有進行統一分配。中斷優先級由硬件決定,高于軟件優先級,這樣不緊急中斷的優先級也會比緊急任務優先級高,會影響緊急任務的執行。

3 改進的μC/OS-Ⅲ中斷管理

針對2.2節提出的問題,本文對實時內核μC/ OS-Ⅲ中斷管理機制進行改進,同時從任務最大響應時間這個角度來比較μC/OS-Ⅲ中斷管理機制和改進后的中斷管理機制的性能。

3.1 改進的中斷管理機制

改進的模式采用共用優先級方式實現中斷和普通內核任務共用優先級空間,實現優先級共同分配。系統中每一個IRQ都對應一個ISR和IST,具體某個IRQ是以ISR方式執行還是以IST方式執行取決于系統當前執行任務。在當前任務執行過程中如果發生的IRQ屬于Li,則向系統中已經在等待信號的該IRQ對應的IST發送一個信號,得到信號后IST就處于就緒態,待當前任務執行結束后再根據IST的優先級和其他低優先級任務一起進行處理,即中斷以IST方式處理。如果IRQ屬于Hi則不進行延時,直接搶占當前任務以ISR方式處理,雖然以ISR方式處理會帶來傳統模式下的缺點,但可以保證高優先級IRQ的及時響應和最大限度的降低中斷對當前執行任務的干擾。本文提出的所有改進都是為了實現2個目標:實現緊急IRQ的及時響應和高優先級任務的可調度性和可預測性。

混合模式中斷處理流程如圖3所示。

圖3 混合模式中斷處理流程

中斷處理的具體過程如下:

(1)當任務ti在執行時,一個IRQ發生,系統首先獲取該IRQ對應的ID,通過ID可以確定該IRQ對應的中斷源。

(2)通過INT-PRIO[ID]獲取該IRQ優先級prio,INT-PRIO數組下標是IRQ的ID,值是該IRQ對應的優先級。

(3)通過INT-TCB[ID]獲取該IRQ對應的IST任務塊指針tcb-Ptr,INT-TCB數組下標是IRQ的ID,值是該IRQ對應的IST任務控制塊指針,通過該指針調度IST。獲取指向ISR的函數指針fun-Ptr,通過該指針調用ISR。某個IRQ以ISR方式處理還是IST方式并不是固定不變,在一個時間點是以ISR方式處理,但另一個時間點以IST方式處理,這完全由系統當前任務優先級和該IRQ的優先級決定。

(4)將IRQ的優先級prio和ti的優先級os-Prio進行比較,如果IRQ優先級高(優先級值越低,優先級越高),直接執行該IRQ對應的ISR,中斷返回后繼續執行ti。如果ti優先級高,則發送信號給該IRQ對應的IST,IST一直處于等待信號的狀態,一旦獲取信號就進入就緒態。然后返回到ti繼續執行。

(5)ti結束后重新獲取系統新的最高優先級highst-Prio賦值給os-Prio,然后執行該優先級對應的任務,這個任務可能是IST或者是普通任務。

3.2 在低優先級IRQ影響下任務最大響應時間

當采用μC/OS-Ⅲ直接處理模式時對應的任務調度如圖4所示。

圖4 直接發布模式任務調度圖

在圖4中,當前高優先級任務ti在執行的過程中,發生了中斷請求,執行中斷服務程序ISR(用tISRm表示),tISRm結束時會激活一個優先級低于ti優先級的任務tjm,(假設優先級順序是tj1>tj2…>tjm)ti執行結束后執行tjm。

任務最大響應時間是[8-9]:

在式(1)中,cISRm是tISRm實際執行時間;Ci是任務ti執行時間包括上下文切換時間;γ1是激活tjm時間(向tjm發送信號量所需時間);δI是進入和退出中斷進行中斷現場保護時間;ci是任務ti實際執行時間;δP是任務切換時間;m是任務執行時發生的不同種類IRQ的數目。為了簡化,后文中只給出了一個IRQ,但這不影響分析。

如果采用μC/OS-Ⅲ延時處理模式,對應的任務調度如圖5所示。

圖5 延時發布模式任務調度圖

在圖5延時發布模式下,ISR向中斷隊列OSINT-Q發布消息,退出中斷后立即執行中斷隊列任務OS-IntQTask,該任務把OS-INT-Q中的消息發布給任務tjm,由此可見這個過程多了一次任務調度。此時任務ti響應時間是:

在式(3)中,ISR執行之后向中斷隊列OS-INTQ發送消息,耗時是γ2,然后調用中斷隊列處理任務OS-IntQTask,該任務向tjm發送該消息(發送信號量來激活tjm),耗時為γ1注意公式中并沒有考慮中斷隊列任務執行時間,只是考慮中斷隊列任務發送信號量的時間,所以計算結果和測量結果有一定偏差,但是沒有影響。

改進后IRQ和普通內核任務共用同一優先級空間(見圖6),IRQ優先級低于當前任務,在當前任務執行時發生此類IRQ后依舊會立即響應IRQ,但是IRQ主要是以IST方式處理,IST處理結束后向tjm發送信號,即tISR的處理分為兩部分,第1部分是向IST發送信號,第2部分才是實際執行(用tIST任務),IST處理結束后向tjm發送信號。

圖6 改進后任務調度圖

在圖6中,中斷發生后,tISR并不處理主要的工作,大部分工作由tIST完成(即cISR是tIST消耗而不是ISR消耗),因為tIST和ti共用一個優先級空間并且沒有ti優先級高,所以不會搶占ti的執行,所以ti的響應時間會減少很多。響應時間計算式如下:

3.3 高優先級IRQ下當前任務響應時間

如果中斷請求屬于Hi,那么這類中斷比當前任務重要,優先級也比當前任務高,改進的模式(直接以ISR方式處理)和μC/OS-Ⅲ直接發布模式一樣,對任務響應時間的影響也是一樣。因為μC/OS-Ⅲ延時發布需要調用中斷處理函數OS-IntQTask,會帶來任務切換額外的開銷,所以在直接模式下任務響應時間小。

上文從理論分析了在不同中斷管理模式中低優先級IRQ的影響的任務最大響應時間,結果表明改進后的中斷管理模式可以降低當前執行任務的最大響應時間。

4 實驗與結果分析

仿真實驗硬件平臺是STM 32芯片。STM 32芯片采用的是Cortex-M 3處理器,具有門數目少、中斷延遲斷、調試成本低的特點,是為要求有快速中斷響應能力的深度嵌入式應用而設計的,該處理器采用的是ARM v7-M構架[10]。本文仿真實驗設置芯片的速度是72 MHz,通過修改μC/OS-Ⅲ內核實現具體的功能。

為了便于觀察,仿真實驗中斷采用STM 32的通用定時器2(TIMER2)產生的中斷,這樣就可以得到周期性中斷,中斷主要的工作是通過串口助手向終端發送數據。

實驗為了模擬多個中斷,設置定時器2中斷周期小于當前任務,這樣當前任務運行時可以多次發生,類似于在任務一次運行時發生多個中斷。內核運行的功能耗時如表1所示。

表1 功能耗時μs

對于情況(1)和情況(2)主要考慮中斷對任務截止期的影響,因此,給定任務執行時間和周期而中斷執行時間和周期變化,任意取任務執行時間ci= 100 m s,周期Ti=1 000 m s,對于情況(1),中斷周期固定,執行時間不定,任意取中斷周期30 m s(最好在100 m s內,這樣可以保證任務執行時間內中斷至少

因為本文重點討論的是改進的模式中低優先級中斷對緊急任務截止期的影響同時也要考慮任務對中斷完成響應時間的影響,之所以不考慮改進的模式中高優先級中斷是因為高優先級中斷直接以ISR方式處理,這個傳統的模式沒有區別,因此實驗主要分以下3種情況進行:

(1)中斷執行時間變化但是周期固定的情況下任務截止期是如何變化。此時任務執行時間,周期和中斷周期是固定的。

(2)中斷執行時間固定但是周期變化的情況下對應任務截止期是如何變化。此時任務執行時間,周期和中斷執行時間是固定的。

(3)在任務執行時間和周期變化的情況下,中斷完成響應的時間是如何變化的。

在實時內核中事件的可調度性首要條件是:發生一次),則根據式(6),中斷執行時間在[0,27]之間,對應在3種模式下理論和實際任務截止期如圖7所示。

圖7 任務截止期在不同中斷執行時間下的值

由圖7可見,在3種模式中,直接模式和延時模式任務的截止期受中斷執行時間影響比較大,任務截止期會隨著中斷執行時間增加而增加,特別是中斷執行時間比較長時任務截止期會大大增加,這也就是傳統模式中為什么要求中斷盡可能短小的原因,而改進的模式無論中斷實際工作需要多少時間,都不會影響當前任務截止期,即當前任務截止期不會受到中斷的影響,并且對于的任務截止期最小。

對于中斷執行時間固定,周期變化的情況,任意取中斷處理時間是1 m s,根據式(6)中斷周期在大于10/9,同樣中斷周期最好小于100 m s,這樣可以保證任務執行時可以發生多次中斷,對應的任務截止期如圖8所示。

圖8 任務截止期在不同中斷周期下的值

由圖8可見,當前任務截止期在3種模式下都是隨著中斷周期的變大截止期變小,這也很好理解,即中斷周期變大,在任務執行時間內中斷發生的次數變少,因此對任務影響也小。

對于情況(3),任務在不同執行時間和周期下,直接模式和延時模式只要發生中斷都可以立即處理,而改進的模式中對于低優先級中斷是不處理的,直到當前任務執行結束之后才和其他任務一起處理,因此,在改進德模式低優先級中斷最快完成執行也要等當前任務處理結束之后,也就是改進的模式中斷完成響應的時間大大增加,這點遠不如直接模式和延時模式。但是為了保證緊急事件的及時響應,犧牲低優先級的事件響應時間是值得的。

由理論和實驗數據可知,在改進后的中斷管理模式中,當前中斷請求因為和內核普通任務共用一個優先級空間并且沒有當前執行的任務ti優先級高(即該類型中斷沒有當前執行的任務緊急),所以該類型中斷發生后并不立即處理,而是等ti結束后以任務方式處理。改進后的中斷管理模式主要是延時處理當前低優先級中斷以節約時間用于高優先級任務ti的處理,是犧牲低優先級中斷的及時響應來滿足高優先任務對時間需求的。因此,在改進后的中斷管理模式中,當前任務ti執行需要的最大響應時間最小,即截止期最小。

5 結束語

在嵌入式實時內核中,中斷和任務統一為事件,系統始終處理優先級最高的事件,這樣無論是中斷還是任務,始終以優先級為處理依據最符合實際情況,傳統內核中中斷優先級由硬件分配并且高于任務優先級,在任務處理過程中只要發生中斷就立即處理ISR,這樣設計的目的是防止中斷丟失,但對于截止期很小的緊急任務,在執行過程中如果中斷頻繁發生會導致任務錯過截止期。為保證任務對時間的需求,系統一般采用關中斷,這樣會造成優先級中斷丟失。因此,目前對實時內核的研究主要集中在提高緊急事件的處理時間和防止中斷丟失2個方面。

本文主要分析了傳統嵌入式實時內核中斷管理的優缺點,在此基礎上提出了新的中斷管理框架,并通過實驗驗證在指定的環境中該框架比傳統的中斷管理具有更好的性能,在保證緊急中斷及時處理的情況下可以進一步降低低優先級中斷對緊急任務執行的干擾。后續的工作主要是繼續優化中斷對任務的影響,同時也將研究如何保證中斷的及時響應,降低中斷延時。

[1] 雷紅衛,桑 楠,熊光澤.嵌入式實時系統中斷管理技術研究[J].單片機與嵌入式系統應用,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權威指南[M].宋 巖,譯.北京:北京航空航天大學出版社,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-Ⅲ的實時內核中斷管理機制[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

國家“十二五”科技支撐計劃基金資助項目(2012BAK 30B04-02)。

袁志祥(1973-),男,副教授,主研方向:Petri網理論,嵌入式系統;甘正良,碩士研究生。

2014-09-01

2014-11-10 E-m ail:zxyuan@ahut.edu.cn

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 中文字幕日韩久久综合影院| 国产成人精品男人的天堂下载| 日本伊人色综合网| 国产精品白浆在线播放| 尤物特级无码毛片免费| 巨熟乳波霸若妻中文观看免费| 国产黑丝一区| 91美女视频在线观看| 91精品人妻互换| 91丨九色丨首页在线播放| 国产91高清视频| 东京热高清无码精品| 超清无码熟妇人妻AV在线绿巨人| 欧美色伊人| 99精品久久精品| 久青草免费在线视频| 成人午夜网址| 欧美啪啪网| 54pao国产成人免费视频| 亚洲欧美精品一中文字幕| 免费一极毛片| 无码中文AⅤ在线观看| 又大又硬又爽免费视频| 亚洲色大成网站www国产| 国产成人亚洲综合a∨婷婷| 亚洲成人一区二区三区| 久久精品丝袜| 久久精品视频亚洲| 欧美午夜在线观看| 日韩精品一区二区三区免费在线观看| 天天激情综合| 国产拍揄自揄精品视频网站| 精品国产女同疯狂摩擦2| 亚洲一区免费看| 在线中文字幕网| 人妻免费无码不卡视频| 五月天久久婷婷| 国产精品福利在线观看无码卡| 在线视频一区二区三区不卡| 欧美丝袜高跟鞋一区二区 | 久久美女精品国产精品亚洲| 国内精品九九久久久精品| 午夜日韩久久影院| 91视频精品| 中国美女**毛片录像在线| 欧美精品三级在线| 五月天久久综合| 婷婷99视频精品全部在线观看| 国产亚洲视频免费播放| 午夜精品一区二区蜜桃| 嫩草国产在线| 91精品国产丝袜| 伦伦影院精品一区| 四虎国产在线观看| 中文字幕第4页| 久久香蕉国产线看精品| 国产白浆在线| 免费无码AV片在线观看中文| 国产精品一线天| 欧美天堂久久| 丁香婷婷久久| www.av男人.com| 国产精品美人久久久久久AV| 手机在线看片不卡中文字幕| 精品无码国产自产野外拍在线| 伊人久久综在合线亚洲91| 国产精品手机在线播放| 中日无码在线观看| 久久黄色影院| 99视频在线精品免费观看6| 欧美高清国产| 亚洲中文字幕无码mv| 国模私拍一区二区| 美女免费精品高清毛片在线视| 国产成人精品亚洲日本对白优播| 欧美激情福利| 激情乱人伦| 亚洲精品第1页| 伊人色在线视频| 国产91久久久久久| 成人午夜天| 熟女日韩精品2区|