游夏 林森

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