亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        綜合模塊化航空電子分區(qū)配置啟動機制

        2017-09-03 10:23:54王運盛
        計算機應(yīng)用 2017年6期
        關(guān)鍵詞:冷啟動配置文件內(nèi)核

        王運盛, 雷 航

        (電子科技大學(xué) 信息與軟件工程學(xué)院,成都 611731)

        綜合模塊化航空電子分區(qū)配置啟動機制

        王運盛*, 雷 航

        (電子科技大學(xué) 信息與軟件工程學(xué)院,成都 611731)

        (*通信作者電子郵箱 actet@163.com)

        為了解決綜合模塊化航空電子(IMA)系統(tǒng)資源分配問題并明確分區(qū)啟動時間,以VxWorks 653分區(qū)操作系統(tǒng)為研究實例,針對分區(qū)配置和啟動過程采用統(tǒng)一建模語言(UML)建立了包括類圖和時序圖在內(nèi)的模型。該模型深入地分析了分區(qū)配置和啟動機制,說明了分區(qū)配置在資源分配以及操作系統(tǒng)編譯和分區(qū)初始化過程中的作用,闡述了分區(qū)“冷啟動”和“熱啟動”模式的差別,并建立了實驗平臺測試兩種啟動模式的啟動時間,測試結(jié)果顯示分區(qū)冷啟動和熱啟動的時間分別為148 ms和8.5 ms,進而提出了這兩種分區(qū)啟動模式的應(yīng)用場景以及分區(qū)配置和應(yīng)用程序軟件啟動初始化設(shè)計的策略。例如在建立分區(qū)主時間框架和健康監(jiān)控策略過程中應(yīng)確定分區(qū)啟動的方式并充分考慮分區(qū)啟動時間,這些設(shè)計策略也適用于其他高安全性應(yīng)用環(huán)境中分區(qū)系統(tǒng)的設(shè)計。

        綜合模塊化航空電子;分區(qū);駐留應(yīng)用;統(tǒng)一建模語言;資源分配

        0 引言

        在綜合模塊化航空電子(Integrated Modular Avionics, IMA)系統(tǒng)中,各種航電系統(tǒng)功能通過運行在公共計算資源(Common Computing Resources, CCR)上的駐留應(yīng)用(Hosted Applications, HA)來實現(xiàn)[1]。IMA體系架構(gòu)改變了以往以傳感器為中心的設(shè)計方式,減少了設(shè)備和模塊種類,提高了系統(tǒng)的可靠性和穩(wěn)定性,同時便于升級維護,降低了航電系統(tǒng)全生命周期的成本,已經(jīng)在現(xiàn)代航空電子系統(tǒng)中得到了廣泛的應(yīng)用[2]。目前主流的民用飛機,包括波音B787、空客A380以及我國正在研制的C919大型客機,都采用了IMA架構(gòu)[3]。

        分區(qū)是IMA軟件架構(gòu)的主要組成部分,也是IMA平臺分配資源的基本單元,各種功能應(yīng)用所需要的計算資源、存儲資源、網(wǎng)絡(luò)資源都通過分區(qū)的配置文件進行預(yù)先的設(shè)計和定義,航電系統(tǒng)功能及駐留應(yīng)用的正常運行離不開正確的分區(qū)配置和啟動過程。深入地開展分區(qū)的配置啟動機制研究,建立相應(yīng)的模型并進行性能分析和評估,對于駐留應(yīng)用的設(shè)計、IMA平臺資源分配以及航電系統(tǒng)功能設(shè)計都是很有必要的。目前,國內(nèi)外關(guān)于IMA和分區(qū)相關(guān)的研究工作集中在IMA架構(gòu)下分區(qū)的可調(diào)度性、架構(gòu)設(shè)計和安全性方面,缺少對分區(qū)配置和啟動機制的分析和啟動時間的測試。文獻[4]分析分區(qū)系統(tǒng)時間資源配置和兩級調(diào)度機制下的可調(diào)度性,根據(jù)負載請求與平臺資源提供能力的供需約束關(guān)系導(dǎo)出了系統(tǒng)可調(diào)度的判定依據(jù),以保證實時任務(wù)能夠在預(yù)定的時間內(nèi)完成計算,并沒有設(shè)計分區(qū)啟動時間及資源配置內(nèi)容;文獻[5]將分區(qū)配置作為系統(tǒng)重構(gòu)的重要手段,但是沒有系統(tǒng)地分析分區(qū)資源的再分配過程以及啟動時間問題;文獻[6]指出IMA是一種高度可配置系統(tǒng),并提出IMA的設(shè)計保證等級分配的幾個原則,為IMA的安全性設(shè)計提供了參考,但沒有涉及具體配置和啟動機制;文獻[7]描述了對于IMA平臺的失效模式和影響分析,指出了初始化過程中需要對資源進行重新配置,但沒有具體展開分析;文獻[8]將配置信息分成兩類分別進行管理,即必需的配置和可選的配置,其中必需的配置信息包括內(nèi)核操作系統(tǒng)配置、應(yīng)用配置、中間件配置、分區(qū)配置、模塊配置,可選的配置主要是共享內(nèi)存和共享IO配置,也沒有涉及到配置文件在初始化過程中作用;文獻[9]開發(fā)了一種改進型的分區(qū)配置工具,可以配置分區(qū)的時間和空間資源以及健康監(jiān)控信息,重點在于配置工具研究;文獻[10]建立了系統(tǒng)配置信息的核心元素(包括模塊、分區(qū)、內(nèi)存、進程、通信等)到嵌入式實時系統(tǒng)建模分析(Modeling and Analysis of Real Time and Embedded system, MARTE)模型元素的語義映射規(guī)則,設(shè)計了基于模型驅(qū)動架構(gòu)的系統(tǒng)配置信息模型轉(zhuǎn)換的方法,并給出了一種對轉(zhuǎn)換得到的系統(tǒng)配置信息進行形式化驗證的框架,其中比較系統(tǒng)地介紹了分區(qū)配置組成,但是也沒有分析啟動過程和配置內(nèi)容,沒有實際測試數(shù)據(jù)。

        1 IMA架構(gòu)和分區(qū)軟件架構(gòu)

        處理器技術(shù)和軟件技術(shù)的迅速發(fā)展催生了分區(qū)隔離技術(shù),即將多個應(yīng)用程序軟件集成到一個處理器并且避免非預(yù)期相互干擾。在這種技術(shù)背景下,航空電子系統(tǒng)從獨立設(shè)備交連的聯(lián)合式系統(tǒng)架構(gòu),發(fā)展到了資源共用的IMA系統(tǒng)架構(gòu)。在聯(lián)合式航空電子系統(tǒng)架構(gòu)中,每個功能都由獨立的設(shè)備完成,每個設(shè)備也有自己獨立的傳感器和作動器,它們之間通過帶寬有限點對點總線(例如ARINC 429或者MIL-STD- 1553b)進行數(shù)據(jù)交換,如圖1(a)所示。在IMA架構(gòu)下,多個標準化通用處理模塊(General Processing Module, GPM)硬件通過公共高速網(wǎng)絡(luò)相連傳感器和作動器以及與綜合化的多功能顯示(Multi-Function Display, MFD)系統(tǒng),軟件采用開放接口,一方面通過分區(qū)隔離避免功能應(yīng)用之間的相互干擾,另一方面,通過層次化的設(shè)計使得應(yīng)用程序軟件可以通過標準的應(yīng)用程序接口來獲得底層軟硬件提供的服務(wù),以往獨立設(shè)備實現(xiàn)的功能將通過IMA軟硬件平臺、公共高速網(wǎng)絡(luò)以及分區(qū)駐留應(yīng)用軟件共同來實現(xiàn),如圖1(b)所示。

        IMA架構(gòu)得到了相關(guān)供應(yīng)商和飛機制造廠商的廣泛認可與支持,這與定義良好的行業(yè)標準密不可分。相關(guān)的行業(yè)標準主要有定義了IMA架構(gòu)并給出IMA設(shè)計指南的ARINC 651[10]標準以及規(guī)定了分區(qū)軟件架構(gòu)和接口的ARINC 653中標準[11]。IMA中的軟件架構(gòu)如圖2所示。

        其中,駐留應(yīng)用分區(qū)為駐留應(yīng)用程序提供所需要的各種資源和分區(qū)隔離的運行環(huán)境,這些應(yīng)用程序都在分區(qū)分配的時間和空間環(huán)境中運行,只能夠調(diào)用應(yīng)用程序執(zhí)行接口(APplication EXecution interface, APEX)訪問系統(tǒng)和硬件資源;內(nèi)核操作系統(tǒng)實現(xiàn)這些接口功能并為分區(qū)提供基礎(chǔ)服務(wù),例如分區(qū)創(chuàng)建和管理的軟件接口;特殊系統(tǒng)功能提供針對特定硬件接口,例如模塊特有硬件的設(shè)備驅(qū)動、軟件加載、調(diào)試接口及自檢功能等;系統(tǒng)分區(qū)是在GPM模塊實現(xiàn)IMA系統(tǒng)管理的相關(guān)功能,比較典型的系統(tǒng)分區(qū)應(yīng)用是模塊級的健康管理,系統(tǒng)分區(qū)仍然受到時間和空間隔離的限制。

        圖1 聯(lián)合式航空電子架構(gòu)與IMA架構(gòu)對比

        圖2 IMA中的軟件架構(gòu)

        2 分區(qū)配置

        在IMA中,駐留應(yīng)用程序完成功能所需的處理資源、存儲資源、網(wǎng)絡(luò)資源都由IMA平臺來提供,IMA平臺和GPM模塊自身也需要記錄和描述資源規(guī)劃來描述系統(tǒng)構(gòu)型,于是配置文件被用來描述IMA平臺、GPM模塊、分區(qū)、駐留應(yīng)用以及資源分配相關(guān)的信息。本章以VxWorks 653分區(qū)操作系統(tǒng)作為研究對象,采用統(tǒng)一建模語言(Unified Modeling Language, UML)來分析和說明分區(qū)的配置和啟動機制。

        2.1 分區(qū)配置內(nèi)容

        分區(qū)的配置信息包括與處理資源相關(guān)的運行周期、占用處理器的持續(xù)時間,與存儲資源相關(guān)的內(nèi)存需求、FLASH需求,與網(wǎng)絡(luò)資源相關(guān)的通信端口、類型、源、目的,也包括分區(qū)自身的標識、駐留應(yīng)用目標代碼標識、應(yīng)用程序入口以及對應(yīng)的健康監(jiān)控屬性等。分區(qū)配置也離不開GPM模塊的類型、處理器、存儲容量、外部接口信息等信息,只有這些信息都清楚了,才能明確表示特定應(yīng)用程序駐留在哪個分區(qū),這個分區(qū)又加載到了哪個特定的GPM模塊上。

        這些與分區(qū)配置相關(guān)的信息具有一定的邏輯結(jié)構(gòu)和層次關(guān)系。通常情況下,一個GPM模塊會運行多個分區(qū),資源分配通常也以GPM模塊為單位,來明確各個分區(qū)所需要的時間調(diào)度和存儲空間,分區(qū)對外的通信端口也需要GPM建立與外部通信連接。此外,分區(qū)配置信息還可以被實例化來描述多個不同的分區(qū)配置。因此,這些分區(qū)相關(guān)的配置信息之間具有聚合、關(guān)聯(lián)、泛化等關(guān)系,適合用UML中的類圖來描述。

        典型的ARINC 653分區(qū)架構(gòu)中分區(qū)配置信息如圖3所示。其中,分區(qū)標識定義了描述分區(qū)基本信息,包括分區(qū)ID、分區(qū)名稱、安全等級、分區(qū)類型和應(yīng)用程序入口,該信息還聚合了分區(qū)的通信端口信息。以下分別說明分區(qū)所需的處理資源、存儲資源、網(wǎng)絡(luò)資源以及健康監(jiān)控在IMA分區(qū)配置信息中的實現(xiàn)。分區(qū)配置信息與分區(qū)資源分配之間的對應(yīng)關(guān)系如下:

        1)處理資源分配:模塊調(diào)度表包含了一個GPM模塊上分區(qū)調(diào)度運行的主時間框架,該時間框架聚合了多個分區(qū)調(diào)度的配置信息,分區(qū)調(diào)度配置中包括分區(qū)的標識ID和名稱以及分區(qū)對應(yīng)的周期和占用處理器的持續(xù)時間,在GPM初始化過程中會根據(jù)主時間框架的信息為各個分區(qū)分配處理器資源。

        2)存儲資源分配:分區(qū)存儲空間配置包括分區(qū)的ID和名稱以及分區(qū)存儲空間需求信息,例如存儲空間類型、大小、物理地址、訪問類型以及存儲區(qū)域的名稱,建立特定的分區(qū)與需要的存儲空間對應(yīng)關(guān)系,在初始化時按照配置信息分配分區(qū)所需的存儲空間。

        圖3 IMA中的分區(qū)配置信息

        3)網(wǎng)絡(luò)資源分配:網(wǎng)絡(luò)資源分配通過模塊級的通信連接表和分區(qū)的通信端口配置來實現(xiàn),通信連接表定義通信通道標識和名稱,并且明確了通道的源和目的,分區(qū)端口包括了端口名稱、最大消息長度、通信方向和通道標識,從而將分區(qū)為駐留應(yīng)用提供的端口操作與模塊建立的底層通信通道關(guān)聯(lián),在初始化時按照配置信息創(chuàng)建通信通道和端口。

        4)健康監(jiān)控:健康監(jiān)控的配置信息包括系統(tǒng)健康監(jiān)控表、模塊健康監(jiān)控表、分區(qū)健康監(jiān)控表以及系統(tǒng)狀態(tài)入口等。三個健康監(jiān)控表分別從不同的層次定義了IMA系統(tǒng)、GPM模塊和分區(qū)的健康監(jiān)控的策略、監(jiān)控事件類型和應(yīng)對措施,三個表之間通過系統(tǒng)狀態(tài)入口進行關(guān)聯(lián)和匹配,在初始化時按照配置信息來實現(xiàn)健康監(jiān)控機制。此外,內(nèi)核操作系統(tǒng)還有自己的配置文件,包括操作系統(tǒng)功能模塊的配置以及宏定義信息;板級支持包(Board Support Package, BSP)也有配置信息,其中包括BSP和操作系統(tǒng)編譯所需的處理器和板卡硬件信息。這兩部分配置信息依賴于ARINC 653分區(qū)操作系統(tǒng)的具體實現(xiàn)。

        2.2 分區(qū)配置形式

        VxWorks 653是一款符合ARINC 653規(guī)范要求的分區(qū)實時嵌入式操作系統(tǒng),具有實時性好、可靠性高、支持多任務(wù)、可裁剪等特點,廣泛應(yīng)用于航空、航天、醫(yī)療設(shè)備等要求高安全性和高實時性的領(lǐng)域。在VxWorks 653工程中,配置文件采用擴展標記語言(eXtended Marking Language, XML)格式來定義。在編譯時,不同層次的配置文件會進行綜合,最終生成面向GPM目標板卡的模塊配置文件,其中包括標準的ARINC 653配置信息以及非ARINC 653的配置信息,例如模塊間通信機制、文件系統(tǒng)、數(shù)據(jù)加載、平臺配置文件和項目配置數(shù)據(jù)等,配置信息的綜合過程如圖4所示。

        圖4 VxWorks 653的配置信息綜合過程

        在一個VxWorks 653項目工程文件體系中, XML格式的配置文件包括分區(qū)應(yīng)用、分區(qū)操作系統(tǒng)、內(nèi)核操作系統(tǒng)、平臺集成(IMA和GPM模塊)等配置文件[11]。分區(qū)應(yīng)用配置文件主要包括應(yīng)用程序的內(nèi)存策略、與內(nèi)核操作系統(tǒng)對應(yīng)的端口配置;分區(qū)操作系統(tǒng)配置文件主要包括分區(qū)內(nèi)存策略、共享庫策略、共享數(shù)據(jù)域策略、系統(tǒng)調(diào)用使能以及分區(qū)對應(yīng)的應(yīng)用程序描述等(如果是虛分區(qū)則還要對虛端口進行配置);內(nèi)核操作系統(tǒng)配置文件主要包括系統(tǒng)時鐘、內(nèi)存策略、核心/分區(qū)操作系統(tǒng)虛擬地址和物理地址、I/O策略、端口策略、payload策略等;平臺集成XML配置文件則主要是對內(nèi)核操作系統(tǒng)、分區(qū)操作系統(tǒng)和應(yīng)用程序等XML配置進行引用和說明,并對系統(tǒng)健康監(jiān)控策略進行配置[12]。這些XML配置文件是有層級關(guān)系的,低層的XML文件被用來滿足高層XML文件在某一信息區(qū)域的要求。

        這些XML格式的配置文件都有對應(yīng)的模板,例如工程整體模塊配置的模板為module.xsd,內(nèi)核操作系統(tǒng)配置的模板為coreOS.xsd等,其內(nèi)容主體是一系列按照層次來組織的配置信息元素。配置信息元素內(nèi)部不僅存放本元素的屬性,還包含下一級的子信息元素,而子信息元素又可以繼續(xù)往下延伸,例如:

        />

        2.3 分區(qū)編譯過程

        VxWorks 653集成開發(fā)環(huán)境集成了編譯工具集(GNU Compiler Collection, GCC),支持多種程序語言的編譯,例如C、C++、Ada等。集成開發(fā)環(huán)境采用多級Makefile體系使用GCC提供的編譯器對分區(qū)操作系統(tǒng)的各個組件進行編譯。在形式上則可以為整個工程制作一個頂層Makefile來依次調(diào)用各個組件的次級Makefile,VxWorks 653集成開發(fā)環(huán)境提供的圖形化編譯工具實際上是調(diào)用MYM(WIND_BASE)hostx86-win32inmake.exe進行逐級調(diào)用各個組件的makefile進行編譯,最后再將它們集成起來。。

        VxWorks 653項目工程文件由內(nèi)核操作系統(tǒng)組件、分區(qū)操作系統(tǒng)組件、駐留應(yīng)用程序組件以及公共的函數(shù)庫組成,對應(yīng)于配置文件分別是cos.xml、pos.xml、app.xml,最后由module.xml文件將這些組件關(guān)聯(lián)起來。對于一個VxWorks 653分區(qū)工程來說,其代碼編譯大致上可以分為應(yīng)用程序編譯、板級支持包BSP編譯、XML配置文件編譯以及目標代碼(含內(nèi)核操作系統(tǒng)和分區(qū)操作系統(tǒng)目標代碼)鏈接和綜合等過程,在集成和鏈接過程中會使用到XML編譯綜合產(chǎn)生的配置結(jié)果,其編譯的過程如圖5所示。其他ARINC 653操作系統(tǒng)的編譯過程也與之類似。

        圖5 VxWorks 653編譯過程

        3 分區(qū)啟動過程

        分區(qū)以及駐留功能的啟動過程也與這些配置文件及其編譯鏈接的結(jié)果緊密相關(guān)。在GPM模塊上電后,處理器首先運行駐留在板卡只讀存儲器(Read-Only Memory, ROM)中的啟動引導(dǎo)程序BootRom,該程序初始化基本硬件,啟動代碼加載功能,將ROM中存儲的可執(zhí)行目標代碼搬移到隨機存取存儲器(Random Access Memory, RAM)中來運行,進而啟動內(nèi)核操作系統(tǒng)[13]。隨后,內(nèi)核操作系統(tǒng)將按照一定的協(xié)議讀取編譯生成的目標文件,其中包括分區(qū)操作系統(tǒng)和應(yīng)用程序軟件啟動所需要的所有配置信息,進而分配系統(tǒng)資源、創(chuàng)建分區(qū)、啟動分區(qū)調(diào)度、啟動健康監(jiān)控功能,同時啟動內(nèi)核操作系統(tǒng)提供的各種服務(wù),例如中斷管理、分區(qū)通信數(shù)據(jù)轉(zhuǎn)發(fā)、管理I/O接口、提供必要的系統(tǒng)調(diào)用接口等。隨后,內(nèi)核操作系統(tǒng)根據(jù)配置信息創(chuàng)建分區(qū)調(diào)度表并掛接定時器中斷,按照主時間框架進行分區(qū)調(diào)度。

        圖6給出了某GPM上運行兩個分區(qū)的啟動初始化過程,該圖采用UML的序列圖來描述BootRom、內(nèi)核操作系統(tǒng)、分區(qū)操作系統(tǒng)和駐留應(yīng)用程序在初始化和運行過程中的關(guān)系,圖中橫向為各個GPM模塊中的各個軟件模塊,縱向是運行先后順序的示意。分區(qū)1和分區(qū)2具有相同的周期T,分區(qū)1的運行持續(xù)時間是D1,分區(qū)2的運行持續(xù)時間是D2。在內(nèi)核操作系統(tǒng)完成初始化并啟動分區(qū)調(diào)度服務(wù)之后的T時間內(nèi),首先被調(diào)度得到開始執(zhí)行的應(yīng)用分區(qū)1開始進行分區(qū)初始化工作,主要功能包括確定分區(qū)內(nèi)存和堆棧地址大小、分區(qū)啟動類型(冷啟動或者熱啟動)、系統(tǒng)時鐘、內(nèi)存管理單元(MemoryManagementUnit,MMU)頁面大小、分區(qū)內(nèi)的分區(qū)配置記錄、共享數(shù)據(jù)區(qū)域、分區(qū)符號表等,之后分區(qū)根據(jù)初始化類型進行分區(qū)操作系統(tǒng)的初始化,創(chuàng)建分區(qū)內(nèi)的操作系統(tǒng)調(diào)度和服務(wù)線程,在啟動分區(qū)內(nèi)的多任務(wù)模式之后,運行應(yīng)用程序初始化,如果這個過程沒有在第一個分區(qū)運行的持續(xù)時間內(nèi)完成,那將在分區(qū)1再次得到處理器資源運行時,繼續(xù)進行應(yīng)用程序初始化的工作,初始化完成后,分區(qū)和應(yīng)用程序都進入正常狀態(tài)。在分區(qū)1結(jié)束運行后,按照模塊的分區(qū)調(diào)度表,分區(qū)2得到處理器的控制權(quán)開始運行,完成分區(qū)2的分區(qū)操作系統(tǒng)初始化和應(yīng)用程序初始化。在主時間框架的第二個周期T2開始時,分區(qū)1和分區(qū)2在它們運行持續(xù)時間內(nèi)開始運行正常的駐留應(yīng)用功能。

        圖6 IMA中分區(qū)啟動過程

        分區(qū)有兩種啟動模式,即冷啟動和熱啟動。它們的共同點在于,都具有讓分區(qū)重新啟動運行的功能,重新初始化駐留應(yīng)用程序,在冷啟動和熱啟動過程正在進行時,優(yōu)先級搶占被禁止,所以線程調(diào)度功能也沒有激活;在運行過程中都可以通過調(diào)用函數(shù)接口來激活冷啟動或者熱啟動。分區(qū)的冷啟動和熱啟動過程是有區(qū)別的,最大的區(qū)別在于冷啟動則需要重新初始化整個分區(qū)的存儲空間,包括從ROM、Flash空間或者RAM中拷貝分區(qū)上下文區(qū)域到RAM中,重新加載所有分區(qū)的代碼,重新初始化永久數(shù)據(jù)變量(例如分區(qū)使用到的GPM模塊系統(tǒng)時鐘、MMU頁等全局變量等),熱啟動則不需要。

        4 分區(qū)啟動時間測試

        支持VxWorks653的實驗平臺被用來進行分區(qū)啟動時間的測試。該實驗平臺采用PPC7447A/7448處理器,處理器主頻1GHz,這與目前駐留的GPM性能基本一致,運行VxWorks653具有ARINC653中規(guī)定的基本服務(wù),并通過APEX接口文應(yīng)用程序提供接口,集成開發(fā)編譯環(huán)境采用Tornado_AE653_1.8.9.1。為了能夠更加真實地反映實際運行過程中的分區(qū)啟動時間,參考實際的IMA系統(tǒng)設(shè)計,模塊上配置了一個分區(qū),分區(qū)的周期為20ms,持續(xù)時間為20ms,實驗過程中的分區(qū)駐留應(yīng)用規(guī)模和功能與實際應(yīng)用相似。

        在該開發(fā)平臺上開展分區(qū)啟動時間測試,需要使用APEX函數(shù)中的設(shè)置分區(qū)模式指令以及可移植操作系統(tǒng)接口(PortableOperatingSystemInterface,POSIX)函數(shù)中的讀取系統(tǒng)時間函數(shù)。在分區(qū)內(nèi)部的程序不同位置插入分區(qū)啟動語句SET_PARTITION_MODE(WARM_START),或者是SET_PARTITION_MODE(COLD_START),這兩個函數(shù)和其中的用到的宏定義都是APEX接口標準定義,需要在頭文件中包括APEX定義的函數(shù)庫[14]。在調(diào)用設(shè)置分區(qū)進入冷啟動模式之前還需要記錄當前的系統(tǒng)時鐘t1,在分區(qū)啟動后調(diào)用應(yīng)用程序入口的第一時間紀錄當前的系統(tǒng)時間t2。通過兩個時間的差值(t2-t1)來確定系統(tǒng)重啟所需要的絕對時間。絕對時間要轉(zhuǎn)化成分區(qū)執(zhí)行的持續(xù)時間才能推算出分區(qū)啟動實際花費的時間σt。但在實際測試過程中,將分區(qū)立即設(shè)置為冷啟動或者熱啟動模式會導(dǎo)致程序立刻終止執(zhí)行,無法輸出時間信息。為此在設(shè)置冷啟動或者熱啟動之前還需要增加一段延時來確保時間信息輸出完成,這段時間記為t3。則計算公式為:

        σt=(t1-t2-t3)×D/T

        這個分區(qū)啟動時間包括了分區(qū)初始化時間,而不包括分區(qū)內(nèi)的應(yīng)用程序初始化時間。主要測試步驟和參考程序如下。

        1) 定義獲取系統(tǒng)時間函數(shù)_GetCurrentTime():

        externUINT8initHeapMgr(UINT32sz);extern"C"voidInitializeConstructors(intsysStartupMode);unsignedlong_GetCurrentTime() {SYSTEM_TIME_TYPESYSTEM_TIME;RETURN_CODE_TYPERETURN_CODE;

        //gettheticksGET_TIME(&SYSTEM_TIME, &RETURN_CODE);unsignedlongcurrentTime;currentTime=SYSTEM_TIME/1 000 000;returncurrentTime;

        }

        其中GET_TIME(&SYSTEM_TIME, &RETURN_CODE)獲得的系統(tǒng)時間為納秒,_GetCurrentTime()返回的時間為毫秒。

        2) 在應(yīng)用程序軟件重啟分區(qū)前記錄分區(qū)軟件啟動觸發(fā)時間T1:

        voidmain_task(void) {RETURN_CODE_TYPEretCode;printf("DLInterfaceMain_TaskRUNING.................. ");RETURN_CODE_TYPERETURN_CODE;printf("EnterMainTaskTime=%d ",_GetCurrentTime());

        /*tomakesuretheprintffinished*/taskDealay(1 000);

        /*partitioncoldstart*/SET_PARTITION_MODE(COLD_START,&retCode);

        /*partitionwarmstart*/

        /*SET_PARTITION_MODE(COLD_START,&retCode);*/ …

        }

        3) 在應(yīng)用程序軟件入口處記錄分區(qū)軟件啟動完成時間T2:

        extern"C"voidAPPInit() {RETURN_CODE_TYPEretCode;PARTITION_STATUS_TYPEStatus;

        /*InitializeC++constructors*/GET_PARTITION_STATUS(&Status,&retCode);printf( "..StartingAPP " );printf("EnterApp,time=%d ",_GetCurrentTime());Init_Main_Task();SET_PARTITION_MODE(NORMAL,&retCode); }

        其中taskDealay(1 000)是為了確保輸出時間的程序能夠完成執(zhí)行而加入的延時等待,通過高速攝像機可以測得這個延時等待,即t3的數(shù)值。測試結(jié)果顯示t3為250ms。根據(jù)上述測試方法在分區(qū)軟件的開發(fā)平臺及真實的裝機環(huán)境下開展分區(qū)啟動時間的測試,分區(qū)啟動時間測試的結(jié)果如表1所示。

        表1 分區(qū)啟動時間測試結(jié)果 ms

        根據(jù)實驗測試結(jié)果,模塊上該分區(qū)的熱啟動時間約為8.5ms,分區(qū)的冷啟動時間約為148ms。這個分區(qū)初始化的時間可以為初始化時間的分配和駐留應(yīng)用程序初始化設(shè)計提供參考。

        5 駐留應(yīng)用程序初始化考慮

        根據(jù)上述的分析和實驗結(jié)果,可以進一步地明確分區(qū)的冷啟動和熱啟動的應(yīng)用場景。冷啟動適用于分區(qū)創(chuàng)建和模塊處在上電啟動的情況,此時分區(qū)內(nèi)的對象將被重新分配和初始化;分區(qū)的熱啟動用來處理分區(qū)啟動之后的重新初始化應(yīng)用程序的情況,此時分區(qū)的永久數(shù)據(jù)將會保留熱啟動之前的狀態(tài),分區(qū)代碼不用重新加載,全局變量也不用重新初始化。

        從圖6中可以看出,分區(qū)初始化和駐留應(yīng)用程序的初始化是分開進行的,通常在完成了分區(qū)初始化且分區(qū)操作系統(tǒng)進入多線程狀態(tài)后,才會激活駐留應(yīng)用程序的初始化。在設(shè)計相關(guān)的資源分配和駐留應(yīng)用時,應(yīng)注意以下幾點考慮:

        1) 分區(qū)的周期和持續(xù)運行時間設(shè)計應(yīng)當考慮分區(qū)的初始化時間。內(nèi)核操作系統(tǒng)在創(chuàng)建分區(qū)、完成資源分配之后,就會啟動內(nèi)核操作系統(tǒng)的分區(qū)調(diào)度機制。此時分區(qū)開始初始化,盡管駐留應(yīng)用程序還未正常運行,但是分區(qū)已經(jīng)按照事先定義的主時間框架被周期性地激活,分區(qū)在運行初始化和駐留應(yīng)用程序時,完全不知道自己處在被不停地調(diào)度和切換的狀態(tài),如果在給定的持續(xù)時間內(nèi)沒有完成分區(qū)的初始化,那么在下一次被調(diào)度時,分區(qū)將會繼續(xù)執(zhí)行初始化程序而不會開始運行駐留應(yīng)用程序,因此后續(xù)的運行周期內(nèi)可能會導(dǎo)致駐留應(yīng)用運行超時,這也會影響到分區(qū)的周期特性。為此,在進行處理資源分配和制定主時間框架時,應(yīng)統(tǒng)籌考慮分區(qū)初始化的時間。

        2) 駐留應(yīng)用程序的全局變量初始化可以在分區(qū)冷啟動的過程中完成。在設(shè)計過程中,可以將應(yīng)用程序用到的全局變量作為靜態(tài)數(shù)組或者其他靜態(tài)數(shù)據(jù)來處理,這樣可以使得這些全局的數(shù)據(jù)在上電初始化的冷啟動狀態(tài)被搬移到分區(qū)內(nèi)部,而熱啟動時這些數(shù)據(jù)不會被覆蓋和初始化,有助于保持數(shù)據(jù)的一致性;同理,需要重新初始化的變量和狀態(tài),應(yīng)考慮要放在熱啟動的范圍內(nèi)與分區(qū)和駐留應(yīng)用一同初始化,以免駐留應(yīng)用程序由于初始化不充分而發(fā)生錯誤。

        3) 根據(jù)應(yīng)用程序特點確定駐留應(yīng)用初始化的方式。如圖6所示,駐留應(yīng)用的初始化有兩種可選的方式,一種是駐留應(yīng)用初始化在分區(qū)操作系統(tǒng)進入多任務(wù)模式之后進行,另一種方式是駐留應(yīng)用的初始化功能也在分區(qū)操作系統(tǒng)沒有進入多任務(wù)模式之前就進行,即作為分區(qū)操作系統(tǒng)初始化的一部分來完成駐留應(yīng)用的初始化。兩種方式的差別在于分區(qū)操作系統(tǒng)的調(diào)度方式,在分區(qū)操作系統(tǒng)初始化過程中優(yōu)先級搶占是被禁止,所以線程調(diào)度功能也沒有激活,可以更加確定性地來執(zhí)行某項初始化任務(wù)。因此,建議將具有嚴格的實時性和確定性要求初始化任務(wù)放在分區(qū)操作系統(tǒng)進入多任務(wù)模式之前完成。

        6 結(jié)語

        對分區(qū)的配置和啟動過程進行分析是非常必要的。通過UML對分區(qū)配置和啟動過程進行建模和分析可以幫助設(shè)計人員更加深入地理解分區(qū)和駐留應(yīng)用的運行過程,幫助設(shè)計人員確定冷啟動和熱啟動的應(yīng)用場合。根據(jù)相關(guān)的實驗測試和數(shù)據(jù)分析,可以確定分區(qū)冷啟動和熱啟動的所需要的時間為148ms和8.5ms,該值具有一定的代表性,為IMA的資源分配和主時間框架規(guī)劃、全局變量定義和初始化的方式的選擇提供了參考,對于提高駐留應(yīng)用、IMA平臺和航電系統(tǒng)的運行效率和可靠性具有指導(dǎo)意義。

        )

        [1] 俞大磊,解文濤,孫靖國,等.綜合化核心處理平臺關(guān)鍵技術(shù)研究與實現(xiàn)[J].工業(yè)控制計算機,2015,28(12):150-151.(YUDL,XIEWT,SUNJG,etal.Researchandrealizationofkeytechnologyforintegratedcoreprocessingplatform[J].IndustrialControlComputer, 2015, 28(12): 150-151).

        [2]GASKAT,WATKINC,CHENY.Integratedmodularavionics—past,present,andfuture[J].IEEEAerospaceandElectronicSystemsMagazine, 2015, 30(9): 12-23.

        [3]GE為C919提供綜合模塊化航電系統(tǒng) [J/OL]. 國際航空,2010(10):35. [2016- 08- 10].http://www.ixueshu.com/document/2592969bcf6e768d318947a18e7f9386.html.(GEsintegratedmodularavionicsforC919 [J/OL].InternationalAviation, 2010(10): 35. [2016- 08- 10].http://www.ixueshu.com/document/2592969bcf6e768d318947a18e7f9386.html.

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

        [5] 王震,朱劍鋒.基于在線加載分區(qū)機制的重構(gòu)方案的設(shè)計與實現(xiàn)[J].航空電子技術(shù),2016,47(1):25-30.(WANGZ,ZHUJF.Designandimplementationofareconfigurationblueprintbasedononline-loadedpartitionmechanism[J].AvionicsTechnology, 2016, 47(1): 25-30.).

        [6] 安樂.民用飛機IMA系統(tǒng)研制保證等級分配的研究[J].航空計算技術(shù),2016,46(3):119-123(ANL.Researchondevelopmentassurancelevelassignmentforintegratedmodularavionicsofcivilaircraft[J].AeronauticalComputingTechnique, 2016, 46(3): 119-123.).

        [7] 王鵬,趙長嘯,馬贊.綜合模塊化航電系統(tǒng)失效模式分析[J].電訊技術(shù),2013,53(11):1406-1411.(WANGP,ZHAOCX,MAZ.Failuremodelanalysisofintegratedmodularavionicssystem[J].TelecommunicationEngineering, 2013, 53(11): 1406-1411.)

        [8]XUW,XIONGZY,GONGC.Amethodofintegratedmodularavionicssystemconfigurationdatamanagement[C]//Proceedingsofthe2015IEEE/AIAA34thDigitalAvionicsSystemsConference.Piscataway,NJ:IEEE, 2015: 6D4- 1-6D4- 8.

        [9]PAENGBJ,HAOK,JUNYK.SoftwaretoolforintegratingconfigurationdataofARINC653operatingsystems[C]//Proceedingsofthe2015 8thInternationalConferenceonGridandDistributedComputing.Piscataway,NJ:IEEE, 2015: 20-23.

        [10] 胡軍,馬金晶,劉雪,等.模型驅(qū)動的安全關(guān)鍵系統(tǒng)配置信息驗證方法[J].計算機科學(xué)與探索,2015,9(4):385-402.(HUJ,MAJJ,LIUX,etal.Model-drivenreconfigurationinformationverificationforsafety-criticalsystems[J].JournalofFrontiersofComputerScienceandTechnology, 2015, 9(4): 385-402.)

        [11]AeronauticalRadioInc.Designguidanceforintegratedmodularavionics,ARINCreport651- 1 [R].Annapolis,Maryland:AeronauticalRadioInc, 1997.

        [12]WindRiverInc.XMLconfigurationexplainedplatformsafetycritical:ARINC653XMLconfiguration[EB/CD].Alamida:WindRiverInc, 2007.

        [13]WindRiverInc.VxWorks653configurationandbuildguide[EB/CD].Alamida:WindRiverInc, 2007.

        [14]WindRiverInc.VxWorksAEBSPdevelopersguide[EB/CD].Alamida:WindRiverInc, 2001.

        [15]WindRiverInc.VxWorks653programmersguide[EB/CD].Alamida:WindRiverInc, 2007.

        ThisworkispartiallysupportedbytheInternationalS&TCooperationProgramofMinistryofScienceandTechnologyofthePeople’sRepublicofChina(2015DFA70150).

        WANG Yunsheng, born in 1979, Ph. D. candidate, senior engineer. His research interests include integrated modular avionics, software architecture and reliability design.

        LEI Hang, born in 1960, Ph. D., professor. His research interests include embedded system, software reliability.

        Partition configuration and initialization in integrated modular avionics

        WANG Yunsheng*, LEI Hang

        (SchoolofInformationandSoftwareEngineering,UniversityofElectronicScienceandTechnologyofChina,ChengduSichuan611731,China)

        Regarding to the resource allocation and partition starting time in the Integrated Modular Avionics (IMA), a Unified Modeling Language (UML) model of partition configuration and initialization was proposed based on the case study of VxWorks 653 partition operating system. The proposed model including classes diagram and initial sequence diagram for partition, was established to facilitate the analysis of the mechanism of partition configuration and starting/initialization. The contents and function of partition configuration in the processes of resources allocation, operating system compilation and partition initialization, were discussed in detail, as well as the differences between “cold start” and “warm start” mode. A platform was set up for testing the startup times of the two kinds of startup modes, and the test results showed that the time of cold start was 148 ms, and warm start time was 8.5 ms. Furthermore, the applicable scenarios for cold start and warm start mode were discussed. The policies of partition configuration and application software initialization were proposed based on the starting time. The mode of partition start and time of partition initialization should be fully considered when establishing the partition main time frame and identifying the health management policy. The designed policies can be applicable to other partition system design in high security applications.

        Integrated Modular Avionics (IMA); partition; hosted application; Unified Modeling Language(UML); resources allocation

        2016- 10- 17;

        2016- 12- 30。 基金項目:國家科學(xué)技術(shù)部國際科技合作專項(2015DFA70150)。

        王運盛(1979—),男,新疆和碩人,高級工程師,博士研究生,CCF會員,主要研究方向:綜合模塊化航空電子、軟件架構(gòu)及可靠性設(shè)計; 雷航(1960—),男,四川自貢人,教授,博士,主要研究方向:嵌入式系統(tǒng)、軟件可靠性。

        1001- 9081(2017)06- 1808- 06

        10.11772/j.issn.1001- 9081.2017.06.1808

        TP311.52

        A

        猜你喜歡
        冷啟動配置文件內(nèi)核
        萬物皆可IP的時代,我們當夯實的IP內(nèi)核是什么?
        輕型汽油車實際行駛排放試驗中冷啟動排放的評估
        提示用戶配置文件錯誤 這樣解決
        基于學(xué)習(xí)興趣的冷啟動推薦模型
        客聯(lián)(2021年2期)2021-09-10 07:22:44
        強化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        搭建簡單的Kubernetes集群
        互不干涉混用Chromium Edge
        基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計
        Linux內(nèi)核mmap保護機制研究
        忘記ESXi主機root密碼怎么辦
        亚洲国产精品久久九色| 亚洲综合av一区二区三区| 国产精品久久毛片av大全日韩| 四月婷婷丁香七月色综合高清国产裸聊在线| 亚洲国产成人无码电影| 熟女免费观看一区二区| 国产av久久久久精东av| 欧美日韩亚洲国产精品| 福利网在线| 亚洲熟少妇一区二区三区| 午夜时刻免费入口| 国产亚洲av人片在线观看| av无码特黄一级| 国产精品国产自产拍高清| 国产综合在线观看| 999国产一区在线观看| 久久99热精品免费观看麻豆| 中文字幕漂亮人妻在线| 亚洲另类欧美综合久久图片区| 欧美日韩亚洲国产千人斩| 18禁成人免费av大片一区| 狠狠cao日日橹夜夜十橹| 久久99精品国产麻豆| 国产三级精品美女三级| 久久91精品国产一区二区| 777米奇色狠狠俺去啦| 精品一品国产午夜福利视频| 国产美女自拍国语对白| 美女丝袜美腿玉足视频| 国产成人精品123区免费视频| 动漫在线无码一区| 日本女u久久精品视频| 强开少妇嫩苞又嫩又紧九色| 中国亚洲女人69内射少妇| 水蜜桃视频在线观看免费18| 婷婷色国产精品视频二区| 国产精品免费观看久久 | 国产高清在线精品一区αpp| 国产精品国产三级国产专区50| 成年女人a级毛片免费观看| 免费一区二区三区久久|