石瑞峰



關鍵詞: 計算思維; 虛擬操作系統; 串口模塊; 可視化模塊; 任務調度; 虛擬進程
中圖分類號: TN915.5?34; TP391 ? ? ? ? ? ? ? ? 文獻標識碼: A ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2019)04?0183?04
Design of virtual operating system based on computational thinking
SHI Ruifeng
(Inner Mongolia Agricultural University, Hohhot 010018, China)
Abstract: Since the current virtual operating system has the problems of long operation delays and low degree of visualization, a virtual operating system based on computational thinking is proposed. The serial port module of the virtual operating system is designed to construct a virtual serial port terminal for each partition of the serial port module. The operations of various partitions on carrier devices are all converted into operations on virtual serial port carrier devices. In the task scheduling module of the virtual operating system, the virtual process scheduling is completed by operation, preparation and blocking of each task. During the system initialization process, the priority is set for each virtual process. Meanwhile, the waiting event or message is driven to convert to the ready queue, which is then converted to the operation state when the time slice comes. The external task simulation function unit in the visualization module of the virtual operating system allows the tester to purposely modify the operation or simulation conditions of the program during the normal operation of the user program. The language support function unit supports various testing tasks represented by various languages. In the key technologies of the virtual operating system, the corresponding strategy of the system burst interruption is taken as the analysis object. The experimental results show that the system has short operation delays and high visualization degrees, which is feasible.
Keywords: computing thinking; virtual operation system; serial port module; visualization module; task scheduling; virtual process
由于設備的虛擬化能夠有效提升設備的訪問效率[1?2],因此,設備虛擬化已經成為虛擬化研究領域的重要方向,引起了該領域學者的廣泛關注與研究[3?4]。
張沂超等人提出并設計基于國產平臺的虛擬操作系統[5]。該系統架構主要由以下兩部分構成:虛擬機監視裝備和輕量級內核相互融合構建的虛擬操作體系;分時復用虛擬設備和空間分割虛擬設備相結合構建的監視器架構。根據主要架構在國產平臺上構建一個虛擬系統原型Hypervk,并對系統的可靠性進行驗證,實驗結果表明,該系統具有簡便性,但運行延時較長。劉博文等人提出并設計基于Android的虛擬操作系統[6]。該系統運用Linux內核對空間機制進行命名,并構建Driver空間框架,完成了多個虛擬Android體系的運行操作。另外,對于多個虛擬并行體系只針對一套設備進行訪問這一問題,構建了較為通用的active?inactive模型以保障虛擬系統各個單元之間對系統硬件的隔離復用。通過實驗對該系統進行驗證,實驗結果表明,該系統內存使用量較低,存在可視化程度較低的問題。
針對當前虛擬操作系統存在的問題,提出并設計基于計算思維的虛擬操作系統。
1.1 ?虛擬操作系統串口模塊設計
基于計算思維的虛擬操作系統串口模塊功能根據客戶和服務器模式虛擬化得以實現,且虛擬操作系統的驅動程序存在于設備的服務分區空間中。圖1為基于計算思維的虛擬操作系統串口模塊。

圖1中,虛擬操作系統的虛擬化串口要求載體設備的服務分區中存在適當的驅動程序,剩余分區必須存在代理驅動程序。如果用戶調用虛擬操作系統的代理驅動程序操作接口,該程序會將用戶操作轉發至虛擬操作系統服務分區的串口服務器中。代理驅動所提供的函數與接口模式上和原載體設備的驅動接口一致,并在函數內部實現對載體設備訪問的封裝,封裝后的基本形式為IPC消息格式,再將封裝結果轉發至串口服務器。基于計算思維的虛擬操作系統串口服務器會為各分區設計并構建一個虛擬的串口終端,各分區對載體設備的所有操作均會被轉換成對虛擬串口載體設備的操作[7]。
載體服務器對載體設備進行直接控制,對各分區之間的競爭進行仲裁,并對設備的中斷請求進行處理。其中,為處理來自于內核虛擬管理處轉發的中斷請求,在各個載體設備服務區中構建處理串口中斷模塊。
1.2 ?虛擬操作系統任務調度模塊設計
在基于計算思維的虛擬操作系統中,任務是所有競爭資源中最小的單位。在該系統中提供優先級任務制定服務,且支持時間調度及優先級調度。針對大型載體設備通信單元,要提供更多的功能,此時暫不使用時間調度均衡分配各任務所占用的操作模塊資源時間片,而是采用優先級調度[8]。但各功能模塊無法實現任務的逐一分配,因此會造成任務加重的情況,使虛擬操作系統的調度任務量變多。依據虛擬系統通信架構,能夠將任務調度操作體系劃分為支撐、傳輸和協議維護等重要單元,因此,僅需對這幾個任務的優先級進行注冊,就能夠實現虛擬系統的任務調度。
各個虛擬進程與各任務功能相對應,各功能需要依據不同需求制定優先級,例如傳輸任務對應的虛擬進程不同,向下傳輸時的帶寬相對較窄,而向上傳輸的帶寬相對較寬,為使任務操作時的數據堵塞情況得到緩解,減少系統運行延時,憑借任務優先級調度向下傳輸程序。數據傳輸程序的調度狀態主要分為三種:就緒、阻塞和運行。就緒能夠轉換成運行狀態,也能夠依據實際情況轉換成阻塞狀態,其中,運行狀態結束或被強制中斷之后,只能轉換成阻塞狀態,阻塞狀態可以轉換成就緒狀態,而不可以直接轉換成運行狀態。各個任務均通過運行、就緒和阻塞完成虛擬進程調度,系統初始化過程中,為各虛擬進程設置好優先級,同時等待事件或消息驅動轉向就緒隊列,然后在時間片來臨時轉入運行狀態。
1.3 ?虛擬操作系統可視化模塊設計
在基于計算思維的虛擬操作系統中,所有接口函數均會被打包為動態的鏈接,為可視化操作提供方便。同時在基于計算思維的虛擬操作系統中,集成可視化監控界面,方便用戶監視應用程序運行情況、任務調度過程以及資源的使用狀況等[9]。用戶還能夠借助相關調試器中具備的設置斷點和單步跟蹤等模塊,在監視界面上查詢和監測各調試信息,以此提升基于計算思維的虛擬操作系統可視化程度。
基于計算思維的虛擬操作系統可視化模塊中包含兩個部分:外部任務模擬功能單元和語言支持功能單元。外部任務模擬功能單元允許測試人員在用戶程序正常運行過程中,有目的地對程序運行情況或模擬情況進行修改。語言支持功能單元支持語言表征的各種測試任務。由此,大大增強基于計算思維的虛擬操作系統的靈活性。
1.4 ?基于計算思維的虛擬操作系統關鍵技術分析
在對虛擬操作系統進行實際操作時,各任務以時間片方式共享CPU,因此需要提供各任務之間的切換機制。假設切換條件適當,保存目前處理服務器上下文,并恢復就緒任務上下數據信息。處理設備上下文存儲CPU狀態信息,其中主要包含程序的計數設備、狀態字以及寄存器等。
基于計算思維的虛擬操作系統對中斷的處理依據為中斷請求級。以便于移植為目的,內核提供包含硬中斷以及軟中斷的標準中斷請求級[10]。在特殊情況下,為了降低任務優先級的受影響程度,基于計算思維的虛擬操作系統提供提升或者降低中斷請求級相關函數,進而將某些中斷屏蔽。當系統運行信號發生中斷時,會影響系統的正常運行,激活與之對應的信號處理程序對此類異步事件進行處理,通過信號屏蔽工具,能夠為中斷的允許、禁止以及恢復提供較為理想的解決方法,以此進一步提升系統的靈活性。
1.5 ?基于計算思維的虛擬操作系統軟件設計
根據以上分析,得到虛擬操作系統軟件流程如圖2所示。
分析圖2可知,基于計算思維的虛擬操作系統軟件運行時,系統進入初始化模式,用戶借助載體設備進行虛擬操作。用戶下發指令或者請求,此時串口模塊開始運行,并調用可視化程序,打開可視化界面方便用戶操作。將用戶下發的指令或請求當作任務,調用任務調度模塊,該模塊接收到任務之后,調用相應子程序,并依據任務的優先級完成任務。判斷是否存在優先級插隊現象,如果是,則返回上一級運行程序,如果否,則完成當前任務。
以驗證基于計算思維的虛擬操作系統整體性能為目的,進行相關實驗。實驗平臺為Matlab 2017,實驗數據來自于某校多媒體教學實驗室。通過以下兩方面對所提系統進行驗證:系統運行延時;系統可視化程度。不同系統運行延時對比如圖3所示。

分析圖3可知,基于計算思維的虛擬操作系統運行延時相較基于國產平臺的虛擬操作系統更短。該系統中各功能需要依據不同需求制定優先級,為減少系統運行延時,憑借任務優先級先調度向下傳輸程序,有效緩解了系統運行阻塞情況,提高了系統運行效率。

表1中:A0代表用戶數量;A1代表基于Virtual Box的虛擬操作系統可視化系數;A2代表基于計算思維的虛擬操作系統可視化系數。
分析表1數據可知,所提系統表現出了良好的可視化性能。系統的可視化模塊設計中,用戶能夠借助相關調試器中具備的設置斷點和單步跟蹤等模塊,在監視界面上查詢和監測各調試信息,有效提高了系統可視化程度。
依據對當前虛擬操作系統的分析,提出并設計基于計算思維的虛擬操作系統。分別對系統的串口模塊、任務調度模塊和可視化模塊等功能硬件進行設計,結合硬件組成部分,設計軟件運行流程。實驗結果表明,該系統功能完善,可利用性強。
參考文獻
[1] 宋中越,馬姣姣,甄冬,等.基于流媒體技術的風力發電機全景監測虛擬現實系統研究[J].計算機測量與控制,2016,24(7):247?248.
SONG Zhongyue, MA Jiaojiao, ZHEN Dong, et al. Research of panoramic monitoring virtual reality system of wind turbines based on stream?media technology [J]. Computer measurement & control, 2016, 24(7): 247?248.
[2] 斯進.面向IaaS云服務的云系統中虛擬機監控及證據采集[J].現代電子技術,2016,39(4):86?88.
SI Jin. Virtual machine monitoring and evidence acquisition in cloud system for IaaS cloud services [J]. Modern electronics technique, 2016, 39(4): 86?88.
[3] 聞達,李明齊.基于RTX的虛擬無線電高速數據接口實時性研究[J].科學技術與工程,2017,17(27):227?231.
WEN Da, LI Mingqi. Research on the real?time capability of high speed data interface of virtual radio based on RTX [J]. Science technology and engineering, 2017, 17(27): 227?231.
[4] 王正敏,李威.煙草企業信息系統虛擬化平臺遷移方案設計[J].科技通報,2017,33(7):114?116.
WANG Zhengmin, LI Wei. Solution design of virtualization platform migration for tobacco industry information systems [J]. Bulletin of science and technology, 2017, 33(7): 114?116.
[5] 張沂超,王星焱,陳左寧,等.基于國產平臺的虛擬化操作系統架構研究及其實現[J].計算機工程與科學,2018,40(3):394?404.
ZHANG Yichao, WANG Xingyan, CHEN Zuoning, et al. Research and implementation of a virtual operating system based on domestic platform [J]. Computer engineering and science, 2018, 40(3): 394?404.
[6] 劉博文,顧乃杰,谷德賀,等.移動平臺Android 操作系統虛擬化技術的實現[J].計算機工程與應用,2017,53(14):32?38.
LIU Bowen, GU Naijie, GU Dehe, et al. Implementation of OS?level virtualization technology for Android on mobile platform [J]. Computer engineering and applications, 2017, 53(14): 32?38.
[7] 闞文梟,黃秋蘭,陳剛.桌面網格環境下虛擬化技術的應用研究[J].計算機工程,2017,43(3):11?17.
KAN Wenxiao, HUANG Qiulan, CHEN Gang. Research on virtualization technology application in desktop grid environment [J]. Computer engineering, 2017, 43(3): 11?17.
[8] 萬隆君,涂婉麗,徐軼群,等.基于VR技術的船舶管路裝配虛擬仿真系統設計[J].中國造船,2017,58(1):186?192.
WAN Longjun, TU Wanli, XU Yiqun, et al. Virtual assembly of ship piping system based on VR technology [J]. Shipbuilding of China, 2017, 58(1): 186?192.
[9] 于寧波,李思宜,趙營泉,等.基于共享控制的人機靈巧力觸覺交互系統設計與實現[J].儀器儀表學報,2017,38(3):602?611.
YU Ningbo, LI Siyi, ZHAO Yingquan, et al. Design and implementation of a dexterous human?robot interaction system based on haptic shared control [J]. Chinese journal of scientific instrument, 2017, 38(3): 602?611.
[10] 高漢軍,曲鳴,李青,等.核電站分布式系統虛擬過程控制平臺設計研究[J].計算機仿真,2017,34(2):144?149.
GAO Hanjun, QU Ming, LI Qing, et al. Research and design on virtual DCS process control platform in nuclear power plant [J]. Computer simulation, 2017, 34(2): 144?149.