[发明专利]用于虚拟机与宿主机的通信方法、装置和系统有效
申请号: | 201810600242.2 | 申请日: | 2018-06-12 |
公开(公告)号: | CN108845863B | 公开(公告)日: | 2022-08-26 |
发明(设计)人: | 倪勋;谢永吉;张宇 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/54 |
代理公司: | 北京英赛嘉华知识产权代理有限责任公司 11204 | 代理人: | 王达佐;马晓亚 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 虚拟机 宿主 通信 方法 装置 系统 | ||
1.一种用于虚拟机与宿主机的通信方法,包括:
轮询设置在共享内存中的第一命令完成标识队列;所述第一命令完成标识队列中存储有已由宿主机硬件执行完成的输入输出命令的标识;
响应于检测到所述第一命令完成标识队列存在更新,将所述第一命令完标识成队列与保存在虚拟机中的第二命令完成标识队列进行比对,以确定出当前已完成命令的标识;以及
基于当前已完成命令的标识,更新所述第二命令完成标识队列;
所述方法还包括:
向待执行命令队列发送输入输出端口读写请求,并更新与所述待执行命令队列相对应的待执行命令标识队列,以使轮询所述待执行命令标识队列的宿主机获取当前待执行命令,并在所述当前待执行命令执行完毕后,更新所述第一命令完成标识队列。
2.根据权利要求1的方法,其中,所述方法还包括:
基于所述当前已完成命令的标识,从命令队列中获取所述当前已完成命令所对应的返回数据;以及
调用函数对所述返回数据进行处理。
3.一种虚拟机与宿主机的通信系统,包括宿主机以及部署在所述宿主机上的至少一个虚拟机,其中:
对于其中至少一个虚拟机,该虚拟机被配置成:
轮询设置在共享内存中的第一命令完成标识队列;
响应于检测到所述第一命令完成标识队列存在更新,将所述第一命令完标识成队列与保存在虚拟机中的第二命令完成标识队列进行比对,以确定出当前已完成命令的标识;以及
基于当前已完成命令的标识,更新所述第二命令完成标识队列;
所述其中至少一个虚拟机还被配置成:
向待执行命令队列发送输入输出端口读写请求,并更新与所述待执行命令队列相对应的待执行命令标识队列。
4.根据权利要求3所述的系统,其中,所述宿主机被配置成:
轮询所述共享内存中的待执行命令标识队列;所述第一命令完成标识队列中存储有已由宿主机硬件执行完成的输入输出命令的标识;
响应于检测到所述待执行命令标识队列存在更新,从待执行命令队列中确定出所述输入输出端口读写请求作为当前待执行命令;
将所述当前待执行命令发送至硬件设备以使所述硬件设备执行所述当前待执行命令;
响应于接收到所述硬件设备返回的命令执行完成消息,向所述命令完成队列添加所述当前待执行命令的返回数据,并更新所述第一命令完成标识队列。
5.根据权利要求4所述的系统,其中,所述其中至少一个虚拟机,还被配置成:
基于所述当前已完成命令的标识,从命令队列中获取所述当前已完成命令所对应的返回数据;以及
调用函数对所述返回数据进行处理。
6.一种用于虚拟机与宿主机的通信装置,包括:
轮询单元,被配置成轮询设置在共享内存中的第一命令完成标识队列;所述第一命令完成标识队列中存储有已由宿主机硬件执行完成的输入输出命令的标识;
确定单元,被配置成响应于检测到所述第一命令完成标识队列存在更新,将所述第一命令完标识成队列与保存在虚拟机中的第二命令完成标识队列进行比对,以确定出当前已完成命令的标识;以及
更新单元,被配置成基于当前已完成命令的标识,更新所述第二命令完成标识队列;
所述装置还包括:
发送单元,被配置成向待执行命令队列发送输入输出端口读写请求,并更新与所述待执行命令队列相对应的待执行命令标识队列,以使轮询所述待执行命令标识队列的宿主机获取当前待执行命令,并在所述当前待执行命令执行完毕后,更新所述第一命令完成标识队列。
7.根据权利要求6的装置,其中,所述装置还包括:
获取单元,被配置成基于所述当前已完成命令的标识,从命令队列中获取所述当前已完成命令所对应的返回数据;以及
调用单元,被配置成调用函数对所述返回数据进行处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810600242.2/1.html,转载请声明来源钻瓜专利网。