[发明专利]一种基于虚拟化环境的指令数据处理方法及装置在审
| 申请号: | 201710693445.6 | 申请日: | 2017-08-14 |
| 公开(公告)号: | CN107436797A | 公开(公告)日: | 2017-12-05 |
| 发明(设计)人: | 位凯志;练建锋 | 申请(专利权)人: | 深信服科技股份有限公司 |
| 主分类号: | G06F9/455 | 分类号: | G06F9/455 |
| 代理公司: | 深圳市深佳知识产权代理事务所(普通合伙)44285 | 代理人: | 王仲凯 |
| 地址: | 518055 广东省深圳市南*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 虚拟 环境 指令 数据处理 方法 装置 | ||
技术领域
本发明涉及数据处理技术领域,更具体地说,涉及一种基于虚拟化环境的指令数据处理方法及装置。
背景技术
随着服务器和网络的发展,桌面虚拟化技术的应用越来越广泛,但是,在推广过程中,虚拟化技术也带来了新的问题。大量办公环境和娱乐场所都需要用到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消耗,避免系统出现卡顿现象,增加用户体验。
为实现上述目的,本发明实施例提供了如下技术方案:
一种基于虚拟化环境的指令数据处理方法,包括:
接收虚拟机发送的指令数据;
将所述指令数据存入第一共享内存;
判断所述第一共享内存存储的指令数据是否满足预定条件;
若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理。
其中,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:
判断所述第一共享内存存储的指令数据的数量是否超过第一预定阈值;
若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。
其中,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:
判断所述第一共享内存中,是否存在需要返回值的指令数据;
若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。
其中,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:
判断所述第一共享内存中所有指令数据的总数据量是否超过第二预定阈值;
若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。
其中,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:
确定所述第一共享内存存储的指令数据中的最长存储时长;
判断所述最长存储时长是否超过第三预定阈值;
若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。
其中,所述调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:
通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据,并通过所述第一处理线程调用显卡硬件执行所述第一共享内存中的指令数据。
其中,所述通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据之后,还包括:
触发第二处理线程轮询第二共享内存,检测所述第二共享内存是否存在所述第一处理线程写入的处理结果;
若在所述第二共享内存内检测到处理结果,则将所述处理结果发送至虚拟机。
一种基于虚拟化环境的指令数据处理装置,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深信服科技股份有限公司,未经深信服科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710693445.6/2.html,转载请声明来源钻瓜专利网。





