数据传输方法及装置制造方法及图纸

技术编号:15690721 阅读:117 留言:0更新日期:2017-06-24 03:20
本发明专利技术公开了一种数据传输方法,其包括:为宿主机的PCI虚拟设备分配宿主机的内存空间作为共享内存空间;为虚拟机安装所述PCI虚拟设备的驱动程序以建立虚拟机的内核地址空间与所述共享内存空间的地址映射关系;通过所述地址映射关系,实现虚拟机与宿主机的数据传输。与现有技术相比,本发明专利技术通过添加PCI虚拟设备和加载PCI设备驱动程序的方式,运用内存地址映射实现数据共享,显著提升了宿主机与虚拟机之间数据传输的效率。此外,本发明专利技术还提供了一种数据传输装置。

Data transmission method and device

The invention discloses a data transmission method, which comprises: a host PCI virtual host device allocation memory space for the shared memory space; address mapping between the driver for the virtual machine installation of the PCI virtual devices to establish a virtual machine kernel address space and the shared memory space through; the address mapping, data transmission to achieve the virtual machine and the host. Compared with the prior art, by adding a PCI virtual device and loading device driver in PCI mode of the invention, the memory address mapping to realize data sharing, significantly improve the efficiency of data transmission between the host and virtual machine. In addition, the invention also provides a data transmission device.

【技术实现步骤摘要】
数据传输方法及装置
本专利技术涉及计算机软件
,更具体地,涉及一种数据传输方法及装置。
技术介绍
数据传输是数据从一个地方传送到另一个地方的通信过程,数据传输的方式有ftp文件服务、message推送等,这些基于网络链接的传输方式采用C/S交互模式,由服务器为客户端提供服务,客户端通过ip地址访问服务器,并通过连接服务器指定的端口进行消息交互,其优点是容易控制权限、安全性高、通用性比较强,但是这种传输方式需要服务器和客户端同时工作,当传输数据比较大的时候,严重占用网络宽带,可能导致连接超时,使得数据交互服务很不可靠,其并不适合于实时类业务。在虚拟机技术中,客户机和宿主机之间通过建立网络链接进行数据传输,但网络链接的方案在传输过程中,除以上所述数据传输方式的缺点外,还存在需要经历多次的内存拷贝的问题,如:从客户机r3层(usermode)拷贝到客户机r0层(kernelmode),从网络协议的上一层传递到下一层时增加包头而引发的拷贝等,过多的内存拷贝必然导致传输效率降低,如果是针对大数据传输,效率会更低,甚至直接影响各功能应用的性能。有鉴于此,有必要提供一种能够解决上述技术问题的数据传输方法及装置。
技术实现思路
本专利技术的目的在于:克服现有技术的不足,提供一种传输效率高、能够满足大量数据高速传输的实时类业务需求的数据传输方法及装置。为了实现上述目的,本专利技术提供了一种数据传输方法,其包括以下步骤:为宿主机的PCI虚拟设备分配宿主机的内存空间作为共享内存空间;为虚拟机安装所述PCI虚拟设备的驱动程序以建立虚拟机的内核地址空间与所述共享内存空间的地址映射关系;通过所述地址映射关系,实现虚拟机与宿主机的数据传输。优选地,所述通过地址映射关系,实现虚拟机与宿主机的数据传输,包括:将数据从虚拟机用户层写入所述共享内存空间,并根据所述地址映射关系将所述数据的位置信息传递给宿主机的PCI虚拟设备。优选地,所述根据地址映射关系将数据的位置信息传递给宿主机,包括:通过设备控制接口函数ioCtl将所述数据的位置信息从虚拟机用户层传递到虚拟机内核层;根据所述地址映射关系,通过读写端口函数ioPort将所述数据的位置信息从虚拟机内核层传递到宿主机的PCI虚拟设备。优选地,所述通过地址映射关系,实现虚拟机与宿主机的数据传输,包括:将数据从宿主机写入所述共享内存空间,并根据所述地址映射关系将所述数据的位置信息传递给虚拟机用户层。优选地,所述根据地址映射关系将数据的位置信息传递给虚拟机用户层,包括:根据所述地址映射关系,通过中断请求IRQ方式将所述数据的位置信息从PCI虚拟设备传递到虚拟机内核层;通过设备控制接口函数ioCtl将所述数据的位置信息从虚拟机内核层传递到虚拟机用户层。优选地,所述数据的位置信息包括数据头的映射地址偏移量和数据的长度。优选地,所述虚拟机采用Android操作系统。为了实现上述目的,本专利技术还提供了一种数据传输装置,其包括:分配内存模块,用于为宿主机的PCI虚拟设备分配宿主机的内存空间作为共享内存空间;建立关系模块,用于为虚拟机安装所述PCI虚拟设备的驱动程序以建立虚拟机的内核地址空间与所述共享内存空间的地址映射关系;传输数据模块,用于通过所述地址映射关系,实现虚拟机与宿主机的数据传输。优选地,所述通过地址映射关系,实现虚拟机与宿主机的数据传输,包括:将数据从虚拟机用户层写入所述共享内存空间,并根据所述地址映射关系将所述数据的位置信息传递给宿主机的PCI虚拟设备。优选地,所述通过地址映射关系,实现虚拟机与宿主机的数据传输,包括:将数据从宿主机写入所述共享内存空间,并根据所述地址映射关系将所述数据的位置信息传递给虚拟机用户层。优选地,所述数据的位置信息包括数据头的映射地址偏移量和数据的长度。与现有技术相比,本专利技术数据传输方法及装置的技术效果包括但不限于:第一,通过添加PCI虚拟设备和加载PCI设备驱动程序的方式,实现宿主机与虚拟机之间的内存共享,流程清晰,实施简单方便,通用性强,扩展性好,效率高。第二,采用共享内存的方式,运用内存地址映射实现数据共享,显著提升了宿主机与虚拟机之间数据传输的效率。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域技术人员,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术数据传输方法的流程图。图2为本专利技术数据传输方法的工作原理的示意图。图3为本专利技术数据传输装置的模块框图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。在本专利技术的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1,本专利技术数据传输方法包括以下步骤:步骤101,为宿主机的PCI(PeripheralComponentInterconnect,外设部件互连标准)虚拟设备分配宿主机的内存空间作为共享内存空间;步骤102,为虚拟机安装所述PCI虚拟设备的驱动程序以建立虚拟机的内核地址空间与所述共享内存空间的地址映射关系;步骤103,通过所述地址映射关系,实现虚拟机与宿主机的数据传输。以下的实施例中,由安装于PC机(即宿主机)的virtualbox软件产生虚拟机,虚拟机采用android操作系统,给出在虚拟机与宿主机之间传输数据的详细过程。需要说明的是,本专利技术的方法也可以应用于其它的宿主机和虚拟机、以及其它操作系统环境。实施例1请参阅图2,本实施例介绍虚拟机向宿主机传输数据的方法。步骤201,分配宿主机的内存空间作为共享内存空间。启动virtualbox,在virtualbox的基础上添加PCI虚拟设备,PCI虚拟设备在宿主机上分配一块内存空间成为PCI设备地址空间,作为共享内存空间。其中,PCI是目前计算机系统中应用最为广泛的一种通用总线接口规范。PCI设备指插在PCI插槽上的设备,PCI设备拥有设备地址空间。由于PCI虚拟设备是虚拟的,因此PCI虚拟设备的设备地址空间是宿主机的内存地址空间。本实施例中分配的宿主机的内存空间大小为64M,最小单元为4K。步骤202,建立虚拟机r0层(kernelmode,内核层)驱动程序与PCI虚拟设备之间的联系,实现虚拟机r0层与宿主机之间的内存共享。在virtualbox中加载android操作系统,在虚拟机中安装PCI虚拟设备的驱动程序,驱动程序通过ioremap函数将PCI设备地址空间(即共享内存空间)映射到虚拟机r0层本文档来自技高网
...
数据传输方法及装置

【技术保护点】
一种数据传输方法,其特征在于:所述方法包括以下步骤:为宿主机的PCI虚拟设备分配宿主机的内存空间作为共享内存空间;为虚拟机安装所述PCI虚拟设备的驱动程序以建立虚拟机的内核地址空间与所述共享内存空间的地址映射关系;通过所述地址映射关系,实现虚拟机与宿主机的数据传输。

【技术特征摘要】
1.一种数据传输方法,其特征在于:所述方法包括以下步骤:为宿主机的PCI虚拟设备分配宿主机的内存空间作为共享内存空间;为虚拟机安装所述PCI虚拟设备的驱动程序以建立虚拟机的内核地址空间与所述共享内存空间的地址映射关系;通过所述地址映射关系,实现虚拟机与宿主机的数据传输。2.如权利要求1所述的数据传输方法,其特征在于:所述通过地址映射关系,实现虚拟机与宿主机的数据传输,包括:将数据从虚拟机用户层写入所述共享内存空间,并根据所述地址映射关系将所述数据的位置信息传递给宿主机的PCI虚拟设备。3.如权利要求2所述的数据传输方法,其特征在于:所述根据地址映射关系将数据的位置信息传递给宿主机的PCI虚拟设备,包括:通过设备控制接口函数ioCtl将所述数据的位置信息从虚拟机用户层传递到虚拟机内核层;根据所述地址映射关系,通过读写端口函数ioPort将所述数据的位置信息从虚拟机内核层传递到宿主机的PCI虚拟设备。4.如权利要求1所述的数据传输方法,其特征在于:所述通过地址映射关系,实现虚拟机与宿主机的数据传输,包括:将数据从宿主机写入所述共享内存空间,并根据所述地址映射关系将所述数据的位置信息传递给虚拟机用户层。5.如权利要求4所述的数据传输方法,其特征在于:所述根据地址映射关系将数据的位置信息传递给虚拟机用户层,包括:...

【专利技术属性】
技术研发人员:唐杏贺灏
申请(专利权)人:广州华多网络科技有限公司
类型:发明
国别省市:广东,44

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

1