石瑞峰
关键词: 计算思维; 虚拟操作系统; 串口模块; 可视化模块; 任务调度; 虚拟进程
中图分类号: 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.