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

嵌入式OSEK/VDX操作系統的優化與應用*

2016-04-11 08:17:49邢國成張家旭
汽車工程 2016年4期
關鍵詞:嵌入式設置優化

李 靜,邢國成,張家旭,2

(1.吉林大學,汽車仿真與控制國家重點實驗室,長春 130022; 2.中國第一汽車集團技術中心,長春 130011)

2016076

嵌入式OSEK/VDX操作系統的優化與應用*

李 靜1,邢國成1,張家旭1,2

(1.吉林大學,汽車仿真與控制國家重點實驗室,長春 130022; 2.中國第一汽車集團技術中心,長春 130011)

為了解決嵌入式OSEK/VDX操作系統在高負載、搶占模式下低優先級任務長時間得不到執行的問題,利用OSEK/VDX標準中的報警機制提出了一種優化的最小空閑時間優先調度算法來完善嵌入式OSEK/VDX操作系統的調度策略。給出了該算法的具體實現方案,在理論上分析了該算法的可行性,最后將該算法應用于汽車簡單和復雜的電控系統。測試結果表明:在高負載、搶占模式下,使用該算法能夠明顯改善低優先級任務的執行。

OSEK/VDX;最小空閑時間優先;調度算法;優化;應用

前言

針對復雜的汽車電子控制系統,歐洲汽車行業開發了OSEK/VDX標準[1]。文獻[2]中對OSEK/VDX標準進行了詳細解析。

基于OSEK/VDX標準的嵌入式實時操作系統在發動機管理系統(engine management system, EMS)、電子穩定性程序(electronic stability program,ESP)等汽車電子控制系統中有著廣泛的應用[3-4]。但是在實際應用中,當操作系統工作在搶占模式而且系統負載較大時,低優先級任務可能長時間得不到執行,任務的執行周期可能較大程度地偏離用戶的期望值[5-6]。

針對上述問題,文獻[5]中提出了一種基于時間片輪轉調度算法的補償調度策略。文獻[6]中用搶占式的最早截止期優先(earliest deadline first,EDF)調度算法對嵌入式OSEK/VDX操作系統進行了優化,實現了優先級的動態分配,使系統的實時性得到提高。EDF算法可以實現最優調度,但是在實際應用中搶占式EDF調度算法的搶占次數多,額外開銷大,一旦系統過載EDF算法的調度能力將急劇下降[7-8]。

最小空閑時間優先(least slack first,LSF)調度算法是一種典型的動態優先級實時調度算法,同樣能實現最優調度[9-10]。本文中在LSF算法的基礎上,利用嵌入式OSEK/VDX操作系統的報警機制實現了A-LSF(alarm-based least slack first,A-LSF)算法,在理論上分析了算法的合理性,并且給出了算法的應用方案,進行了實驗測試,結果表明:A-LSF算法能夠有效解決低優先級任務長時間得不到執行的問題,而且應用非常靈活。

1 LSF算法的優化

1.1 LSF算法簡介

LSF算法用空閑時間來描述任務的“緊急程度”,在每次任務調度之前都要重新分配所有任務的優先級,空閑時間越小的任務獲得的優先級越高。當兩個任務的空閑時間接近時,會出現任務“緊急程度”相互超越的情況,任務之間會頻繁相互搶占,每次搶占都會發生一次任務切換,這種頻繁切換的現象稱為顛簸現象[11]。

頻繁的任務切換會顯著增加任務的切換時間,而任務的切換時間是評價一個實時操作系統最重要的技術指標之一,因此顛簸現象大大降低了系統調度性能,也制約了LSF算法的應用[12]。現有的優化策略都是通過設置搶占閾值的方法來減輕顛簸現象,文獻[9]中提出了一種動態分配搶占閾值的方案,文獻[12]中提出了一種動態分配模糊閾值的方案,這些改進算法提高了LSF算法的性能,但是也明顯增加了系統的額外負載,降低了系統的實時性。

1.2 優化方案

本文中對LSF算法優化后得到A-LSF算法。A-LSF算法在本質上是對LSF算法的簡化,優化之后無須引入搶占閾值就能夠避免LSF算法的顛簸現象,同時可以解決搶占模式下系統負載較高時,低優先級任務長時間得不到執行的問題。

A-LSF算法是利用OSEK/VDX的報警機制來實現的。報警機制是嵌入式OSEK/VDX操作系統特有的一個概念,它可以在計數器的基礎上實現一系列的定時操作,當報警發生時可以激活任務、設置事件等。本文中通過設置報警和處理報警實現了A-LSF算法。

A-LSF算法是對OSEK/VDX調度算法的一個補充,只有當用戶需要時,為特定任務設置了相應報警,A-LSF算法才會起作用,而且只對指定的任務起作用。A-LSF算法主要分為報警設置和報警處理兩部分。報警處理中的優先級分配算法是整個算法的核心。圖1為A-LSF算法流程圖。

圖1 A-LSF算法流程

1.2.1 報警的設置

設置報警是啟用A-LSF算法的前提。這需要為嵌入式OSEK/VDX操作系統添加“分配優先級”報警,即當報警發生時分配任務的優先級。

設置報警的API函數除了要設置“分配任務優先級”這種報警之外,還須檢測該任務是否有尚未發生的同類報警,如果有,則清除該報警。因為雖然在優化前,該任務長時間得不到執行,但仍然有可能憑借原來較低的靜態優先級被系統所調度,在這種情況下須將之前設置的“分配任務優先級”報警清除,否則該任務有可能會過于頻繁地執行而干擾其它任務的正常運行。在設置報警之后API函數還要恢復該任務的靜態優先級,以避免該任務憑借上一次報警發生后獲得的較高優先級而過多地執行。

1.2.2 報警的處理

報警的處理是A-LSF算法的核心內容。在每次報警發生時,都必須執行“優先級分配算法”來分配任務的優先級。如果此時該任務處于掛起狀態,必須馬上激活該任務;在完成上述操作的基礎上,對執行嵌入式OSEK/VDX操作系統的任務調度算法進行一次任務調度。

1.2.3 優先級分配算法

優先級分配算法是報警處理的核心內容,分為兩步,第一步完成優先級的初步分配,第二步在第一步的基礎上完成優先級分配的優化。

(1)“任務優先級的初步分配”應滿足“優先級限制條件”和“先報警先得到”的原則。前者能確保具有嚴格時限要求的任務不被干擾,后者能按照報警發生的先后順序合理分配任務的優先級。算法的參數定義如表1所示。

表1 優先級分配算法的參數定義

優先級限制條件:假設此時只有任務τj的“優先級分配”報警發生,則任務τj的新優先級pj=pm。在實際的系統中,某些高優先級任務可能有嚴格的時間要求,不允許被干擾,此時pm的值應該低于這類任務的優先級。

先報警先得到原則:先發生“分配優先級”報警的任務會獲得較高的優先級。假設任務τi的報警先發生,而且將優先級提高到了pi,緊接著任務τj的報警發生,則τj的新優先級pj取小于pi的最大值。

(2)“優先級分配的優化”目的在于使得所有使用A-LSF算法的任務盡量獲得較高的優先級。因此需要檢查是否有任務使用了A-LSF算法而且已經執行完畢,如果有,則該任務已經釋放了它的優先級,此時應該按照(1)中的條件盡量提升其它任務的優先級。

按照該算法來為任務分配優先級會出現整個系統中多個任務共享一個優先級的情況。在OSEK/VDX標準中,當操作系統的符合類為BCC2和ECC2時,系統允許多任務共享一個優先級,符合類為BCC1和ECC1時不允許這種情況發生。因此,只當符合類為BCC2或ECC2時才可以使用A-LSF算法。

2 A-LSF算法的理論分析

定義一個任務集:τi={Ti,ri,Di,di,t,ta1,i,tad,i,ts1,i,talarm,i},i=0,1,2,3…。任務集中各參數定義如下:Ti為任務τi的周期(本文中的研究僅限于由周期性任務構成的實時系統);ri為任務τi剩余的執行時間;Di為任務τi的空閑時間;di為任務τi的截止期限;ta1,i為任務τi第一次被激活的時刻;t為當前時刻;talarm,i為任務τi的報警時刻;tad,i為任務τi的剩余報警時間;ts1,i為任務τi第一次設置報警的時刻。

針對LSF算法中di的計算有多種研究,文獻[12]中以任務周期Ti的結束時刻作為LSF算法的截止期限,在此基礎上開發了針對多處理器調度的LSFR算法。實際中di的取值與Ti緊密相關,為了計算方便仍將任務在執行周期Ti結束的時刻作為di。

圖2為A-LSF算法的時序簡圖。由圖可知,在A-LSF算法中,當任務τi的第k次設置報警結束時,本次任務τi的截止期限為

di=ts1,i+k·Ti

(1)

圖2 A-LSF時序簡圖

根據嵌入式OSEK/VDX操作系統中的報警機制,計算在t時刻任務τi的剩余報警時間:

tad,i=di-t-ri

(2)

tad,i=ts1,i+k·Ti-t-ri

(3)

(4)

(5)

由于ts1,i可以視為常數,故在給定時刻t,任務的剩余報警時間tad,i是任務周期Ti和任務剩余時間ri的函數。

對LSF算法采用相同的思路計算可得:

di=ta1,i+k·Ti

(6)

Di=di-t-ri

(7)

(8)

式(5)和式(8)只有常數項ts1,i與ta1,i不同,A-LSF算法中tad,i的概念等同于LSF算法中Di的概念。在A-LSF算法中,報警發生時意味著任務剩余報警時間tad,i=0,即Di=0,此時才會提升該任務的優先級,否則任務只能擁有原來相對較低的靜態優先級,這正是LSF算法中“最小空閑時間優先”的思想。

A-LSF算法中報警發生之前,每個任務的空閑時間都是嚴格遞減的,報警發生之后將不再變化,因此不會出現LSF算法中任務的緊急程度交替超越的情況。這實際上是LSF算法運行過程中的一種特殊情況,A-LSF算法只有在這種情況下才會為任務分配優先級,而且優先級分配算法遵循“先報警先得到”的原則,避免了“顛簸現象”。

LSF算法在每次調度之前都要更新所有任務的空閑時間和優先級,以此來實現最優調度。但是本文中的目的在于解決低優先級任務得不到執行的問題,低優先級任務的執行周期本身就較長,沒有必要在每次任務調度之前都重新分配任務的優先級,如果不對LSF算法進行簡化,系統分配優先級的頻率會大大增加,而且必須添加其它算法來避免“顛簸現象”,這會額外增加系統負荷。所以,A-LSF算法相當于簡化了LSF算法,滿足了當前的需求。

3 優化后操作系統的應用

A-LSF調度策略是可選項,用戶可以根據具體情況決定是否使用A-LSF算法。如果在測試過程中發現某些低優先級任務需要使用A-LSF算法,只須針對這些任務進行簡單的配置即可;如果不使用該算法,不會對操作系統的運行產生任何影響,這大大增強了操作系統的靈活性。一般來說,只有當汽車電控系統較為復雜時才有必要在系統中配置該調度策略。本節分別介紹優化后的嵌入式OSEK/VDX操作系統在復雜系統和簡單系統中的應用。

3.1 復雜的汽車電控系統

在實時性要求較高的復雜汽車電控系統中,傳感器和執行器數量較多,控制算法也很復雜。因此,系統的任務數量多,負載較大。假設現有控制系統中,包含任務τ0,τ1,…,τ9,任務優先級由1到10逐次升高,均配置為搶占模式。此時用戶需要根據具體的測試數據來配置系統的調度策略。假設測得任務τ0,τ1較長時間得不到執行,運行周期嚴重偏離用戶預期,此時需要使用A-LSF算法,按照表2來配置系統的調度策略。

表2 調度策略配置方案

按照表2的配置方案,各個任務的調度策略如圖3所示。

圖3 任務調度策略配置結果

任務1和任務2配置為A-LSF,即使用A-LSF算法,任務3-任務10配置為Default,即不使用A-LSF算法。pm值設置為4,意味著在A-LSF算法運行時,任務1和任務2的優先級最多升高至4。在決定了系統的調度策略之后,最重要的是完成報警的設置和處理。

(1)任務τ1和任務τ2中在應用層代碼結束的位置設置基于系統計數器的“分配優先級”報警,因為設置報警的API函數具有恢復任務靜態優先級的功能,所以放到用戶代碼之后算法才有意義。由圖2可知,設置報警的時長由任務的周期和執行時間決定,但是圖2僅僅是理想的情況,實際中當報警發生之后,任務仍然可能被更高優先級任務搶占,不會連續執行至結束。因此報警發生的時刻應該比圖2中的時刻提前一些,具體的提前量須由用戶實際測試后確定。

(2)在系統時鐘的中斷服務程序中調用處理報警的API函數。

3.2 簡單的汽車電控系統

在相對簡單的汽車電控系統中,任務數量一般較少,系統負載較小。任務的實時性比較容易滿足要求。因此,在這類系統中無須為任何任務配置A-LSF算法,調度策略配置結果如圖4所示,操作系統與優化前相比沒有任何區別,這也體現了A-LSF算法的靈活性。

圖4 任務調度策略配置結果

4 實驗測試與結果分析

以飛思卡爾公司的微控制器MC9S12XS128和Dspace公司的MicroAutoBox搭建實驗平臺。合理安排τ0-τ9共10個搶占式周期性任務,優先級從1到10逐次升高。每個任務的執行時間是固定的,分別在優化前和優化后的嵌入式OSEK/VDX操作系統上運行,其中高優先級任務的代碼執行時間和執行周期都較短,低優先級任務的代碼執行時間和執行周期都較長。

為了能直觀地觀察任務的運行狀態,安排τ0-τ9各個任務分別控制一個IO口。當任務運行時相應IO口為高電平,任務退出或者被搶占后IO為低電平。利用ControlDesk的plotter工具,分別顯示兩個最高優先級和兩個最低優先級任務的運行狀態,優化前、后任務的運行狀態分別如圖5和圖6所示。4個波形由上到下分別代表任務τ0,τ1,τ8和τ9,優化后任務τ0和τ1使用了ALSF算法。

圖5 優化前的任務運行狀態

圖6 優化后的任務運行狀態

對比圖5和圖6可知:優化前后高優先級任務的運行周期和執行時間基本穩定,沒有明顯變化;優化前低優先級任務的運行周期和執行時間很不穩定,可能很長時間才執行一次,優化后低優先級任務的運行狀態雖然沒有高優先級任務穩定,但是得到了非常明顯的改善,能夠滿足用戶的需求。

5 結論

(1)A-LSF算法可以實現對嵌入式OSEK/VDX操作系統的優化,能夠解決系統在高負載搶占模式下低優先級任務得不到及時執行的問題。

(2)A-LSF算法克服了LSF算法原有的顛簸現象,而且與EDF或LSF算法相比,結構更加簡單,容易實現。A-LSF算法作為可選項也增加了整個操作系統的靈活性。

[1]KIENCKEU,THIERERC.TheOSEK/VDXStandardforAutomotiveApplications-CurrentStatus[C].SAETransactions,March, 2000: 140-146.

[2] 羅克露,等.OSEK/VDX汽車電子嵌入式軟件編程技術[M]. 北京:北京航空航天大學出版社,2004.

[3]MirceaPopa,AncaSoranaPopa,TitusSlavici,etal.OntheImplementationoftheOSEK/VDXOperatingSystemonAdvancedMicrocontrollers[C].TheInternationalConferenceonComputerasaTool,IEEE, 2007:419-426.

[4] 郜文,李繼來,梁華為.OSEK/VDX嵌入式實時操作系統在汽車穩定性控制器中的應用[J]. 計算機系統應用, 2010, 19(4):148-151.

[5] 蔣建春,張慧.基于OSEK標準的任務調度算法的改進[J]. 計算機工程,2009,35(20):228-230.

[6] 馬明禮,等.OSEK實時操作系統任務調度的優化[J]. 單片機與嵌入式系統, 2007,10:17-53.

[7]LIUCL,JamesWLaykand.SchedulingAlgorithmsforMultiprogramminginaHard-Real-TimeEnvironment[J].JournaloftheAssociationforComputingMachinery,1973,20(1):46-61.

[8] 王濟勇,林濤,王金東,等.EDF調度算法搶占行為的研究及其改進[J].電子學報,2004,32(1):64-68.

[9]BAWei,ZHANGDabo.ANovelLeastSlackFirstSchedulingAlgorithmOptimizedbyThreshold[C].Proceedingsofthe26thChineseControlConference,Zhangjiajie,July26-31, 2007.Beijing:BeihangUniversityPress, 2007.

[10]HWANGMyunggwon,CHOIDongjin,KIMPankoo.LeastSlackTimeRatefirst:NewSchedulingAlgorithmforMulti-ProcessorEnvironment[C].IEEEComputerSociety,Feb,2010:806-811.

[11]PARKS,KIMJai-Hoon,FOXG.Effectivereal-timeSchedulingAlgorithmforCyberPhysicalSystemsSociety[J].FutureGenerationComputerSystems, 2014,32:253-259.

[12] 金宏, 王宏安, 王強, 等. 改進的最小空閑時間優先調度算法[J]. 軟件學報, 2004,15(8):1116-1123.

Optimizationand Application of Embedded OSEK/VDX Operating System

Li Jing1, Xing Guocheng1& Zhang Jiaxu1,2

1.JilinUniversity,StateKeyLaboratoryofAutomotiveSimulationandControl,Changchun130022;2.ResearchandDevelopmentCenter,ChinaFAWGroupCorporation,Changchun130011

For solving the problem that the low-priority tasks are hard to be executed under high load and preemption mode with embedded OSEK/VDX operating system, an optimized least slack first algorithm is proposed by utilizing the alarm mechanism of OSEK/VDX standard to improve the scheduling strategy of embedded OSEK/VDX operating system. The specific implementation scheme of the algorithm is presented, its feasibility is theoretically analyzed, and finally the algorithm is applied to both simple and complex electric control systems of vehicle. The results of test show that the algorithm proposed can significantly improve the excitation of low-priority tasks under the condition of high load and preemption mode.

OSEK/VDX; LSF; scheduling algorithm; optimization; application

*國家自然科學基金(51275206)資助。

原稿收到日期為2015年3月16日,修改稿收到日期為2015年5月28日。

猜你喜歡
嵌入式設置優化
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
搭建基于Qt的嵌入式開發平臺
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 午夜精品久久久久久久无码软件 | 久久人人97超碰人人澡爱香蕉 | A级全黄试看30分钟小视频| 亚洲国产综合精品一区| 毛片最新网址| 性视频一区| 亚洲综合网在线观看| 国产丝袜无码一区二区视频| 国产精品自在拍首页视频8| 久青草网站| 成人国产精品视频频| 伊人91在线| 日韩在线网址| 国产在线无码av完整版在线观看| 51国产偷自视频区视频手机观看 | 尤物午夜福利视频| 久热99这里只有精品视频6| 亚洲AV无码精品无码久久蜜桃| 国产素人在线| 日本道综合一本久久久88| 國產尤物AV尤物在線觀看| 无码av免费不卡在线观看| 成人国产免费| 国产成人禁片在线观看| 国产成人在线无码免费视频| 91在线一9|永久视频在线| 国产欧美高清| 久热这里只有精品6| 人妻一区二区三区无码精品一区 | 91在线精品免费免费播放| 免费看的一级毛片| 亚洲国产成熟视频在线多多| 91黄视频在线观看| 99久久国产综合精品2023| 久青草网站| 久久永久免费人妻精品| 亚洲国产系列| 中国精品久久| 亚洲精品成人福利在线电影| 天天婬欲婬香婬色婬视频播放| 色男人的天堂久久综合| 影音先锋亚洲无码| 91色老久久精品偷偷蜜臀| 九色视频一区| 日韩AV无码免费一二三区| 国产精品制服| A级毛片无码久久精品免费| 国产jizzjizz视频| 毛片大全免费观看| 最新国产精品鲁鲁免费视频| 国产精品一区二区在线播放| 国产一区免费在线观看| 欧美日韩中文字幕二区三区| 天天操精品| 97国产精品视频自在拍| 国产成人亚洲欧美激情| 久久人人妻人人爽人人卡片av| 在线一级毛片| 国产成人啪视频一区二区三区 | 亚洲欧美人成电影在线观看| 精品国产免费观看| 欧美精品另类| 免费国产小视频在线观看| 国产小视频a在线观看| 最新国产你懂的在线网址| 99久久精品免费观看国产| 影音先锋亚洲无码| 丰满人妻久久中文字幕| 亚洲人成网站18禁动漫无码| 国产精品手机在线观看你懂的| 2021最新国产精品网站| 99在线视频精品| 国产真实乱了在线播放| 热re99久久精品国99热| 久久精品国产免费观看频道| www.日韩三级| 亚洲一区二区日韩欧美gif| 日韩人妻无码制服丝袜视频| 69av在线| 免费三A级毛片视频| 色国产视频| 免费观看无遮挡www的小视频|