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