當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]嵌入式實(shí)時(shí)操作系統(tǒng)設(shè)計(jì)探討

在傳統(tǒng)的嵌入式實(shí)時(shí)操作系統(tǒng)中,內(nèi)核和應(yīng)用都運(yùn)行在同一特權(quán)級(jí),應(yīng)用程序可以無(wú)限制的訪問(wèn)整個(gè)系統(tǒng)地址空間。因此在某些情況下,應(yīng)用的潛在危險(xiǎn)動(dòng)作會(huì)影響其他應(yīng)用和內(nèi)核的正常運(yùn)行,甚至導(dǎo)致系統(tǒng)崩潰或者誤操作。

為了滿足航空電子對(duì)高可靠性、高可用性以及高服務(wù)性的要求, 1997年1月ARINC發(fā)布了ARINC653(航空電子應(yīng)用軟件標(biāo)準(zhǔn)接口),并于2003年7月發(fā)布ARINC653 Supplement 1,對(duì)區(qū)間管理、區(qū)間通信及健康監(jiān)測(cè)部分進(jìn)行了補(bǔ)充說(shuō)明,用以規(guī)范航空電子設(shè)備和系統(tǒng)的開(kāi)發(fā)。

隨即,國(guó)外各大嵌入式開(kāi)發(fā)商相繼推出此類(lèi)支持ARINC653,具有內(nèi)核和應(yīng)用保護(hù)機(jī)制的操作系統(tǒng)。但在國(guó)內(nèi)的嵌入式領(lǐng)域,這樣的研究還有一定差距?;诖?,本文提出了一種航空電子嵌入式實(shí)時(shí)操作系統(tǒng)(A-RTOS,Avionics RTOS)的一種設(shè)計(jì)思路,并在具有MMU和支持高級(jí)保護(hù)模式的目標(biāo)板上完成了實(shí)現(xiàn)。

航空電子標(biāo)準(zhǔn)ARINC653

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

ARINC653 Supplement 1對(duì)ARINC653的補(bǔ)充主要包括以下幾點(diǎn):在系統(tǒng)結(jié)構(gòu)上,提出了System Partition的概念,明確區(qū)間上的應(yīng)用調(diào)度應(yīng)該是區(qū)間級(jí)別的,這些應(yīng)用共享區(qū)間資源;區(qū)間管理方面,闡述區(qū)間調(diào)度中主時(shí)間框架的定義原則,并補(bǔ)充了區(qū)間模式的變遷過(guò)程;對(duì)區(qū)間間通信的原則進(jìn)行更為詳盡的說(shuō)明;增加關(guān)于健康監(jiān)測(cè)的錯(cuò)誤級(jí)別和錯(cuò)誤處理的解釋。

軟件構(gòu)成

航空電子中的核心模塊軟件包括兩類(lèi):應(yīng)用軟件和核心軟件。位于應(yīng)用軟件和操作系統(tǒng)OS之間的APEX(APplication EXecutive)接口,定義了系統(tǒng)為應(yīng)用軟件提供的一個(gè)功能集合。利用這個(gè)功能集合,應(yīng)用軟件可以控制系統(tǒng)的調(diào)度,通信和內(nèi)部狀態(tài)信息。APEX接口相當(dāng)于為應(yīng)用提供的一種高層語(yǔ)言。而對(duì)于OS來(lái)說(shuō),是關(guān)于參數(shù)和入口機(jī)制的定義。

圖1給出了ARINC653中各部分之間的關(guān)系。

分區(qū)和區(qū)間管理

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

區(qū)間化以及區(qū)間的管理和調(diào)度是由OS來(lái)實(shí)現(xiàn)的。ARINC653為區(qū)間的調(diào)度規(guī)定了一種基于時(shí)間窗的循環(huán)調(diào)度算法。這種調(diào)度算法的原理如圖2所示。

圖2 基于時(shí)間窗的循環(huán)調(diào)度算法原理

為了完成各區(qū)間的周期性調(diào)度,由OS維護(hù)一個(gè)固定時(shí)間長(zhǎng)度的主時(shí)間框架,該時(shí)間框架在模塊的運(yùn)行期內(nèi)周期性的重復(fù)。每個(gè)時(shí)間框架可以劃分為若干個(gè)時(shí)間窗口。系統(tǒng)利用一個(gè)事先確定的配置表,在規(guī)定的時(shí)間窗口內(nèi)激活對(duì)應(yīng)區(qū)間的運(yùn)行。這樣就能夠保證每個(gè)應(yīng)用在分配給它的時(shí)間周期內(nèi)訪問(wèn)公共資源不被打斷。

ARINC supplement 1對(duì)主時(shí)間框架的時(shí)間定義原則進(jìn)行了補(bǔ)充。它規(guī)定主時(shí)間框架的大小應(yīng)該是核心模塊中所有區(qū)間周期的最小公倍數(shù)的正整數(shù)倍,并應(yīng)考慮到每個(gè)區(qū)間每次執(zhí)行的時(shí)間長(zhǎng)度和執(zhí)行頻率。

在ARINC653 Supplement 1發(fā)布時(shí)又增加了系統(tǒng)區(qū)間屬性和啟動(dòng)條件屬性。區(qū)間的工作模式包括空閑,冷啟動(dòng),熱啟動(dòng)和正常四種,如圖3所示。每個(gè)區(qū)間所需資源在系統(tǒng)構(gòu)建時(shí)指定,在區(qū)間初始化完成時(shí)區(qū)間對(duì)象創(chuàng)建。OS在進(jìn)入運(yùn)行模式時(shí)啟動(dòng)應(yīng)用區(qū)間,然后區(qū)間進(jìn)入正常運(yùn)行模式。監(jiān)測(cè)管理功能在響應(yīng)致命錯(cuò)誤時(shí)將重啟區(qū)間或者停止區(qū)間的運(yùn)行。

圖3 區(qū)間狀態(tài)轉(zhuǎn)化模型

A-RTOS系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

A-RTOS的系統(tǒng)結(jié)構(gòu)如圖4所示。在此系統(tǒng)中,各個(gè)應(yīng)用工作在所屬區(qū)間的環(huán)境中,并且應(yīng)用和內(nèi)核及各個(gè)應(yīng)用之間都被保護(hù)墻隔離,無(wú)法相互破壞,從而保證了核心模塊的可靠性。

             圖4 A-RTOS的系統(tǒng)結(jié)構(gòu)

隔離和保護(hù)機(jī)制

隔離和保護(hù)是ARINC653首要強(qiáng)調(diào)的特性,也是必須解決的重點(diǎn)之一。A-RTOS主要采用兩種方式來(lái)實(shí)現(xiàn)應(yīng)用與內(nèi)核以及應(yīng)用之間的隔離和保護(hù)。

第一種方式是使用內(nèi)存管理單元MMU。通過(guò)MMU能夠?qū)崿F(xiàn)邏輯地址到物理地址的轉(zhuǎn)化,并且對(duì)訪問(wèn)權(quán)限進(jìn)行控制。這樣可以保護(hù)操作系統(tǒng)內(nèi)核不受應(yīng)用軟件有意或無(wú)意的破壞,也有效的防止了各應(yīng)用軟件之間的相互破壞。圖5給出了MMU的頁(yè)目錄/頁(yè)表方式的地址轉(zhuǎn)換流程。

圖5 頁(yè)目錄/頁(yè)表方式的地址轉(zhuǎn)換流程

第二種方式就是系統(tǒng)調(diào)用。A-RTOS為了實(shí)現(xiàn)對(duì)內(nèi)核及應(yīng)用之間的保護(hù),提供了兩種運(yùn)行形態(tài):用戶態(tài)和系統(tǒng)態(tài)。其中操作系統(tǒng)內(nèi)核是運(yùn)行在系統(tǒng)態(tài)的。因此用戶態(tài)的應(yīng)用是不能夠直接調(diào)用系統(tǒng)內(nèi)核提供的功能接口的,必須通過(guò)TRAP系統(tǒng)調(diào)用方式來(lái)進(jìn)行。

此種方式下,當(dāng)用戶態(tài)的應(yīng)用需要調(diào)用內(nèi)核提供的系統(tǒng)調(diào)用時(shí),首先要執(zhí)行一組特殊的指令使系統(tǒng)進(jìn)入系統(tǒng)態(tài)以便執(zhí)行需要的系統(tǒng)調(diào)用,當(dāng)調(diào)用完成后,內(nèi)核將執(zhí)行另一組特征指令將系統(tǒng)返回到用戶態(tài)。

每種支持保護(hù)模式的系統(tǒng)都提供了專門(mén)的軟中斷命令來(lái)完成從用戶態(tài)進(jìn)入系統(tǒng)態(tài)的功能。系統(tǒng)掛接一個(gè)軟中斷處理函數(shù),所有的系統(tǒng)調(diào)用都通過(guò)這個(gè)軟中斷進(jìn)入并以不同的參數(shù)值(即系統(tǒng)調(diào)用號(hào))來(lái)加以區(qū)分。

系統(tǒng)調(diào)用的另一種形式是稱為CALL-LIB的調(diào)用庫(kù)機(jī)制。此種機(jī)制類(lèi)似于windows系統(tǒng)的動(dòng)態(tài)鏈接庫(kù),可以滿足動(dòng)態(tài)加載和更新組件的需要,也是A-RTOS的特點(diǎn)之一。

區(qū)間調(diào)度機(jī)制

ARINC653規(guī)定,區(qū)間調(diào)度模式的主要特征是:1)調(diào)度單元是區(qū)間;2)區(qū)間沒(méi)有優(yōu)先級(jí);3)調(diào)度算法是預(yù)先確定的,按照固定的周期重復(fù),并且只能由系統(tǒng)集成者進(jìn)行配置。每個(gè)循環(huán)中,至少要為區(qū)間分配一個(gè)區(qū)間窗口。

在A-RTOS中,為了方便系統(tǒng)處理和能更好符合ARINC653規(guī)范,對(duì)以上規(guī)定進(jìn)行了一定程度的修訂:調(diào)度單元是區(qū)間和系統(tǒng)進(jìn)程;區(qū)間具有優(yōu)先級(jí)。但這些修訂不影響操作系統(tǒng)區(qū)間層POS以及應(yīng)用程序使用者,所以在外部特性上并不與ARINC653規(guī)定違背。

除此之外, A-RTOS還引入兩個(gè)系統(tǒng)區(qū)間:Kernel區(qū)間和Idle區(qū)間。Kernel區(qū)間優(yōu)先級(jí)最高,用于為整個(gè)系統(tǒng)的運(yùn)行提供支持;并且一些系統(tǒng)級(jí)進(jìn)程,也屬于Kernel區(qū)間,方便調(diào)度。Idle區(qū)間具有最低的優(yōu)先級(jí),用于填充系統(tǒng)時(shí)間。當(dāng)系統(tǒng)中沒(méi)有其他區(qū)間可以運(yùn)行,就運(yùn)行Idle區(qū)間。

A-RTOS區(qū)間的調(diào)度原則是首先基于優(yōu)先級(jí)調(diào)度,對(duì)同一優(yōu)先級(jí)的區(qū)間可使用時(shí)間片輪轉(zhuǎn)調(diào)度或者基于時(shí)間窗的循環(huán)調(diào)度策略。

A-RTOS采用兩級(jí)調(diào)度機(jī)制。系統(tǒng)中具有區(qū)間的優(yōu)先級(jí)位圖和每個(gè)優(yōu)先級(jí)對(duì)應(yīng)的就緒鏈表,每個(gè)區(qū)間中也包含系統(tǒng)進(jìn)程的優(yōu)先級(jí)位圖和對(duì)應(yīng)的就緒鏈表。利用優(yōu)先級(jí)位圖和就緒鏈表,可以很容易的實(shí)現(xiàn)對(duì)區(qū)間和系統(tǒng)進(jìn)程的調(diào)度。圖6給出了這種調(diào)度模型。

圖6 A-RTOS的區(qū)間調(diào)度模型

調(diào)度模塊首先根據(jù)系統(tǒng)中的區(qū)間優(yōu)先級(jí)位圖和區(qū)間就緒鏈表來(lái)進(jìn)行區(qū)間調(diào)度,被調(diào)度到的區(qū)間再根據(jù)區(qū)間內(nèi)的進(jìn)程優(yōu)先級(jí)位圖和進(jìn)程就緒鏈表進(jìn)行系統(tǒng)進(jìn)程的調(diào)度。此方法相對(duì)于一級(jí)調(diào)度方式而言,能夠保證調(diào)度時(shí)間的確定性,系統(tǒng)調(diào)度時(shí)間不會(huì)因?yàn)閰^(qū)間和系統(tǒng)進(jìn)程的多少而發(fā)生變化,符合實(shí)時(shí)操作系統(tǒng)的定義。

在進(jìn)行基于時(shí)間窗調(diào)度時(shí),兩個(gè)系統(tǒng)區(qū)間實(shí)際上也會(huì)參與調(diào)度。Kernel區(qū)間的運(yùn)行時(shí)間會(huì)計(jì)算在區(qū)間調(diào)度配置表中當(dāng)前區(qū)間的運(yùn)行時(shí)間上。因此對(duì)于某應(yīng)用區(qū)間而言,它的運(yùn)行時(shí)間實(shí)際上會(huì)包含系統(tǒng)區(qū)間的運(yùn)行。

進(jìn)程池機(jī)制

在A-RTOS中,進(jìn)程池是指一組由系統(tǒng)進(jìn)行維護(hù)的進(jìn)程,這些進(jìn)程能夠?yàn)閼?yīng)用提供一組服務(wù)。應(yīng)用通過(guò)系統(tǒng)提供的調(diào)用接口對(duì)系統(tǒng)提出應(yīng)用請(qǐng)求,系統(tǒng)把應(yīng)用的請(qǐng)求交給進(jìn)程池,進(jìn)程池自動(dòng)選擇一個(gè)空閑進(jìn)程對(duì)其進(jìn)行服務(wù),當(dāng)服務(wù)完畢以后,系統(tǒng)會(huì)回收該系統(tǒng)進(jìn)程。

進(jìn)程池主要應(yīng)用在時(shí)鐘定時(shí)器服務(wù)、中斷服務(wù)和異步IO操作。

異步信號(hào)和異步IO機(jī)制

A-RTOS支持異步信號(hào)機(jī)制,允許在某種情況下COS以異步方式發(fā)送信號(hào)到上層的POS。異步信號(hào)的一個(gè)典型使用就是異步IO。這是由于在 ARINC653的應(yīng)用中,POS中的進(jìn)程通過(guò)系統(tǒng)調(diào)用產(chǎn)生阻塞性IO請(qǐng)求的時(shí)候,如果IO不是異步的,則此時(shí)該進(jìn)程就會(huì)阻塞,等待系統(tǒng)調(diào)用的返回。但是 COS并不知道POS中的應(yīng)用進(jìn)程的存在,當(dāng)其中的一個(gè)進(jìn)程阻塞的時(shí)候,整個(gè)區(qū)間都會(huì)被阻塞。采用異步IO方式可避免這種情況的發(fā)生。

當(dāng)應(yīng)用請(qǐng)求了阻塞性的IO服務(wù)時(shí),A-RTOS會(huì)啟動(dòng)稱為一個(gè)系統(tǒng)進(jìn)程來(lái)進(jìn)行應(yīng)用請(qǐng)求的IO操作,這就是異步IO機(jī)制。A-RTOS將這種為實(shí)現(xiàn)異步IO操作而創(chuàng)建的系統(tǒng)進(jìn)程稱為worker進(jìn)程。

如圖7,在ARINC653的應(yīng)用中,當(dāng)POS中的一個(gè)進(jìn)程調(diào)用異步IO系統(tǒng)調(diào)用時(shí),該系統(tǒng)調(diào)用檢查此IO是否為阻塞工作方式,如果是,則創(chuàng)建一個(gè) worker進(jìn)程去完成這個(gè)要求的IO工作,并返回一個(gè)AIO_PENDING值到POS。POS檢查到這個(gè)返回值以后,把正在進(jìn)行異步IO調(diào)用的進(jìn)程從就緒隊(duì)列取下放到等待隊(duì)列,然后進(jìn)行重調(diào)度。當(dāng)worker進(jìn)程完成了要求的IO操作時(shí),即發(fā)送異步信號(hào)到POS,從而喚醒原阻塞進(jìn)程。

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉