CN113448677B - 虚拟机的数据处理方法和系统 - Google Patents
虚拟机的数据处理方法和系统 Download PDFInfo
- Publication number
- CN113448677B CN113448677B CN202010214474.1A CN202010214474A CN113448677B CN 113448677 B CN113448677 B CN 113448677B CN 202010214474 A CN202010214474 A CN 202010214474A CN 113448677 B CN113448677 B CN 113448677B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- simulator
- machine monitor
- authority
- paravirtualized
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 47
- 230000006870 function Effects 0.000 claims abstract description 19
- 238000009877 rendering Methods 0.000 claims description 89
- 238000000034 method Methods 0.000 claims description 31
- 208000032826 Ring chromosome 3 syndrome Diseases 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/538—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种虚拟机的数据处理方法和系统。其中,该系统包括:虚拟机监视器,以半虚拟化的方式运行在虚拟机的第一权限级别之上,虚拟机运行在公有云上;安卓模拟器,以半虚拟化的方式通过虚拟机监视器的控制运行在虚拟机的第二权限级别之上,第一权限级别对应的第一权限大于第二权限级别对应的第二权限;其中,当安卓模拟器向虚拟机监视器发送第一权限的调用请求时,虚拟机监视器接收安卓模拟器发送的调用请求,根据调用请求调用对应设备,并将调用结果返回至安卓模拟器。本申请解决了现有技术中把安卓模拟器的功能搬到公有云后导致处理运算开销大且性能较低的技术问题。
Description
技术领域
本申请涉及数据处理领域,具体而言,涉及一种虚拟机的数据处理方法和系统。
背景技术
目前云游戏行业针对手机游戏部分都是采用android模拟器来完成远程渲染并通过硬件编码串流到用户手机端来显示,需要在android模拟器内部启用GPU硬件完成图形渲染与图像压缩等能力,因此这些android模拟器都必须运行在带GPU的物理机之上。一个android模拟器就相当于一个虚拟化的Guest VM,由于性能要求,这些android模拟器都启用了硬件辅助的虚拟化能力。比如通过VTx,VTd等技术来提升虚拟化性能。
但是当将android模拟器的功能搬运到公有云上之后,就存在如下缺陷:公有云本身就是一种虚拟机,已经使用了VTx/VTd等硬件辅助的虚拟化能力,这使得android模拟器作为另外一种虚拟化方法无法再使用硬件辅助的虚拟化方案。可以使用嵌套虚拟化或者Full emulation(全模拟)的方式来运行android模拟器,但嵌套虚拟化目前性能损失达到20至50%,而Full emulation的方式极大的增加了公有云主机(也是虚拟机)CPU开销,并且性能也达不到要求。
针对现有技术中把安卓模拟器的业务搬到公有云后导致处理运算开销大且性能较低的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种虚拟机的数据处理方法和系统,以至少解决现有技术中把安卓模拟器的功能搬到公有云后导致处理运算开销大且性能较低的技术问题。
根据本申请实施例的一个方面,提供了一种虚拟机的数据处理系统,包括:虚拟机监视器,以半虚拟化的方式运行在虚拟机的第一权限级别之上,虚拟机运行在公有云上;模拟器,以半虚拟化的方式通过虚拟机监视器的控制运行在虚拟机的第二权限级别之上,第一权限级别对应的第一权限大于第二权限级别对应的第二权限;其中,当模拟器向虚拟机监视器发送第一权限的调用请求时,虚拟机监视器接收模拟器发送的调用请求,根据调用请求调用对应设备,并将调用结果返回至模拟器。
根据本申请实施例的另一方面,还提供了一种移动终端,移动终端运行预设应用程序时,向模拟器发送请求,并接收模拟器执行请求的执行结果,其中,模拟器包括上述的模拟器。
根据本申请实施例的另一方面,还提供了一种虚拟机的数据处理方法,包括:模拟器向虚拟机监视器发送第一权限的调用请求,其中,虚拟机监视器以半虚拟化的方式运行在虚拟机的第一权限级别之上,虚拟机运行在公有云上,模拟器以半虚拟化的方式通过虚拟机监视器的控制运行在虚拟机的第二权限级别之上,第一权限级别对应的第一权限大于第二权限级别对应的第二权限;模拟器接收虚拟机监视器返回的调用结果,其中,虚拟机监视器根据调用请求调用对应设备,并将调用结果返回至模拟器。
根据本申请实施例的另一方面,还提供了一种虚拟机的数据处理方法,包括:虚拟机监视器接收模拟器发送的第一权限的调用请求,其中,虚拟机监视器以半虚拟化的方式运行在虚拟机的第一权限级别之上,虚拟机运行在公有云上,模拟器以半虚拟化的方式通过虚拟机监视器的控制运行在虚拟机的第二权限级别之上,第一权限级别对应的第一权限大于第二权限级别对应的第二权限;虚拟机监视器根据调用请求调用对应设备,并将调用结果返回至模拟器。
根据本申请实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行如下步骤:模拟器向虚拟机监视器发送第一权限的调用请求,其中,虚拟机监视器以半虚拟化的方式运行在虚拟机的第一权限级别之上,虚拟机运行在公有云上,模拟器以半虚拟化的方式通过虚拟机监视器的控制运行在虚拟机的第二权限级别之上,第一权限级别对应的第一权限大于第二权限级别对应的第二权限;模拟器接收虚拟机监视器返回的调用结果,其中,虚拟机监视器根据调用请求调用对应设备,并将调用结果返回至模拟器。
根据本申请实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行如下步骤:模拟器向虚拟机监视器发送第一权限的调用请求,其中,虚拟机监视器以半虚拟化的方式运行在虚拟机的第一权限级别之上,虚拟机运行在公有云上,模拟器以半虚拟化的方式通过虚拟机监视器的控制运行在虚拟机的第二权限级别之上,第一权限级别对应的第一权限大于第二权限级别对应的第二权限;模拟器接收虚拟机监视器返回的调用结果,其中,虚拟机监视器根据调用请求调用对应设备,并将调用结果返回至模拟器。
在本申请实施例中,在虚拟机上运行半虚拟化的虚拟机监视器,在半虚拟化的虚拟机监视器上运行半虚拟化的模拟器,并由半虚拟化的虚拟机监视器来执行半虚拟化模拟器的高权限调用。由于半虚拟化的虚拟机监视器无需硬件虚拟化的支持,从而使得运行在其上的模拟器可以顺利运行在公有云的虚拟机内而无需公有云支持嵌套虚拟化(nestedhypervisor),同时半虚拟化的虚拟机监视器的效率和性能又高于全虚拟化模式(Full emulation),从而解决了现有技术中把安卓模拟器的功能搬到公有云后导致处理运算开销大且性能较低的技术问题,并能够满足启动多个安卓模拟器的需求。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种虚拟机的数据处理系统的示意图;
图2是根据本申请实施例1的一种可选的虚拟机的数据处理系统的示意图;
图3示出了一种用于实现虚拟机的数据处理方法的计算设备的硬件结构框图;
图4是根据本申请实施例2的一种虚拟机的数据处理方法的流程图;
图5是根据本申请实施例3的一种虚拟机的数据处理装置的示意图;
图6是根据本申请实施例4的一种虚拟机的数据处理方法的流程图;
图7是根据本申请实施例5的一种虚拟机的数据处理装置的示意图;以及
图8是根据本申请实施例6的一种计算设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
Emulated:即虚拟化,虚拟机运行在宿主机上面(host),其内部CPU/Memory/Devices等都是通过软件模拟实现。
PV:Paravirtualization,即半虚拟化方式,需要修改Guest kernel通过特殊通道与宿主机通讯并完成设备模拟。半虚拟化方式由于不需要采用emulation,其运行效率要高于Emulated虚拟化方式。
HVM:硬件辅助的方式提供虚拟化能力。例如VT-x,VT-d等技术。
实施例1
根据本申请实施例,还提供了一种虚拟机的数据处理系统的实施例,图1是根据本申请实施例的一种虚拟机的数据处理系统的示意图,结合图1所示,该系统包括:
虚拟机监视器10,以半虚拟化的方式运行在虚拟机的第一权限级别之上,虚拟机运行在公有云上。
上述公有云指的是第三方提供的云服务,上述的虚拟机(Guest VM)本身运行在VTx的non-root模式下。上述虚拟机监视器即为PV hypervisor,该虚拟机监视器以半虚拟化的方式运行在公有云上,即为半虚拟化虚拟机监视器PV hypervisor。上述虚拟机监视器的运行无需VTx/VTd支持,且该虚拟机监视器运行在第一权限级别之上。
上述的权限级别表示的是处理器的特权级别,上述第一权限级别可以是ring0级别,ring0级别是处理器的最高级别,拥有处理器的最高权限。
模拟器12,以半虚拟化的方式通过虚拟机监视器的控制运行在虚拟机的第二权限级别之上,第一权限级别对应的第一权限大于第二权限级别对应的第二权限;其中,当模拟器向虚拟机监视器发送第一权限的调用请求时,虚拟机监视器接收模拟器发送的调用请求,根据调用请求调用对应设备,并将调用结果返回至模拟器。
作为一种可选的实施例,上述模拟器为安卓模拟器,本申请下述的模拟器均以安卓模拟器为例进行说明。
安卓模拟器实际是一种应用程序,能够模拟除了接打电话之外的所有移动终端上的功能和行为。本实施例中的上述的安卓模拟器并不运行在移动终端之上,也不是以嵌套虚拟化的方式运行的云端,而是以半虚拟化的方式运行在虚拟机监视器之上。
上述第二权限级别也用于表示处理器的特权级别,第二权限级别可以为ring3级别,第二权限级别对应的第二权限低于第一权限级别对应的第一权限。
用户在使用移动终端时,通过网络向安卓模拟器发送指令,以在半虚拟化的安卓模拟器内运行应用程序,半虚拟化的安卓模拟器根据指令进行相应的处理后,将处理结果通过网络返回给用户的移动终端。由于安卓模拟器运行在ring3级别,难以实现更高级别的调用,因此当应用程序涉及到第一权限的调用时,都需要通过运行第一权限级别的虚拟机监视器进行上述调用,并接收虚拟机监视器的调用结果。
以第一权限级别为ring0为例,ring0级别的调用可以包括:系统调用API入口,与内存管理/pagetable相关的调用,与进程调度相关的调用以及多处理器同步原语等。
需要说明的是,对于安卓模拟器需要用到的设备,例如disk,network等,也均采用半虚拟化的模式。具体如表一所示:
表一
在本申请上述实施例中,在虚拟机上运行半虚拟化的虚拟机监视器,在半虚拟化的虚拟机监视器上运行半虚拟化的安卓模拟器,并由半虚拟化的虚拟机监视器来执行半虚拟化安卓模拟器的高权限调用。由于半虚拟化的虚拟机监视器无需硬件虚拟化的支持,从而使得运行在其上的安卓模拟器可以顺利运行在公有云的虚拟机内而无需公有云支持嵌套虚拟化(nested hypervisor),同时半虚拟化的虚拟机监视器的效率和性能又高于全虚拟化模式(Full emulation),从而解决了现有技术中把安卓模拟器的功能搬到公有云后导致处理运算开销大且性能较低的技术问题,并能够满足启动多个安卓模拟器的需求。
作为一种可选的实施例,模拟器包括:内核,以半虚拟化的方式运行在模拟器之上,用于提供虚拟机的操作系统,并在需要运行属于第一权限的指令时,调用虚拟机监视器的接口,由虚拟机监视器执行指令对设备的调用。
上述安卓模拟器包括以半虚拟化方式运行的内核,即PV kernel,PV kernel与PVhypervisor相互配合,作为非特权级(deprivileged)到ring3的内核运行。
上述第一权限的指令是安卓模拟器所无法执行的指令,也即特权指令(特权指令表示所有会导致CPU从Ring3进入Ring0的指令),因此当PV kernel需要运行特权指令的时候,可以调用PV hypervisor的接口,由运行在ring0模式下的PV hypervisor完成ring0权限的调用。
作为一种可选的实施例,对预设操作系统内核剥离第一权限的指令和功能,并加入设备的半虚拟化功能,得到模拟器的内核。
上述半虚拟化的内核PV kernel与Linux kernel相比,其接管了所有特权指令与功能。上述预设操作系统可以为安卓操作系统,PV kernel对android有侵入性,可以认为是修改过的android kernel,修改的部分至少包括:1、剥离了特权指令/功能;2、加入设备的PV功能,包括PV network,PV storage等等。
对在android kernel进行改造得到PV kernel对用户来说是可以检测的。PVhypervisor的一个重要特性是对PV guest具有侵入性。用户只需要通过简单的反汇编系统调用接口查看是否存在syscall指令,即可确定android kernel是否被改造为PV kernel。由于PV kernel会把syscall指令替换成一个hypercall来调用PV hypervisor接口,因此如果不存在syscall指令,则android kernel进行改造得到PV kernel。
作为一种可选的实施例,模拟器包括:存储空间,其中,虚拟机的应用程序运行在存储空间内。
在操作系统中,将自身划分为两部分,一部分为内核空间,用于运行核心软件,即kernel;另一部分为用户空间,用于运行普通应用程序。
上述存储空间即为用户空间(userspace),由于userspace和PV kernel都运行在安卓模拟器中,因此其均运行在同一个权限级别上,即第二权限级别。由于userspace和PVkernel运行在同一权限级别上,因此在进行交互时不存在权限级别(ring)的层次切换,这对于运行在安卓模拟器中的应用程序来说,使系统调用等同于函数调用,从而可以进一步地缩减进程开销。
作为一种可选的实施例,模拟器还包括:第一图像处理器,以半虚拟化的形式运行在模拟器之上,用于将渲染请求发送至虚拟机监视器,其中,虚拟机监视器根据渲染请求在实体的第二图像处理器上进行渲染,并将渲染结果返回至图像处理器。
具体的,上述第一图像处理器为安卓模拟器中的半虚拟化图像处理器,即PV GPU,第二图像处理器是实体的图像处理器,也是本方案中真正处理渲染请求的图像处理器。第二处理器可以是虚拟机对应的宿主机中的图像处理器。
本实施例中虚拟机是用户唯一能接触到虚拟机(VM),需要在该虚拟机中搭建PVhypervisor/PV android,并将PV GPU的渲染能力带入至安卓系统内供应用程序使用。现有技术中Android模拟器运行手机游戏需要用到GPU的渲染能力,但是无论嵌套虚拟化还是Fullemulation的方式都无法发挥GPU的渲染与硬件编码能力。对于全虚拟化(Fullemulation)的安卓模拟器,其不支持PV模式,因此只能通过CPU模拟出VGA(Vidoe GraphicsArray,视频图形阵列)设备而无法真正渲染。而在上述方案中,在半虚拟化的安卓模拟器下,半虚拟化的安卓模拟器被添加到安卓模拟器中,从而使得半虚拟化的图像处理器可以将渲染请求发送至PV hypervisor,再由PV hypervisor在真正的GPU上进行渲染。在渲染之后,将渲染结果通过网络设备传输至用户的移动终端上。
上述申请上述方案可以通过改造安卓模android kernel为PV kernel,并在安卓模拟器中添加PV GPU的方式让,使android模拟器半虚拟化,进而使得安卓模拟器可以在不使用硬件辅助虚拟的情况下完成高性能的渲染任务。
第一图像处理器可以通过如下方式实现:1、根据PV hypervisor的要求确定一个安卓内部graphic框架与PV hypervisor的通道,该通道可以根据现有的PV driver:network/storage来确定;2、借助#1的PV方式采用OpenGL API forwarding技术将渲染请求发送至PV hypervisor;3、PV hypervisor在渲染画面结束后直接通过GPU H265编码(encoding)成视频流(video streaming),安卓模拟器把这个video streaming发送至远端的客户端而无需再回传入安卓模拟器。下面具体进行说明。
作为一种可选的实施例,图像处理器通过截获开放图形库的接口将渲染请求发送至虚拟机监视器。
在上述方案中,PV GPU通过截获开放图形库(OpenGL)的接口,并通过接口转发技术(API forwarding)把渲染请求发送到PV hypervisor。
作为一种可选的实施例,虚拟机监视器返回至图像处理器的渲染结果包括对渲染内容进行编码后的视频流。
在上述方案中,PV hypervisor通过显卡直通(KVM passthrough)的方式将渲染请求转发至第二图像处理器后,第二图像处理器对渲染请求进行处理,得到渲染内容,并对渲染内容进行编码,得到视频流。
作为一种可选的实施例,模拟器还将渲染结果通过网络传输至渲染请求对应的终端,其中,终端接收并显示渲染结果。
具体的,上述渲染请求对应的终端用于表示发出渲染请求的终端。将编码后的视频流返回至安卓模拟器,由安卓模拟器通过网络设备传输至用户的移动终端,从而完成了对渲染请求的处理。
作为一种可选的实施例,第一权限级别为ring0级别,第二权限级别为ring3级别。
作为一种可选的实施例,上述系统还包括:虚拟机对应的宿主机,其中,宿主机运行在root模式下,宿主机包括:
本地的中央处理器、内存和图像处理器;
虚拟机控制器,用于执行虚拟机监视器的调用请求,并将调用结果返回至虚拟机监视器。
在上述方案中,宿主机本地的图像处理器即可以为上述第二图像处理器。虚拟机控制器可以为KVM hypervisor,用于通过GPU Passthrough的方式与虚拟机通信,以处理虚拟机的调用请求。
图2是根据本申请实施例1的一种可选的虚拟机的数据处理系统的示意图,结合图2所示,其包括root模式下的宿主机,宿主机包括本地的中央处理器(Native CPU)、内存(memory)、本地的第二图像处理器(GPU)以及虚拟机控制器(KVM hypervisor)。其还包括Non-root模式下的虚拟机,虚拟机包括ring0模式下的虚拟机监视器(PV hypervisor),以及ring3模式下的安卓模拟器(PV android),安卓模拟器包括内核(PV kernel)、第一图像处理器(PV GPU)以及用户空间(Userspace)。应用程序(APP)运行在安卓模拟器中,当应用程序向第一图像处理器发出渲染请求时,第一图像处理器截获开放图形库(OpenGL)的接口通过API forwarding技术将渲染请求发送至虚拟机监视器,由虚拟机监视器将渲染请求发送至第二图像处理器进行处理,第二图像处理器处理渲染请求得到渲染结果后,对渲染结果进行编码,并对编码结果进行帧缓存编码(framebuf Encoding),得到编码后的视频流,然后将编码结果返回给安卓模拟器,由安卓模拟器通过网络设备将视频流发送至移动终端。
实施例2
根据本申请实施例,还提供了一种虚拟机的数据处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算设备或者类似的运算装置中执行。图3示出了一种用于实现虚拟机的数据处理方法的计算设备的硬件结构框图。如图3所示,计算设备30(或移动设备30)可以包括一个或多个(图中采用302a、302b,……,302n来示出)处理器302(处理器302可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器304、以及用于通信功能的传输模块306。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图3所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备30还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。
应当注意到的是上述一个或多个处理器302和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备30中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器304可用于存储应用软件的软件程序以及模块,如本申请实施例中的虚拟机的数据处理方法对应的程序指令/数据存储装置,处理器302通过运行存储在存储器304内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的虚拟机的数据处理方法。存储器304可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器304可进一步包括相对于处理器302远程设置的存储器,这些远程存储器可以通过网络连接至计算设备30。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块306用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备30的通信供应商提供的无线网络。在一个实例中,传输模块306包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块306可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算设备30的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图3所示的计算机设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图3仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备中的部件的类型。
在上述运行环境下,本申请提供了如图2所示的虚拟机的数据处理方法。图4是根据本申请实施例2的一种虚拟机的数据处理方法的流程图。
步骤S41,安卓模拟器向虚拟机监视器发送第一权限的调用请求,其中,虚拟机监视器以半虚拟化的方式运行在虚拟机的第一权限级别之上,虚拟机运行在公有云上,模拟器以半虚拟化的方式通过虚拟机监视器的控制运行在虚拟机的第二权限级别之上,第一权限级别对应的第一权限大于第二权限级别对应的第二权限。
具体的,本实施例中的安卓模拟器是实施例1中的半虚拟化的安卓模拟器,本实施例中的虚拟机监视器可以是实施例1中以半虚拟化虚拟机监视器,具体描述见实施例1,此处不再赘述。
步骤S43,模拟器接收虚拟机监视器返回的调用结果,其中,虚拟机监视器根据调用请求调用对应设备,并将调用结果返回至模拟器。
用户在使用移动终端时,通过网络向安卓模拟器发送指令,以在半虚拟化的安卓模拟器内运行应用程序,半虚拟化的安卓模拟器根据指令进行相应的处理后,将处理结果通过网络返回给用户的移动终端。由于安卓模拟器运行在第二权限级别,难以实现更高级别的调用,因此当应用程序涉及到第一权限的调用时,都需要通过运行第一权限级别的虚拟机监视器进行上述调用,并接收虚拟机监视器的调用结果。
在本申请上述实施例中,模拟器向虚拟机监视器发送第一权限的调用请求,其中,虚拟机监视器以半虚拟化的方式运行在虚拟机的第一权限级别之上,虚拟机运行在公有云上,模拟器以半虚拟化的方式通过虚拟机监视器的控制运行在虚拟机的第二权限级别之上,第一权限级别对应的第一权限大于第二权限级别对应的第二权限,模拟器接收虚拟机监视器返回的调用结果,其中,虚拟机监视器根据调用请求调用对应设备,并将调用结果返回至模拟器。由于半虚拟化的虚拟机监视器无需硬件虚拟化的支持,从而使得运行在其上的模拟器可以顺利运行在公有云的虚拟机内而无需公有云支持嵌套虚拟化(nestedhypervisor),同时半虚拟化的虚拟机监视器的效率和性能又高于全虚拟化模式(Fullemulation),从而解决了现有技术中把安卓模拟器的功能搬到公有云后导致处理运算开销大且性能较低的技术问题,并能够满足启动多个安卓模拟器的需求。
作为一种可选的实施例,模拟器包括:以半虚拟化形式运行在模拟器之上的内核,模拟器向虚拟机监视器发送第一权限的调用请求,包括:模拟器中的内核向虚拟机监视器发送第一权限的指令,其中,虚拟机监视器根据指令进行对应的调用。
上述方案中的内核可以为实施例1中的内核。上述第一权限的指令是安卓模拟器所无法执行的指令,也即特权指令,因此当PV kernel需要运行特权指令的时候,可以调用PV hypervisor的接口,由运行在ring0模式下的PV hypervisor完成ring0权限的调用。
作为一种可选的实施例,模拟器包括:以半虚拟化形式运行在模拟器之上的第一图像处理器,模拟器向虚拟机监视器发送第一权限的调用请求,包括:模拟器中的第一图像处理器向虚拟机监视器发送渲染请求,其中,虚拟机监视器根据渲染请求在实体的第二图像处理器上进行渲染。
上述方案中的第一图像处理器可以为实施例1中的第一图像处理器。在半虚拟化的安卓模拟器下,半虚拟化的安卓模拟器被添加到安卓模拟器中,从而使得半虚拟化的图像处理器可以将渲染请求发送至PV hypervisor,再由PV hypervisor在真正的GPU上进行渲染。在渲染之后,将渲染结果通过网络设备传输至用户的移动终端上。
作为一种可选的实施例,调用结果包括第二图像处理器对渲染请求进行渲染得到渲染结果后,对渲染结果进行编码得到的编码结果,在模拟器接收虚拟机监视器返回的调用结果之后,上述方法包括:模拟器将编码结果发送至调用请求对应的终端。
具体的,上述渲染请求对应的终端用于表示发出渲染请求的终端。将编码后的视频流返回至安卓模拟器,由安卓模拟器通过网络设备传输至用户的移动终端,从而完成了对渲染请求的处理。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
实施例3
根据本申请实施例,还提供了一种用于实施实施例2中的虚拟机的数据处理方法的虚拟机的数据处理装置,图5是根据本申请实施例3的一种虚拟机的数据处理装置的示意图,如图5所示,该装置500包括:
发送模块502,用于模拟器向虚拟机监视器发送第一权限的调用请求,其中,虚拟机监视器以半虚拟化的方式运行在虚拟机的第一权限级别之上,虚拟机运行在公有云上,模拟器以半虚拟化的方式通过虚拟机监视器的控制运行在虚拟机的第二权限级别之上,第一权限级别对应的第一权限大于第二权限级别对应的第二权限。
返回模块504,用于模拟器接收虚拟机监视器返回的调用结果,其中,虚拟机监视器根据调用请求调用对应设备,并将调用结果返回至模拟器。
此处需要说明的是,上述发送模块502和返回模块504对应于实施例2中的步骤S31至步骤S33,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算设备10中。
作为一种可选的实施例,模拟器包括:以半虚拟化形式运行在模拟器之上的内核,发送模块包括:第一发送子模块,用于模拟器中的内核向虚拟机监视器发送第一权限的指令,其中,虚拟机监视器根据指令进行对应的调用。
作为一种可选的实施例,模拟器包括:以半虚拟化形式运行在模拟器之上的第一图像处理器,发送模块包括:第二发送子模块,用于模拟器中的第一图像处理器向虚拟机监视器发送渲染请求,其中,虚拟机监视器根据渲染请求在实体的第二图像处理器上进行渲染。
作为一种可选的实施例,调用结果包括第二图像处理器对渲染请求进行渲染得到渲染结果后,对渲染结果进行编码得到的编码结果,在模拟器接收虚拟机监视器返回的调用结果之后,上述装置还包括:结果发送模块,用于模拟器将编码结果发送至调用请求对应的终端。
实施例4
根据本申请实施例,还提供了另一种虚拟机的数据处理方法的实施例,图6是根据本申请实施例4的一种虚拟机的数据处理方法的流程图,结合图6所示,该方法包括:
步骤S61,虚拟机监视器接收模拟器发送的第一权限的调用请求,其中,虚拟机监视器以半虚拟化的方式运行在虚拟机的第一权限级别之上,虚拟机运行在公有云上,模拟器以半虚拟化的方式通过虚拟机监视器的控制运行在虚拟机的第二权限级别之上,第一权限级别对应的第一权限大于第二权限级别对应的第二权限。
具体的,本实施例中的安卓模拟器是实施例1中的半虚拟化的安卓模拟器,本实施例中的虚拟机监视器可以是实施例1中以半虚拟化虚拟机监视器,具体描述见实施例1,此处不再赘述。
步骤S63,虚拟机监视器根据调用请求调用对应设备,并将调用结果返回至模拟器。
用户在使用移动终端时,通过网络向安卓模拟器发送指令,以在半虚拟化的安卓模拟器内运行应用程序,半虚拟化的安卓模拟器根据指令进行相应的处理后,将处理结果通过网络返回给用户的移动终端。由于安卓模拟器运行在第二权限级别,难以实现更高级别的调用,因此当应用程序涉及到第一权限的调用时,都需要通过运行第一权限级别的虚拟机监视器进行上述调用,并接收虚拟机监视器的调用结果。
在本申请上述实施例中,虚拟机监视器接收模拟器发送的第一权限的调用请求,其中,虚拟机监视器以半虚拟化的方式运行在虚拟机的第一权限级别之上,虚拟机运行在公有云上,模拟器以半虚拟化的方式通过虚拟机监视器的控制运行在虚拟机的第二权限级别之上,第一权限级别对应的第一权限大于第二权限级别对应的第二权限;虚拟机监视器根据调用请求调用对应设备,并将调用结果返回至模拟器。由于半虚拟化的虚拟机监视器无需硬件虚拟化的支持,从而使得运行在其上的模拟器可以顺利运行在公有云的虚拟机内而无需公有云支持嵌套虚拟化(nested hypervisor),同时半虚拟化的虚拟机监视器的效率和性能又高于全虚拟化模式(Full emulation),从而解决了现有技术中把安卓模拟器的功能搬到公有云后导致处理运算开销大且性能较低的技术问题,并能够满足启动多个安卓模拟器的需求。
作为一种可选的实施例,模拟器包括:以半虚拟化形式运行在模拟器之上的内核,调用请求包括内核发送的第一权限的指令,虚拟机监视器根据调用请求调用对应设备,并将调用结果返回至模拟器,包括:虚拟机监视器根据指令进行对应的调用,并将调用结果返回至内核。
上述方案中的内核可以为实施例1中的内核。上述第一权限的指令是安卓模拟器所无法执行的指令,也即特权指令,因此当PV kernel需要运行特权指令的时候,可以调用PV hypervisor的接口,由运行在ring0模式下的PV hypervisor完成ring0权限的调用。
作为一种可选的实施例,模拟器包括:以半虚拟化形式运行在模拟器之上的第一图像处理器,调用请求包括第一图像处理器发送的渲染请求,虚拟机监视器根据调用请求调用对应设备,并将调用结果返回至模拟器,包括:虚拟机监视器将渲染请求发送至实体的第二图像处理器,由第二图像处理器根据渲染请求进行渲染得到渲染结果,并对渲染结果进行编码,得到编码结果;虚拟机监视器将编码结果返回至模拟器。
上述方案中的第一图像处理器可以为实施例1中的第一图像处理器。在半虚拟化的安卓模拟器下,半虚拟化的安卓模拟器被添加到安卓模拟器中,从而使得半虚拟化的图像处理器可以将渲染请求发送至PV hypervisor,再由PV hypervisor在真正的GPU上进行渲染。在渲染之后,将渲染结果通过网络设备传输至用户的移动终端上。
实施例5
根据本申请实施例,还提供了一种用于实施实施例4中的虚拟机的数据处理方法的虚拟机的数据处理装置,图7是根据本申请实施例5的一种虚拟机的数据处理装置的示意图,如图7所示,该装置700包括:
发送模块702,用于虚拟机监视器接收模拟器发送的第一权限的调用请求,其中,虚拟机监视器以半虚拟化的方式运行在虚拟机的第一权限级别之上,虚拟机运行在公有云上,模拟器以半虚拟化的方式通过虚拟机监视器的控制运行在虚拟机的第二权限级别之上,第一权限级别对应的第一权限大于第二权限级别对应的第二权限。
返回模块704,用于虚拟机监视器根据调用请求调用对应设备,并将调用结果返回至模拟器。
此处需要说明的是,上述发送模块702和返回模块704对应于实施例4中的步骤S51至步骤S53,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算设备10中。
作为一种可选的实施例,模拟器包括:以半虚拟化形式运行在模拟器之上的内核,调用请求包括内核发送的第一权限的指令,返回模块包括:第一返回子模块,用于虚拟机监视器根据指令进行对应的调用,并将调用结果返回至内核。
作为一种可选的实施例,模拟器包括:以半虚拟化形式运行在模拟器之上的第一图像处理器,调用请求包括第一图像处理器发送的渲染请求,返回模块包括:发送至模块,用于虚拟机监视器将渲染请求发送至实体的第二图像处理器,由第二图像处理器根据渲染请求进行渲染得到渲染结果,并对渲染结果进行编码,得到编码结果;第二返回子模块,用于虚拟机监视器将编码结果返回至模拟器。
实施例6
本申请的实施例可以提供一种计算设备,该计算设备可以是计算设备群中的任意一个计算设备。可选地,在本实施例中,上述计算设备也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算设备可以执行虚拟机的数据处理方法中以下步骤的程序代码:模拟器向虚拟机监视器发送第一权限的调用请求,其中,虚拟机监视器以半虚拟化的方式运行在虚拟机的第一权限级别之上,虚拟机运行在公有云上,模拟器以半虚拟化的方式通过虚拟机监视器的控制运行在虚拟机的第二权限级别之上,第一权限级别对应的第一权限大于第二权限级别对应的第二权限;模拟器接收虚拟机监视器返回的调用结果,其中,虚拟机监视器根据调用请求调用对应设备,并将调用结果返回至模拟器。
可选地,图8是根据本申请实施例6的一种计算设备的结构框图。如图8所示,该计算设备A可以包括:一个或多个(图中仅示出一个)处理器802、存储器804、以及外设接口806。
其中,存储器可用于存储软件程序以及模块,如本申请实施例中的虚拟机的数据处理方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的虚拟机的数据处理方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:模拟器向虚拟机监视器发送第一权限的调用请求,其中,虚拟机监视器以半虚拟化的方式运行在虚拟机的第一权限级别之上,虚拟机运行在公有云上,模拟器以半虚拟化的方式通过虚拟机监视器的控制运行在虚拟机的第二权限级别之上,第一权限级别对应的第一权限大于第二权限级别对应的第二权限;模拟器接收虚拟机监视器返回的调用结果,其中,虚拟机监视器根据调用请求调用对应设备,并将调用结果返回至模拟器。
可选的,模拟器包括:以半虚拟化形式运行在模拟器之上的内核,上述处理器还可以执行如下步骤的程序代码:模拟器中的内核向虚拟机监视器发送第一权限的指令,其中,虚拟机监视器根据指令进行对应的调用。
可选的,模拟器包括:以半虚拟化形式运行在模拟器之上的第一图像处理器,上述处理器还可以执行如下步骤的程序代码:模拟器中的第一图像处理器向虚拟机监视器发送渲染请求,其中,虚拟机监视器根据渲染请求在实体的第二图像处理器上进行渲染。
可选的,调用结果包括第二图像处理器对渲染请求进行渲染得到渲染结果后,对渲染结果进行编码得到的编码结果,上述处理器还可以执行如下步骤的程序代码:模拟器将编码结果发送至调用请求对应的终端。。
采用本申请实施例,提供了一种虚拟机的数据处理的方案。通过在虚拟机上运行半虚拟化的虚拟机监视器,在半虚拟化的虚拟机监视器上运行半虚拟化的模拟器,并由半虚拟化的虚拟机监视器来执行半虚拟化模拟器的高权限调用,从而使得运行在其上的模拟器可以顺利运行在公有云的虚拟机内而无需公有云支持嵌套虚拟化(nestedhypervisor),同时半虚拟化的虚拟机监视器的效率和性能又高于全虚拟化模式(Fullemulation),从而解决了现有技术中把安卓模拟器的功能搬到公有云后导致处理运算开销大且性能较低的技术问题,并能够满足启动多个安卓模拟器的需求。
本领域普通技术人员可以理解,图8所示的结构仅为示意,计算设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图8其并不对上述电子装置的结构造成限定。例如,计算设备80还可包括比图8中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图8所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例7
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的虚拟机的数据处理方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算设备群中的任意一个计算设备中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:模拟器向虚拟机监视器发送第一权限的调用请求,其中,虚拟机监视器以半虚拟化的方式运行在虚拟机的第一权限级别之上,虚拟机运行在公有云上,模拟器以半虚拟化的方式通过虚拟机监视器的控制运行在虚拟机的第二权限级别之上,第一权限级别对应的第一权限大于第二权限级别对应的第二权限;模拟器接收虚拟机监视器返回的调用结果,其中,虚拟机监视器根据调用请求调用对应设备,并将调用结果返回至模拟器。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (18)
1.一种虚拟机的数据处理系统,包括:
虚拟机监视器,以半虚拟化的方式运行在虚拟机的第一权限级别之上,所述虚拟机运行在公有云上;
模拟器,以半虚拟化的方式通过所述虚拟机监视器的控制运行在所述虚拟机的第二权限级别之上,所述第一权限级别对应的第一权限大于所述第二权限级别对应的第二权限;
其中,当所述模拟器向虚拟机监视器发送第一权限的调用请求时,所述虚拟机监视器接收所述模拟器发送的调用请求,根据所述调用请求调用对应设备,并将调用结果返回至所述模拟器;
所述模拟器包括:内核,以半虚拟化的方式运行在所述模拟器之上,用于提供所述虚拟机的操作系统,并在需要运行属于所述第一权限的指令时,调用所述虚拟机监视器的接口,由所述虚拟机监视器执行所述指令对设备的调用。
2.根据权利要求1所述的系统,其中,对预设操作系统内核剥离所述第一权限的指令和功能,并加入设备的半虚拟化功能,得到所述模拟器的内核。
3.根据权利要求1所述的系统,其中,所述模拟器包括:
存储空间,其中,所述虚拟机的应用程序运行在所述存储空间内。
4.根据权利要求1所述的系统,其中,所述模拟器还包括:
第一图像处理器,以半虚拟化的形式运行在所述模拟器之上,用于将渲染请求发送至所述虚拟机监视器,其中,所述虚拟机监视器根据所述渲染请求在实体的第二图像处理器上进行渲染,并将渲染结果返回至所述图像处理器。
5.根据权利要求4所述的系统,其中,所述图像处理器通过截获开放图形库的接口将所述渲染请求发送至所述虚拟机监视器。
6.根据权利要求4所述的系统,其中,所述虚拟机监视器返回至所述图像处理器的渲染结果包括对渲染内容进行编码后的视频流。
7.根据权利要求4所述的系统,其中,所述模拟器还将所述渲染结果通过网络传输至所述渲染请求对应的终端,其中,所述终端接收并显示所述渲染结果。
8.根据权利要求1所述的系统,其中,所述第一权限级别为ring0级别,所述第二权限级别为ring3级别。
9.根据权利要求1至8中任意一项所述的系统,其中,所述系统还包括:所述虚拟机对应的宿主机,其中,所述宿主机运行在root模式下,所述宿主机包括:
本地的中央处理器、内存和图像处理器;
虚拟机控制器,用于执行所述虚拟机监视器的调用请求,并将调用结果返回至所述虚拟机监视器。
10.根据权利要求1所述的系统,其中,所述模拟器为安卓模拟器。
11.一种移动终端,其中,所述移动终端运行预设应用程序时,向模拟器发送请求,并接收所述模拟器执行所述请求的执行结果,其中,所述模拟器包括权利要求1至7中任意一项所述的模拟器。
12.一种虚拟机的数据处理方法,包括:
模拟器向虚拟机监视器发送第一权限的调用请求,其中,虚拟机监视器以半虚拟化的方式运行在虚拟机的第一权限级别之上,所述虚拟机运行在公有云上,所述模拟器以半虚拟化的方式通过所述虚拟机监视器的控制运行在所述虚拟机的第二权限级别之上,所述第一权限级别对应的第一权限大于所述第二权限级别对应的第二权限,所述模拟器包括:以半虚拟化形式运行在所述模拟器之上的内核;
所述模拟器接收所述虚拟机监视器返回的调用结果,其中,所述虚拟机监视器根据所述调用请求调用对应设备,并将调用结果返回至所述模拟器;
其中,模拟器向虚拟机监视器发送第一权限的调用请求,包括:所述模拟器中的内核向所述虚拟机监视器发送第一权限的指令,其中,所述虚拟机监视器根据所述指令进行对应的调用。
13.根据权利要求12所述的方法,其中,所述模拟器包括:以半虚拟化形式运行在所述模拟器之上的第一图像处理器,模拟器向虚拟机监视器发送第一权限的调用请求,包括:
所述模拟器中的第一图像处理器向所述虚拟机监视器发送渲染请求,其中,所述虚拟机监视器根据所述渲染请求在实体的第二图像处理器上进行渲染。
14.根据权利要求13所述的方法,其中,所述调用结果包括所述第二图像处理器对所述渲染请求进行渲染得到渲染结果后,对渲染结果进行编码得到的编码结果,在所述模拟器接收所述虚拟机监视器返回的调用结果之后,所述方法包括:
所述模拟器将所述编码结果发送至所述调用请求对应的终端。
15.一种虚拟机的数据处理方法,包括:
虚拟机监视器接收模拟器发送的第一权限的调用请求,其中,虚拟机监视器以半虚拟化的方式运行在虚拟机的第一权限级别之上,所述虚拟机运行在公有云上,所述模拟器以半虚拟化的方式通过所述虚拟机监视器的控制运行在所述虚拟机的第二权限级别之上,所述第一权限级别对应的第一权限大于所述第二权限级别对应的第二权限,所述模拟器包括:以半虚拟化形式运行在所述模拟器之上的内核,所述调用请求包括所述内核发送的第一权限的指令;
所述虚拟机监视器根据所述调用请求调用对应设备,并将调用结果返回至所述模拟器;
所述虚拟机监视器根据所述调用请求调用对应设备,并将调用结果返回至所述模拟器,包括:所述虚拟机监视器根据所述指令进行对应的调用,并将调用结果返回至所述内核。
16.根据权利要求15所述的方法,其中,所述模拟器包括:以半虚拟化形式运行在所述模拟器之上的第一图像处理器,所述调用请求包括所述第一图像处理器发送的渲染请求,所述虚拟机监视器根据所述调用请求调用对应设备,并将调用结果返回至所述模拟器,包括:
所述虚拟机监视器将所述渲染请求发送至实体的第二图像处理器,由所述第二图像处理器根据所述渲染请求进行渲染得到渲染结果,并对所述渲染结果进行编码,得到编码结果;
所述虚拟机监视器将所述编码结果返回至所述模拟器。
17.一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如下步骤:
模拟器向虚拟机监视器发送第一权限的调用请求,其中,虚拟机监视器以半虚拟化的方式运行在虚拟机的第一权限级别之上,所述虚拟机运行在公有云上,所述模拟器以半虚拟化的方式通过所述虚拟机监视器的控制运行在所述虚拟机的第二权限级别之上,所述第一权限级别对应的第一权限大于所述第二权限级别对应的第二权限,所述模拟器包括:以半虚拟化形式运行在所述模拟器之上的内核;
所述模拟器接收所述虚拟机监视器返回的调用结果,其中,所述虚拟机监视器根据所述调用请求调用对应设备,并将调用结果返回至所述模拟器;
其中,模拟器向虚拟机监视器发送第一权限的调用请求,包括:所述模拟器中的内核向所述虚拟机监视器发送第一权限的指令,其中,所述虚拟机监视器根据所述指令进行对应的调用。
18.一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行如下步骤:
模拟器向虚拟机监视器发送第一权限的调用请求,其中,虚拟机监视器以半虚拟化的方式运行在虚拟机的第一权限级别之上,所述虚拟机运行在公有云上,所述模拟器以半虚拟化的方式通过所述虚拟机监视器的控制运行在所述虚拟机的第二权限级别之上,所述第一权限级别对应的第一权限大于所述第二权限级别对应的第二权限,所述模拟器包括:以半虚拟化形式运行在所述模拟器之上的内核;
所述模拟器接收所述虚拟机监视器返回的调用结果,其中,所述虚拟机监视器根据所述调用请求调用对应设备,并将调用结果返回至所述模拟器;
其中,模拟器向虚拟机监视器发送第一权限的调用请求,包括:所述模拟器中的内核向所述虚拟机监视器发送第一权限的指令,其中,所述虚拟机监视器根据所述指令进行对应的调用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010214474.1A CN113448677B (zh) | 2020-03-24 | 2020-03-24 | 虚拟机的数据处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010214474.1A CN113448677B (zh) | 2020-03-24 | 2020-03-24 | 虚拟机的数据处理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113448677A CN113448677A (zh) | 2021-09-28 |
CN113448677B true CN113448677B (zh) | 2024-01-23 |
Family
ID=77806564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010214474.1A Active CN113448677B (zh) | 2020-03-24 | 2020-03-24 | 虚拟机的数据处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113448677B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214277A (zh) * | 2010-04-01 | 2011-10-12 | 中国科学院计算技术研究所 | 创建多核处理器虚拟机系统可信环境的方法及装置 |
CN102339229A (zh) * | 2010-07-15 | 2012-02-01 | 戴元顺 | 基于操作系统层的虚拟化方法 |
US8539499B1 (en) * | 2008-02-18 | 2013-09-17 | Parallels IP Holdings GmbH | Symmetric multiprocessing with virtual CPU and VSMP technology |
CN103365702A (zh) * | 2013-07-11 | 2013-10-23 | 中国科学院合肥物质科学研究院 | IaaS云环境下轻量级虚拟机进程追踪系统和方法 |
CN205809860U (zh) * | 2016-06-15 | 2016-12-14 | 成都云祺科技有限公司 | 一种虚拟机备份与恢复系统 |
CN106844007A (zh) * | 2016-12-29 | 2017-06-13 | 中国科学院计算技术研究所 | 一种基于空间复用的虚拟化方法与系统 |
CN106909840A (zh) * | 2015-12-22 | 2017-06-30 | 北京奇虎科技有限公司 | 一种监控操作系统行为的方法及装置 |
CN107659482A (zh) * | 2017-09-30 | 2018-02-02 | 北京奇虎科技有限公司 | 基于虚拟专用网络传输数据的方法及装置 |
-
2020
- 2020-03-24 CN CN202010214474.1A patent/CN113448677B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8539499B1 (en) * | 2008-02-18 | 2013-09-17 | Parallels IP Holdings GmbH | Symmetric multiprocessing with virtual CPU and VSMP technology |
CN102214277A (zh) * | 2010-04-01 | 2011-10-12 | 中国科学院计算技术研究所 | 创建多核处理器虚拟机系统可信环境的方法及装置 |
CN102339229A (zh) * | 2010-07-15 | 2012-02-01 | 戴元顺 | 基于操作系统层的虚拟化方法 |
CN103365702A (zh) * | 2013-07-11 | 2013-10-23 | 中国科学院合肥物质科学研究院 | IaaS云环境下轻量级虚拟机进程追踪系统和方法 |
CN106909840A (zh) * | 2015-12-22 | 2017-06-30 | 北京奇虎科技有限公司 | 一种监控操作系统行为的方法及装置 |
CN205809860U (zh) * | 2016-06-15 | 2016-12-14 | 成都云祺科技有限公司 | 一种虚拟机备份与恢复系统 |
CN106844007A (zh) * | 2016-12-29 | 2017-06-13 | 中国科学院计算技术研究所 | 一种基于空间复用的虚拟化方法与系统 |
CN107659482A (zh) * | 2017-09-30 | 2018-02-02 | 北京奇虎科技有限公司 | 基于虚拟专用网络传输数据的方法及装置 |
Non-Patent Citations (2)
Title |
---|
云计算平台下基于内核的虚拟机使用评估;戴青;魏腾蛟;;科技致富向导(第20期);全文 * |
浅析KVM虚拟化平台的构建;韩文智;;四川职业技术学院学报(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113448677A (zh) | 2021-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10991151B2 (en) | Game rendering method, terminal, and non-transitory computer-readable storage medium | |
CN106797388B (zh) | 跨系统多媒体数据编解码方法、装置、电子设备和计算机程序产品 | |
CN111240631A (zh) | 基于AMD显卡虚拟化传输Linux虚拟机屏幕画面的方法及系统 | |
CN110442450B (zh) | 图像处理设备、方法、装置以及素材计算与渲染的系统 | |
CN109656646B (zh) | 一种远程桌面控制方法、装置、设备及虚拟化芯片 | |
CN108762934B (zh) | 远程图形传输系统、方法及云服务器 | |
CN106959927B (zh) | 获取虚拟机中的逻辑分区的位置信息的方法及装置 | |
CN110458748A (zh) | 数据传输方法、服务器及客户端 | |
CN111209115A (zh) | 云桌面vGPU超分配方法 | |
WO2013113979A1 (en) | Methods and apparatuses for providing application level device transparency via device devirtualization | |
CN113240571A (zh) | 图像处理系统、方法 | |
US10467078B2 (en) | Crash dump extraction of guest failure | |
CN111736943A (zh) | 虚拟机的迁移方法和系统 | |
CN113254129B (zh) | 一种云桌面gpu直通虚拟化重定向管理系统及方法 | |
CN113448677B (zh) | 虚拟机的数据处理方法和系统 | |
CN109542829A (zh) | 多系统中gpu设备的控制方法、装置及电子设备 | |
CN114398018B (zh) | 画面显示方法、装置、存储介质及电子设备 | |
US20180189090A1 (en) | Exposing Hardware Work Queues as Virtual Devices in Virtual Machines | |
CA3069374A1 (en) | View switching | |
CN114756334B (zh) | 服务器与基于服务器的图形渲染方法 | |
CN113326093A (zh) | 数据处理方法、装置、电子设备及计算机可读介质 | |
CN114675914B (zh) | 虚拟桌面的图像传输方法、装置、电子设备及存储介质 | |
CN110968393B (zh) | 虚拟机的迁移处理方法、存储介质、计算设备 | |
CN112116852B (zh) | 远程实验方法、装置及终端设备 | |
CN113051032A (zh) | 应用画面处理方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40062495 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |