石瑞峰
關(guān)鍵詞: 計算思維; 虛擬操作系統(tǒng); 串口模塊; 可視化模塊; 任務(wù)調(diào)度; 虛擬進程
中圖分類號: TN915.5?34; TP391 ? ? ? ? ? ? ? ? 文獻標(biāo)識碼: 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
由于設(shè)備的虛擬化能夠有效提升設(shè)備的訪問效率[1?2],因此,設(shè)備虛擬化已經(jīng)成為虛擬化研究領(lǐng)域的重要方向,引起了該領(lǐng)域?qū)W者的廣泛關(guān)注與研究[3?4]。
張沂超等人提出并設(shè)計基于國產(chǎn)平臺的虛擬操作系統(tǒng)[5]。該系統(tǒng)架構(gòu)主要由以下兩部分構(gòu)成:虛擬機監(jiān)視裝備和輕量級內(nèi)核相互融合構(gòu)建的虛擬操作體系;分時復(fù)用虛擬設(shè)備和空間分割虛擬設(shè)備相結(jié)合構(gòu)建的監(jiān)視器架構(gòu)。根據(jù)主要架構(gòu)在國產(chǎn)平臺上構(gòu)建一個虛擬系統(tǒng)原型Hypervk,并對系統(tǒng)的可靠性進行驗證,實驗結(jié)果表明,該系統(tǒng)具有簡便性,但運行延時較長。劉博文等人提出并設(shè)計基于Android的虛擬操作系統(tǒng)[6]。該系統(tǒng)運用Linux內(nèi)核對空間機制進行命名,并構(gòu)建Driver空間框架,完成了多個虛擬Android體系的運行操作。另外,對于多個虛擬并行體系只針對一套設(shè)備進行訪問這一問題,構(gòu)建了較為通用的active?inactive模型以保障虛擬系統(tǒng)各個單元之間對系統(tǒng)硬件的隔離復(fù)用。通過實驗對該系統(tǒng)進行驗證,實驗結(jié)果表明,該系統(tǒng)內(nèi)存使用量較低,存在可視化程度較低的問題。
針對當(dāng)前虛擬操作系統(tǒng)存在的問題,提出并設(shè)計基于計算思維的虛擬操作系統(tǒng)。
1.1 ?虛擬操作系統(tǒng)串口模塊設(shè)計
基于計算思維的虛擬操作系統(tǒng)串口模塊功能根據(jù)客戶和服務(wù)器模式虛擬化得以實現(xiàn),且虛擬操作系統(tǒng)的驅(qū)動程序存在于設(shè)備的服務(wù)分區(qū)空間中。圖1為基于計算思維的虛擬操作系統(tǒng)串口模塊。
圖1中,虛擬操作系統(tǒng)的虛擬化串口要求載體設(shè)備的服務(wù)分區(qū)中存在適當(dāng)?shù)尿?qū)動程序,剩余分區(qū)必須存在代理驅(qū)動程序。如果用戶調(diào)用虛擬操作系統(tǒng)的代理驅(qū)動程序操作接口,該程序會將用戶操作轉(zhuǎn)發(fā)至虛擬操作系統(tǒng)服務(wù)分區(qū)的串口服務(wù)器中。代理驅(qū)動所提供的函數(shù)與接口模式上和原載體設(shè)備的驅(qū)動接口一致,并在函數(shù)內(nèi)部實現(xiàn)對載體設(shè)備訪問的封裝,封裝后的基本形式為IPC消息格式,再將封裝結(jié)果轉(zhuǎn)發(fā)至串口服務(wù)器。基于計算思維的虛擬操作系統(tǒng)串口服務(wù)器會為各分區(qū)設(shè)計并構(gòu)建一個虛擬的串口終端,各分區(qū)對載體設(shè)備的所有操作均會被轉(zhuǎn)換成對虛擬串口載體設(shè)備的操作[7]。
載體服務(wù)器對載體設(shè)備進行直接控制,對各分區(qū)之間的競爭進行仲裁,并對設(shè)備的中斷請求進行處理。其中,為處理來自于內(nèi)核虛擬管理處轉(zhuǎn)發(fā)的中斷請求,在各個載體設(shè)備服務(wù)區(qū)中構(gòu)建處理串口中斷模塊。
1.2 ?虛擬操作系統(tǒng)任務(wù)調(diào)度模塊設(shè)計
在基于計算思維的虛擬操作系統(tǒng)中,任務(wù)是所有競爭資源中最小的單位。在該系統(tǒng)中提供優(yōu)先級任務(wù)制定服務(wù),且支持時間調(diào)度及優(yōu)先級調(diào)度。針對大型載體設(shè)備通信單元,要提供更多的功能,此時暫不使用時間調(diào)度均衡分配各任務(wù)所占用的操作模塊資源時間片,而是采用優(yōu)先級調(diào)度[8]。但各功能模塊無法實現(xiàn)任務(wù)的逐一分配,因此會造成任務(wù)加重的情況,使虛擬操作系統(tǒng)的調(diào)度任務(wù)量變多。依據(jù)虛擬系統(tǒng)通信架構(gòu),能夠?qū)⑷蝿?wù)調(diào)度操作體系劃分為支撐、傳輸和協(xié)議維護等重要單元,因此,僅需對這幾個任務(wù)的優(yōu)先級進行注冊,就能夠?qū)崿F(xiàn)虛擬系統(tǒng)的任務(wù)調(diào)度。
各個虛擬進程與各任務(wù)功能相對應(yīng),各功能需要依據(jù)不同需求制定優(yōu)先級,例如傳輸任務(wù)對應(yīng)的虛擬進程不同,向下傳輸時的帶寬相對較窄,而向上傳輸?shù)膸捪鄬^寬,為使任務(wù)操作時的數(shù)據(jù)堵塞情況得到緩解,減少系統(tǒng)運行延時,憑借任務(wù)優(yōu)先級調(diào)度向下傳輸程序。數(shù)據(jù)傳輸程序的調(diào)度狀態(tài)主要分為三種:就緒、阻塞和運行。就緒能夠轉(zhuǎn)換成運行狀態(tài),也能夠依據(jù)實際情況轉(zhuǎn)換成阻塞狀態(tài),其中,運行狀態(tài)結(jié)束或被強制中斷之后,只能轉(zhuǎn)換成阻塞狀態(tài),阻塞狀態(tài)可以轉(zhuǎn)換成就緒狀態(tài),而不可以直接轉(zhuǎn)換成運行狀態(tài)。各個任務(wù)均通過運行、就緒和阻塞完成虛擬進程調(diào)度,系統(tǒng)初始化過程中,為各虛擬進程設(shè)置好優(yōu)先級,同時等待事件或消息驅(qū)動轉(zhuǎn)向就緒隊列,然后在時間片來臨時轉(zhuǎn)入運行狀態(tài)。
1.3 ?虛擬操作系統(tǒng)可視化模塊設(shè)計
在基于計算思維的虛擬操作系統(tǒng)中,所有接口函數(shù)均會被打包為動態(tài)的鏈接,為可視化操作提供方便。同時在基于計算思維的虛擬操作系統(tǒng)中,集成可視化監(jiān)控界面,方便用戶監(jiān)視應(yīng)用程序運行情況、任務(wù)調(diào)度過程以及資源的使用狀況等[9]。用戶還能夠借助相關(guān)調(diào)試器中具備的設(shè)置斷點和單步跟蹤等模塊,在監(jiān)視界面上查詢和監(jiān)測各調(diào)試信息,以此提升基于計算思維的虛擬操作系統(tǒng)可視化程度。
基于計算思維的虛擬操作系統(tǒng)可視化模塊中包含兩個部分:外部任務(wù)模擬功能單元和語言支持功能單元。外部任務(wù)模擬功能單元允許測試人員在用戶程序正常運行過程中,有目的地對程序運行情況或模擬情況進行修改。語言支持功能單元支持語言表征的各種測試任務(wù)。由此,大大增強基于計算思維的虛擬操作系統(tǒng)的靈活性。
1.4 ?基于計算思維的虛擬操作系統(tǒng)關(guān)鍵技術(shù)分析
在對虛擬操作系統(tǒng)進行實際操作時,各任務(wù)以時間片方式共享CPU,因此需要提供各任務(wù)之間的切換機制。假設(shè)切換條件適當(dāng),保存目前處理服務(wù)器上下文,并恢復(fù)就緒任務(wù)上下數(shù)據(jù)信息。處理設(shè)備上下文存儲CPU狀態(tài)信息,其中主要包含程序的計數(shù)設(shè)備、狀態(tài)字以及寄存器等。
基于計算思維的虛擬操作系統(tǒng)對中斷的處理依據(jù)為中斷請求級。以便于移植為目的,內(nèi)核提供包含硬中斷以及軟中斷的標(biāo)準(zhǔn)中斷請求級[10]。在特殊情況下,為了降低任務(wù)優(yōu)先級的受影響程度,基于計算思維的虛擬操作系統(tǒng)提供提升或者降低中斷請求級相關(guān)函數(shù),進而將某些中斷屏蔽。當(dāng)系統(tǒng)運行信號發(fā)生中斷時,會影響系統(tǒng)的正常運行,激活與之對應(yīng)的信號處理程序?qū)Υ祟惍惒绞录M行處理,通過信號屏蔽工具,能夠為中斷的允許、禁止以及恢復(fù)提供較為理想的解決方法,以此進一步提升系統(tǒng)的靈活性。
1.5 ?基于計算思維的虛擬操作系統(tǒng)軟件設(shè)計
根據(jù)以上分析,得到虛擬操作系統(tǒng)軟件流程如圖2所示。
分析圖2可知,基于計算思維的虛擬操作系統(tǒng)軟件運行時,系統(tǒng)進入初始化模式,用戶借助載體設(shè)備進行虛擬操作。用戶下發(fā)指令或者請求,此時串口模塊開始運行,并調(diào)用可視化程序,打開可視化界面方便用戶操作。將用戶下發(fā)的指令或請求當(dāng)作任務(wù),調(diào)用任務(wù)調(diào)度模塊,該模塊接收到任務(wù)之后,調(diào)用相應(yīng)子程序,并依據(jù)任務(wù)的優(yōu)先級完成任務(wù)。判斷是否存在優(yōu)先級插隊現(xiàn)象,如果是,則返回上一級運行程序,如果否,則完成當(dāng)前任務(wù)。
以驗證基于計算思維的虛擬操作系統(tǒng)整體性能為目的,進行相關(guān)實驗。實驗平臺為Matlab 2017,實驗數(shù)據(jù)來自于某校多媒體教學(xué)實驗室。通過以下兩方面對所提系統(tǒng)進行驗證:系統(tǒng)運行延時;系統(tǒng)可視化程度。不同系統(tǒng)運行延時對比如圖3所示。
分析圖3可知,基于計算思維的虛擬操作系統(tǒng)運行延時相較基于國產(chǎn)平臺的虛擬操作系統(tǒng)更短。該系統(tǒng)中各功能需要依據(jù)不同需求制定優(yōu)先級,為減少系統(tǒng)運行延時,憑借任務(wù)優(yōu)先級先調(diào)度向下傳輸程序,有效緩解了系統(tǒng)運行阻塞情況,提高了系統(tǒng)運行效率。
表1中:A0代表用戶數(shù)量;A1代表基于Virtual Box的虛擬操作系統(tǒng)可視化系數(shù);A2代表基于計算思維的虛擬操作系統(tǒng)可視化系數(shù)。
分析表1數(shù)據(jù)可知,所提系統(tǒng)表現(xiàn)出了良好的可視化性能。系統(tǒng)的可視化模塊設(shè)計中,用戶能夠借助相關(guān)調(diào)試器中具備的設(shè)置斷點和單步跟蹤等模塊,在監(jiān)視界面上查詢和監(jiān)測各調(diào)試信息,有效提高了系統(tǒng)可視化程度。
依據(jù)對當(dāng)前虛擬操作系統(tǒng)的分析,提出并設(shè)計基于計算思維的虛擬操作系統(tǒng)。分別對系統(tǒng)的串口模塊、任務(wù)調(diào)度模塊和可視化模塊等功能硬件進行設(shè)計,結(jié)合硬件組成部分,設(shè)計軟件運行流程。實驗結(jié)果表明,該系統(tǒng)功能完善,可利用性強。
參考文獻
[1] 宋中越,馬姣姣,甄冬,等.基于流媒體技術(shù)的風(fēng)力發(fā)電機全景監(jiān)測虛擬現(xiàn)實系統(tǒng)研究[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云服務(wù)的云系統(tǒng)中虛擬機監(jiān)控及證據(jù)采集[J].現(xiàn)代電子技術(shù),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的虛擬無線電高速數(shù)據(jù)接口實時性研究[J].科學(xué)技術(shù)與工程,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] 王正敏,李威.煙草企業(yè)信息系統(tǒng)虛擬化平臺遷移方案設(shè)計[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] 張沂超,王星焱,陳左寧,等.基于國產(chǎn)平臺的虛擬化操作系統(tǒng)架構(gòu)研究及其實現(xiàn)[J].計算機工程與科學(xué),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 操作系統(tǒng)虛擬化技術(shù)的實現(xiàn)[J].計算機工程與應(yīng)用,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] 闞文梟,黃秋蘭,陳剛.桌面網(wǎng)格環(huán)境下虛擬化技術(shù)的應(yīng)用研究[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技術(shù)的船舶管路裝配虛擬仿真系統(tǒng)設(shè)計[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] 于寧波,李思宜,趙營泉,等.基于共享控制的人機靈巧力觸覺交互系統(tǒng)設(shè)計與實現(xiàn)[J].儀器儀表學(xué)報,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] 高漢軍,曲鳴,李青,等.核電站分布式系統(tǒng)虛擬過程控制平臺設(shè)計研究[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.