?

基于AADL的航空電子系統的建模研究*

2013-11-23 04:18
艦船電子工程 2013年4期
關鍵詞:設計模式線程代碼

(1.陜西工業職業技術學院 咸陽 712000)(2.中航工業西安飛行自動控制研究所 西安 710075)

1 引言

安全關鍵系統的模型驅動開發過程中,怎樣提高模型對實時嵌入式系統非功能需求的表達能力,怎樣在早期設計過程中對系統進行分析與驗證,怎樣正確的生成代碼一直是研究熱點。體系結構分析與設計語言AADL 是在這種背景下產生的,能夠描述ERTS的非功能屬性,支持靜態、動態結構的協同建模,支持軟件、硬件的協同建模,并且可以針對特定領域進行擴展。而AADL 具有語法簡單、功能強大、可擴展的優點,使基于AADL 的模型驅動過程得到了學術界和工業界的廣泛研究和應用。

2 AADL建模方法的研究

AADL 是嵌入式實時系統領域的體系結構設計與分析標準[1],而MDD 正在成為主流的開發過程。提出AADL與MDD 結合,能夠使AADL 得到更廣泛的使用。MDD 定義了三個層次的抽象:平臺獨立模型(platform independent model,簡稱PIM)、平臺特定模型(platform specific model,簡稱PSM)以及應用代碼。PIM 是模型驅動設計的初始抽象模型,是設計過程中最為重要的環節之一。因此,AADL建模方法的研究主要涉及AADL PIM 的構造。我們歸納為三類:

2.1 從需求模型到AADL 模型的轉換

由于UML,SysML,xUML (executable UML)[2],HOOD 等描述語言已經廣泛應用于需求的描述,因此結合這些描述語言的優勢是必要的,從需求模型到AADL 模型的轉換就成為重要的研究內容。Feiler 提出將xUML 和AADL 集成到統一的模型驅動開發過程,通過一些經驗規則來完成需求模型到AADL 模型的轉換[4],其中xUML 對UML 增加了更精確的執行語義。

2.2 AADL 常用于構造系統的PSM 模型

因為AADL 能夠同時描述系統的軟、硬件體系結構,兩者映射即可構成PSM 模型。同時,也可以采用AADL 單獨建立系統的軟件體系結構模型,作為AADL PIM 模型。

2.3 采用AADL 與UML 結合的方式

基于AADL UML Profile Annex,將AADL 原型(stereotype)標注在UML 模型上,作為AADL PIM 模型。如構件用UML 類圖表示,并標注AADL 構件類型。

3 AADL模型轉換

模型轉換是MDD 的核心,同時也是AADL 模型驗證與分析的重要基礎。根據嵌入式實時系統的需求,給出了基于AADL 的模型驅動開發過程[6]:

1)獲得AADL PIM 模型,如基于AADL UML Profile Annex,將AADL 原型(stereotype)標注在UML 模型上,作為AADL PIM;

2)利用功能轉換規則,轉換成AADL PSM;

3)利用非功能轉換規則,將PSM 轉換成AADL 分析模型,進行可調度、性能等分析;

4)基于正確的AADL 模型轉成可執行代碼。

4 基于AADL模型的自動代碼生成

自動代碼生成主要研究從AADL 模型到可執行代碼的生成規則、方法和工具。其優點在于減少由手動編程所帶來的錯誤,保證系統質量屬性以及降低系統開發時間[7]。目前基于AADL 模型可以生成的程序語言有Ada,C,C++,Java-RTSJ(real time specification for Java)等。同時針對分布式嵌入式實時系統,可以生成實時中間件及其上的分布式應用代碼。本文將基于AADL 模型的代碼生成歸納為以下幾類[8]:

1)基于AADL 各類軟件構件,生成對應的源代碼。如線程構件到C 代碼的轉換。STOOD 工具支持AADL 到C,C++,Ada代碼生成以及HTML,RTF,MIF 等文檔的生成,還支持Ada,C 代碼到AADL 描述的逆向工程。

2)生成符合不同領域標準的應用代碼,例如生成符合汽車電子控制系統標準AutoSAR、鐵路控制系統標準EN-50128 的C代碼。

3)實時中間件及其上的分布式應用代碼生成。Ocarina工具支持從AADL 模型生成運行在PolyORB,Poly-ORB-HI(PolyORB-high integrity)中間件之上的Ada 分布式應用代碼,同時支持生成POSIX 和RTEMS 平臺上的C代碼,其中PolyORB是一個通用中間件,目標是為不同分布式應用提供統一的解決方案。

4)基于AADL 的設備構件,研究設備驅動代碼的生成技術。

5 AADL 經典通信設計模式

為了增強建模工具和驗證工具Cheddar之間的互操作性,引入了AADL的四種經典通信設計模式:同步數據流模式、互斥模式、黑板模式和排隊緩沖模式。下面對比較常用的幾個經典通信設計模式[5]進行概述:

5.1 同步數據流模式

在同步數據流模式中,線程在dispatch時讀取輸入端口的數據、在complete時向輸出端口寫數據。此模式不需要共享的data構件,processor構件需要指定固定優先級調度策略(如Rate Monotonic等)。這種模式只能用靜態調度策略,每個線程總是在固定的時間讀數據、執行、寫數據(即使在不需要的情況下),因此顯得不靈活。但這種模式的分析卻非常簡單,可以進行處理器利用率(processor utilization factor)分析和最壞響應時間(WCRT)分析等。

5.2 互斥模式

互斥模式考慮了異步通信的情形,在此模式中,線程通過優先級繼承協議(priority inheritance protocols)異步訪問共享的data構件。這種模式可以進行死鎖驗證和WCRT等,但計算WCRT 前需要先計算等待時間,這是很重要的。

5.3 黑板模式

典型操作系統有很多同步設計模式,如信號量、讀者寫者、生產者消費者等等。對于編程語言也有專用的同步設計模式,如黑板設計模式。黑板設計模式是讀者寫者模式的實現,同一時刻只能有一個writer更新數據,但可以有多個readers讀取數據。這種模式下,在任何時刻只有最后寫入的消息可用。

5.4 排隊緩沖模式

排隊緩沖模式使得在任何時刻,所有的寫入數據都可用,AADL通過事件數據端口或共享data構件實現。假設buffer消息的處理協議是FIFO[9]。這種模式需要進行可調度性分析,此外,還需要分析內存使用情況,以確保當生產者速率大于消費者速率時不會丟失數據。

6 飛行管理系統AADL建模

在對飛行管理系統AADL建模時,我們采用自主研制的高可靠實時操作系統FCOS作為其基礎運行環境,該操作系統是一款比較成熟的專用操作系統,目前已經成功應用于我們研制的無人飛機、導彈系統中。

飛行管理系統(Flight Management System)是飛機重要的子系統,能夠協助飛行員完成從起飛到著陸的各項任務,管理、監視和自動操縱飛機實現全航程的自動飛行。FMS集導航、制導、控制及座艙顯示于一體,其主要功能可分為飛行規劃、導航、性能優化、制導及信息顯示。

飛行管理系統建模中主要使用周期任務來完成,而周期任務集τ的數學模型[3]由四元組τi={φi,Ti,Ci,Di}表示,其中φi為初始請求時間,Ci為任務執行時間,Di為相對死線,Ti為任務周期。本文中論述的FMS系統各任務φi=0,Di=Ti。因此任務模型將簡化為τi={Ci,Di}。

從飛行管理系統功能劃分可以規劃飛行管理系統有導航傳感器處理線程、綜合導航線程、制導線程、飛行規劃線程、飛機性能優化線程和控制顯示線程等六個處理線程。其模型[12]為TNav=(15,50),TⅠnt=(40,100),TGui=(30,50),TFli=(30,200),TAir=(100,500),THan=(1,50),單位為ms。為了避免共享數據區的生產者-消費者問題,任務之間通信采用共享數據區,采用單工方式還是進行雙工通信,則取決于共享數據區的數目。

該飛行管理系統六個線程的AADL 建模實現如下程序所示:

以上線程的運行處理器平臺的AADL建模如下:

[1]http://www.ntsb.gov/aviationquery

[2]Gerard S,Feiler PH,Rolland JF,Filali M,Reiser MO,Delanote D,Berbers Y,Pautet L,Perseil I.UML &AADL 2007 Grand challenge.ACM SIGBED Review,2007,4(4):1-17.

[3]Fuentes L,Sánchez P.Towards executable aspect-oriented UML models.In Proceedings of the 10th Int’l Workshop on Aspect-Oriented Modeling.New York:ACM Press,2007:28-34.

[4]Delanote D,van Baelen S,Joosen W,Berbers Y.Using AADL in model driven development.In Proceedings of the Int’l Conf.on Engineering Complex Computer Systems. Washington:IEEE Computer Society Press,2007:1-10.

[5]Feiler PH,de Niz D,Raistrick C,Lewis BA.From PIMs to PSMs.In Proceedings of the 12th IEEE Int’l Conf.on Engineering Complex Computer Systems.Washington:IEEE Computer Society Press,2007:365-370.

[6]Svetinovic D.Architecture-Level requirements specification.In:Proceedings of the 2nd Int’l Software Requirements to Architectures Workshop,2003:14-19.

[7]SAE Aerospace.SAE AS5506:Architecture Analysis and Design Language(AADL).SAE Int'l,2004.

[8]Gogul Balakrishnan,Thomas Reps.Analyzing Memory Accesses in x86Executables.In Proceedings of CC'04,2004:5-23

[9]F.Singhoff,L.Nana,J.Legrand.Implementing an AADL performance analyzer.In Proceedings of the Conference on Data Systems in Aerospace,DASIA’06.2006.

[10]張莉,姜浩.領域本體半自動化建模工具的設計與實現[J].計算機與數字工程,2009(9).

[11]張斌,劉祥,張琦.艦船電子系統并行工程質量管理模型的研究與應用[J].計算機與數字工程,2010(2).

[12]F.Nemer,H.Cass′e.Papabench:A free real-time benchmark.In Workshop on Worst-Case Execution Time Analysis,WCET’06,2006:1-6.

猜你喜歡
設計模式線程代碼
設計模式識別的特征信息分類研究
“1+1”作業設計模式的實踐探索
實時操作系統mbedOS 互斥量調度機制剖析
智慧圖書館環境下的融貫式服務設計模式研究
三維協同設計模式下的航天項目管理實踐與展望
基于國產化環境的線程池模型研究與實現
創世代碼
創世代碼
創世代碼
創世代碼
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合