ARINC 653標準技術(shù)交流_第1頁
ARINC 653標準技術(shù)交流_第2頁
ARINC 653標準技術(shù)交流_第3頁
ARINC 653標準技術(shù)交流_第4頁
ARINC 653標準技術(shù)交流_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、- 闞宏偉 15010506099163.cm A R I N C 6 5 3 標 準 介 紹A R I N C 6 5 3 國 內(nèi) 的 應(yīng) 用 現(xiàn) 狀A(yù)RINC 653 : ARINC公司的600系列標準的一部分,全名“ Avionics Application Software Standard Interface”。是為滿足綜合模塊化航電系統(tǒng)(IMA)要求,基于計算機資源時空分區(qū)的編程接口標準。標準包括5部分,其中Part 1是強制執(zhí)行標準: Part 0 - Overview of ARINC 653 Part 1 - Required ServicesRequired Service

2、s (mandatory services): Partition management, Cold start and warm start definition, Application software error handling, ARINC 653 compliance, Ada and C language bindings; Part 2 - Extended Services (optional services): File system access, Data logging, Service Access points, . Part 3 - Conformity T

3、est Specification Part 4 - Subset Services Part 5 - Core Software Required Capabilities.從用戶角度觀察的協(xié)議層次劃分:從用戶角度觀察的協(xié)議層次劃分:核心模塊核心模塊(core module)(core module):一個至少包含了處理器資源和存儲器資源的模塊。該模塊支持對其內(nèi)存空間、處理時間和I/O等資源進行限制和隔離,以分成多個時間和空間上相互隔離的子系統(tǒng)。核心操作系統(tǒng)核心操作系統(tǒng)(core O/S)(core O/S):管理核心模塊、分區(qū)、APEX接口的操作系統(tǒng)。分區(qū)分區(qū)(partition)(par

4、tition):包括代碼和數(shù)據(jù)的程序,它可以被裝載到核心模塊中的一個獨立的地址空間(核心模塊的子系統(tǒng))。運行在核心模塊上一個分區(qū)由一個或多個并發(fā)執(zhí)行的進程組成,分區(qū)內(nèi)所有進程共享分區(qū)所占有的子系統(tǒng)資源。端口端口(port)(port):分區(qū)定義的資源,用于在指定的通道上發(fā)送或接收消息。端口的屬性規(guī)定了它對消息傳輸?shù)目刂埔约八鶄鬏斚⒌奶匦?。通道通?channel)(channel):分區(qū)通信的一個途徑,它由一組邏輯上相互連接的端口組成。APEXAPEX服務(wù)服務(wù)(service)(service):APEX定義的每個系統(tǒng)調(diào)用功能稱為一個“服務(wù)”,標準的服務(wù)描述中只確定數(shù)據(jù)類型名稱、服務(wù)名稱、參

5、數(shù)名稱和參數(shù)的順序,而忽略過程的實現(xiàn)。Module level:system integrator通過XML(ARINC 653 Configuration files)定義系統(tǒng)中各分區(qū)的硬件隔離和分區(qū)間公共資源的布局;Process level:application developer通過APEX服務(wù)申請所需的使用分區(qū)內(nèi)資源。ARINC653協(xié)議規(guī)定的時空分區(qū)實現(xiàn)路線圖REQUIRED SERVICES:REQUIRED SERVICES:AVIONICS APPLICATION SOFTWARE STANDARD INTERFACE PART 1.The primary objectiv

6、e of this Specification is to define a general-purpose APEX (APplication/EXecutive) interface between the Operating System (O/S) of an avionics computer resource and the application software. The ARINC 653 APEX API provides the following services:l l Partition ManagementPartition Managementl l Time

7、ManagementTime Managementl l Process ManagementProcess Managementl l Sampling Port ManagementSampling Port Managementl l Queuing Port ManagementQueuing Port Managementl l Buffer ManagementBuffer Managementl l Blackboard ManagementBlackboard Managementl l Semaphore ManagementSemaphore Managementl l E

8、vent ManagementEvent Managementl l Error ManagementError Management按作用模塊劃分,ARINC 653標準中強制遵循的APEX服務(wù)包括:l分區(qū)管理;l進程管理;l時間管理;l存儲器管理;l分區(qū)內(nèi)通信;l分區(qū)間通信;l健康監(jiān)控。下面對各功能模塊逐一展開:對運行在核心模塊上的多個應(yīng)用軟件按功能可劃分為多個分區(qū),一個分區(qū)由一個或多個并發(fā)執(zhí)行的進程組成,分區(qū)內(nèi)所有進程共享分區(qū)所占有的系統(tǒng)資源。操作系統(tǒng)對分區(qū)所占用的處理時間、內(nèi)存和其它資源擁有控制權(quán),從而使得核心模塊中各分區(qū)相互獨立。分區(qū)管理保證了同時運行的多個不同類型的應(yīng)用軟件集合在時

9、間上和空間上互不影響。分區(qū)管理主要包括:分區(qū)的屬性分區(qū)的屬性;分區(qū)的調(diào)度分區(qū)的調(diào)度;分區(qū)的控制分區(qū)的控制。分區(qū)管理:a) 標識:分區(qū)的唯一標識名;b) 存儲區(qū)定義:所用存儲空間的界限與大??;c) 周期:在主時間框架內(nèi)激活周期;d) 持續(xù)時間:激活后需要占用的處理機時間;e) 關(guān)鍵級別:分區(qū)的關(guān)鍵級別;f) 通信要求:分區(qū)通信時與之相關(guān)的分區(qū)和設(shè)備;g) 健康監(jiān)控表:分區(qū)健康監(jiān)控的操作;h) 入口地址:分區(qū)重啟地址。分區(qū)屬性固定屬性:a) 鎖定級別:指出分區(qū)當(dāng)前的鎖定級別;b) 操作模式:包括:空閑(IDLE)、正常(NORMAL)、冷啟動(COLD_START)、熱啟動(WARM_START)

10、。c) 啟動方式:正常啟動(NORMAL_START)、分區(qū)重啟動(PARTITION_RESTART)、模塊級健康重啟(HM_MODULE_RESTART)、分區(qū)級健康重啟(HM_PARTTITION_RESTART)。可變屬性:分區(qū)管理:分區(qū)調(diào)度在時間上具有嚴格的確定性。分區(qū)調(diào)度主要完成按固定的、基于周期的時間序列進行CPU資源的分配,每個分區(qū)按照主時間框架分配給它的分區(qū)窗口(一個或多個)被調(diào)度程序所激活。對分區(qū)的特定設(shè)置而言,調(diào)度是固定的。分區(qū)調(diào)度n調(diào)度單元是分區(qū);n分區(qū)沒有優(yōu)先級;n分區(qū)調(diào)度算法預(yù)先確定,并按照固定周期重復(fù)執(zhí)行,在每個周期內(nèi)至少為每個分區(qū)分配一個分區(qū)窗口;n核心模塊對分

11、區(qū)資源的控制是排他性的。分區(qū)管理:操作系統(tǒng)正常運行時即可啟動分區(qū)。每個分區(qū)使用的資源(如:通道、進程、隊列、信號量、事件等)在分區(qū)創(chuàng)建的初始化階段指定并創(chuàng)建,然后分區(qū)進入正常操作模式。健康監(jiān)控功能在響應(yīng)致命錯誤時將重啟分區(qū)。分區(qū)控制分區(qū)管理:APEXAPEX服務(wù)接口:n獲得分區(qū)狀態(tài)(GET_PARTITION_STATUS);n設(shè)置分區(qū)的操作模式(SET_PARTITION_MODE);分區(qū)管理:每個分區(qū)由一個或多個進程組成,進程管理主要負責(zé)分區(qū)內(nèi)進程的創(chuàng)建、調(diào)度和刪除等工作。進程分為按固定頻率執(zhí)行的周期進程和由事件觸發(fā)的非周期進程兩類。進程管理主要包括:進程屬性定義;進程屬性定義;進程狀態(tài)轉(zhuǎn)

12、換;進程狀態(tài)轉(zhuǎn)換;進程控制;進程控制;進程調(diào)度。進程調(diào)度。進程管理:a) 名字:定義進程的名字,同一分區(qū)內(nèi)的每個進程的名字唯一;b) 入口地址:指明進程的啟動地址;c) 棧大?。捍_定進程運行時棧的大??;d) 基本優(yōu)先級:進程在創(chuàng)建時給定的優(yōu)先級;e) 周期:確定周期進程的激活周期;f) 時間量:指明進程完成執(zhí)行過程所需要的時間;g) 截止期類型:“硬時間(hard)”或者“軟時間(soft)”。進程屬性固定屬性:a) 當(dāng)前優(yōu)先級:初始化時為基本優(yōu)先級,運行時可以動態(tài)變化的;b) 截止時間:確定進程完成的Deadline,由操作系統(tǒng)周期性地計算;c) 進程狀態(tài):當(dāng)前運行狀態(tài)休眠態(tài)(dormant

13、)、就緒態(tài)(ready)、運行態(tài)(running)和等待態(tài)(waiting)??勺儗傩裕哼M程管理:休眠態(tài)休眠態(tài):進程已創(chuàng)建,但不能競爭CPU。進程在啟動前和停止后處于該狀態(tài)。就緒態(tài)就緒態(tài):可以被調(diào)度、一旦獲得CPU就能被執(zhí)行。運行態(tài)運行態(tài):正在擁有CPU控制權(quán)的進程。等待態(tài)等待態(tài):由于除CPU外的資源條件未滿足,被系統(tǒng)停止調(diào)度。進程可能由于如下原因處于等待態(tài):延時等待、特定信號量(事件/消息)等待、周期等待、等待解掛等。進程狀態(tài)轉(zhuǎn)換就緒態(tài)運行態(tài)等待態(tài)休眠態(tài)進程狀態(tài)轉(zhuǎn)換圖進程狀態(tài)轉(zhuǎn)換圖進程管理:分區(qū)內(nèi)可以同時存在兩類進程,即周期進程和非周期進程。任何進程在任何時刻都可以被更高優(yōu)先級的進程搶占。在

14、分區(qū)激活時刻,處于就緒態(tài)的最高優(yōu)先級的進程得到執(zhí)行。搶占控制允許進程對部分代碼進行保護性鎖定,即運行時CPU資源不被分區(qū)內(nèi)的其他進程搶占,直至解鎖。如果因為分區(qū)窗口的結(jié)束打斷了分區(qū)內(nèi)一個保護性鎖定的進程的執(zhí)行,當(dāng)該分區(qū)恢復(fù)時應(yīng)保證這個進程首先被執(zhí)行。激活的進程可以啟動其他進程,停止自己或者其他進程,還可以按照應(yīng)用需求重啟。進程控制進程管理: 進程調(diào)度算法采用基于優(yōu)先級的可搶占式調(diào)度策略,即根據(jù)進程的優(yōu)先級和當(dāng)前狀態(tài)進行調(diào)度和搶占。在發(fā)生任何進程重調(diào)度事件(由進程的直接請求引起或者分區(qū)內(nèi)事件引起)時,進程調(diào)度選擇分區(qū)內(nèi)處于就緒狀態(tài)的優(yōu)先級最高的進程來分配處理器資源; 如果多個進程有相同的優(yōu)先級,

15、進程調(diào)度可按先進先出(FIFO)的方式選擇一個進程分配處理器資源(該進程將一直控制處理器資源直到其它進程重調(diào)度事件發(fā)生),或采用時間片輪轉(zhuǎn)的方法分配處理器資源。分區(qū)內(nèi)的所有進程共享分配給分區(qū)的資源。進程調(diào)度進程管理:APEXAPEX服務(wù)接口:n獲得進程標識(GET_PROCESS_ID);n獲得進程狀態(tài)(GET_PROCESS_STATUS);n創(chuàng)建進程(CREATE_PROCESS);n設(shè)置進程的優(yōu)先級(SET_PRIORITY);n掛起進程自身(SUSPEND_SELF);n掛起其他進程(SUSPEND);n恢復(fù)進程(RESUME);n停止進程自身的執(zhí)行(STOP_SELF);n停止其他進

16、程的執(zhí)行(STOP);n開始進程的執(zhí)行(START);n進程初始化后延時特定時間再執(zhí)行(DELAYED_START);n鎖定優(yōu)先級搶占(LOCK_PREEMPTION);n不鎖定優(yōu)先級搶占(UNLOCK_PREEMPTION)。進程管理:核心模塊內(nèi)分區(qū)的時間管理中的時間是唯一的,所有進程、分區(qū)、通信的時間值或者時間性能都與這個唯一的時間有關(guān),與分區(qū)的執(zhí)行與否無關(guān)。進程啟動時,它的截止時間被置為當(dāng)前時間加上時間量。操作系統(tǒng)時間管理為分區(qū)調(diào)度提供時間片、持續(xù)時間、周期;為進程調(diào)度提供時間量;為分區(qū)間和分區(qū)內(nèi)通信提供超時、刷新率。在分區(qū)窗口之外發(fā)生的超時(延時或截止時間),在下一個分區(qū)窗口開始時繼續(xù)

17、起作用。時間管理:APEXAPEX服務(wù)接口:n時間等待服務(wù)(TIMED_WAIT);n周期等待服務(wù)(PERIODIC_WAIT);n獲得系統(tǒng)時間(GET_TIME);n重置當(dāng)前進程的deadline(REPLENISH)。時間管理:核心模塊內(nèi),分區(qū)及與它相關(guān)的存儲空間分配在系統(tǒng)配置(ARINC 653 Configuration files)時定義。沒有相關(guān)的APEX服務(wù)接口。存儲管理:分區(qū)內(nèi)通信指同一分區(qū)內(nèi)進程之間的通信。ARINC 653定義的分區(qū)內(nèi)進程通信機制,包括:緩存隊列(Buffers-Queue)、黑板(Blackboards)、信號量(Semaphores)和事件(Events

18、)。其中緩存隊列和黑板用于進程間通信,信號量和事件用于進程間同步與互斥。緩存緩存隊列允許其中的消息以隊列形式存儲,消息不允許覆蓋;黑板黑板在任何時刻最多只保留一個消息,消息允許覆蓋。信號量信號量提供對資源的受控訪問;事件事件通過通知等待進程某種條件的發(fā)生來支持進程間同步控制。分區(qū)內(nèi)通信:消息緩存(message buffer)在發(fā)送過程中,等待發(fā)送的消息按照先進先出次序存放在緩存隊列中。緩存隊列中可存放消息的數(shù)量由創(chuàng)建時緩存區(qū)的大小決定。接收消息的進程按照先進先出或優(yōu)先級次序原則排隊接收緩存消息。在按優(yōu)先級次序排隊的情況下,相同優(yōu)先級的接收進程按照先進先出原則排隊。接收消息的進程的排隊原則在緩

19、存隊列創(chuàng)建時定義。如果多個進程等待一個緩存隊列,當(dāng)這個緩存隊列不空,則排隊原則(先進先出原則或者優(yōu)先級原則)將決定哪個進程獲得消息。操作系統(tǒng)將把該進程從等待隊列中移出,并置為就緒態(tài),并將消息從緩存隊列中移出。如果一個進程試圖從空緩存隊列中接收消息,或者發(fā)送消息到滿的緩存隊列,操作系統(tǒng)將產(chǎn)生進程重調(diào)度,該進程將被放入等待隊列中,等待一段指定的時間,如果在該段時間內(nèi)沒有消息被接收或者發(fā)送,操作系統(tǒng)將自動從隊列中移出該進程,將其置為就緒狀態(tài)。分區(qū)內(nèi)通信:緩存APEXAPEX服務(wù)接口(BufferBuffer):n創(chuàng)建消息緩存(CREATE_BUFFER);n發(fā)送消息(SEND_BUFFER);n接收

20、消息(RECEIVER_BUFFER);n獲取消息緩存的標示(GET_BUFFER_ID);n獲取消息緩存的狀態(tài)(GET_BUFFER_STATUS)。分區(qū)內(nèi)通信:分區(qū)內(nèi)通信:黑板中的消息不允許排隊,任何寫到黑板的消息將一直保持直到被清除或者被新消息覆蓋。這就允許發(fā)送進程在任何時刻都能發(fā)送消息,允許接收進程在任何時刻都可以訪問最新的消息。分區(qū)內(nèi)任何進程可以從黑板上讀取消息、在黑板上寫一個消息或者清空黑板。如果進程試圖從空黑板中讀取消息,操作系統(tǒng)將產(chǎn)生進程重調(diào)度,該進程將被放入等待隊列中,等待一段指定的時間,如果在該段時間內(nèi)沒有消息到達,操作系統(tǒng)將自動從隊列中移出該進程,將其置為就緒狀態(tài)。當(dāng)有消

21、息到達黑板上時,操作系統(tǒng)將從進程等待隊列中移出所有等待進程,將他們置為就緒狀態(tài),而消息仍然保留在黑板上。當(dāng)黑板被清除時,黑板變?yōu)榭諣顟B(tài)。分區(qū)內(nèi)通信:黑板APEXAPEX服務(wù)接口(BlackboardBlackboard):n創(chuàng)建黑板(CREATE_BLACKBOARD);n寫黑板消息(DISPLAY_BLACKBOARD);n讀黑板的消息(READ_BLACKBOARD);n清除黑板上的消息(CLEAR_BLACKBOARD);n獲取黑板的標識(GET_BLACKBOARD_ID);n獲取黑板的狀態(tài)(GET_BLACKBOARD_STATUS)。分區(qū)內(nèi)通信:分區(qū)內(nèi)通信:ARINC 653定義了

22、計數(shù)信號量(Counting Semaphore)。信號量用于對分區(qū)內(nèi)資源的多重訪問。進程獲得信號量成功后信號量的計數(shù)值減一,當(dāng)訪問結(jié)束時釋放信號量時加以。其計數(shù)值反映了允許訪問資源的次數(shù)。信號量的調(diào)度策略在創(chuàng)建時定義,當(dāng)進程試圖獲取的信號量計數(shù)值為零時,該進程可以被放入等待隊列或等待其指定的時間后退出。等待信號量的進程可以按照先進先出原則,也可以按照優(yōu)先級次序原則在隊列中排隊。在優(yōu)先級次序條件下,同等優(yōu)先級的進程按照先進先出原則排隊。分區(qū)內(nèi)通信:信號量APEXAPEX服務(wù)接口(SemaphoreSemaphore):n創(chuàng)建信號量(CREATE_SEMAPHORE);n等待信號量(WAIT_S

23、EMAPHORE);n釋放信號量(SIGNAL_SEMAPHORE);n獲取信號量的標識(GET_SEMAPHORE_ID)n獲取信號量的狀態(tài)(GET_SEMAPHORE_STATUS)。分區(qū)內(nèi)通信:事件是一種進程通信機制:它可以把某種發(fā)生的情況告知等待該情況的進程。事件是由一個二值狀態(tài)變量(狀態(tài)為“有效態(tài)(UP)”和“無效態(tài)(DOWN)”)和一組等待進程組成。同一分區(qū)內(nèi)的進程可以設(shè)置和清除事件。事件創(chuàng)建時,被設(shè)置為“無效態(tài)”。為了通知事件條件的發(fā)生,可以設(shè)置指定的事件為“有效態(tài)”,此時,所有等待該事件的進程從等待狀態(tài)變?yōu)榫途w狀態(tài),然后進入重調(diào)度。等待事件的進程執(zhí)行順序應(yīng)該只依賴于分區(qū)內(nèi)進程調(diào)

24、度規(guī)則。分區(qū)內(nèi)通信:事件APEXAPEX服務(wù)接口(EventEvent):n創(chuàng)建事件(CREATE_EVENT);n設(shè)置事件為(UP)狀態(tài)(SET_EVENT);n重新初始化(DOWN)事件(RESET_EVENT);n等待事件(WAIT_EVENT);n獲取事件的標識(GET_EVENT_ID);n獲取事件的狀態(tài)(GET_EVENT_STATUS)。分區(qū)內(nèi)通信:分區(qū)內(nèi)通信:分區(qū)間通信是指在同一核心模塊或不同核心模塊上運行分區(qū)之間的通信。分區(qū)間通信可分為四類:a) 同一核心模塊內(nèi)分區(qū)間的通信;b) 同一機箱內(nèi)不同核心模塊上的分區(qū)間的通信;c) 不同機箱的分區(qū)間的通信;d) 航空電子系統(tǒng)與其它設(shè)

25、備之間的通信。所有的分區(qū)間通信都基于消息進行,消息從單個的源發(fā)出,到一個或多個目的地。消息的目的地是分區(qū)而不是分區(qū)內(nèi)的進程。通過消息連接分區(qū)的基本機制是通道(channel)。通道指定從源到目的地的消息傳遞模式,以及要發(fā)送的消息的特性。分區(qū)通過已定義的訪問點訪問通道,訪問點稱為端口(port)。通道由端口以及相關(guān)的資源組成,端口提供資源以允許分區(qū)在特定的通道中發(fā)送或接收消息。分區(qū)間通信: 通道可以分布在組成系統(tǒng)的各個核心模塊上,每個通信節(jié)點(核心模塊,網(wǎng)關(guān),I/O模塊等)可以通過配置表單獨配置。系統(tǒng)設(shè)計人員必須確保每個通道的不同端口有一致性的配置,而源、目的、傳遞模式和每個通道的唯一性不會在運

26、行時改變。通道的消息傳遞模式包含兩種:采樣模式(Sampling Mode)和隊列模式(Queuing Mode)。分區(qū)間消息被定義為有限長度的連續(xù)數(shù)據(jù)塊,分Fixed/Variable Length、Periodic/Aperiodic、Broadcast, Multicast and Unicast Messages。固定長度且允許覆蓋的采樣方式和可變長度且不允許覆蓋的隊列方式。分區(qū)間通信:在采樣方式下,消息保持在采樣端口直到被發(fā)送或者被新的消息所覆蓋。采樣方式允許源分區(qū)在任何時間發(fā)送消息,每個新的消息覆蓋當(dāng)前消息并持續(xù)到被覆蓋。目的分區(qū)在任何時間訪問最新的廣播消息。采樣方式下沒有消息隊列

27、,不允許對消息進行分割,必須為每個通道定義最大未分割消息長度。只有固定長度的消息允許以采樣方式發(fā)送。采樣模式分區(qū)間通信:隊列方式不允許在傳遞中覆蓋先前的消息,即消息在隊列方式中不會丟失。通道中以隊列方式運行的端口允許緩沖多個消息,源分區(qū)發(fā)送的消息存儲在源端口的消息隊列中,直到被發(fā)送;當(dāng)消息到達目的端口后,消息將緩存在目的端口的消息隊列中。消息隊列通過通信協(xié)議來管理,以先進先出順序?qū)⑾脑炊丝诎l(fā)送到目的端口。 隊列方式支持變長消息,它允許對消息進行分割和重組。如果不直接支持變長消息的發(fā)送,源端口必須將消息分解成一系列固定長度的分段,目的端口必須重組這些分段。分段的長度應(yīng)小于或等于通道內(nèi)所有端口

28、可接受的最大未分割長度。隊列模式分區(qū)間通信:分區(qū)標識:分區(qū)標識指示哪一個分區(qū)能訪問該端口;端口名:分區(qū)訪問端口的唯一標識,應(yīng)用軟件使用端口名指定端口。通過使用端口名而非直接尋址源/目的分區(qū),使得應(yīng)用軟件與通信網(wǎng)絡(luò)有更好的獨立性;源/目的端口名:指出端口與其它分區(qū)中端口的關(guān)系。如果是發(fā)送端口,則應(yīng)指出接收消息的端口名;如果是接收端口,則應(yīng)指出消息源所在的端口名;傳遞方式:指出端口的消息傳遞方式(采樣方式或隊列方式)。該屬性主要用于管理端口內(nèi)的消息、通道內(nèi)發(fā)送到該端口的消息;傳遞方向:指出端口是發(fā)送消息還是接收消息;消息段長度:端口在通道中傳遞消息的長度。對于采樣方式定義未分割消息的長度;對于隊列

29、方式定義消息段的最大長度,該長度依賴于傳輸媒質(zhì)的限制;消息的存儲區(qū)域大小:用于緩存消息的存儲區(qū)域大小,端口傳送的消息可以被暫時緩存在該區(qū)域內(nèi);刷新率:該屬性只用于采樣方式下接收消息。操作系統(tǒng)通過該屬性判斷消息是否以正確頻率到達端口;映射:定義了本端口和物理通信媒質(zhì)(或通道)的連接關(guān)系。端口屬性分區(qū)間通信:采樣模式下的發(fā)送方向:發(fā)送請求所傳遞的新消息覆蓋前一個消息;采樣模式下的接收方向:每個正確的新收到的消息被拷貝到端口的臨時緩沖區(qū),并覆蓋緩沖區(qū)中的前一個消息。根據(jù)應(yīng)用軟件的接收請求,可以在任何時間查詢該區(qū)域,被拷貝的消息和消息的有效性提示返回給應(yīng)用軟件。有效性提示指明了被拷貝消息的時間是否和端

30、口定義的刷新率相符;隊列模式下的發(fā)送方向:發(fā)送請求所傳遞的新消息被暫時存儲在該端口的發(fā)送消息隊列中。如果隊列滿,發(fā)送請求進程進入等待狀態(tài)或者取消該發(fā)送請求。在以先進先出順序發(fā)送前,排隊的消息根據(jù)端口定義的消息段長度被分割。如果前一個消息段被正確發(fā)送,并且消息仍有數(shù)據(jù)未發(fā)完,就從消息隊列中移出一個新的分段并發(fā)送。通道協(xié)議應(yīng)該允許失敗的消息(或者分段)被重發(fā);隊列模式下的接收方向:每個正確的新收到的消息分段被拷貝到接收消息隊列中,在接收消息隊列中分段被重組,形成一條消息,整個消息被打上時間戳。根據(jù)收到的接收請求,將消息隊列中等待時間最長的消息及其時間戳從消息隊列中移出并發(fā)送給應(yīng)用軟件。如果消息隊列

31、空,請求進程可能進入等待狀態(tài),或者取消接收請求。通道協(xié)議應(yīng)該能夠防止接收消息隊列滿時進一步接收消息段,還應(yīng)能夠要求重發(fā)發(fā)送失敗的消息段。端口控制分區(qū)創(chuàng)建時端口被(靜態(tài))初始化,然后就允許應(yīng)用軟件在這些端口中執(zhí)行發(fā)送和接收操作。傳遞方式和傳遞方向,端口可以按如下方式運行:分區(qū)間通信:APEXAPEX服務(wù)接口(Sampling PortSampling Port):n創(chuàng)建采樣端口(CREATE_SAMPLING_PORT);n向采樣端口寫消息(WRITE_SAMPLING_MESSAGE);n從采樣端口讀消息(READ_SAMPLING_MESSAGE);n獲取采樣端口的標識(GET_SAMPLI

32、NG_PORT_ID);n獲取采樣端口的狀態(tài)(GET_SAMPLING_PORT_STATUS)。分區(qū)間通信:APEXAPEX服務(wù)接口(Queuing PortQueuing Port):n創(chuàng)建隊列端口(CREATE_QUEUING_PORT);n向隊列端口寫消息(SEND_QUEUING_MESSAGE);n從隊列端口讀消息(RECEIVE_QUEUING_MESSAGE);n獲取隊列端口的標識(GET_QUEUING_PORT_ID);n獲取隊列端口的狀態(tài)(GET_QUEUING_PORT_STATUS)。分區(qū)間通信: 健康監(jiān)控(Health Monitor )用于監(jiān)視核心處理模塊硬件、應(yīng)

33、用軟件和操作系統(tǒng)的狀態(tài),當(dāng)發(fā)現(xiàn)故障時,記錄故障并進行故障隔離,防止故障蔓延,同時按故障級別(模塊級、分區(qū)級和進程級)進行必要的恢復(fù)。健康監(jiān)控要搜集、檢測系統(tǒng)工作狀態(tài)信息,并維護一個記錄故障的日志。在核心模塊初始化期間,健康監(jiān)控應(yīng)該能夠?qū)ε渲帽淼耐暾院瓦B續(xù)性進行驗證。在分區(qū)初始化期間,健康監(jiān)控應(yīng)該能夠處理軟件和軟件之間、硬件和軟件之間的不匹配。故障響應(yīng)與系統(tǒng)的操作狀態(tài)有關(guān)。系統(tǒng)的操作狀態(tài)(核心模塊初始化、系統(tǒng)功能、分區(qū)切換、分區(qū)初始化、任務(wù)管理、任務(wù)執(zhí)行)由操作系統(tǒng)管理,各種狀態(tài)下故障的響應(yīng)與實現(xiàn)相關(guān)。故障響應(yīng)機制依賴于在健康監(jiān)控表中定義錯誤級別健康監(jiān)控: 錯誤有可能發(fā)生在模塊級、分區(qū)級和進程

34、級。模塊級錯誤僅影響核心模塊內(nèi)的所有分區(qū);分區(qū)級錯誤僅影響該分區(qū);進程級錯誤影響分區(qū)內(nèi)的一個或多個進程,或者整個分區(qū)。模塊級和分區(qū)級的故障響應(yīng)是由模塊健康監(jiān)控表和每個分區(qū)單獨的分區(qū)健康監(jiān)控表驅(qū)動的。進程級故障響應(yīng)是由分區(qū)的錯誤處理進程(具有最高優(yōu)先級)決定的。根據(jù)健康監(jiān)控服務(wù)確定錯誤和出現(xiàn)故障的進程,然后在進程級采取恢復(fù)措施(例如,停止,啟動進程),或者在分區(qū)級采取恢復(fù)措施(例如,設(shè)置分區(qū)模式:空閑、冷啟動、熱啟動)。錯誤處理進程自身發(fā)生的錯誤被視為分區(qū)級錯誤。健康監(jiān)控:v核心模塊初始化階段出現(xiàn)的模塊配置錯誤;v模塊初始化階段出現(xiàn)的其它錯誤;v系統(tǒng)功能執(zhí)行期間出現(xiàn)的錯誤;v分區(qū)切換時發(fā)生的錯誤

35、;v電源故障。模塊級錯誤 錯誤的恢復(fù)操作通過模塊健康監(jiān)控表的配置項為模塊級指錯誤的恢復(fù)操作通過模塊健康監(jiān)控表的配置項為模塊級指定具體的恢復(fù)動作??梢詮?fù)位該核心模塊或者停止該核心模塊。定具體的恢復(fù)動作??梢詮?fù)位該核心模塊或者停止該核心模塊。健康監(jiān)控:v分區(qū)初始化階段出現(xiàn)的分區(qū)配置錯誤;v分區(qū)初始化階段出現(xiàn)的其它錯誤;v進程管理中的錯誤;v錯誤處理進程的錯誤。分區(qū)級錯誤 在每個分區(qū)的健康監(jiān)控表中定義分區(qū)級錯誤和錯誤恢復(fù)操作。在每個分區(qū)的健康監(jiān)控表中定義分區(qū)級錯誤和錯誤恢復(fù)操作。對于各個分區(qū),對應(yīng)于每種錯誤類型和系統(tǒng)狀態(tài)的故障響應(yīng),應(yīng)充對于各個分區(qū),對應(yīng)于每種錯誤類型和系統(tǒng)狀態(tài)的故障響應(yīng),應(yīng)充分考慮

36、分區(qū)的處理能力(可復(fù)位與否、降級模式等),以保證飛機分考慮分區(qū)的處理能力(可復(fù)位與否、降級模式等),以保證飛機/ /系統(tǒng)系統(tǒng)/ /子系統(tǒng)處于安全狀態(tài)。分區(qū)級錯誤恢復(fù)操作可以是重啟分區(qū)子系統(tǒng)處于安全狀態(tài)。分區(qū)級錯誤恢復(fù)操作可以是重啟分區(qū)(冷啟動模式或者熱啟動模式)或者停止分區(qū)(空閑模式)。(冷啟動模式或者熱啟動模式)或者停止分區(qū)(空閑模式)。健康監(jiān)控:進程級錯誤:v應(yīng)用進程產(chǎn)生的應(yīng)用錯誤;v非法的操作系統(tǒng)請求;v進程執(zhí)行錯誤(溢出、存儲區(qū)沖突等)。健康監(jiān)控:進程級錯誤恢復(fù):忽略,記錄故障但是不采取任何行動;忽略,記錄故障但是不采取任何行動;恢復(fù)行動前進行錯誤確認;恢復(fù)行動前進行錯誤確認;停止故障

37、進程并從入口地址重新初始化;停止故障進程并從入口地址重新初始化;停止故障進程并啟動其他進程;停止故障進程并啟動其他進程;停止故障進程(由分區(qū)檢測并恢復(fù));停止故障進程(由分區(qū)檢測并恢復(fù));重啟分區(qū)(冷啟動或者熱啟動);重啟分區(qū)(冷啟動或者熱啟動);停止分區(qū)(空閑模式)。停止分區(qū)(空閑模式)。APEXAPEX服務(wù)接口:n記錄應(yīng)用程序故障消息(REPORT_APPLICATION_MESSAGE);n創(chuàng)建錯誤處理進程(CREATE_ERROR_HANDLER);n獲得錯誤狀態(tài)(GET_ERROR_STATUS);n提交應(yīng)用程序處理(RAISE_APPLICATION_ERROR)。健康監(jiān)控:A R

38、 I N C 6 5 3 標 準 介 紹A R I N C 6 5 3 國 內(nèi) 的 應(yīng) 用 現(xiàn) 狀n航空631所開發(fā)的國產(chǎn)機載嵌入式實時操作系統(tǒng)(OS/KV2)及開發(fā)環(huán)境(TL/KG)。OS/KV2又名ACoreOS653,與VxWorks 653指標相當(dāng)并兼容,有小部分刪減或擴充。已經(jīng)在新一代飛機研發(fā)任務(wù)中開始使用,預(yù)計OS/KV2型操作系統(tǒng)在軍機項目上將占據(jù)主流;n中電第32所ReWorks_653操作系統(tǒng)及開發(fā)環(huán)境ReDe,在陸軍裝備中占據(jù)優(yōu)勢,目前正在進行航空領(lǐng)域的應(yīng)用推廣。n國內(nèi)能購買的653操作系統(tǒng)是VxWorks 653,其它如Intergrity 653、LyWorks 653

39、因種種原因國內(nèi)市場無法看到。國內(nèi)的研究所如航空615等也在跟近研究VxWorks 653。預(yù)計民機市場將出現(xiàn)國產(chǎn)653和引進653同時存在的局面。LynxOS-SELynxOS-SE是基于是基于POSIXPOSIX、ARINC 653ARINC 653的類的類LinuxLinux操作系統(tǒng),操作系統(tǒng),兼容最新的兼容最新的POSIX 1003.13:2003 (PSE53) POSIX 1003.13:2003 (PSE53) 標準標準 ,可運,可運行在諸如行在諸如X86_64X86_64、PPC7xPPC7x、OMAP35xOMAP35x等平臺上。通過等平臺上。通過DO-DO-178B level A.178B level A.認證,安全級別認證,安全級別EAL 4+EAL 4+。支持多核、多任。支持多核、多任務(wù)、多線程、務(wù)、多線程、VT-xVT-x技術(shù),在技術(shù),在IntelIntel多核(多核(SMPSMP)平臺上有)平臺上有優(yōu)勢。完全遵從優(yōu)勢。完全遵從ARINC 653-1 APEX interface ARINC 653-1 APEX interface 規(guī)范。目規(guī)范。目前公開的細節(jié)資料很少。前公開的細節(jié)資料很少。LynxOS-SE:LynxOS-SE: VxWorks 653 VxWorks 653完全兼容于完全兼容于ARINC 653,Supplement

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論