基于多线程的计算机硬件虚拟实验室的设计与实现
2017-11-21顾秀军
顾秀军
南京交通技师学院
基于多线程的计算机硬件虚拟实验室的设计与实现
顾秀军
南京交通技师学院
随着社会经济的不断发展,科学技术水平的不断提高,计算机已经成为了我们生产、生活和教育中不可缺少的一部分,随着远程教学和世界各个研究机构合作的不断增加和多样化,实验时通过虚拟技术来完成已经是大势所趋。本人在多线程的基础上对计算机虚拟实验的设计与实现进行了一些研究和探索。
多线程计算机硬件;虚拟实验室;人机交互处理
1 前言
虚拟实验室突破了时间和地点的限制,大大减轻了研究者的额外负担,还可以减少元件和设备的损耗,让使用者克服实际计算机操作中硬件不能满足实验的困难,所以一种计算机硬件虚拟实验室的设计和实现有着十分重要的意义。所以长期以来我国科技研究人员始终致力于基于多线程的基选集硬件虚拟实验的研究。
2 计算机硬件虚拟实验的构成
要想实现计算机的多线程虚拟实验室,需要的主要部件有以下几个。编码器、译码器、虚拟内存芯片数据库,能够生成数字信号的仪器,数字示波器等硬件构成。这一套系统是一个虚拟的平台,其作用是组成一个虚拟电脑,把虚拟生成的电路芯片和CPU芯片整合在一起,按照具体的实验内容,该系统是由四个模块构成:(1)图形化编码模块。其主要功能是把取样检测的数据进行图形编码处理,输出显示在虚拟显示器上。(2)能够检测信号的模块。该模块的主要作用是对检测点的生成信号进行取样,并对取得的数据进行整理。(3)虚拟计算机仿真运行模块。其主要组成部分有虚拟主板芯片集、CPU、内存、SCSI和IDE磁盘设备、端口以及显示设备等,其主要仿真虚拟计算机在虚拟环境中运行。(4)输出模块。其功能是把图形化的编码信息输出。
模块与模块之间存在着一定的联系,虚拟电脑运转时,检测信号的模块也同时在运转,并将检测到的信号编码输出。检测信号的模块、虚拟计算机仿真运行模块、输出模块存在着串联关系,即先进行信号检测,将测到的信号进行编码,然后将编好的码输出,这三个模块是一环套一环,后续处理依赖于前面的数据。由于模块之间存在抢占操作,数据之间还有相对应的处理顺序,所以必须虚拟电脑进行运行、编码、数据加测和输出并行操作,如若不然就会对实验环境的交互性产生很大的影响。所以解决虚拟实验室虚拟环境的并行操作是一个关键问题。
3 多线程计算机硬件虚拟实验室的系统组成
虚拟实验室可以调度的最小单位是线程,任何程序都可以用多个线程来完成,多个线程可以共用一个地址空间,这种方式可以让线程之间的联系简单高效。因此计算机操作系统可以利用线程时间片和优先级别在线程之间进行调度,就可以实现模块并行工作。计算机硬件虚拟实验室使用数据缓冲的方法来保证模块数据的同步。虚拟是实验室的各个模块所占有的运行时间各有不同,所以为了让数据在模块之间同步,对数据就必须进行缓存,为此我们设计四个数据缓冲区存储经模块处理之后的数据。(1)图形化编码缓冲区。这个的作用是存储经过检测信号缓冲区图形编码后的数据。(2)信号检测缓冲区。储存监测点的取样信号。(3)显示缓冲区。用于存贮虚拟示波器输出的数据。(4)时序缓冲区。用于存储虚拟计算机运行时产生的时序信号。计算机虚拟实验室的各个模块互相作用,其对数据缓冲区进行共享但是又会抢占系统资源。为此我们就要设计一个线程作为辅助应用到每一个模块上面,通过线程来对共享的数据进行协调,然后再通过设定的优先级别来让线程并行运行。
4 计算机硬件虚拟实验多线程调度实现的操作
计算机硬件虚拟实验室内的线程辅助存储数据要进行相应的分析和处理,线程的等待运行状态和缓冲区的空满状态是紧密相连的。在取样信号的缓冲区为空的时候,就应该激活信号检测线程来为取样信号缓冲区记录数据,如果取样信号缓冲区状态为满的时候,就应该激活图形化编码中的线程,将其中的数据进行整理和编码处理。因此,为了各相对应的线程能够在缓冲区转换状态的时候处于激活状态,并对数据进行处理,计算机硬件虚拟实验室采用“事件驱动”来实现线程状态的转换。按照设置缓冲区的不同,操作系统会设置相应的事件与之一一对应,触发对应线程的事件有如下过程:(1)用户对主线程进行指令操作的时候,如果时序缓冲区为空、则线程被激活,时序信号被传到时序缓冲区,并使状态变为满。当信号被用户输出的时候,信号线程及检测信号的线程就变为运行。(2)当时序缓冲区状态为满、取样状态为空,检测信号的线程就被激活,缓冲区的信号就被传输到取样等待区,传过去之后,时序缓冲区变为空,取样缓冲区变为满。(3)取样缓冲区为满,图形编码的信号缓冲区为空时,同时现场可以运行,在这种状态下就需要激活图形编码线程,将数据编码后传到图形编码区,这样取样缓冲区就为空,图形编码缓冲区的状态为满。主线程主要负责每个辅助线程并且对其优先级进行设置,一个线程如果用完了自己的时间配额时,如果没有其他优先级线程,那么它将会重新获得一个时间配额,继续运行,一旦由现成抢占,它将会排在优先级的首位,在线程运行的过程中要对主线程进行实时监控,时刻掌握它的运行状态,并将它的标志设置为“允许运行”。
图1 多线程进程的模型
5 结束语
计算机虚拟实验室内的模块与数据之间的并行运行,使系统的数据交换和仿真性得到极大的提高,同时也提高了系统的运行效率,基于多线程的计算机硬件虚拟实验室设计的实现,为计算机硬件实验工作提供了高度的仿真和交互的实验系统。
[1]夏明超,黄益庄,谢忻.THDS-100调度自动化系统中多线程技术的应用[J].清华大学学报(自然科学版),2001(3).
[2]盛羽,余进,陈松乔,王建新.基于CPU仿真器的汇编语言学习系统设计与实现[J].中南大学学报(自然科学版),2010(6).
[3]李红梅,王坚,李巍,赵丹,刘壮.基于Spring+Hibernate的开发方法及实例[J].吉林大学学报(信息科学版),2008(6).
[4]赵晓平,张令弥,罗光坤.VC多线程编程在动态测试系统中的实现[A].第九届全国振动理论及应用学术会议论文集[C].2007.
[5]程建钢,韩锡斌,赵淑莉,陈刚,马勃民,杨超.清华教育在线网络教育支撑平台的研究与设计[J].中国远程教育,2002(5).
10.16767/j.cnki.10-1213/tu.2017.12.048