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在多段調速系統中的應用
主站蜘蛛池模板: 欧美成人日韩| 这里只有精品免费视频| 欧美日韩国产在线观看一区二区三区| 99久久国产自偷自偷免费一区| 欧美成人综合视频| 精品福利国产| 久久窝窝国产精品午夜看片| 亚洲an第二区国产精品| 亚洲无线视频| 亚洲天堂首页| 亚洲第一成网站| 天堂亚洲网| 国产精品视频久| 国产全黄a一级毛片| 香蕉eeww99国产精选播放| 国产亚洲精品资源在线26u| vvvv98国产成人综合青青| 久久这里只有精品免费| 久久女人网| 成人无码一区二区三区视频在线观看 | 国产人免费人成免费视频| 人妻丝袜无码视频| 夜夜拍夜夜爽| 91偷拍一区| 精品一区二区无码av| 亚洲欧洲日产国产无码AV| 伊人福利视频| 国产精品无码AV中文| 一本大道无码高清| 波多野结衣一二三| 在线毛片网站| 成人自拍视频在线观看| 亚洲成a人片77777在线播放| 无码免费的亚洲视频| 国产白浆视频| 日韩精品专区免费无码aⅴ| 国产电话自拍伊人| 99久久免费精品特色大片| 四虎精品黑人视频| 91在线精品免费免费播放| 狠狠干欧美| 久久中文无码精品| 亚洲国产精品一区二区第一页免| 97人人模人人爽人人喊小说| 91麻豆精品视频| 国产综合网站| 91久久性奴调教国产免费| 色综合天天视频在线观看| 国产午夜福利片在线观看| 亚洲一区二区在线无码| 欧美不卡二区| 亚洲第一黄片大全| 九九久久99精品| 激情六月丁香婷婷| 怡春院欧美一区二区三区免费| 91毛片网| 97精品久久久大香线焦| 91蝌蚪视频在线观看| 怡红院美国分院一区二区| 日韩亚洲高清一区二区| 亚洲国产精品无码久久一线| 久久精品嫩草研究院| 国产乱人免费视频| 国产福利在线观看精品| 天堂av综合网| 又污又黄又无遮挡网站| 久久久久青草线综合超碰| 国产精品v欧美| 国产经典在线观看一区| 九色在线视频导航91| 亚洲a级毛片| 四虎综合网| 亚洲欧洲综合| 日本精品视频| 亚洲天堂在线视频| 国产美女叼嘿视频免费看| 四虎在线高清无码| 亚洲精品中文字幕无乱码| 91成人在线观看视频| 久久天天躁狠狠躁夜夜2020一| 亚洲欧州色色免费AV| 国产精品美乳|