





關鍵詞:實時響應;嵌入式系統;虛擬化微內核架構
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2024)26-0031-04開放科學(資源服務)標識碼(OSID) :
0 引言
隨著計算機技術的不斷發展,各種先進的技術被應用于各個領域,其中,嵌入式虛擬技術由于具備諸多方面的優勢,故在軟件和系統開發中被廣泛應用。相較于傳統技術,此項技術可以滿足用戶的多元化要求,具有高度集成特點。因此,研究此項課題,具有十分重要的意義。
1 實時響應的嵌入式系統虛擬化微內核架構
主機微內核和用戶級環境,屬于整體架構的重要內容,其中,前者屬于組件,其在運行過程中,所處環境為最高權限級別,為保證系統安全,該組件將與安全性無關的特性刪除,僅將調度器和內存管理保存,兩種特性關系到運行安全。因此主機微內核組件的存在,使系統在信任計算方面的條件減少。在查閱文獻后得知,系統附加服務,是用戶環境的重要組成部分,其本質上屬于一種運行模式。
本文所研究的微內核架構,以半虛擬化方案為基礎,簡言之,就是對來賓操作系統進行修改,使其成為虛擬處理器或顯示地調用hypervisor,為特權操作處理創造有利的條件。在架構中,各虛擬機均具有托管作用,負責半虛擬化操作系統或用戶應用程序軟件的映像,各映像地址空間獨立,且執行媒介均為虛擬硬件。接下來,本章節會對內核架構進行簡單的分析。
1.1 內存管理
內存管理是指軟件運行階段,計算機內存資源分配和使用的技術,其作用為高效分配、釋放和回收內存資源。在虛擬化微內核架構中,內存特權級別分為三個,1) host,用于滿足虛擬機監視器的存儲需求;2)guest kenel,對來賓操作內核進行存儲;3) guest user,存儲應用程序,其涉及的主體為用戶系統。就實際情況而言,在內存管理期間,各虛擬機均會建立與之相匹配的頁表,且各頁表之間相互獨立,且表內信息的訪問權限非常高,如果利用虛擬機無法訪問。同時,為提升信息存儲的安全性,該架構內存管理單元功能完善,可以防止用戶利用軟件片段,對guest kernel進行訪問,因此,有助于保證系統安全。此外,結合半虛擬化概念,該架構中的來賓操作系統,可以向虛擬機監視器發送超啟動信號,更新頁表映像[1]。
1.2 調度器
實時調度技術已經成為虛擬化系統構建中應用廣泛的技術,為提升調度器的可靠性,需要結合架構情況,開展額外的調度器計算。同時,在以服務器為基礎的調度器,被應用于RT-XEN(一種基于Xen的分層的單核實時調度框架RT-Xen) 以及其他微內核中,為保證調度器的應用效果,優化舊調度接口尤為關鍵。如果用戶在操作時,需要設計時間表,且該時間表能夠正常運行,此時,將原始調度任務作為依據,完成實時任務的設置,是虛擬機監視器的主要功能。以上操作的實現,有利于使系統運行負載下降,最終達成簡化系統內核的目的。虛擬機監視器調度器在應用過程中,以后臺調度理念為基礎,在高優先級任務執行完畢空閑時間內,執行低優先級任務,在避免低優先級任務對高優先級任務的執行造成干擾的同時,提高任務的執行效率。
基于優先級的搶占式循環調度策略如圖2所示。此外,一般情況下,一般用途操作系統的優先級高于實時操作系統,若兩個操作系統處于同一優先級,只要一般用途操作系統準備運行,則實時操作系統的運行中央處理器必然被搶占,致使觸發實時操作系統運行的調度程序中,定時器節拍與系統出現中斷情況。現階段,為降低優先級問題對實時調度系統正常運行產生的影響,工作人員可以通過優化調度策略,使用準確傳遞定時器方式,避免實時操作系統的調度運行通路被堵塞[2]。
1.3 定時器
實時操作系統調度器在運行過程中,需要對特定任務能否執行加以明確,此項目標的實現,主要將定時器tick數作為依托,與此同時,在系統中,虛擬機監控器起到了關鍵作用,不僅具有管理功能,還能滿足來賓操作系統的需求,管理對象為定時器,除對其進行管理外,還能根據需求,采取有效的措施訪問定時器,常用的手段為捕獲和超調。盡管上述操作難度偏低,但是在系統實際運轉過程中,系統管理程序的存在,會使依托定時器運轉的系統性能開銷有所提高。同時,在虛擬機定時器的解析受到管理程序定時器周期限制的情況下,系統的運行狀況將出現問題。現階段,為提高實時操作系統的可調度性,需要開展高精度定時器虛擬工作。
定時器虛擬化實現的方法如下:
1) 需要為系統建立系統定時器、一般用途操作系統和實時操作系統三個獨立的物理定時器,其中,系統定時器可以被應用于主機系統當中,依托微內核系統進行訪問,用于操作系統的計時器與其他虛擬機共享。
2) 賦予虛擬機直接訪問和編寫定時器的權限,不會被管理程序所限制。同時,保證來賓操作系統映射被存儲到內存空間當中。同時,來賓操作系統不僅可以訪問分配給他的定時器,還能實現定時器自由配置,完成對定時器周期、間隔值等參數的調整。
3) 虛擬化一般用于操作系統中的計時器,在應用過程中有著諸多功能,可以為模擬工作的開展,創造有利的條件。
1.4 中斷虛擬化
在該架構中的虛擬中斷通用控制器,可以被用于系統中斷控制。具體來說,在系統實際運轉過程中,虛擬機監視器可以為系統生成虛擬中斷信號,在中斷信號發出后,為保障來賓操作系統能夠繼續原本的中斷處理過程,架構中的虛擬中斷通用控制器被設置成與虛擬寄存器物理性質相類似的中斷通用控制寄存器,虛擬中斷通用控制器在運行時,可以存儲每個虛擬機的虛擬中斷狀態,并結合中斷狀態,對中斷通用控制器的行為狀態加以模擬。
在生成物理中斷的情況下,虛擬機監視器處理程序的作用會被充分發揮,其作用為生成虛擬終端,其所處位置是通用控制器內,之后,插入虛擬器后,虛擬機會自動跳轉。值得注意的是,各虛擬機在進入中斷狀態后,各虛擬機具有一致性的特點,但彼此之間相互獨立,即使某個虛擬機出現異常無法正常運行,其他虛擬機也不會受到影響,并且,在出現物理中斷現象后,其數據信息會被其他虛擬機所收集。
1.5 虛擬機間通信
實時響應的嵌入式系統虛擬化微內核架構中,可以將微內核進程通信視為虛擬機之間的通信。在操作階段,工作人員可以采取有效通信方式,對同步進程通信模型加以替換,以解決傳統方式存在的弊端,研究結果表明,使用異步通信方式的效果顯著,能夠對通信過程加以優化,降低通信工作的復雜度。基于此,工作人員在本次架構設計工作中,提出了一種基于中斷請求的虛擬機間通信機制,在實際工作過程中可以依托虛擬機監視器,使異步虛擬機通信需求被有效滿足。在實際工作階段,各虛擬機均擁有內存頁,且這個內存頁具有共享性。工作人員可以將監視器和端口作為起點,對內存頁進行訪問。在通信發送和接收階段,僅需將簡單的讀寫指令使用內存執行即可,在發送后,虛擬機會將信息帶入共享區,由監視器通知接收方虛擬機,由其讀取信息即可,故傳輸效率極高。由于上述流程屬于異步流程,因此,這一技術方法在應用時的速度,快于單純L4微內核(L4微內核屬于操作系統內核的一種)[3]。
1.6 共享內存區
以來賓操作系統為切入點而言,關系到特權訪問的權限,所處位置均為虛擬監視器,若系統對資源的訪問頻率較高,系統會因需要大量開展超調用工作,而出現較大的開銷。為解決上述問題,在設置實時響應的嵌入式系統虛擬化微內核架構時,可以設置虛擬機監視器和內存區,值得注意的是,內存區具有共享性的特點,其中,系統對虛擬資源予以訪問時,可以將內存機作為基礎,而不需要反復開展超調用工作,開銷會隨之減少。就實際情況而言,來賓操作系統訪問的資源主要包括兩類,分別為多個寄存器組成的資源和虛擬中斷控制器,該寄存器包括原狀態寄存器與保存程序狀態寄存器兩部分組成。在實踐中,寄存器與虛擬中斷控制器內容,均在共享內存區域被存儲。其中,寄存器的超調用信號,能夠被宏代碼所取代。此外,系統運行階段,可基于宏完成一系列的操作,操作載體為寄存器。在上述操作完成后,共享內存中的內容會發生轉化,變為虛擬寄存器讀寫進程。虛擬機監視器在必要情況下,可以實現對程序狀態寄存器與虛擬寄存器狀態的調整。
2 基于seL4構建的嵌入式虛擬化系統
2.1 基于seL4的微內核架構
seL4微內核屬于操作系統內核,是L4微內核家族中最先進的成員。其應用優勢在于可以通過微應用程序提供訪問控制模型的方式,提高系統的安全性能基礎,從嵌入式系統的角度看,以seL4微內核為基礎,所構建的虛擬機管理器,具有諸多方面的優勢,具體為隔離和授權功能,所針對的對象為軟件組件,故有利于增強組件之間通信控制效果,并實現提高系統運轉安全性的目的。如圖3所示為基于seL4微內核架構的實時響應的嵌入式系統虛擬化系統架構。
2.2 嵌入式虛擬化系統的實現
2.2.1 Hypervisor軟件架構
在研究實時響應的嵌入式系統虛擬化微內核架構的應用性能時,可以綜合應用Chcore微內核與虛擬化技術,Chcore微內核操作系統屬于一種以微內核操作系統結構為基礎的系統,同時,為提高系統軟件性能指標測試工作的可靠性,需要將硬件虛擬加速技術融入系統當中,基于Chcore構建的虛擬機管理器系統如圖4所示。其中,分析架構虛擬層添加后,主要由3 層異常級別組成,其中,EL1層屬于用戶功能模塊所處位置。內核態功能模塊處于系統的EL1、EL2層當中,因此,在構建模擬分析系統時,須提高各層數據集操作接口管控情況的關注度[4]。在圖4中,增加的虛擬化部分主要由陰影顯示,因為所采用的設計思路以內核態跨層為主,使ARM提供支持被充分發揮,可以在最大限度上完成對微內核的優化。
2.2.2 Hypervisor組件構成
基于上文所研究的架構,需要做好相關組件的設計工作,如圖5所示。在觀察圖5后得知,其組件分別由以下部分組成:
1) 虛擬機創建、配置和管理;
2) 滿足客戶操作系統虛擬機需求的調度器;
3) 創建物理地址的虛擬內存管理;
4) 各異常級別的虛擬中斷異常處理,若操作系統在其他因素的影響下陷入異常,該組件可以實現對外部設備和虛擬機之間通信的處理。
在Hypervisor系統中異常級別為EL1、EL0的虛擬化模塊功能較為相似,以便保證系統在運轉過程中,能夠最大限度在用戶態中生成代碼功能,減少微內核所承擔的任務。同時,為提高運轉效率,在系統設計階段,系統內核部分所保留的功能以基礎功能為主,其余功能需要在系統處于用戶態的情況下,開展測試分析[5]。
2.3 嵌入式虛擬化系統的功能
2.3.1 Hypervisor 功能測試
在驗證實時響應的嵌入式系統虛擬化微內核架構的Hypervisor功能的過程中,構建的驗證硬件環境為Hikey970,系統開發板如圖6所示。從圖中可以看出,Hikey970環境共有8個中央處理器,可以實現負載的均衡處理,在性能測試環節,工作人員需要先關閉處理器的動態均衡調度機制,然后在0號中央處理器處,開啟多個虛擬機,觀察虛擬機能否正常執行任務,從而達到驗證系統功能的目的。
虛擬啟動的狀態情況,如圖7所示,在觀察圖7后得知,在同時開啟7臺虛擬機的情況下,虛擬機的任務均能正常執行,輸出taskl。
在查看系統調度日志后,發現各編號的虛擬機均能在0號中央處理器上時分復用,如圖7所示。
2.3.2 Hypervisor性能分析
為了解系統架構添加虛擬化層后,系統運行開銷與虛擬機在Hikey970環境下的開銷變化,需要對Hy?pervisor的性能加以分析。通過分析可以發現,在添加虛擬層后,系統round-trip IPC通信的cycle次數為3302<5000,符合標準UPC的性能要求。在測試上下文切換及中斷處理開銷時,可以發現,12000次上下文切換情況下,cycles次數為2773368個,中斷過程中需處理的cycle 個數為5279199 個,個數約為90%的直接在Hikey970環境下運行產生的額外開銷,因此,可以認為該系統的應用性能符合要求。
3 結論
總而言之,在半虛擬化微內核架構,無法滿足當前嵌入式系統工作需要的情況下,構建實時響應的嵌入式系統虛擬化微內核架構,并依托結構性能測試結果,對架構的性能加以優化,成為降低超調用開銷,提高實時操作系統可調度性的必要舉措。