鄭智健,趙 剛,孫 戰(zhàn),薛建彬,郭燕波
(北方自動(dòng)控制技術(shù)研究所,太原 030006)
近年來(lái),航空領(lǐng)域綜合化模塊化(IMA)電子系統(tǒng)發(fā)展較為迅猛,綜合化模塊化航空電子系統(tǒng)的主要特點(diǎn)是使用了許多現(xiàn)場(chǎng)可更換模塊來(lái)完成各種射頻部分、信號(hào)處理和信息處理功能,這種模塊化的設(shè)計(jì)便于系統(tǒng)容錯(cuò)和系統(tǒng)重構(gòu),并且為同類模塊的大量生產(chǎn)降低了成本。應(yīng)用了IMA體系的的航空電子系統(tǒng)在安全可靠、應(yīng)用軟件構(gòu)件化、降低開發(fā)和維修成本上的優(yōu)勢(shì)較之前的系統(tǒng)均得到了明顯的提升[1-2]。
由于火控系統(tǒng)的研制和服役時(shí)間長(zhǎng),而組件的服役時(shí)間越來(lái)越短,軟件的可擴(kuò)展性越來(lái)越重要。如果能在火控系統(tǒng)中采用IMA體系的設(shè)計(jì)方案,將軟件按功能進(jìn)行劃分,采用通用和專用的軟件模塊配置,實(shí)現(xiàn)系統(tǒng)和子系統(tǒng)任務(wù)功能,那將為軟件的擴(kuò)展提供巨大的方便,并且綜合化模塊化的設(shè)計(jì)可以有效地避免應(yīng)用軟件的多次重復(fù)開發(fā)。
本文提出通過將分時(shí)分區(qū)操作系統(tǒng)運(yùn)用到火控系統(tǒng)中,使其能夠?qū)崿F(xiàn)綜合化模塊化的體系結(jié)構(gòu)的思路,對(duì)極大地降低火控系統(tǒng)今后的開發(fā)和維修成本和實(shí)現(xiàn)火控應(yīng)用軟件構(gòu)件化有十分重要的意義。
基于分時(shí)分區(qū)操作系統(tǒng)的軟件架構(gòu)為縱向分層和橫向分區(qū)。縱向上分為應(yīng)用層、APOS層、分區(qū)操作系統(tǒng)層,橫向上分為各個(gè)不同的分區(qū)。通用處理單元作為整個(gè)火控系統(tǒng)的信息中樞,響應(yīng)系統(tǒng)內(nèi)各模塊的輸入輸出,通用處理單元運(yùn)行多個(gè)功能應(yīng)用,并且一個(gè)或多個(gè)功能應(yīng)用劃分對(duì)應(yīng)一個(gè)分區(qū);每個(gè)分區(qū)具有自己獨(dú)立的應(yīng)用環(huán)境,由數(shù)據(jù)、上下文關(guān)系、配置屬性等組成。每個(gè)分區(qū)獨(dú)立加載各自的分區(qū)操作系統(tǒng)及各自的應(yīng)用,分區(qū)之間互不影響,獨(dú)立運(yùn)行,分區(qū)的運(yùn)行要滿足時(shí)間和空間的要求。通用處理單元基于分時(shí)分區(qū)操作系統(tǒng)的軟件架構(gòu)如圖1所示,分區(qū)之間有保護(hù)墻隔離,實(shí)際實(shí)現(xiàn)中通過內(nèi)存管理單元(MMU)保證空間分區(qū)的空間隔離,通過嚴(yán)格的時(shí)間片輪轉(zhuǎn)方法完成時(shí)間分區(qū)調(diào)度,在分區(qū)內(nèi)可以實(shí)現(xiàn)優(yōu)先級(jí)調(diào)度或者輪轉(zhuǎn)調(diào)度策略[3-5]。
分區(qū)內(nèi)的調(diào)度主要由一個(gè)用來(lái)管理上層應(yīng)用和分區(qū)操作系統(tǒng)的應(yīng)用管理接口軟件(AM)來(lái)完成,AM通過通用管理模塊(GSM)來(lái)獲取分區(qū)內(nèi)各個(gè)應(yīng)用的故障、上下電、時(shí)間等信息來(lái)指導(dǎo)各個(gè)分區(qū)的系統(tǒng)重構(gòu)、分區(qū)資源的利用,從而有效地提高了整個(gè)火控系統(tǒng)的可靠性。
同時(shí)在分區(qū)運(yùn)行支撐層中定義了一個(gè)分區(qū)操作系統(tǒng)的接口(APOS),用戶編寫應(yīng)用需要面對(duì)的只是APOS,這樣減少了分區(qū)操作系統(tǒng)對(duì)應(yīng)用的影響。而CoreOS直接對(duì)分區(qū)操作系統(tǒng)提供相應(yīng)的服務(wù)支持,而不直接面對(duì)應(yīng)用,從而解耦應(yīng)用與操作系統(tǒng)間的依賴[6-9]。
分區(qū)內(nèi)通信主要包括黑板、信號(hào)量、消息隊(duì)列、事件。黑板是一種進(jìn)程之間的通信方式,對(duì)黑板來(lái)說(shuō),消息排隊(duì)是不允許的,任何寫到黑板的消息將一直保持到被清除或者被新的消息覆蓋。信號(hào)量機(jī)制用于進(jìn)程間同步和互斥。消息隊(duì)列是一種進(jìn)程間通信的方式。在消息隊(duì)列中,每個(gè)消息都帶有唯一的數(shù)據(jù),因此,傳輸不允許覆蓋,允許消息隊(duì)列存儲(chǔ)多個(gè)消息。事件是一種通信機(jī)制,該機(jī)制允許通知等待某條件的進(jìn)程條件的發(fā)生。
分區(qū)間通信主要負(fù)責(zé)分區(qū)之間的數(shù)據(jù)交換,通過虛擬網(wǎng)卡給各個(gè)分區(qū)分配IP和端口號(hào),分區(qū)之間通過Socket建立通信。
KBSP位于硬件和嵌入式分時(shí)分區(qū)操作系統(tǒng)內(nèi)核間,是針對(duì)特定目標(biāo)板完成目標(biāo)板硬件的初始化,使其達(dá)到可執(zhí)行狀態(tài)。典型的,KBSP不包括過多的設(shè)備驅(qū)動(dòng),僅包括必需的如:定時(shí)、中斷等驅(qū)動(dòng)。更多設(shè)備一般映射到相應(yīng)的分區(qū),由分區(qū)運(yùn)行環(huán)境支撐層初始化。
分區(qū)調(diào)度采用基于全局調(diào)度器和分區(qū)調(diào)度器的兩級(jí)調(diào)度策略,全局調(diào)度器處于操作系統(tǒng)的內(nèi)核中,實(shí)際運(yùn)行時(shí),操作系統(tǒng)內(nèi)核應(yīng)首先檢查分區(qū)調(diào)度時(shí)間表,以確定哪個(gè)分區(qū)將被調(diào)度,初始化運(yùn)行環(huán)境,如時(shí)間片定時(shí)計(jì)數(shù)器的初始化等,然后,操作系統(tǒng)內(nèi)核把處理器使用權(quán)交給該分區(qū),使分區(qū)在所分配的時(shí)間片調(diào)度各應(yīng)用程序。該策略對(duì)系統(tǒng)資源的競(jìng)爭(zhēng)范圍進(jìn)行分割,使系統(tǒng)資源競(jìng)爭(zhēng)只在各個(gè)子系統(tǒng)范圍內(nèi)存在,這樣可以有效限制多個(gè)系統(tǒng)功能之間的相互干擾。在該模型中,分區(qū)就是一個(gè)時(shí)間隔離保護(hù)區(qū),把所有任務(wù)的運(yùn)行時(shí)間劃分為多個(gè)時(shí)間片,分配給各個(gè)分區(qū),每個(gè)時(shí)間片內(nèi)可運(yùn)行一個(gè)或多個(gè)任務(wù)。在每個(gè)時(shí)間隔離保護(hù)區(qū)結(jié)束時(shí),處理器被強(qiáng)制轉(zhuǎn)交給下一個(gè)時(shí)間隔離保護(hù)區(qū)中的任務(wù)。實(shí)現(xiàn)時(shí)間隔離保護(hù)區(qū)的關(guān)鍵在于處理器處理能力的強(qiáng)制轉(zhuǎn)交,即時(shí)間隔離區(qū)的劃分及調(diào)度,以及隔離分區(qū)內(nèi)任務(wù)的有效調(diào)度。
全局調(diào)度器為區(qū)間的調(diào)度規(guī)定了一種基于時(shí)間窗的循環(huán)調(diào)度算法,調(diào)度算法原理圖如圖3所示。在基于分時(shí)分區(qū)操作系統(tǒng)的軟件架構(gòu)中,全局調(diào)度器基于時(shí)間窗循環(huán)調(diào)度各分區(qū)。CoreOS層通過一張已經(jīng)確定的時(shí)間配置表,各分區(qū)在其對(duì)應(yīng)的時(shí)間窗口內(nèi)被激活,而時(shí)間窗一過,處理器使用權(quán)便被強(qiáng)制轉(zhuǎn)交,從而保證每個(gè)分區(qū)在分配給它的時(shí)間片內(nèi),分區(qū)內(nèi)的各個(gè)任務(wù)不被打斷的訪問共享資源。因此,分區(qū)調(diào)度的關(guān)鍵是保證系統(tǒng)實(shí)時(shí)性,而保證實(shí)時(shí)性的關(guān)鍵則在于確定主時(shí)間框架和各分區(qū)時(shí)間片[10]。
假設(shè)按照安全等級(jí)及功能的不同將一個(gè)處理器模塊劃分為m個(gè)分區(qū),每個(gè)分區(qū)稱為一個(gè)任務(wù)子系統(tǒng)Ak,一個(gè)分區(qū)內(nèi)含有一個(gè)局部調(diào)度器Sk負(fù)責(zé)調(diào)度該分區(qū)內(nèi)的所有任務(wù)。各個(gè)分區(qū)內(nèi)的局部調(diào)度器共同分享處理器的資源。另假設(shè)子系統(tǒng)Ak中共包含n 個(gè)任務(wù)1,2,…,n,通過一個(gè) 3 元組 <Ci,Di,Ti>來(lái)表示任務(wù)i,其中,Ti是任務(wù)i的周期,Ci為任務(wù)i的最壞執(zhí)行時(shí)間,Di為任務(wù)i的死限(deadline),且滿足 Ci≤Di≤Ti。
假定處理器的總的處理速率是1,局部調(diào)度器Sk的處理速率與處理器的總處理速率的比值稱為調(diào)度器的服務(wù)能力αk。即αk表示局部調(diào)度器Sk占用處理器的總處理速率的比例,因此,0<αk≤l。假設(shè)分區(qū)操作系統(tǒng)以周期ηk周期性地調(diào)度局部調(diào)度器Sk,則局部調(diào)度器在一個(gè)周期內(nèi)可以有αk*ηk個(gè)時(shí)間單元來(lái)調(diào)度分區(qū)內(nèi)的各個(gè)任務(wù),并且有(1-ηk)*αk個(gè)時(shí)間單元是阻塞的狀態(tài),分區(qū)的任務(wù)調(diào)度模型如圖4所示。
當(dāng)局部調(diào)度器Sk使用RMS算法調(diào)度分區(qū)的各個(gè)任務(wù)時(shí),假定Sk內(nèi)的n個(gè)實(shí)時(shí)任務(wù)以優(yōu)先級(jí)高低的排序?yàn)楫?dāng)子系統(tǒng)Ak中的n個(gè)任務(wù)當(dāng) t0=0 時(shí)刻被初始化時(shí),則在[0,t](t>0)內(nèi),比任務(wù)i的優(yōu)先級(jí)高或相等的任務(wù)所要求的最壞累積時(shí)間為
Lehoczky已經(jīng)證明了在時(shí)間段[0,t]內(nèi),可以調(diào)度子系統(tǒng)Ak中的任務(wù)i的條件是W(it)≤t成立。
現(xiàn)在假設(shè)子系統(tǒng)Ak中的n個(gè)任務(wù)是在處理器能力值為αk的專用處理器上被調(diào)度而不是在能力為αk的局部調(diào)度器Sk中被調(diào)度。由于0<αk≤l,相對(duì)于處理器能力為1的處理器而言,所有任務(wù)的計(jì)算時(shí)間將變?yōu)镃i/αk。根據(jù)Lehoczky在文獻(xiàn)中的充要調(diào)度條件可以得出,若理器能力為αk的專用處理器調(diào)度能夠調(diào)度子系統(tǒng)Ak內(nèi)的n個(gè)任務(wù)1,2,…,n,則存在時(shí)間
式中Wi(αk,t)表示在時(shí)間段[0,t]內(nèi)且處理器的能力為αk時(shí),優(yōu)先級(jí)不小于i的任務(wù)所要求的最壞累積處理器時(shí)間。定義
由上述定義可以得出,當(dāng)任務(wù)i處于可調(diào)度狀態(tài)時(shí),Bi(αk)表示在時(shí)間段[0,Di]內(nèi)處理器沒有運(yùn)行任何優(yōu)先級(jí)不小于i的任務(wù)的時(shí)間,在此稱Bi(αk)為時(shí)間段[0,Di]內(nèi)的i級(jí)非活動(dòng)周期,同時(shí)稱B0(αk)為子系統(tǒng)Ak中的最小非活動(dòng)周期。文獻(xiàn)[5]已經(jīng)證明了定理1:
定理1在基于兩級(jí)結(jié)構(gòu)化調(diào)度模型的安全關(guān)鍵實(shí)時(shí)操作系統(tǒng)中,子系統(tǒng)Ak可被周期為ηk、服務(wù)器能力為αk的子系統(tǒng)服務(wù)器Sk調(diào)度的條件為:
不等式ηk-ηkαk≤B0(αk),即ηk≤B0(αk)/(1-αk)成立。
局部調(diào)度器根據(jù)各自分區(qū)內(nèi)運(yùn)行任務(wù)的特點(diǎn),采用時(shí)間片輪轉(zhuǎn)或優(yōu)先級(jí)搶占的策略來(lái)調(diào)度分區(qū)內(nèi)的任務(wù)[11-12]。時(shí)間片輪轉(zhuǎn)調(diào)度是一種簡(jiǎn)單、公平的調(diào)度算法。每個(gè)任務(wù)被分配一個(gè)時(shí)間段,稱作它的時(shí)間片,即該任務(wù)允許運(yùn)行的時(shí)間,調(diào)度程序所要做的就是維護(hù)一張就緒進(jìn)程列表,當(dāng)進(jìn)程用完它的時(shí)間片后,它被移到隊(duì)列的末尾;優(yōu)先級(jí)搶占是指在任務(wù)建立的同時(shí)為每個(gè)任務(wù)賦予一個(gè)固定優(yōu)先級(jí),然后再根據(jù)任務(wù)優(yōu)先級(jí)大小順序調(diào)度任務(wù)運(yùn)行,高優(yōu)先級(jí)的任務(wù)搶占低優(yōu)先級(jí)的任務(wù)。
對(duì)于火控系統(tǒng)這種強(qiáng)實(shí)時(shí)系統(tǒng),強(qiáng)調(diào)每個(gè)任務(wù)必須能夠在規(guī)定的截止時(shí)限內(nèi)完成相應(yīng)的動(dòng)作,因此,在上述的基于全局調(diào)度器和局部調(diào)度器的兩級(jí)調(diào)度策略中,調(diào)度算法的選擇是保證系統(tǒng)實(shí)時(shí)性的關(guān)鍵[13]。
Liu和Layland在經(jīng)典論文《Scheduling Algorithm for Multiprogramming in a Hard Real Time Environment》中開創(chuàng)了實(shí)時(shí)調(diào)度研究領(lǐng)域的新時(shí)代,文中提出的速率單調(diào)調(diào)度(Rate Monotonic Scheduling,RMS)被證明是最優(yōu)靜態(tài)實(shí)時(shí)調(diào)度。在此之后,靜態(tài)實(shí)時(shí)調(diào)度研究領(lǐng)域的大量工作均以改進(jìn)RMS為主。
根據(jù)安全等級(jí)和功能合理地將任務(wù)分區(qū),在全局調(diào)度器中采用上述算法,文獻(xiàn)[4]中該算法已被證明能較好地滿足系統(tǒng)實(shí)時(shí)性的要求,同時(shí)在對(duì)于具有強(qiáng)實(shí)時(shí)性應(yīng)用的分區(qū)內(nèi)采用優(yōu)先級(jí)搶占的調(diào)度策略來(lái)保證實(shí)時(shí)任務(wù)的充分運(yùn)行,從而保證系統(tǒng)的實(shí)時(shí)性滿足火控系統(tǒng)的要求。
該系統(tǒng)較傳統(tǒng)系統(tǒng)可以實(shí)現(xiàn)以下功能優(yōu)勢(shì):
1)在軟件架構(gòu)上,基于分時(shí)分區(qū)操作系統(tǒng)的軟件架構(gòu)使所有業(yè)務(wù)集中于同一設(shè)備;
2)基于分時(shí)分區(qū)操作系統(tǒng)的軟件架構(gòu)的應(yīng)用標(biāo)準(zhǔn)接口,解決了應(yīng)用軟件與操作系統(tǒng)的耦合,便于分布式異構(gòu)化的軟件編程與移植;
3)應(yīng)用軟件分時(shí)分區(qū)調(diào)度策略改變了傳統(tǒng)的基于單一操作系統(tǒng)的設(shè)計(jì)思想,可以實(shí)現(xiàn)對(duì)應(yīng)用的隔離,實(shí)現(xiàn)各單位軟件研制的獨(dú)立性。
基于分時(shí)分區(qū)操作系統(tǒng)的軟件架構(gòu)在火控系統(tǒng)中的應(yīng)用將在多方面體現(xiàn)優(yōu)勢(shì),不僅極大地縮短了火控系統(tǒng)的研發(fā)周期,而且在可靠性方面,由于增加了健康監(jiān)控和故障恢復(fù)的功能,也將得到極大的提高,同時(shí),上層應(yīng)用和操作系統(tǒng)之間的標(biāo)準(zhǔn)接口的設(shè)計(jì)提高了軟件的復(fù)用性,減少了軟件人員的工作量。隨著分時(shí)分區(qū)操作系統(tǒng)的進(jìn)一步發(fā)展,綜合化模塊化的思路必將在火控系統(tǒng)中得到應(yīng)用。
參考文獻(xiàn):
[1]鄭宗漢.實(shí)時(shí)系統(tǒng)軟件基礎(chǔ)[M].北京:清華大學(xué)出版社,2003:1-7.
[2]劉琳.基于分層調(diào)度的實(shí)時(shí)系統(tǒng)容錯(cuò)技術(shù)研究[D].長(zhǎng)沙:湖南大學(xué),2013.
[3]羅威,陽(yáng)富民,龐麗萍,等.基于延遲主動(dòng)副版本的分布式實(shí)時(shí)容錯(cuò)調(diào)度算法[J].計(jì)算機(jī)研究與發(fā)展,2007,44(3):521-528.
[4]李昕穎,顧健,何峰,等.硬實(shí)時(shí)系統(tǒng)在強(qiáng)分區(qū)約束下的雙層分區(qū)調(diào)度[J].計(jì)算機(jī)學(xué)報(bào),2010,33(6):1032-1039.
[5]楊仕平.分布式任務(wù)關(guān)鍵實(shí)時(shí)系統(tǒng)的防危(safety)技術(shù)研究[D].成都:電子科技大學(xué),2004.
[6]王和平,王寧,張聯(lián)梅.綜合航電開放式軟件設(shè)計(jì)技術(shù)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(1):4-8.
[7]馮慶.嵌入式軟件面向行業(yè)應(yīng)用編程中間件技術(shù)的研究和實(shí)現(xiàn)[D].成都:電子科技大學(xué),2005.
[8]袁勛,卿斯?jié)h.安全操作系統(tǒng)的標(biāo)識(shí)鑒別機(jī)制研究與實(shí)現(xiàn)[J].計(jì)算機(jī)科學(xué),2001,28(7):120-122.
[9]晏婧.云環(huán)境下基于約束的工作流任務(wù)調(diào)度算法研究與實(shí)現(xiàn)[D].重慶:重慶大學(xué),2011.
[10]DENG Z,LIU J W.Scheduling real-time applications in an open environment[J].Proceedings of the IEEE Real Time Systems Symposium,1997:308-319.
[11]段進(jìn)峰,彭靖波,謝壽生,等.航空發(fā)動(dòng)機(jī)分布式系統(tǒng)解耦控制研究[J].火力與指揮控制,2017,42(5):37-41.
[12]徐曉光,葉宏.分區(qū)間通信在航空電子系統(tǒng)中的設(shè)計(jì)與實(shí)現(xiàn)[J].航空計(jì)算技術(shù),2005,35(1):45-46.
[13]施巍松.軟件分布式共享存儲(chǔ)系統(tǒng)的性能優(yōu)化[M].北京:高等教育出版社,2004.