一种基于虚拟化环境的指令数据处理方法及装置制造方法及图纸

技术编号:16717773 阅读:52 留言:0更新日期:2017-12-05 16:17
本发明专利技术公开了一种基于虚拟化环境的指令数据处理方法,包括:接收虚拟机发送的指令数据;将所述指令数据存入第一共享内存;判断所述第一共享内存存储的指令数据是否满足预定条件;若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理。可见,与现有技术中处理线程一直轮询共享内存的方式相比,在本方案中则需要在共享内存中的指令数据满足预定条件之后,才会触发处理线程对指令数据进行处理,在保证了系统性能的基础上,减少了CPU的开销,从而避免系统出现卡顿现象,增加用户体验;本发明专利技术还公开了一种基于虚拟化环境的指令数据处理装置,同样能实现上述技术效果。

An instruction data processing method and device based on the virtualization environment

The invention discloses an instruction data processing method of virtual environment based on virtual machine instruction includes: receiving data transmitted; the instruction data stored in the first memory sharing; judging whether the first shared memory storage whether instruction data satisfies a predetermined condition; if the full foot, calling on the instruction data processing thread the first shared memory storage processing. Therefore, the existing technology has been polling shared memory processing thread mode, in this scheme is required after a shared instruction data in memory to satisfy the predetermined condition, will trigger processing threads to process the command data, to ensure the system performance based on the reduced CPU overhead, thus avoiding system Caton the phenomenon that increases the user experience; the invention also discloses a command data processing device virtualization based on the environment, also can realize the technical effect.

【技术实现步骤摘要】
一种基于虚拟化环境的指令数据处理方法及装置
本专利技术涉及数据处理
,更具体地说,涉及一种基于虚拟化环境的指令数据处理方法及装置。
技术介绍
随着服务器和网络的发展,桌面虚拟化技术的应用越来越广泛,但是,在推广过程中,虚拟化技术也带来了新的问题。大量办公环境和娱乐场所都需要用到3D的软件,无论是设计行业的Autocad,Solidworks还是娱乐游戏的CS、Dota2等都是3D软件,3D软件都离不开3D渲染技术,渲染可以有多种方法实现,但是实现后,要让3D软件运行时达到同等配置个人电脑的效果是比较困难的。当前3D渲染,在虚拟机内使用的都是OpenGL,OpenGL在绘图时有大量的函数调用,这些函数有如下两种:①只需要执行完成,无返回值的。②执行完成后,需要得到返回值的。这些作为指令的OpenGL函数和参数会被虚拟机内的应用程序打包为消息,写入到共享内存,然后宿主机的Host_Render进程从共享内存读取消息,解释后让显卡硬件处理这些指令和参数。如果有返回值,宿主机的Host_Render进程将函数返回值写回共享内存。最后Qemu会从共享内存读取返回值,返回给OpenGL。在该过程中,中断通知的时间远大于函数本身的执行,例如函数执行只需要1ms,中断可能需要50甚至更多倍的时间,不能很好的控制包的粒度,即不能确定数据什么时候发往Host-Render,这样,Host_Render进程需要一直通过轮询的方法来确认是否有消息写入了共享内存,同样虚拟机内部的应用程序也需要一直通过轮询的方式来确认共享内容中是否存在处理结果。这样两边都轮询的方式对cpu浪费比较严重,因为在不绘图的时候,两边的cpu也一直在轮询。因此,如何减少CPU消耗,避免系统出现卡顿现象是本领域技术人员需要解决的问题。
技术实现思路
本专利技术的目的在于提供一种基于虚拟化环境的指令数据处理方法及装置,以实现减少CPU消耗,避免系统出现卡顿现象,增加用户体验。为实现上述目的,本专利技术实施例提供了如下技术方案:一种基于虚拟化环境的指令数据处理方法,包括:接收虚拟机发送的指令数据;将所述指令数据存入第一共享内存;判断所述第一共享内存存储的指令数据是否满足预定条件;若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理。其中,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:判断所述第一共享内存存储的指令数据的数量是否超过第一预定阈值;若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。其中,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:判断所述第一共享内存中,是否存在需要返回值的指令数据;若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。其中,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:判断所述第一共享内存中所有指令数据的总数据量是否超过第二预定阈值;若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。其中,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:确定所述第一共享内存存储的指令数据中的最长存储时长;判断所述最长存储时长是否超过第三预定阈值;若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。其中,所述调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据,并通过所述第一处理线程调用显卡硬件执行所述第一共享内存中的指令数据。其中,所述通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据之后,还包括:触发第二处理线程轮询第二共享内存,检测所述第二共享内存是否存在所述第一处理线程写入的处理结果;若在所述第二共享内存内检测到处理结果,则将所述处理结果发送至虚拟机。一种基于虚拟化环境的指令数据处理装置,包括:接收模块,用于接收虚拟机发送的指令数据;存储模块,用于将所述指令数据存入第一共享内存;判断模块,用于判断所述第一共享内存存储的指令数据是否满足预定条件;指令数据处理模块,用于在所述第一共享内存存储的指令数据满足预定条件时,调用处理线程对所述第一共享内存存储的指令数据进行处理。其中,所述判断模块包括:第一判断单元,用于判断所述第一共享内存存储的指令数据的数量是否超过第一预定阈值;若是,则触发所述指令数据处理模块。其中,所述判断模块包括:第二判断单元,用于判断所述第一共享内存中,是否存在需要返回值的指令数据;若是,则触发所述指令数据处理模块。其中,所述判断模块包括:第三判断单元,用于判断所述第一共享内存中所有指令数据的总数据量是否超过第二预定阈值;若是,则触发所述指令数据处理模块。其中,所述判断模块包括:确定单元,用于确定所述第一共享内存存储的指令数据中的最长存储时长;第四判断单元,用于判断所述最长存储时长是否超过第三预定阈值;若是,则触发所述指令数据处理模块。其中,所述指令数据处理模块,具体用于:通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据,并通过所述第一处理线程调用显卡硬件执行所述第一共享内存中的指令数据。其中,指令数据处理装置还包括:处理结果检测模块,用于在所述指令数据处理模块通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据之后,触发第二处理线程轮询第二共享内存,检测所述第二共享内存是否存在所述第一处理线程写入的处理结果;处理结果发送模块,用于在所述第二共享内存内检测到处理结果时,将所述处理结果发送至虚拟机。通过以上方案可知,本专利技术实施例提供的一种基于虚拟化环境的指令数据处理方法,包括:接收虚拟机发送的指令数据;将所述指令数据存入第一共享内存;判断所述第一共享内存存储的指令数据是否满足预定条件;若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理。可见,与现有技术中处理线程一直轮询共享内存的方式相比,在本方案中则需要在共享内存中的指令数据满足预定条件之后,才会触发处理线程对指令数据进行处理,在保证了系统性能的基础上,减少了CPU的开销,从而避免系统出现卡顿现象,增加用户体验;本专利技术还公开了一种基于虚拟化环境的指令数据处理装置,同样能实现上述技术效果。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例公开的一种基于虚拟化环境的指令数据处理方法流程示意图;图2为本专利技术实施例公开的另一种基于虚拟化环境的指令数据处理方法流程示意图;图3为本专利技术实施例公开的另一种基于虚拟化环境的指令数据处理方法流程示意图;图4为本专利技术实施例公开的一种具体的指令数据处理方法流程示意图;图5为本专利技术实施例公开的一种基于虚拟化环境的指令数本文档来自技高网
...
一种基于虚拟化环境的指令数据处理方法及装置

【技术保护点】
一种基于虚拟化环境的指令数据处理方法,其特征在于,包括:接收虚拟机发送的指令数据;将所述指令数据存入第一共享内存;判断所述第一共享内存存储的指令数据是否满足预定条件;若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理。

【技术特征摘要】
1.一种基于虚拟化环境的指令数据处理方法,其特征在于,包括:接收虚拟机发送的指令数据;将所述指令数据存入第一共享内存;判断所述第一共享内存存储的指令数据是否满足预定条件;若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理。2.根据权利要求1所述的指令数据处理方法,其特征在于,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:判断所述第一共享内存存储的指令数据的数量是否超过第一预定阈值;若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。3.根据权利要求1所述的指令数据处理方法,其特征在于,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:判断所述第一共享内存中,是否存在需要返回值的指令数据;若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。4.根据权利要求1所述的指令数据处理方法,其特征在于,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:判断所述第一共享内存中所有指令数据的总数据量是否超过第二预定阈值;若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。5.根据权利要求1所述的指令数据处理方法,其特征在于,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:确定所述第一共享内存存储的指令数据中的最长存储时长;判断所述最长存储时长是否超过第三预定阈值;若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。6.根据权利要求1-5中任意一项所述的指令数据处理方法,其特征在于,所述调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据,并通过所述第一处理线程调用显卡硬件执行所述第一共享内存中的指令数据。7.根据权利要求6所述的指令数据处理方法,其特征在于,所述通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据之后,还包括:触发第二处理...

【专利技术属性】
技术研发人员:位凯志练建锋
申请(专利权)人:深信服科技股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1