国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ARINC 653仿真器的機載操作系統(tǒng)任務(wù)狀態(tài)監(jiān)控設(shè)計與實現(xiàn)

2019-07-01 02:35孟開元閆方曹慶年彭寒
智能計算機與應(yīng)用 2019年3期

孟開元 閆方 曹慶年 彭寒

摘 要:機載操作系統(tǒng)屬于嵌入式實時操作系統(tǒng),其內(nèi)部內(nèi)核對象的狀態(tài)變遷、關(guān)鍵數(shù)據(jù)的值變化以及系統(tǒng)調(diào)度運行狀況直接影響著機載應(yīng)用程序的正確執(zhí)行。本文以為機載應(yīng)用程序更好地定位故障、發(fā)現(xiàn)并排除各種邏輯錯誤為目的,采用內(nèi)嵌傳感器的方法,結(jié)合任務(wù)的狀態(tài)切換、觸發(fā)狀態(tài)切換,應(yīng)用ARINC 653仿真器實時監(jiān)控機載操作系統(tǒng)的狀態(tài)和數(shù)據(jù)變化。經(jīng)過測試,表明該系統(tǒng)可以得到機載應(yīng)用程序的狀態(tài)和行為變遷,并為機載應(yīng)用程序的運行時驗證、機載分區(qū)操作系統(tǒng)仿真器的符合性測試提供基礎(chǔ)。

關(guān)鍵詞: 機載操作系統(tǒng)仿真器;機載應(yīng)用程序;狀態(tài)變遷; 內(nèi)嵌軟件傳感器

文章編號: 2095-2163(2019)03-0110-04 中圖分類號: TP316 文獻標(biāo)志碼: A

0 引 言

隨著機載電子系統(tǒng)快速發(fā)展,機載操作系統(tǒng)作為學(xué)術(shù)界一個熱門研究方向,也一直都是技術(shù)研發(fā)上的亮點和難點[1]。機載操作系統(tǒng)研究和發(fā)展起源于二十世紀(jì)中葉,最初機載實時操作系統(tǒng)主要與軍事上需求緊密相關(guān),但隨著計算機技術(shù)應(yīng)用范圍不斷擴大,實時操作系統(tǒng)已經(jīng)應(yīng)用于人們生活中各個領(lǐng)域。然而無論是在嵌入式領(lǐng)域、還是在通用領(lǐng)域,對于操作系統(tǒng)實時性都有嚴(yán)格要求。如果機載操作系統(tǒng)的實時性不能滿足需要,將會帶來不可預(yù)測后果。因此,機載操作系統(tǒng)實時性能是衡量機載系統(tǒng)優(yōu)劣性的重要指標(biāo)[2-3]。本文針對實時機載操作系統(tǒng)安全性不斷提升這一項目任務(wù),亟需對其任務(wù)狀態(tài)進行監(jiān)控和分析,為此專門探討和研究了機載操作系統(tǒng)仿真器任務(wù)狀態(tài)監(jiān)控方法,設(shè)計和實現(xiàn)一個仿真器任務(wù)狀態(tài)監(jiān)控系統(tǒng)。

1 ARINC 653操作系統(tǒng)仿真器原理

為了實現(xiàn)資源共享,采用IMA(Integrated Modular Avionics system)架構(gòu)的航空電子系統(tǒng),軟件體系結(jié)構(gòu)采用了軟件分層的方法[4-5]。而具有代表性的綜合模塊化軟件體系架構(gòu)之一就是ARINC 653。如圖1所示,ARINC 653在應(yīng)用程序、操作系統(tǒng)、硬件之間建立標(biāo)準(zhǔn)接口,即APEX(Application/Executive)接口,并且提出了分區(qū)這一核心的概念[6-7]。

而分區(qū)是航空電子應(yīng)用的一種功能劃分。每個分區(qū)分別有4種模式:WAREM_START、COLD_START、IDLE、NORMAL[8]。而分區(qū)內(nèi)是以進程為一個執(zhí)行單元的。仿真器就是利用Windows線程仿真ARINC 653的進程,同時每個進程又各有4種狀態(tài),即:運行態(tài)(RUNNING),就緒態(tài)(READY),休眠態(tài)(DORMANT)和等待態(tài)(WAITING)[9]。

本文通過分析機載仿真操作系統(tǒng)ARINC653源代碼,在任務(wù)狀態(tài)發(fā)生變化的關(guān)鍵位置處,插入監(jiān)控代碼,實時感知分區(qū)內(nèi)任務(wù)切換,根據(jù)代碼上下文判斷觸發(fā)任務(wù)切換事件類型;通過消息通道將此序列傳輸?shù)椒抡嫫魍獠匡@示界面并保存;完成對分區(qū)內(nèi)任務(wù)狀態(tài)-事件序列采集。實現(xiàn)了實時監(jiān)控機載操作系統(tǒng)的狀態(tài)和數(shù)據(jù)變化,實現(xiàn)了將機載操作系統(tǒng)中的分歧和進程狀態(tài)切換的信息接出來并發(fā)送到界面,從而在外部對系統(tǒng)內(nèi)部進行有效的監(jiān)控和研究。

2 系統(tǒng)總體框架

任務(wù)狀態(tài)監(jiān)控工具的設(shè)計主要包括了監(jiān)控器模塊的設(shè)計、消息通道機制的設(shè)計和顯示界面模塊的設(shè)計三部分。系統(tǒng)的總體框架如圖2所示。

從圖2中可以看出,監(jiān)控器模塊是嵌入到ARINC653仿真操作系統(tǒng)中的,其通過內(nèi)嵌軟件傳感器將捕獲到的狀態(tài)轉(zhuǎn)換信息打包后寫入到消息緩沖隊列中,然后通過一個工作線程不斷地將緩沖隊列的數(shù)據(jù)寫入消息通道;消息通道底層封裝了Windows的通信機制,將監(jiān)控器模塊寫入的數(shù)據(jù)傳遞到顯示界面;顯示界面模塊接收到消息后,先是對消息進行解析處理,此后將發(fā)送到界面顯示或者保存到日志文件中。

3 系統(tǒng)的設(shè)計

3.1 監(jiān)控器模塊的設(shè)計

監(jiān)控器模塊的設(shè)計主要包括了4部分內(nèi)容:狀態(tài)事件的設(shè)計、內(nèi)嵌傳感器的設(shè)計、消息隊列的設(shè)計和工作線程的設(shè)計。這里對其中每一部分的功能設(shè)計可闡釋解析如下。

(1)狀態(tài)事件的設(shè)計。本文將分區(qū)和進程的每次狀態(tài)轉(zhuǎn)換當(dāng)作一次觸發(fā)事件來處理,并給每個轉(zhuǎn)換進行了事件編號。

分區(qū)狀態(tài)事件主要依據(jù)分區(qū)狀態(tài)轉(zhuǎn)換圖,即將分區(qū)狀態(tài)的每次切換進行了編號,具體的事件編號如圖3所示。

進程狀態(tài)事件主要依據(jù)進程狀態(tài)轉(zhuǎn)換圖,將進程狀態(tài)的每次切換進行了編號,具體的事件編號如圖4所示。

(2)內(nèi)嵌傳感器的設(shè)計。過程中采用了內(nèi)嵌軟件傳感器的方法監(jiān)控軟件。該方法采用狀態(tài)傳感器代碼記錄分區(qū)和分區(qū)內(nèi)任務(wù)的狀態(tài)切換,并用事件傳感器代碼記錄觸發(fā)本次狀態(tài)切換的事件;通過對機載操作系統(tǒng)仿真器的源代碼進行分析,共找到28處發(fā)生分區(qū)狀態(tài)以及任務(wù)狀態(tài)切換的位置,在狀態(tài)切換的位置上插入狀態(tài)傳感器代碼。內(nèi)嵌傳感器的設(shè)計主要包括了捕獲分區(qū)狀態(tài)轉(zhuǎn)換接口的設(shè)計和捕獲進程狀態(tài)轉(zhuǎn)換接口的設(shè)計。

(3)消息隊列的設(shè)計。由于仿真操作系統(tǒng)的分區(qū)和進程狀態(tài)切換比較快,而消息通道是一個進程間的通信機制,在傳送過程中會消耗大量的時間,這樣就導(dǎo)致了監(jiān)控器發(fā)送數(shù)據(jù)快,消息通道傳輸速度慢的情況。為了防止監(jiān)控到的消息被覆蓋或者丟失,專門設(shè)計了一個消息緩沖隊列來延緩這個速度差。同時,又考慮到重復(fù)利用緩沖隊列的空閑資源,本文使用環(huán)形隊列來實現(xiàn)消息緩沖隊列。消息隊列的設(shè)計圖如圖5所示。

(4)工作線程的設(shè)計。工作線程的主要作用是從消息緩沖隊列中讀取數(shù)據(jù),并將數(shù)據(jù)按照設(shè)計好的格式進行打包,且將打包好的數(shù)據(jù)寫入消息通道中。工作線程的工作流程如圖6所示。

3.2 消息通道機制的設(shè)計

消息通道的底層使用了命名管道的方式進行進程間通信,為了節(jié)省系統(tǒng)資源,于是采用復(fù)用的方式,一個模塊只對應(yīng)一個命名管道(以模塊名命名),模塊中各個分區(qū)復(fù)用一個通道。由于在一個模塊中,同一時刻只會有一個分區(qū)在運行,就使得在某時刻,命名管道是被某一分區(qū)單獨使用,如此設(shè)計既節(jié)約了資源,又不會引起多個分區(qū)同時發(fā)送數(shù)據(jù)而引發(fā)的沖突。

3.3 顯示界面模塊的設(shè)計

顯示界面用來完成監(jiān)控信息的顯示、歷史信息的保存和回放等功能,其控件的布局如圖7所示。

從圖7可以看出,顯示界面主要分為3部分,即:上部分是界面的標(biāo)題和控制按鈕部分;中間部分是顯示狀態(tài)轉(zhuǎn)化部分;下部分是事件顯示列表。

4 測試

本系統(tǒng)的測試平臺包括Microsoft Visual Studio2008和Microsoft Visual Studio2015,針對是否能夠成功監(jiān)控到機載操作系統(tǒng)仿真器任務(wù)執(zhí)行軌跡來展開研究,并且以狀態(tài)轉(zhuǎn)換圖的形式直觀地顯示在界面上進行測試。系統(tǒng)測試效果如圖8所示。

在一個模塊中配置一個分區(qū),在該分區(qū)中創(chuàng)建2個進程,啟動分區(qū)后,這2個進程的狀態(tài)不斷切換,界面成功顯示預(yù)期的狀態(tài)-事件序列。

從測試結(jié)果來看,能夠成功監(jiān)控到機載操作系統(tǒng)仿真器內(nèi)部的狀態(tài)轉(zhuǎn)化,并且通過界面可以直觀地觀察到機載操作系統(tǒng)仿真器內(nèi)部的狀態(tài)遷移,及時了解到系統(tǒng)內(nèi)部發(fā)生的一系列狀態(tài)遷移,可以更加方便地通過任務(wù)狀態(tài)軌跡對系統(tǒng)的內(nèi)部進行監(jiān)控。

5 結(jié)束語

在機載操作系統(tǒng)仿真器的基礎(chǔ)上,通過監(jiān)控系統(tǒng)內(nèi)部任務(wù)狀態(tài)切換,及時觀察到當(dāng)前系統(tǒng)內(nèi)部任務(wù)狀態(tài)切換軌跡,為機載應(yīng)用程序的測試和驗證提供支持。監(jiān)控到機載操作系統(tǒng)仿真器內(nèi)部任務(wù)狀態(tài),能夠直觀地對外顯示出系統(tǒng)內(nèi)部任務(wù)狀態(tài)切換軌跡,進一步提高機載操作系統(tǒng)的可靠性,為機載應(yīng)用程序的測試和驗證提供了堅實的基礎(chǔ)。

參考文獻

[1]譚龍華,杜承烈,雷鑫. ARINC653分區(qū)實時系統(tǒng)的可調(diào)度分析[J]. 航空學(xué)報,2015,36(11):3698-3705.

[2] 馬安祥,馬麟龍,李海偉. 民用飛機機載狀態(tài)監(jiān)測與管理軟件設(shè)計與研究[J].? 航空計算技術(shù),2016,46(1):107-110.

[3] 張永悅,云利軍,孫瑜. 基于分區(qū)的航電系統(tǒng)調(diào)度分析工具實現(xiàn)[J]. 計算機工程,2014,40(4):42-47.

[4] 張永悅. 基于仿真的實時系統(tǒng)可調(diào)度性分析工具的研究與實現(xiàn)[D]. 昆明:云南師范大學(xué),2014.

[5] 劉鴿,葉宏,李運喜,等. 基于多分區(qū)操作系統(tǒng)的多核確定性調(diào)度方法設(shè)計[J]. 航空計算技術(shù),2016,46(1):99-102.

[6] 陳福,張曉紅,趙剛,等. 飛機機電綜合管理平臺應(yīng)用任務(wù)調(diào)度方法研究[J]. 計算機測量與控制,2016,24(3):255-257,262.

[7] 楊徐晗. 新舟600飛機實時狀態(tài)監(jiān)控與可視化實現(xiàn)[D]. 德州:中國民用航空飛行學(xué)院,2016.

[8] 王冠. IMA下的實時任務(wù)調(diào)度機制研究[D]. 南京:南京航空航天大學(xué),2012.

[9] 劉鴿,葉宏,虞保忠,等. 多分區(qū)環(huán)境下多核操作系統(tǒng)結(jié)構(gòu)研究[J]. 信息安全與技術(shù),2016(1):43-45.