国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深度剖析航空電子嵌入式實時操作系統設計思路

電子設計 ? 來源:互聯網 ? 作者:佚名 ? 2017-11-28 09:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在傳統的嵌入式實時操作系統中,內核和應用都運行在同一特權級,應用程序可以無限制的訪問整個系統地址空間。因此在某些情況下,應用的潛在危險動作會影響其他應用和內核的正常運行,甚至導致系統崩潰或者誤操作。國外各大嵌入式開發商相繼推出此類支持ARINC653,具有內核和應用保護機制的操作系統。但在國內的嵌入式領域,這樣的研究還有一定差距。基于此,本文提出了一種航空電子嵌入式實時操作系統(A-RTOS,Avionics RTOS)的一種設計思路,并在具有MMU和支持高級保護模式的目標板上完成了實現。

航空電子標準ARINC653

ARINC653主要闡述了模塊化綜合航空電子設備IMA(Integrated Modular Avionics)使用的應用軟件的基線操作環境。它定義了航空應用與下層操作環境之間的接口和數據交換的模式以及服務的行為,并描述了嵌入式航空電子軟件的運行時環境

ARINC653 Supplement 1對ARINC653的補充主要包括以下幾點:在系統結構上,提出了System Partition的概念,明確區間上的應用調度應該是區間級別的,這些應用共享區間資源;區間管理方面,闡述區間調度中主時間框架的定義原則,并補充了區間模式的變遷過程;對區間間通信的原則進行更為詳盡的說明;增加關于健康監測的錯誤級別和錯誤處理的解釋。

軟件構成

航空電子中的核心模塊軟件包括兩類:應用軟件和核心軟件。位于應用軟件和操作系統OS之間的APEX(APplication EXecutive)接口,定義了系統為應用軟件提供的一個功能集合。利用這個功能集合,應用軟件可以控制系統的調度,通信和內部狀態信息。APEX接口相當于為應用提供的一種高層語言。而對于OS來說,是關于參數和入口機制的定義。

圖1給出了ARINC653中各部分之間的關系

2012110605532224869551.jpg

分區和區間管理

分區(Partitioning)是ARINC653中一個核心概念。在IMA(Integrated Modular Avionics)系統中,一個核心模塊會包含一個或多個航空電子應用,并且這些應用要能夠獨立運行。分區就是航空電子應用中的一個功能劃分。分區的單位稱為區間,區間內的每一個執行單元稱為進程。每一個區間具有自己獨立的數據、上下文和運行環境,這樣做的好處是能夠防止一個區間的錯誤影響到其他區間。另外,它能使得整個系統容易驗證、確認和認證

區間化以及區間的管理和調度是由OS來實現的。ARINC653為區間的調度規定了一種基于時間窗的循環調度算法。這種調度算法的原理如圖2所示。

2012110605532226431552.jpg

為了完成各區間的周期性調度,由OS維護一個固定時間長度的主時間框架,該時間框架在模塊的運行期內周期性的重復。每個時間框架可以劃分為若干個時間窗口。系統利用一個事先確定的配置表,在規定的時間窗口內激活對應區間的運行。這樣就能夠保證每個應用在分配給它的時間周期內訪問公共資源不被打斷。

ARINC supplement 1對主時間框架的時間定義原則進行了補充。它規定主時間框架的大小應該是核心模塊中所有區間周期的最小公倍數的正整數倍,并應考慮到每個區間每次執行的時間長度和執行頻率。

在ARINC653 Supplement 1發布時又增加了系統區間屬性和啟動條件屬性。區間的工作模式包括空閑,冷啟動,熱啟動和正常四種,如圖3所示。每個區間所需資源在系統構建時指定,在區間初始化完成時區間對象創建。OS在進入運行模式時啟動應用區間,然后區間進入正常運行模式。監測管理功能在響應致命錯誤時將重啟區間或者停止區間的運行。

2012110605532229556553.jpg

A-RTOS系統設計與實現

A-RTOS的系統結構如圖4所示。在此系統中,各個應用工作在所屬區間的環境中,并且應用和內核及各個應用之間都被保護墻隔離,無法相互破壞,從而保證了核心模塊的可靠性。

2012110605532231119554.jpg

隔離和保護機制

隔離和保護是ARINC653首要強調的特性,也是必須解決的重點之一。A-RTOS主要采用兩種方式來實現應用與內核以及應用之間的隔離和保護。

第一種方式是使用內存管理單元MMU。通過MMU能夠實現邏輯地址到物理地址的轉化,并且對訪問權限進行控制。這樣可以保護操作系統內核不受應用軟件有意或無意的破壞,也有效的防止了各應用軟件之間的相互破壞。圖5給出了MMU的頁目錄/頁表方式的地址轉換流程。

2012110605532234244555.jpg

第二種方式就是系統調用。A-RTOS為了實現對內核及應用之間的保護,提供了兩種運行形態:用戶態和系統態。其中操作系統內核是運行在系統態的。因此用戶態的應用是不能夠直接調用系統內核提供的功能接口的,必須通過TRAP系統調用方式來進行。

此種方式下,當用戶態的應用需要調用內核提供的系統調用時,首先要執行一組特殊的指令使系統進入系統態以便執行需要的系統調用,當調用完成后,內核將執行另一組特征指令將系統返回到用戶態。

每種支持保護模式的系統都提供了專門的軟中斷命令來完成從用戶態進入系統態的功能。系統掛接一個軟中斷處理函數,所有的系統調用都通過這個軟中斷進入并以不同的參數值(即系統調用號)來加以區分。

系統調用的另一種形式是稱為CALL-LIB的調用庫機制。此種機制類似于windows系統的動態鏈接庫,可以滿足動態加載和更新組件的需要,也是A-RTOS的特點之一。

區間調度機制

ARINC653規定,區間調度模式的主要特征是:1)調度單元是區間;2)區間沒有優先級;3)調度算法是預先確定的,按照固定的周期重復,并且只能由系統集成者進行配置。每個循環中,至少要為區間分配一個區間窗口。

在A-RTOS中,為了方便系統處理和能更好符合ARINC653規范,對以上規定進行了一定程度的修訂:調度單元是區間和系統進程;區間具有優先級。但這些修訂不影響操作系統區間層POS以及應用程序使用者,所以在外部特性上并不與ARINC653規定違背。

除此之外, A-RTOS還引入兩個系統區間:Kernel區間和Idle區間。Kernel區間優先級最高,用于為整個系統的運行提供支持;并且一些系統級進程,也屬于Kernel區間,方便調度。Idle區間具有最低的優先級,用于填充系統時間。當系統中沒有其他區間可以運行,就運行Idle區間。

A-RTOS區間的調度原則是首先基于優先級調度,對同一優先級的區間可使用時間片輪轉調度或者基于時間窗的循環調度策略。

A-RTOS采用兩級調度機制。系統中具有區間的優先級位圖和每個優先級對應的就緒鏈表,每個區間中也包含系統進程的優先級位圖和對應的就緒鏈表。利用優先級位圖和就緒鏈表,可以很容易的實現對區間和系統進程的調度。圖6給出了這種調度模型。

2012110605532237369556.jpg

調度模塊首先根據系統中的區間優先級位圖和區間就緒鏈表來進行區間調度,被調度到的區間再根據區間內的進程優先級位圖和進程就緒鏈表進行系統進程的調度。此方法相對于一級調度方式而言,能夠保證調度時間的確定性,系統調度時間不會因為區間和系統進程的多少而發生變化,符合實時操作系統的定義。

在進行基于時間窗調度時,兩個系統區間實際上也會參與調度。Kernel區間的運行時間會計算在區間調度配置表中當前區間的運行時間上。因此對于某應用區間而言,它的運行時間實際上會包含系統區間的運行。

進程池機制

在A-RTOS中,進程池是指一組由系統進行維護的進程,這些進程能夠為應用提供一組服務。應用通過系統提供的調用接口對系統提出應用請求,系統把應用的請求交給進程池,進程池自動選擇一個空閑進程對其進行服務,當服務完畢以后,系統會回收該系統進程。

進程池主要應用在時鐘定時器服務、中斷服務和異步IO操作。

異步信號和異步IO機制

A-RTOS支持異步信號機制,允許在某種情況下COS以異步方式發送信號到上層的POS。異步信號的一個典型使用就是異步IO。這是由于在ARINC653的應用中,POS中的進程通過系統調用產生阻塞性IO請求的時候,如果IO不是異步的,則此時該進程就會阻塞,等待系統調用的返回。但是COS并不知道POS中的應用進程的存在,當其中的一個進程阻塞的時候,整個區間都會被阻塞。采用異步IO方式可避免這種情況的發生。

2012110605532240493557.jpg

圖7 異步IO工作流程示意圖

當應用請求了阻塞性的IO服務時,A-RTOS會啟動稱為一個系統進程來進行應用請求的IO操作,這就是異步IO機制。A-RTOS將這種為實現異步IO操作而創建的系統進程稱為worker進程。

如圖7,在ARINC653的應用中,當POS中的一個進程調用異步IO系統調用時,該系統調用檢查此IO是否為阻塞工作方式,如果是,則創建一個worker進程去完成這個要求的IO工作,并返回一個AIO_PENDING值到POS。POS檢查到這個返回值以后,把正在進行異步IO調用的進程從就緒隊列取下放到等待隊列,然后進行重調度。當worker進程完成了要求的IO操作時,即發送異步信號到POS,從而喚醒原阻塞進程。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    什么是嵌入式應用開發?

    概述 所謂的嵌入式應用開發就是在嵌入式操作系統下進行開發、軟硬件綜合開發 ?嵌入式應用開發?是指在嵌入式
    發表于 01-12 16:13

    什么是嵌入式操作系統

    要理解嵌入式操作系統(Embedded Operating System,簡稱 RTOS/EOS),我們可以從本質定義→核心區別→實際作用→典型特征→嵌入式開發場景適配,五個維度來拆解, 一
    發表于 12-09 10:33

    嵌入式系統的定義和應用領域

    不在影響著我們的生活和工作方式。 在嵌入式系統中,嵌入式操作系統嵌入式微處理器扮演著至關重要的角色。從硬件層面
    發表于 11-17 06:49

    單片機的操作系統

    單片機操作系統主要分為實時操作系統(RTOS)和嵌入式操作系統兩類,以下是常見選擇: 實時
    發表于 11-14 06:18

    嵌入式實時操作系統的特點

    實時嵌入式操作系統(Real-Time Embedded Operating System)是專門設計用于嵌入式系統
    發表于 11-13 06:30

    嵌入式實時操作系統及應用開發(第三版)羅蕾主編光盤鏡像百度云鏈接

    嵌入式實時操作系統及應用開發(第三版)羅蕾主編光盤鏡像百度云鏈接通過網盤分享的文件:嵌入式系統配套光盤.iso鏈接: https://pan
    發表于 11-12 16:20

    【好書推薦】RT-Thread第22本相關書籍!《嵌入式實時操作系統開發實踐》| 技術集結

    隨著物聯網、智能家居與工業控制等領域的快速發展,嵌入式實時操作系統的應用愈發廣泛。RT-Thread作為國產開源RTOS的代表,憑借其出色的實時性、組件化設計和強大的生態體系,已成為眾
    的頭像 發表于 10-16 18:46 ?687次閱讀
    【好書推薦】RT-Thread第22本相關書籍!《<b class='flag-5'>嵌入式</b><b class='flag-5'>實時</b><b class='flag-5'>操作系統</b>開發實踐》| 技術集結

    嵌入式軟件測試與專業測試工具的必要性深度解析

    性問題在實際測試中經常出現,如不同供應商組件間的兼容性問題。 ?實時性要求嚴格?:航空、航天等領域的嵌入式系統需在毫秒級內完成響應,測試必須驗證輸入、運算、輸出的時效性。飛行控制
    發表于 09-28 17:42

    入行嵌入式應該怎么準備?

    架構、總線協議和存儲器管理等概念的理解也是必不可少的。 三、操作系統嵌入式系統通常需要運行一個實時操作系統(RTOS)或者一個精簡版的
    發表于 08-06 10:34

    【好書推薦】RT-Thread第19本相關書籍!有獎轉發《嵌入式實時操作系統原理與創新實踐》 | 技術集結

    在萬物智聯的時代,嵌入式系統已成為智能設備的“神經中樞”,而實時操作系統(RTOS)正是其高效運行的基石。RT-Thread作為國產自主可控的嵌入式
    的頭像 發表于 07-22 19:50 ?600次閱讀
    【好書推薦】RT-Thread第19本相關書籍!有獎轉發《<b class='flag-5'>嵌入式</b><b class='flag-5'>實時</b><b class='flag-5'>操作系統</b>原理與創新實踐》 | 技術集結

    嵌入式開發就業還有前景嗎?

    。在智能家居領域,嵌入式開發的主要工作是開發各種智能化設備和系統,如智能照明、智能安防、智能家電等。嵌入式開發人員需要掌握相關的硬件和軟件技術,如處理器、傳感器、通信技術、操作系統等,
    發表于 07-16 10:47

    一文讀懂:嵌入式Linux實時性進階

    在工業控制、機器人、汽車電子等關鍵領域,嵌入式系統實時性要求極高。 Linux作為強大的通用操作系統,其原生
    發表于 07-10 15:26

    Linux嵌入式和單片機嵌入式的區別?

    ,開發工具包括GCC、Makefile等。 3.操作系統 : 單片機嵌入式 :一般不使用完整的操作系統,或者使用簡單的實時操作系統(RT
    發表于 06-20 09:46

    嵌入式開發入門指南:從零開始學習嵌入式

    基礎 3. 學習路徑推薦第一階段:熟悉開發環境(如Keil、IAR、STM32)第二階段:掌握裸機編程與驅動開發第三階段:學習RTOS(實時操作系統)如FreeRTOS第四階段:深入理解Linux嵌入式
    發表于 05-15 09:29

    RT-Thread嵌入式操作系統專業培訓班-深圳站重磅開啟!

    RT-Thread官方將在深圳舉辦為期三天的嵌入式操作系統專業培訓班!本次培訓將深入講解RT-Thread嵌入式實時操作系統的核心技術與實戰
    的頭像 發表于 04-11 18:18 ?828次閱讀
    RT-Thread<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統</b>專業培訓班-深圳站重磅開啟!