一种数据传输的方法、装置及电子设备的制作方法

文档序号:6433070阅读:222来源:国知局
专利名称:一种数据传输的方法、装置及电子设备的制作方法
技术领域
本发明涉及虚拟机技术领域,尤其涉及一种数据传输的方法、装置及电子设备。
背景技术
现有电子设备中可能运行有多个操作系统,例如运行于硬件平台之上的主机操作系统(Host OS),以及运行于主机操作系统之上的客户操作系统(Guest OS),客户操作系统具体可以是运行在所述主机操作系统中的虚拟机管理器(VMM)之上。由于客户操作系统的运行依靠另一操作系统,不直接与硬件平台交互,因而其对数据文件的处理性能通常较低或者无法对一些数据进行处理。举例来说,当使用客户操作系统播放高清视频文件时,由于客户操作系统无法直接与显卡交互,只能使用CPU对视频文件进行软解码,软解码的性能较低,因而会导致视频画面的不连贯、丢帧等现象的发生。为解决上述问题,通常将客户操作系统需要处理的数据,传送给主机操作系统,由主机操作系统进行处理,这样,客户操作系统可以不需要对这些数据进行处理,而是直接使用主机操作系统处理后的结果。为了实现数据在两个操作系统之间的数据传输,现有技术采用的方案是在客户操作系统和主机操作系统之间建立一个固定的内存,在这段内存上建立一个循环队列,由客户操作系统和主机操作系统共同操作这个队列,从而完成传递数据的工作。该方案的缺点在于,需要至少一次内存数据拷贝动作,例如,将客户操作系统的数据拷贝至主机操作系统能够处理的一块内存,这对于频繁的大数据量的数据传输来说,效率不高。

发明内容
本发明实施例所要解决的技术问题是提供一种数据传输的方法、装置及电子设备,用以提高操作系统之间的数据传输效率。为解决上述技术问题,本发明实施例提供方案如下本发明实施例至少具有以下有益效果从以上所述可以看出,本发明实施例提供的数据传输的方法、装置及电子设备,通过将所述数据在第一操作系统下的虚拟地址,转换成在第二操作系统下的机器物理地址,以使得所述第二操作系统能够确定所述数据的存储空间,进而进行相应处理。由于并没有传输实际数据,传输的只是地址的信息,因此,本实施例能够减少操作系统之间的数据传输,大大提高数据传输效率,尤其在数据量较大时,本发明实施例的优势更为突出。另外,虽然本实施例是由第二操作系统代为处理第一操作系统下的数据,但是本实施例中第二操作系统能够直接操作第一操作系统的内存,因此没有发生内存数据拷贝,从而能够大大降低由于传输数据而造成的数据性能处理损失。


图1为本发明实施例的数据传输的方法的流程示意图2为本发明实施例的数据传输的装置的结构示意图;图3为本发明实施例的电子设备的结构示意图。
具体实施例方式本发明实施例能够建立两个操作系统之间的高效数据通道,能够操作系统之间的数据传输效率,在频繁、大量的数据传输情况下本发明实施例的优点更为明显。以下将结合附图,通过具体实施例对本发明作进一步的说明。如图1所示为本发明实施例的数据传输的方法的流程示意图,该数据传输方法应用于一电子设备,该电子设备包括第二操作系统、运行于第二操作系统之上的第一操作系统。例如,该第一操作系统可以是直接运行于该电子设备的硬件平台之上,可以直接与硬件平台交互的主机操作系统(Host OS),该主机操作系统中可安装有虚拟机平台(例如VMM), 第一操作系统可以是运行于该虚拟机平台之上的客户操作系统(Guest OS)。由于该第一操作系统运行于该电子设备的虚拟机平台之上,通常不直接与硬件平台交互,因而该第一操作系统的数据处理性能和数据处理速度通常要低于该第二操作系统的数据处理性能和数据处理速度。本发明实施例中,第一操作系统和第二操作系统可以是不同类型的操作系统,其中,第二操作系统能够直接运行于电子设备的硬件平台上,而第一操作系统可以是无法直接运行于电子设备的硬件平台上。举例来说,电子设备为计算机,第二操作系统可以是Windows操作系统,第一操作系统可以是Android操作系统,Windows操作系统能够直接运行于计算机的硬件平台上,而Android操作系统无法直接运行于计算机的硬件平台上。本实施例中,第一操作系统运行在第二操作系统之上,第二操作系统通常为第一操作系统提供一个虚拟的物理地址空间,可以称之为客户物理地址空间(即第一操作系统中的物理地址)。运行在第二操作系统之上的第一操作系统认为自己在物理机器上运行并使用该客户物理地址空间中的客户物理地址(Guest Physical Address, GPA)进行寻址。第二操作系统需要维护第一操作系统中的物理地址(GPA)到第二操作系统中真实的机器物理地址(Host Physical Address, ΗΡΑ)之间的映射关系,该映射关系可以记录在Ρ2Μ表(Physical to Machine Mapping, P2M)中。本发明实施例的数据传输的方法包括以下步骤步骤11,获得所述第一操作系统欲传输至所述第二操作系统进行处理的数据。这里,所述数据可以是第一操作系统中的数据文件中的数据,例如音、视频文件中的数据,第一操作系统对这些数据的处理性能通常不如第二操作系统,因此希望将这些数据传输至第二操作系统进行相应处理,例如通过第二操作系统对视频数据进行解码处理以得到图像解码数据。步骤12,获得所述数据在所述第一操作系统中的第一虚拟地址。操作系统在对数据进行处理时,通常需要申请虚拟地址,并将申请到的虚拟地址与该数据的物理地址进行映射,然后,对根据该虚拟地址,对该虚拟地址中的数据进行处理。这里,第一操作系统认为自己在物理机器上运行并使用客户物理地址空间的物理地址进行寻址。所述第一虚拟地址,是所述数据在所述第一操作系统的客户物理地址空间中的第一物理地址所映射的虚拟地址。
步骤13,根据映射关系,将所述第一虚拟地址映射成第二操作系统中的第二物理地址。由于第二操作系统下是真实的机器物理地址,因此,为使得第二操作系统能够对所述数据进行处理,需要将所述数据在第一操作系统中的第一虚拟地址转换为在第二操作系统中的第二物理地址,即所述数据的真实的机器物理地址。步骤14,获得所述第二物理地址,以在所述第二操作系统下对所述第二物理地址对应的数据进行处理。这里,第二操作系统获得上述步骤13中得到的上述第二物理地址之后,可以对所述数据进行相应的处理,此时,本实施例还可以包括以下步骤步骤15,在所述第二操作系统下申请与所述第二物理地址对应的第二虚拟地址,将所述第二物理地址和所述第二虚拟地址进行映射,从而可以在所述第二操作系统下,根据所述第二虚拟地址,确定待处理的所述数据并进行相应的处理。通过以上步骤,本发明实施例实现了将第一操作系统中的待处理的数据,发送给第二操作系统进行处理。实质上,本实施例中并没有在两个操作系统之间传输所述数据,而是通过将所述数据在第一操作系统下的虚拟地址,转换成在第二操作系统下的机器物理地址,以使得所述第二操作系统能够确定所述数据的存储空间,进而进行相应处理。由于并没有传输实际数据,传输的只是地址的信息,因此,本实施例能够减少操作系统之间的数据传输,大大提高数据传输效率,尤其在数据量较大时,本发明实施例的优势更为突出。由此可见,虽然本实施例是由第二操作系统代为处理第一操作系统下的数据,但是本实施例中第二操作系统能够直接操作第一操作系统的内存,因此没有发生一次内存数据拷贝,能够大大降低由于传输数据而造成的数据性能处理损失。本实施例的上述步骤13中,所述第一虚拟地址到第二物理地址的具体转换方式可以包括步骤131,根据第一操作系统中的虚拟地址与物理地址之间的第一映射关系,确定所述数据在第一操作系统下的第一物理地址,即所述第一虚拟地址所对应的所述第一操作系统下的物理地址,所述第一物理地址的地址片段可能不是连续的。这里,第一操作系统维护有所述第一映射关系,因此可以在第一操作系统中确定所述数据在第一操作系统下的第一物理地址。步骤132,根据第一操作系统中的物理地址与第二操作系统中的物理地址之间的第二映射关系,将所述第一物理地址转换为所述第二物理地址。这里,第一操作系统的物理地址是由第二操作系统提供的,因此第二操作系统维护有虚拟机物理地址分配策略,即所述第一映射关系,因此可以在第二操作系统中确定所述数据在第一操作系统下的第一物理地址。通过以上步骤131 132,本实施例实现了第一操作系统下的虚拟地址,到第二操作系统下的机器物理地址的转换。本实施例利用所述第二操作系统具有对数据更强的处理性能,由第二操作系统为第一操作系统代为处理数据,例如,通过所述第二操作系统下的软件、硬件资源对所述数据进行处理,在处理完毕后,所述第二操作系统向所述第一操作系统返回一个用于通知数据已处理完毕的指示,该指示具体可以是一个中断。此时,本实施例还包括以下步骤
步骤16,接收所述第二操作系统在处理完所述数据后返回的指示,这里通常是第一操作系统下的特定应用接收所述指示,然后,根据所述指示,获得经所述第二操作系统处理后的所述数据。至此,本实施例实现了一个将数据传输至另一操作系统处理,并获得处理后的数据的完整流程。如图2所示,本发明实施例还提供一种数据传输的装置,应用于一电子设备。所述电子设备具有可以是手机、计算机(如笔记本电脑、台式机、一体机等)、PAD等。所述电子设备包括有第二操作系统和运行在所述第二操作系统之上的第一操作系统;所述装置包括第一获得单元,用于获得所述第一操作系统欲传输至所述第二操作系统进行处理的数据;第二获得单元,用于获得所述数据在所述第一操作系统中的第一虚拟地址;映射单元,用于根据映射关系,将所述第一虚拟地址映射成第二操作系统中的第二物理地址;第三获得单元,用于获得所述第二物理地址,以在所述第二操作系统下对所述第二物理地址对应的数据进行处理。其中,所述映射单元包括第一转换单元,用于根据第一操作系统中的虚拟地址与物理地址之间的第一映射关系,确定所述第一虚拟地址所对应的所述第一操作系统下的第一物理地址;第二转换单元,用于根据第一操作系统中的物理地址与第二操作系统中的物理地址之间的第二映射关系,将所述第一物理地址转换为所述第二物理地址。为利用第二操作系统为所述第一操作系统处理数据,本实施例的所述的装置还包括数据处理单元,用于在获得所述第二物理地址后,在所述第二操作系统下申请与所述第二物理地址对应的第二虚拟地址,并根据所述第二虚拟地址,确定待处理的所述数据并进行处理。第二操作系统处理所述数据之后,将返回一个指示,因此,本实施例的所述装置还包括接收单元,用于接收所述第二操作系统在处理完所述数据后返回的指示;第四获得单元,用于根据所述指示,获得经所述第二操作系统处理后的所述数据。本实施例还提供了一种电子设备,该电子设备包括第一操作系统和运行在所述第二操作系统之上的第一操作系统,并且,该电子设备还包括如上所述的数据传输的装置。最后,本发明实施例还提供了另一种电子设备,如图3所示,该电子设备30包括有第二操作系统和运行在所述第二操作系统之上的第一操作系统;其中,所述第一操作系统包括第一获得单元,用于获得所述第一操作系统欲传输至所述第二操作系统进行处理的数据;第一转换单元,用于根据第一操作系统中的虚拟地址与物理地址之间的第一映射关系,确定所述第一虚拟地址所对应的所述第一操作系统下的第一物理地址;第一发送单元,用于将所述第一物理地址的信息发送给所述第二操作系统;所述第二操作系统包括
第一接收单元,用于接收所述第一操作系统发送的所述第一物理地址的信息;第二转换单元,用于根据第一操作系统中的物理地址与第二操作系统中的物理地址之间的第二映射关系,将所述第一物理地址转换为所述第二物理地址;第三获得单元,用于获得所述第二物理地址,以在所述第二操作系统下对所述第二物理地址对应的数据进行处理。所述第二操作系统还用于对所述数据进行处理,此时所述第二操作系统还包括数据处理单元,用于在获得所述第二物理地址后,在所述第二操作系统下申请与所述第二物理地址对应的第二虚拟地址,并根据所述第二虚拟地址,确定待处理的所述数据并进行处理。在处理所述数据完毕之后,所述第二操作系统还将通知所述第一操作系统,因此本实施例中所述第二操作系统还包括第二发送单元,用于在处理完所述数据后向所述第一操作系统发送一指示;所述第一操作系统还包括第二接收单元,用于接收所述第二操作系统在处理完所述数据后发送的所述指示;第四获得单元,用于根据所述指示,获得经所述第二操作系统处理后的所述数据。本发明另一实施例还提供了一种电子设备,该电子设备具有可以是手机、计算机(如笔记本电脑、台式机、一体机等)、PAD等。该电子设备包括第二操作系统;运行在所述第二操作系统之上的第一操作系统;对应于所述第一操作系统的第一显示单元,用于接收所述第一操作系统的输出的第一显示信号并进行显示;以及对应于所述第二操作系统的第二显示单元,用于接收所述第二操作系统的输出的第二显示信号并进行显示。以具有两个壳体的便携式电脑(如笔记本电脑)为例,可以在其中一个壳体的内表面安装第一显示单元,在该壳体的外表面安装第二显示单元。这样,第一操作系统输出的显示信号由第一显示单元进行显示,而第二操作系统输出的显示信号则由第二显示单元进行显示。本实施例中,所述第一操作系统包括第一获得单元,用于获得所述第一操作系统欲传输至所述第二操作系统进行处理的数据;第一转换单元,用于根据第一操作系统中的虚拟地址与物理地址之间的第一映射关系,确定所述第一虚拟地址所对应的所述第一操作系统下的第一物理地址;第一发送单元,用于将所述第一物理地址的信息发送给所述第二操作系统;所述第二操作系统包括第一接收单元,用于接收所述第一操作系统发送的所述第一物理地址的信息;第二转换单元,用于根据第一操作系统中的物理地址与第二操作系统中的物理地址之间的第二映射关系,将所述第一物理地址转换为所述第二物理地址;第三获得单元,用于获得所述第二物理地址,以在所述第二操作系统下对所述第二物理地址对应的数据进行处理。所述第二操作系统还用于对所述数据进行处理,因此所述第二操作系统还包括数据处理单元,用于在获得所述第二物理地址后,在所述第二操作系统下申请与所述第二物理地址对应的第二虚拟地址,并根据所述第二虚拟地址,确定待处理的所述数据并进行处理。本实施例中,在处理所述数据完毕之后,所述第二操作系统还将通知所述第一操作系统数据已处理完毕,因此,所述第二操作系统还包括第二发送单元,用于在处理完所述数据后向所述第一操作系统发送一指示;所述第一操作系统还包括第二接收单元,用于接收所述第二操作系统在处理完所述数据后发送的所述指示;第四获得单元,用于根据所述指示,获得经所述第二操作系统处理后的所述数据。此说明书中所描述的许多功能部件都被称为模块,以便更加特别地强调其实现方式的独立性。本发明实施例中,模块可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同位里上的不同的指令,当这些指令逻辑上结合在一起时,其构成模块并且实现该模块的规定目的。实际上,可执行代码模块可以是单条指令或者是许多条指令,并且甚至可以分布在多个不同的代码段上,分布在不同程序当中,以及跨越多个存储器设备分布。同样地,操作数据可以在模块内被识别,并且可以依照任何适当的形式实现并且被组织在任何适当类型的数据结构内。所述操作数据可以作为单个数据集被收集,或者可以分布在不同位置上(包括在不同存储设备上),并且至少部分地可以仅作为电子信号存在于系统或网络上。在模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。以上所述仅是本发明的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种数据传输的方法,应用于一电子设备,所述电子设备包括有第二操作系统和运行在所述第二操作系统之上的第一操作系统;其特征在于,所述方法包括 获得所述第一操作系统欲传输至所述第二操作系统进行处理的数据; 获得所述数据在所述第一操作系统中的第一虚拟地址; 根据映射关系,将所述第一虚拟地址映射成第二操作系统中的第二物理地址; 获得所述第二物理地址,以在所述第二操作系统下对所述第二物理地址对应的数据进行处理。
2.如权利要求1所述的方法,其特征在于,所述根据映射关系,将所述第一虚拟地址映射成第二操作系统中的第二物理地址,包括 根据第一操作系统中的虚拟地址与物理地址之间的第一映射关系,确定所述第一虚拟地址所对应的所述第一操作系统下的第一物理地址; 根据第一操作系统中的物理地址与第二操作系统中的物理地址之间的第二映射关系,将所述第一物理地址转换为所述第二物理地址。
3.如权利要求1所述的方法,其特征在于, 在获得所述第二物理地址后,所述方法还包括 在所述第二操作系统下申请与所述第二物理地址对应的第二虚拟地址,并根据所述第二虚拟地址,确定待处理的所述数据并进行处理。
4.如权利要求3所述的方法,其特征在于,还包括 接收所述第二操作系统在处理完所述数据后返回的指示; 根据所述指示,获得经所述第二操作系统处理后的所述数据。
5.一种数据传输的装置,应用于一电子设备,所述电子设备包括有第二操作系统和运行在所述第二操作系统之上的第一操作系统;其特征在于,所述装置包括 第一获得单元,用于获得所述第一操作系统欲传输至所述第二操作系统进行处理的数据; 第二获得单元,用于获得所述数据在所述第一操作系统中的第一虚拟地址; 映射单元,用于根据映射关系,将所述第一虚拟地址映射成第二操作系统中的第二物理地址; 第三获得单元,用于获得所述第二物理地址,以在所述第二操作系统下对所述第二物理地址对应的数据进行处理。
6.如权利要求5所述的装置,其特征在于,所述映射单元包括 第一转换单元,用于根据第一操作系统中的虚拟地址与物理地址之间的第一映射关系,确定所述第一虚拟地址所对应的所述第一操作系统下的第一物理地址; 第二转换单元,用于根据第一操作系统中的物理地址与第二操作系统中的物理地址之间的第二映射关系,将所述第一物理地址转换为所述第二物理地址。
7.如权利要求5所述的装置,其特征在于,还包括 数据处理单元,用于在获得所述第二物理地址后,在所述第二操作系统下申请与所述第二物理地址对应的第二虚拟地址,并根据所述第二虚拟地址,确定待处理的所述数据并进行处理。
8.如权利要求7所述的装置,其特征在于,还包括接收单元,用于接收所述第二操作系统在处理完所述数据后返回的指示; 第四获得单元,用于根据所述指示,获得经所述第二操作系统处理后的所述数据。
9.一种电子设备,所述电子设备包括有第二操作系统和运行在所述第二操作系统之上的第一操作系统;其特征在于,还包括如权利要求5至8任一项所述的数据传输的装置。
10.一种电子设备,所述电子设备包括有第二操作系统和运行在所述第二操作系统之上的第一操作系统;其特征在于, 所述第一操作系统包括 第一获得单元,用于获得所述第一操作系统欲传输至所述第二操作系统进行处理的数据; 第一转换单元,用于根据第一操作系统中的虚拟地址与物理地址之间的第一映射关系,确定所述第一虚拟地址所对应的所述第一操作系统下的第一物理地址; 第一发送单元,用于将所述第一物理地址的信息发送给所述第二操作系统; 所述第二操作系统包括 第一接收单元,用于接收所述第一操作系统发送的所述第一物理地址的信息; 第二转换单元,用于根据第一操作系统中的物理地址与第二操作系统中的物理地址之间的第二映射关系,将所述第一物理地址转换为所述第二物理地址; 第三获得单元,用于获得所述第二物理地址,以在所述第二操作系统下对所述第二物理地址对应的数据进行处理。
11.如权利要求10所述的电子设备,所述第二操作系统还包括 数据处理单元,用于在获得所述第二物理地址后,在所述第二操作系统下申请与所述第二物理地址对应的第二虚拟地址,并根据所述第二虚拟地址,确定待处理的所述数据并进行处理。
12.如权利要求11所述的电子设备,其特征在于, 所述第二操作系统还包括 第二发送单元,用于在处理完所述数据后向所述第一操作系统发送一指示; 所述第一操作系统还包括 第二接收单元,用于接收所述第二操作系统在处理完所述数据后发送的所述指示; 第四获得单元,用于根据所述指示,获得经所述第二操作系统处理后的所述数据。
13.一种电子设备,所述电子设备包括 第二操作系统; 运行在所述第二操作系统之上的第一操作系统; 对应于所述第一操作系统的第一显示单元,用于接收所述第一操作系统的输出的第一显示信号并进行显示;以及 对应于所述第二操作系统的第二显示单元,用于接收所述第二操作系统的输出的第二显示信号并进行显示; 其中,所述第一操作系统包括 第一获得单元,用于获得所述第一操作系统欲传输至所述第二操作系统进行处理的数据; 第一转换单元,用于根据第一操作系统中的虚拟地址与物理地址之间的第一映射关系,确定所述第一虚拟地址所对应的所述第一操作系统下的第一物理地址; 第一发送单元,用于将所述第一物理地址的信息发送给所述第二操作系统; 所述第二操作系统包括 第一接收单元,用于接收所述第一操作系统发送的所述第一物理地址的信息; 第二转换单元,用于根据第一操作系统中的物理地址与第二操作系统中的物理地址之间的第二映射关系,将所述第一物理地址转换为所述第二物理地址; 第三获得单元,用于获得所述第二物理地址,以在所述第二操作系统下对所述第二物理地址对应的数据进行处理。
14.如权利要求13所述的电子设备,所述第二操作系统还包括 数据处理单元,用于在获得所述第二物理地址后,在所述第二操作系统下申请与所述第二物理地址对应的第二虚拟地址,并根据所述第二虚拟地址,确定待处理的所述数据并进行处理。
15.如权利要求14所述的电子设备,其特征在于, 所述第二操作系统还包括 第二发送单元,用于在处理完所述数据后向所述第一操作系统发送一指示; 所述第一操作系统还包括 第二接收单元,用于接收所述第二操作系统在处理完所述数据后发送的所述指示; 第四获得单元,用于根据所述指示,获得经所述第二操作系统处理后的所述数据。
全文摘要
本发明提供了一种数据传输的方法、装置及电子设备。其中,所述方法包括获得所述第一操作系统欲传输至所述第二操作系统进行处理的数据;获得所述数据在所述第一操作系统中的第一虚拟地址;根据映射关系,将所述第一虚拟地址映射成第二操作系统中的第二物理地址;获得所述第二物理地址,以在所述第二操作系统下对所述第二物理地址对应的数据进行处理。本发明能够提高操作系统之间的数据传输效率。
文档编号G06F9/54GK102999393SQ201110270360
公开日2013年3月27日 申请日期2011年9月13日 优先权日2011年9月13日
发明者郭琦, 路尧, 陈实 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1