游夏 林森
摘要:為了解決混合異構(gòu)系統(tǒng)的不同關(guān)鍵任務(wù)在隔離空間的高效通信訪問(wèn)問(wèn)題,本文提出了混合關(guān)鍵系統(tǒng)的高效通信技術(shù)。通過(guò)研究嵌入式輕量級(jí)軟總線(xiàn),構(gòu)建以數(shù)據(jù)為中心的統(tǒng)一通信模型,實(shí)現(xiàn)基于統(tǒng)一接口的高效數(shù)據(jù)交互,形成混合關(guān)鍵系統(tǒng)的不同種類(lèi)任務(wù)間的高效異構(gòu)通信能力,支撐混合關(guān)鍵系統(tǒng)的實(shí)時(shí)性、安全性和異構(gòu)調(diào)度。
關(guān)鍵詞:混合異構(gòu)系統(tǒng);隔離空間;軟總線(xiàn);異步通信
中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)07-0054-02
1 概述
隨著信息技術(shù)的高速發(fā)展,信息系統(tǒng)需要突破單處理節(jié)點(diǎn)單應(yīng)用功能的體制模式限制,在系統(tǒng)中部署多種關(guān)鍵級(jí)別程序,實(shí)現(xiàn)不同種類(lèi)的應(yīng)用程序運(yùn)行在同一種處理器上。在武器裝備平臺(tái)的控制系統(tǒng)中,需要運(yùn)行安全關(guān)鍵任務(wù),在任務(wù)載荷系統(tǒng)中,需要運(yùn)行任務(wù)關(guān)鍵、一般數(shù)據(jù)處理任務(wù)等等級(jí)的應(yīng)用程序,從而構(gòu)成了一個(gè)更為復(fù)雜的混合關(guān)鍵系統(tǒng)MCS[1](mixed-criticality system)。
針對(duì)信息系統(tǒng)安全關(guān)鍵領(lǐng)域嵌入式系統(tǒng)的迫切需求,混合關(guān)鍵系統(tǒng)中操作系統(tǒng)迫切需要具備在不同的應(yīng)用之間進(jìn)行高效異步通信能力。不同的關(guān)鍵等級(jí)應(yīng)用運(yùn)行在混合關(guān)鍵系統(tǒng)的不同的安全隔離區(qū)域[2],應(yīng)用之間通信訪問(wèn)需要通過(guò)軟硬協(xié)同機(jī)制進(jìn)行快速切換。普通應(yīng)用運(yùn)行在普通世界中是通過(guò)虛擬內(nèi)存映射運(yùn)行在不同的虛擬內(nèi)存區(qū)域,安全實(shí)時(shí)應(yīng)用運(yùn)行所在的關(guān)鍵應(yīng)用是基于物理隔離的物理內(nèi)存區(qū)域。
針對(duì)在混合關(guān)鍵系統(tǒng)中協(xié)作任務(wù),研究任務(wù)間通信機(jī)制以實(shí)現(xiàn)處于不同關(guān)鍵等級(jí)的軟件數(shù)據(jù)交換安全高效,支持保障通信服務(wù)質(zhì)量的輕量級(jí)通信軟總線(xiàn)[3],基于統(tǒng)一模型的嵌入式輕量級(jí)軟總線(xiàn)設(shè)計(jì),針對(duì)運(yùn)行環(huán)境資源受限、實(shí)時(shí)性強(qiáng)等特點(diǎn),構(gòu)建以數(shù)據(jù)為中心的統(tǒng)一通信模型,實(shí)現(xiàn)基于統(tǒng)一接口的高效數(shù)據(jù)交互,形成混合關(guān)鍵系統(tǒng)的高效異構(gòu)通信能力。
2 混合關(guān)鍵系統(tǒng)的異步通信模型
本文基于國(guó)產(chǎn)處理器虛擬隔離出的不同關(guān)鍵等級(jí)應(yīng)用的獨(dú)立的物理空間,這不同應(yīng)用之間的通信方式采用共享存儲(chǔ)通信模型[4]進(jìn)行實(shí)施。通用計(jì)算應(yīng)用進(jìn)程和實(shí)時(shí)應(yīng)用進(jìn)程可以通過(guò)共享存儲(chǔ)區(qū)中的數(shù)據(jù),按照相互規(guī)約好的交互協(xié)議,進(jìn)行讀寫(xiě)通信?;诠蚕泶鎯?chǔ)的通信方式具有傳輸效率高、數(shù)據(jù)量大的特點(diǎn)。共享存儲(chǔ)采用雙端口 RAM,為解決共享內(nèi)存的讀寫(xiě)一致性問(wèn)題,保護(hù)關(guān)鍵應(yīng)用在共享區(qū)的數(shù)據(jù)安全,通過(guò)共享內(nèi)存隔離單元將共享內(nèi)存區(qū)劃分為兩個(gè)部分,一個(gè)部分作為非關(guān)鍵應(yīng)用的可寫(xiě)區(qū),用于存儲(chǔ)非關(guān)鍵應(yīng)用向關(guān)鍵應(yīng)用發(fā)送的命令與數(shù)據(jù);另一部分作為關(guān)鍵應(yīng)用可寫(xiě)區(qū),該區(qū)域?qū)Ψ顷P(guān)鍵應(yīng)用只讀,可有效防止非關(guān)鍵應(yīng)用的惡意進(jìn)程篡改共享內(nèi)存中的關(guān)鍵應(yīng)用返回結(jié)果。
非關(guān)鍵應(yīng)用和關(guān)鍵應(yīng)用之間的中斷通知機(jī)制可采用阻塞與非阻塞的IPC[5]方式。當(dāng)非關(guān)鍵應(yīng)用需要調(diào)用關(guān)鍵應(yīng)用的相關(guān)策略決策服務(wù)時(shí),決策過(guò)程是不可旁路的,通知方式采用阻塞方式,必須等待關(guān)鍵應(yīng)用的決策返回信號(hào);當(dāng)非關(guān)鍵應(yīng)用需要調(diào)用多個(gè)可并行執(zhí)行的相關(guān)安全服務(wù)時(shí),則采用非阻塞的方式,實(shí)現(xiàn)雙核并行執(zhí)行,提高多任務(wù)處理效率。
非關(guān)鍵應(yīng)用和關(guān)鍵應(yīng)用之間的通信協(xié)議采用挑戰(zhàn)應(yīng)答的交互方式,共享內(nèi)存作為雙方數(shù)據(jù)交換區(qū)。通常非關(guān)鍵應(yīng)用作為協(xié)議的挑戰(zhàn)方,關(guān)鍵應(yīng)用作為協(xié)議的應(yīng)答方。結(jié)合共享內(nèi)存與 IPC,非關(guān)鍵應(yīng)用和關(guān)鍵應(yīng)用之間通信的基本協(xié)議如圖1所示。
當(dāng)非關(guān)鍵應(yīng)用需要向關(guān)鍵應(yīng)用發(fā)起安全服務(wù)請(qǐng)求時(shí),首先初始化共享內(nèi)存的數(shù)組指針,分配一塊空閑區(qū)域,準(zhǔn)備發(fā)起服務(wù)的命令字段與數(shù)據(jù)段,并寫(xiě)入共享內(nèi)存的非關(guān)鍵應(yīng)用可寫(xiě)區(qū)區(qū),然后發(fā)送IPC中斷,最后判斷當(dāng)前的服務(wù)請(qǐng)求是否阻塞傳輸,若是則等待關(guān)鍵應(yīng)用的返回ACKn和返回結(jié)果,若不是,則直接發(fā)起下一服務(wù)請(qǐng)求。關(guān)鍵應(yīng)用在收到FIRQ后,首先直接進(jìn)入中斷處理器程序,獲取數(shù)據(jù)總長(zhǎng)度,根據(jù)實(shí)際需要,若數(shù)據(jù)量大,則采用DMA快速搬移的方式將數(shù)據(jù)讀入安全系統(tǒng),若數(shù)據(jù)量小,則直接從共享內(nèi)存中讀取;然后,根據(jù)命令字段調(diào)用相應(yīng)的安全服務(wù)程序處理數(shù)據(jù);接著將處理結(jié)果定回共享內(nèi)存的非關(guān)鍵應(yīng)用可寫(xiě)區(qū);最后以IPC中斷的形式通知非關(guān)鍵應(yīng)用。
在基于共享內(nèi)存的通信功能技術(shù)上,為了進(jìn)一步提高混合關(guān)鍵系統(tǒng)下的通信效率,本課題在共享內(nèi)存中采用多段無(wú)鎖點(diǎn)對(duì)點(diǎn)消息隊(duì)列通信機(jī)制,并盡量減少數(shù)據(jù)復(fù)制的時(shí)間消耗進(jìn)行通信效率優(yōu)化。
多段無(wú)鎖點(diǎn)對(duì)點(diǎn)消息隊(duì)列通信機(jī)制運(yùn)行過(guò)程中,消息隊(duì)列被分為多個(gè)段,在任一時(shí)刻只允許一個(gè)任務(wù)(發(fā)送端或接收端)訪問(wèn)一個(gè)段,任務(wù)同步只會(huì)發(fā)生在段的邊界處,多段消息隊(duì)列通過(guò)以下設(shè)計(jì)實(shí)現(xiàn)無(wú)鎖通信,生產(chǎn)者和消費(fèi)者通過(guò)分別訪問(wèn)不同的段,使得隊(duì)列不需要上鎖,使用多段消息隊(duì)列機(jī)制可以解決如乒乓cache和偽共享等共享問(wèn)題。
減少數(shù)據(jù)復(fù)制的時(shí)間消耗進(jìn)行通信效率優(yōu)化方法用于非關(guān)鍵應(yīng)用進(jìn)程在發(fā)起關(guān)鍵應(yīng)用請(qǐng)求時(shí),直接在共享內(nèi)存的非關(guān)鍵應(yīng)用可寫(xiě)區(qū)中申請(qǐng)內(nèi)存區(qū)作為發(fā)送數(shù)據(jù)區(qū),在共享內(nèi)存的非關(guān)鍵應(yīng)用可寫(xiě)區(qū)中申請(qǐng)內(nèi)存區(qū)作為接收數(shù)據(jù)區(qū),實(shí)現(xiàn)零拷貝。同時(shí),為充分利用雙核并行性,提高多任務(wù)并行處理效率,非關(guān)鍵應(yīng)用應(yīng)合理有效地調(diào)度阻塞任務(wù)與非阻塞任務(wù)。
3 混合關(guān)鍵系統(tǒng)的通信中間件
本文研究了保障通信服務(wù)質(zhì)量的輕量級(jí)通信軟總線(xiàn),基于統(tǒng)一模型的嵌入式輕量級(jí)軟總線(xiàn)設(shè)計(jì),針對(duì)運(yùn)行環(huán)境資源受限、實(shí)時(shí)性強(qiáng)等特點(diǎn),從高效通信機(jī)制、通信服務(wù)質(zhì)量、數(shù)據(jù)訂閱分發(fā)[6]管理等方面,構(gòu)建以數(shù)據(jù)為中心的統(tǒng)一通信模型,屏蔽底層硬件對(duì)上層應(yīng)用的約束。
輕量級(jí)軟總線(xiàn)技術(shù)擬采用基于數(shù)據(jù)分發(fā)服務(wù)的通信中間件來(lái)實(shí)現(xiàn),該技術(shù)不同于面向連接的通信模式,而是以數(shù)據(jù)為中心,關(guān)注于數(shù)據(jù)共享和系統(tǒng)狀態(tài)消息。數(shù)據(jù)分發(fā)服務(wù)技術(shù)的核心是以數(shù)據(jù)為中心的發(fā)布訂閱,構(gòu)建了基于統(tǒng)一網(wǎng)絡(luò)的通信模型,形成了一個(gè)與平臺(tái)無(wú)關(guān)的數(shù)據(jù)模型。
數(shù)據(jù)分發(fā)服務(wù)技術(shù)標(biāo)準(zhǔn)化了分布式實(shí)時(shí)系統(tǒng)中數(shù)據(jù)發(fā)布、傳遞和接收的接口和行為,定義了以數(shù)據(jù)為中心的發(fā)布/訂閱機(jī)制,提供了與平臺(tái)無(wú)關(guān)的數(shù)據(jù)模型,屏蔽了鏈路層和網(wǎng)絡(luò)協(xié)議的細(xì)節(jié)與異構(gòu):
(1)以數(shù)據(jù)為中心。數(shù)據(jù)分發(fā)服務(wù)創(chuàng)建了一個(gè)全局性的數(shù)據(jù)空間,通過(guò)主題來(lái)完成節(jié)點(diǎn)之間的關(guān)聯(lián)。發(fā)布方提供主題到全局?jǐn)?shù)據(jù)空間,訂閱者在該空間找到需要的主題,然后發(fā)送方和訂閱方通過(guò)主題連接后直接進(jìn)行點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)傳送,不需要中間媒介。
(2)數(shù)據(jù)流可控服務(wù)質(zhì)量。數(shù)據(jù)分發(fā)服務(wù)提供了多種服務(wù)質(zhì)量策略(Quality of Service,簡(jiǎn)稱(chēng)QoS),來(lái)管理和優(yōu)化網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)流。QoS[7]不僅可以對(duì)數(shù)據(jù)流進(jìn)行常規(guī)控制,如數(shù)據(jù)的持久度、數(shù)據(jù)的傳輸方式等,還可以進(jìn)行更深層次的控制,如系統(tǒng)資源使用控制等?;诜?wù)質(zhì)量策略的數(shù)據(jù)流傳輸是支持多等級(jí)混合分區(qū)間互聯(lián)互通的關(guān)鍵,對(duì)于時(shí)間確定性要求的高優(yōu)先級(jí)的分區(qū),可采用確定時(shí)間間隔等傳輸服務(wù)質(zhì)量策略來(lái)明確通訊資源的使用和通訊質(zhì)量的保障。
(3)自動(dòng)發(fā)現(xiàn)和管理數(shù)據(jù)流。數(shù)據(jù)分發(fā)服務(wù)能設(shè)計(jì)成自動(dòng)發(fā)現(xiàn)發(fā)布者和訂閱者的每一個(gè)主題,根據(jù)它們之間設(shè)置的QoS參數(shù)自動(dòng)建立數(shù)據(jù)流。數(shù)據(jù)分發(fā)服務(wù)模型提供了快速透明的定位,即插即用。它能迅速發(fā)現(xiàn)新的節(jié)點(diǎn),也能及時(shí)地清除掉過(guò)時(shí)的、失敗的節(jié)點(diǎn)和數(shù)據(jù)流。
4 結(jié)語(yǔ)
本文研究的混合關(guān)鍵系統(tǒng)中多個(gè)物理隔離空間的任務(wù)間高效異構(gòu)通信技術(shù),能夠保障混合關(guān)鍵系統(tǒng)的安全關(guān)鍵、任務(wù)關(guān)鍵、非關(guān)鍵等任務(wù)的實(shí)時(shí)性響應(yīng)調(diào)度、分布式統(tǒng)一通信、安全性隔離訪問(wèn)等能力,形成具有確定性保障能力的嵌入式混合關(guān)鍵任務(wù)操作系統(tǒng)保障機(jī)制,滿(mǎn)足下一代混合信息系統(tǒng)在復(fù)雜戰(zhàn)場(chǎng)環(huán)境中對(duì)嵌入式系統(tǒng)分布式、實(shí)時(shí)性、安全性、可靠性的嚴(yán)酷要求。
參考文獻(xiàn)
[1] 陶鑫.多核混合關(guān)鍵系統(tǒng)中的任務(wù)劃分調(diào)度算法及實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2017.
[2] 岳晨旭.基于TrustZone技術(shù)的Linux安全模塊隔離方法研究[D].南京:南京大學(xué),2017.
[3] 嚴(yán)琳.分布式實(shí)時(shí)仿真系統(tǒng)中軟總線(xiàn)及仿真節(jié)點(diǎn)接口代理軟件的研究與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2013.
[4] 秦玉函.嵌入式實(shí)時(shí)多處理系統(tǒng)的通信中間件技術(shù)研究[D].杭州:浙江大學(xué),2018.
[5] 許豪,陳可.Linux下進(jìn)程間通信機(jī)制的探討[J].科技與創(chuàng)新,2016(03):83.
[6] 史會(huì)麗.基于DDS規(guī)范的數(shù)據(jù)發(fā)布/訂閱模型應(yīng)用研究[J].電腦知識(shí)與技術(shù),2016(03):83.
[7] 冷楓麒.基于發(fā)布/訂閱的分布式數(shù)據(jù)分發(fā)技術(shù)的研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2017.
數(shù)字技術(shù)與應(yīng)用2019年7期