CN107077377A - 一种设备虚拟化方法、装置、***及电子设备、计算机程序产品 - Google Patents
一种设备虚拟化方法、装置、***及电子设备、计算机程序产品 Download PDFInfo
- Publication number
- CN107077377A CN107077377A CN201680002834.3A CN201680002834A CN107077377A CN 107077377 A CN107077377 A CN 107077377A CN 201680002834 A CN201680002834 A CN 201680002834A CN 107077377 A CN107077377 A CN 107077377A
- Authority
- CN
- China
- Prior art keywords
- operating system
- shared drive
- memory block
- physical equipment
- instruction
- 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.)
- Granted
Links
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
-
- 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/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Multi Processors (AREA)
Abstract
本申请实施例中提供了一种设备虚拟化方法、装置、***及电子设备、计算机程序产品,该方法包括:在第一操作***处创建共享内存,并将该共享内存映射为第二操作***的外设部件互连标准PCI设备内存空间;其中,该共享内存对应于一物理设备;在第二操作***处接收物理设备的应用接口API操作指令,并根据API操作指令,确定对应的处理指令;将处理指令通过共享内存传递至第一操作***;在第一操作***处执行处理指令,并将处理结果作为API操作指令的响应或者经共享内存返回给第二操作***。采用本申请中的方案,能够减少虚拟化过程中的***延时,提高***性能。
Description
技术领域
本申请涉及计算机技术,具体地,涉及一种设备虚拟化方法、装置、***及电子设备、计算机程序产品。
背景技术
图1中示出了基于Qemu/KVM(Kernel-based Virtual Machine,基于内核的虚拟机)技术的虚拟化架构。
如图1所示,基于Qemu/KVM技术的虚拟化架构由一个主Host操作***,一个或多个虚拟出来的客Guest操作***组成。Host操作***包括多个Host用户空间程序、Host LinuxKernel,即,Host Linux内核。每个客Guest操作***分别包括用户空间、Guest LinuxKernel、和Qemu。这些操作***运行在同一套硬件处理器芯片上,共享处理器及外设资源。支持虚拟化架构的ARM处理器至少包含EL2,EL1,EL0三种模式,EL2模式下运行虚拟机管理器Hypervisor程序;EL1模式下运行Linux内核程序,即,Linux kernel程序;EL0模式下运行用户空间程序。Hypervisor层管理CPU、内存、定时器、中断等硬件资源,并通过中央处理器CPU、内存、定时器、中断的虚拟化资源,可以把不同的操作***分时加载到物理处理器上运行,从而实现***虚拟化的功能。
KVM/Hypervisor跨越Host Linux kernel和Hypervisor两层,一方面为模拟处理器Qemu提供驱动节点,即,允许Qemu通过KVM节点创建虚拟CPU,并管理虚拟化资源;另一方面KVM/Hypervisor还可以把Host Linux***从物理CPU上切换出去,然后把Guest Linux***加载到物理处理器上运行,并处理Guest Linux***异常退出的后续事务。
Qemu作为Host Linux的一个应用运行,为Guest Linux的运行提供虚拟的物理设备资源,通过KVM/Hypervisor模块的设备KVM节点,创建虚拟CPU,分配物理设备资源,实现把一个未经修改的Guest Linux加载到物理处理器上去运行。
当Guest Linux需要访问物理设备时,比如GPU(Graphics Processing Unit,图形处理器)设备、多媒体设备、摄像设备等,需要对这些物理设备进行本地虚拟化,目前通常通过Qemu转接去调用Host Linux kernel的驱动节点;具体地,这些物理设备提供了较多数量的API(Application Programming Interface,应用程序编程接口)函数,可以通过远程API调用实现这些设备的虚拟化,具体地,可以从Host与Guest***软件架构层次中选择合适的层进行API转接。例如,对于Android***,Guest Android可以选择从HAL(Hard AbstractLayer,硬件抽象层)进行API转接;并在Host Linux用户空间实现一个后端服务器BackendServer,最终使Guest***能够通过Host***来实现API函数的远程调用。
跨***API远程调用主要涉及到函数参数的传递、运行结果的返回、函数的执行时间以及同步。图2中示出了现有技术中跨***API远程调用的***架构。如图2所示,一个API的调用经由Guest Android***发起,经HAL层、Guest Linux Kernel、Qemu、到达HostBackend server、然后调用Host Linux kernel驱动程序实现对物理设备的访问。对于性能要求较高的物理设备,比如GPU设备、多媒体设备、摄像设备等,上述软件架构很难达到理想的性能要求。
发明内容
本申请实施例中提供了一种设备虚拟化方法、装置、***及电子设备、计算机程序产品,主要用于解决现有技术中的设备虚拟化方法性能较差的问题。
根据本申请实施例的第一个方面,提供了一种设备虚拟化方法,包括:在第一操作***处创建共享内存,并将该共享内存映射为第二操作***的外设部件互连标准PCI设备内存空间;其中,该共享内存对应于一物理设备;在第二操作***处接收物理设备的应用接口API操作指令,并根据API操作指令,确定对应的处理指令;将处理指令通过共享内存传递至第一操作***;在第一操作***处执行处理指令,并将处理结果作为API操作指令的响应或者经共享内存返回给第二操作***。
根据本申请实施例的第二个方面,提供了一种设备虚拟化装置,包括:共享内存创建模块,用于在第一操作***处创建共享内存,并将该共享内存映射为第二操作***的外设部件互连标准PCI设备内存空间;其中,该共享内存对应于一物理设备;接收模块,用于在第二操作***处接收物理设备的应用接口API操作指令,并根据API操作指令,确定对应的处理指令;发送模块,用于将处理指令通过共享内存传递至第一操作***;处理模块,用于在第一操作***处执行处理指令,并将处理结果作为API操作指令的响应或者经共享内存返回给第二操作***。
根据本申请实施例的第三个方面,提供了一种电子设备,包括:显示器,存储器,一个或多个处理器;以及一个或多个模块,该一个或多个模块被存储在存储器中,并被配置成由该一个或多个处理器执行,该一个或多个模块包括用于执行根据本申请实施例的第一个方面的虚拟方法中各个步骤的指令。
根据本申请实施例的第四个方面,提供了一种计算机程序产品,该计算机程序产品对用于执行一种过程的指令进行编码,该过程包括根据本申请实施例的第一个方面的虚拟方法。
采用根据本申请实施例的设备虚拟化方法、装置、***及电子设备、计算机程序产品,通过在第一操作***和第二操作***之间创建共享内存,然后通过该共享内存实现物理设备的虚拟化,由于第一操作***和第二操作***通过该共享内存转接API调用,从而减少了虚拟化过程中的***延时,提高了***性能。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1中示出了基于Qemu/KVM技术的虚拟化架构示意图;
图2中示出了现有技术中跨***API远程调用的***架构;
图3示出了用于实施本申请实施例中设备虚拟化方法的一种***架构;
图4示出了根据本申请实施例一的设备虚拟化方法的流程图;
图5示出了根据本申请实施例二的设备虚拟化方法的流程图;
图6示出了根据本申请实施例三的设备虚拟化装置的结构示意图;
图7示出了根据本申请实施例四的设备虚拟化***的结构示意图;
图8示出了根据本申请实施例五的电子设备的结构示意图。
具体实施方式
在实现本申请的过程中,发明人发现,现有技术中采用如图2所示的虚拟化流程,从Guest用户空间程序、到HAL、再到Guest Linux Kernel层的***调用、从Qemu到后端服务器Backend server的进程切换、每一环节都要消耗处理器时间,而且一次远程API的调用需要多次参数的传递,还可能是数据量相当大的参数,所以虚拟化后的操作***在调用这些设备时,***延时会大大增加,性能比Host***下降好几倍。
针对上述问题,本申请实施例中提供了一种设备虚拟化方法、装置、***及电子设备、计算机程序产品,通过在第一操作***和第二操作***之间创建共享内存,然后通过该共享内存实现物理设备的虚拟化,由于第一操作***和第二操作***通过该共享内存转接API调用,从而减少了虚拟化过程中的***延时,提高了***性能。
本申请实施例中的方案可以应用于各种场景中,例如,采用基于Qemu/KVM技术的虚拟化架构的智能终端、安卓模拟器、服务器虚拟化平台等。
本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java等。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例一
图3示出了用于实施本申请实施例中设备虚拟化方法的一种***架构。如图3所示,根据本申请实施例的设备虚拟化***包括第一操作***301、第二操作***302、多块共享内存303a、303b、303c、以及多个物理设备304a、304b、304c。具体地,该第一操作***可以是Host操作***;该第二操作***可以是Guest操作***。应当理解,在具体实施时,该第一操作***也可以是Guest操作***,该第二操作也可以是Host操作***,本申请对此不作限制。
接下来,将对第一操作***为Host操作***,第二操作***为Guest操作***为例,对本申请的具体实施方式进行详细介绍。
具体地,Guest操作***302中可以包括用户空间3021、Guest Linux Kernel3022、和模拟处理器Qemu 3023;在Guest操作***的用户空间中可以提供有虚拟的多种物理设备或模块的接口,具体地,该多种接口可以包括图形程序接口、多媒体程序接口、摄像程序接口等;更具体地,例如,该图形程序接口可以是OpenGL(Open Graphics Library,开放图形库)API接口、Direct 3D、Quick Draw 3D等图形程序接口,该多媒体/视频程序接口可以是OpenMAX(Open Media Acceleration,开放多媒体加速层)接口等,本申请对此不作限制。
具体地,Host操作***301中可以包括用户空间3011和Host Linux Kernel3012;在Host操作***的用户空间中可以提供对应于Guest操作***中的各接口的后端服务器Backend Server。例如,Guest操作***中的图形程序接口为OpenGL API时,后端服务器可以是OpenGL Backend Server;后端服务器可以通过Host Linux Kernel中的GPU驱动程序去操作GPU设备;Guest操作***中的多媒体/视频程序接口为OpenMAX API时,后端服务器可以是OpenMAX Backend Server;后端服务器可以通过Host Linux Kernel中的多媒体/视频驱动程序去操作相应的多媒体/视频设备。
在具体实施时,共享内存303a、303b、303c是Guest操作***和Host操作***均可见的多块内存;并且该内存对于Guest操作***和Host操作***均处于可读和可写状态,即,Guest操作***和Host操作***均可以在共享内存上执行读和写操作。
在具体实施时,共享内存的数量可以对应于实现虚拟化的物理设备;即,一个物理设备对应一块共享内存。例如,GPU设备对应于共享内存303a、多媒体设备对应于共享内存303b、摄像设备对应于共享内存303c等。
在具体实施时,各共享内存的大小可以由开发人员设置,并适配于各自对应的物理设备。例如,GPU设备对应的共享内存可以设置为128M;多媒体设备对应的共享内存可以设置为64M;摄像设备对应的共享内存可以设置为64M等,本申请对此均不作限制。
接下来,将以GPU设备对应的共享内存303a为例,对本申请实施例中的共享内存的划分进行详细描述。
在具体实施时,该共享内存303a可以仅包括第一存储区3031;也可以划分为第一存储区3031和第二存储区3032。具体地,该第一存储区也可以称为私有内存;该第二存储区也可以称为公共内存。在具体实施时,第一存储区和第二存储区的划分没有特定规则,可以是根据第一存储区和第二存储区各自通常存储的数据大小、依据设计人员的经验划分;也可以根据其他预先设置的策略来划分,本申请对此不作限制。
具体地,第一存储区可以用于Guest操作***的各个线程与Backend Server线程之间的函数和参数、和/或同步信息的传输;具体地,该私有内存还可以进一步被划分为多个块,一个块定义为一个通道,一个通道对应于Guest操作***的一个线程;在具体划分时,该通道的数量可以是由开发人员预设的;在具体划分时,该多个块可以是平均划分的、尺寸大小相等的块,也可以是根据***中常用线程调用GPU的函数和参数、和/或同步信息的大小来智能划分,本申请对此不作限制。在具体实施时,Guest操作***的用户程序可以对私有内存中的通道进行动态管理,即,用户程序可以随时对私有内存中的通道进行分配、重新分配及释放操作。
具体地,第二存储区可以用于Guest操作***的所有线程与Backend Server线程之间的大数据块,例如,图形内容数据的传输。在具体实施时,可以将公共内存划分为若干个尺寸大小不相等的大块,具体地,该块的数量可以是由开发人员预设的。具体地,Guest操作***中的用户程序可以对公共内存中的块进行管理,即,用户程序可以随时对公共内存中的通道进行分配、及释放操作,且每次分配和释放都是按整个块处理的。
在具体实施时,公共内存中块的大小可以适配于常用的GPU图形处理数据。例如,研发人员发现,在GPU虚拟化过程中,通常第一操作***将2M至16M左右的图形内容数据传输至第二操作***就能够满足GPU图形虚拟化处理的需求;而在因此,在分配公共内存中块的大小时,可以将公共内存分隔为2M,4M,8M,16M等多个内存块。
举例来说,如果总公共内存大小为32M,分隔为2M,2M,4M,8M,16M5个内存块,用户程序申请3M空间时,可以直接把4M的内存块区分配给相应的线程,并在该线程释放时置一个空闲标志给4M块区。
在具体实施时,物理设备304a、304b、304c可以是未集成至中央处理器CPU上的物理设备;更优选地,可以是具有高吞吐量的物理设备,例如,GPU设备、多媒体设备、摄像设备等。
应当理解,为了示例的目的,图3中仅示出了一个Guest操作***、一个Host操作***、三个共享内存以及三个物理设备的情况;但在具体实施时,可以是一个或多个Guest操作***,也可以是一个或多个Host操作***,还可以是其他数量的共享内存,以及其他数量的物理设备;即,对于Guest操作***、Host操作***、共享内存以及物理设备可以为任意的数量,本申请对此均不作限制。
应当理解,为了示例的目的,图3中示出的共享内存包括私有内存和公共内存两个存储区;并且将私有内存划分为3个大小相等的通道;公共内存被划分为4个大小不等的通道。在具体实施时,共享内存可以是仅包括私有内存一个存储区;并且私有内存可以不进行划分、或者划分为多个大小不等的通道;公共内存可以不存在,也可以被划分为多个大小相等的通道等,本申请对此均不作限制。
接下来,将结合图3所示***架构对根据本申请实施例的设备虚拟化方法进行描述。
图4示出了根据本申请实施例一的设备虚拟化方法的流程图。在本申请实施例中,以将一个Guest操作***,一个Host操作***,一个GPU设备,一块对应于GPU设备的共享内存为例,对GPU设备的设备虚拟化方法进行详细描述。如图4所示,根据本申请实施例的设备虚拟化方法包括以下步骤:
S401,在Guest***对应的Qemu启动时,创建GPU设备对应的共享内存。
具体地,Qemu可以通过***调用来创建对应的共享内存。
具体地,可以从内存中划分一块特定的地址空间作为GPU设备的共享内存。该共享内存的大小可以可以由开发人员设置,并适配于各自对应的物理设备。例如,GPU设备对应的共享内存可以设置为128M;多媒体设备对应的共享内存可以设置为64M;摄像设备对应的共享内存可以设置为64M等,本申请对此均不作限制。
应当理解,当有多个Guest***时,可以由每个Guest***的Qemu为各物理设备重新创建一块共享内存,也可以是该多个Guest***共享一块物理设备对应的共享内存;还可以针对不同的物理设备采用不同的方案,比如对于GPU设备;各个Guest***采用独立的共享内存,而对于多媒体设备,各个Guest***共享一块共享内存;本申请对此均不作限制。
S402,Qemu进一步将该共享内存映射为Guest***的PCI(Peripheral ComponentInterconnect,外设部件互连标准)设备内存空间;并为Guest***提供虚拟的PCI寄存器作为PCI配置空间。
S403,Guest Linux Kernel将该共享内存划分为私有内存和公共内存。
具体地,Guest Linux Kernel可以在对GPU设备初始化时对共享内存进行划分;以使共享内存支持多个进程或线程的访问。
具体地,可以将私有内存,即,第一存储区划分为第一预设数量的多个通道;可以将公共内存,即,第二存储区划分为第二预设数量的多个块。具体的,该第一预设数量和第二预设数量可以由开发人员设置。
具体地,该私有内存的多个通道的大小可以相等;该公共内存的多个块的大小可以适配于该共享内存对应的物理设备的处理数据。
S404,在前端线程启动时,为该前端线程、以及对应的后端线程分配相应的共享内存地址空间。
在具体实施时,当接收到API调用指令时,可以创建与该API调用指令对应的前端线程,即,第一线程。并将API调用指令对应的线程创建指令发送到Host操作***,以触发Host操作***创建相应的后端线程,即,第二线程。
在具体实施时,用户可以针对Guest操作***中的某一线程执行用户操作,例如,用户可以在微信、QQ等线程中,执行打开一个新窗口,打一个新页面等、播放多媒体/视频等的操作。
在具体实施时,当接收到用户操作时,线程会根据用户操作产生一个API调用指令调用对应的前端线程,例如,当用户执行的是打开一个新窗口,打一个新页面等的操作时,可以调用对应的图形处理接口,当用户执行的是播放多媒体/视频等操作时,可以调用对应的多媒体/视频接口等。
具体地,在调用前端线程时,通常还会触发Host操作***创建与该前端线程相对应的后端线程。具体地,如果Guest***调用的是图形程序处理接口,那么会在Host操作***中的图形处理后台服务器中创建一对应的后端线程;如果用户调用的是多媒体程序处理接口,那么会在Host操作***中的多媒体处理后台服务器中创建一对应的后端线程。
在具体实施时,可以在前端线程启动时,从Guest Linux Kernel处获取该前端线程对应的私有内存通道的地址空间、以及分配给该前端线程的公共内存地址空间;并将该前端线程对应的私有内存通道的地址空间、以及分配给该前端线程的公共内存地址空间映射为该前端线程的地址空间;从而与Qemu建立同步控制通道。具体地,通常将私有内存中的某一通道分配给该前端线程,并将公共内存整个分配给该前端线程。
接下来,可以将该前端线程对应的私有内存通道的地址空间、以及公共内存的地址空间通过PCI配置空间传递给Qemu;然后Qemu通过进程间通信机制把前端线程对应的私有内存通道的地址空间、以及公共内存的地址空间发送给后端服务器;并将其映射为该后端线程的地址空间。
至此,就完成了前端线程与后端线程之间共享内存的初始化。
S405,在前端线程和对应的后端线程之间,通过该共享内存实现物理设备的虚拟化。
在具体实施时,当在Guest用户空间的前端线程处接收到针对GPU设备的API操作指令时,可以根据该API操作指令,确定对应的处理指令;并将该处理指令通过该共享内存传递至Host***中的Backend Server中的后端线程;然后在后端线程处执行处理指令,并将处理结果作为该API调用指令的响应或者经共享内存返回给前端线程。
具体地,将该处理指令通过该共享内存传递至Host***中的Backend Server中的后端线程可以采用以下多种方式实现:
在第一种具体实施方式中,当处理指令包括API调用函数和参数时;前端线程可以将函数和参数写入对应的私有内存通道;并将函数和参数所在的偏移地址,发送给后端线程;触发后端线程根据该偏移地址去共享内存中该获取处理指令。具体地,可以通过Qemu将偏移地址发送到Host操作***的后端服务器,再由后端服务器同步至后端线程。
在第二种具体实施方式中,当处理指令包括API调用函数、参数和同步信息时;前端线程可以将函数、参数和同步信息写入对应的私有内存通道;并将函数和参数所在的偏移地址,发送给后端线程;触发后端线程根据该偏移地址去共享内存中该获取处理指令。具体地,可以通过Qemu将偏移地址发送到Host操作***的后端服务器,再由后端服务器同步至后端线程。
在第三种具体实施方式中,当处理指令包括API调用函数、参数和图形内容数据时;前端线程可以将函数、参数写入对应的私有内存通道;并将图形内容数据写入公共内存;并将处理指令所在的共享内存的偏移地址,发送给后端线程;触发后端线程根据该偏移地址去共享内存中该获取处理指令。具体地,可以通过Qemu将偏移地址发送到Host操作***的后端服务器,再由后端服务器同步至后端线程。
在第四种具体实施方式中,当处理指令包括API调用函数、参数、同步信息和图形内容数据时;前端线程可以将函数、参数、同步信息写入对应的私有内存通道;并将图形内容数据写入公共内存;并将处理指令所在的共享内存的偏移地址,发送给后端线程;触发后端线程根据该偏移地址去共享内存中该获取处理指令。具体地,可以通过Qemu将偏移地址发送到Host操作***的后端服务器,再由后端服务器同步至后端线程。
在具体实施时,从前端线程至后端线程的切换,以及第一操作***和第二操作***之间的切换均采用本领域技术人员的常用技术手段,本申请对此不作赘述。
在具体实施时,后端线程驱动相应的物理设备/模块执行相应的处理指令,并得到处理结果。
在具体实施时,后端线程可以将该处理结果直接作为应用接口调用指令的响应反馈给用户,也可以将该处理结果返回给前端线程,由前端线程进行响应。
至此,实现了Guest操作***中用户程序对物理设备的远程调用;即,实现了物理设备的虚拟化。
采用本申请实施例中的设备虚拟化方法,通过在第一操作***和第二操作***之间创建共享内存,然后通过该共享内存实现物理设备的虚拟化,由于第一操作***和第二操作***通过该共享内存转接API调用,从而减少了虚拟化过程中的***延时,提高了***性能。
实施例二
接下来,将结合图3所示***架构对根据本申请实施例二的设备虚拟化方法进行描述。
图5示出了根据本申请实施例二的设备虚拟化方法的流程图。在本申请实施例中,将一个Guest操作***,一个Host操作***,三个物理设备:GPU设备、多媒体设备、摄像设备为例,对多个物理设备的设备虚拟化方法进行详细描述。如图5所示,根据本申请实施例的设备虚拟化方法包括以下步骤:
S501,在Guest***对应的Qemu启动时,分别创建GPU设备、多媒体设备、摄像设备各自对应的共享内存。
在具体实施时,多媒体设备、摄像设备各自对应的共享内存的创建过程可以参考本申请实施例一中S401中GPU设备对应的共享内存的创建过程,在此不重复赘述。
S502,Qemu进一步将各共享内存分别映射为Guest***的PCI设备内存空间;并为Guest***提供对应数量的虚拟PCI寄存器作为PCI配置空间。
在具体实施时,该虚拟PCI寄存器的数量对应于共享内存的数量,且各自一一对应。
S503,Guest Linux Kernel将该多个共享内存分别划分为私有内存和公共内存。
在具体实施时,本步骤的实施可以参考本申请实施例一中S403的实施,在此不重复赘述。
S504,在前端线程启动时,根据调用前端线程的API调用指令,确定该前端线程对应的共享内存,并为该前端线程、以及对应的后端线程分配相应的共享内存地址空间。
具体地,可以根据调用前端线程的API调用指令,确定API调用指令对应的物理设备,并根据物理设备确定对应的共享内存。具体地,如果调用前端线程的API调用指令是OpenGL接口调用指令;则可以确定对应的物理设备是GPU设备,那么可以确定该前端线程对应的共享内存是物理设备对应的共享内存,例如,可以是303a;如果调用前端线程的API调用指令是OpenMAX接口调用指令;则可以确定对应的物理设备是多媒体设备,那么可以确定该前端线程对应的共享内存是多媒体设备对应的共享内存,例如,可以是303b;如果调用前端线程的API调用指令是Camera接口调用指令;则可以确定对应的物理设备是摄像设备,那么可以确定该前端线程对应的共享内存是摄像设备对应的共享内存,例如,可以是303c。
在具体实施时,本步骤中为该前端线程、以及对应的后端线程分配相应的共享内存地址空间的实施可以参考本申请实施例一中S404的实施,在此不重复赘述。
S505,在前端线程和对应的后端线程之间,通过该共享内存实现物理设备的虚拟化。
在具体实施时,本步骤的实施可以参考本申请实施例一中S405的实施,在此不重复赘述。
至此,实现了Guest操作***中用户程序对多个物理设备的远程调用;即,实现了多个物理设备的虚拟化。
采用本申请实施例中的设备虚拟化方法,通过在第一操作***和第二操作***之间创建共享内存,然后通过该共享内存实现物理设备的虚拟化,由于第一操作***和第二操作***通过该共享内存转接API调用,从而减少了虚拟化过程中的***延时,提高了***性能。
基于同一发明构思,本申请实施例中还提供了一种设备虚拟化装置,由于该装置解决问题的原理与本申请实施例一和二所提供的设备虚拟化方法的相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
实施例三
图6示出了根据本申请实施例三的设备虚拟化装置的结构示意图。
如图6所示,根据本申请实施例三的设备虚拟化装置600包括:共享内存创建模块601,用于在第一操作***处创建共享内存,并将该共享内存映射为第二操作***的外设部件互连标准PCI设备内存空间;其中,该共享内存对应于一物理设备;接收模块602,用于在该第二操作***处接收该物理设备的应用接口API操作指令,并根据该API操作指令,确定对应的处理指令;发送模块603,用于将该处理指令通过该共享内存传递至第一操作***;处理模块604,用于在第一操作***处执行该处理指令,并将处理结果作为该API操作指令的响应或者经该共享内存返回给该第二操作***。
具体地,共享内存创建模块,具体包括:共享内存创建子模块,用于在第二操作***对应的Qemu启动时,为该物理设备创建共享内存;映射子模块,用于将该共享内存映射为第二操作***的PCI设备内存空间;并为该第二操作***提供虚拟的PCI寄存器作为PCI配置空间。
具体地,该物理设备为多个,共享内存创建模块,具体用于:在第二操作***对应的模拟处理器Qemu启动时,为各物理设备分别创建共享内存;将该多个共享内存分别映射为第二操作***的PCI设备内存空间;并为该第二操作***提供虚拟的多个PCI寄存器作为PCI配置空间,该多个PCI寄存器分别对应于该多个共享内存。
具体地,根据本申请实施例三的设备虚拟化装置还包括:划分模块,用于将该共享内存划分为第一存储区和第二存储区,其中,该第一存储区包括第一预设数量的多个通道;该第二存储区包括第二预设数量的多个块。
具体地,该第一存储区的多个通道的大小相等;该第二存储区的多个块的大小适配于该共享内存对应的物理设备的处理数据。
具体地,该物理设备为多个,该装置还包括:共享内存确定模块,用于根据该API操作指令,确定该API操作指令对应的物理设备,并根据该物理设备确定对应的共享内存。
具体地,根据本申请实施例三的设备虚拟化装置还包括:第一映射模块,用于在第二操作***中,在接收到API调用指令时,创建与该API调用指令对应的第一线程;并将API调用指令对应的线程创建指令发送到第一操作***;并为该第一线程分配在该第一存储区中对应的通道的地址空间、以及对应的该第二存储区的地址空间;将在第一存储区中的通道的地址空间、以及第二存储区的地址空间通过PCI配置空间传递给该第二操作***的Qemu;第二映射模块,用于在第一操作***中,在接收到API调用指令对应的线程创建指令后,创建对应的第二线程;并将在该第一存储区中对应的通道的地址空间、以及对应的该第二存储区的地址空间映射为该第二线程的地址空间;该发送模块,具体用于通过第一线程将处理指令写入第一存储区中对应的通道的地址空间、以及对应的该第二存储区的地址空间中;并将该处理指令在该地址空间中的偏移地址通过Qemu发送到第一操作***;在第一操作***中,将接收到的偏移地址同步给对应的第二线程。
采用本申请实施例中的设备虚拟化装置,通过在第一操作***和第二操作***之间创建共享内存,然后通过该共享内存实现物理设备的虚拟化,由于第一操作***和第二操作***通过该共享内存转接API调用,从而减少了虚拟化过程中的***延时,提高了***性能。
基于同一发明构思,本申请实施例中还提供了一种设备虚拟化***,由于该***解决问题的原理与本申请实施例一和二所提供的设备虚拟化方法相似,因此该***的实施可以参见方法的实施,重复之处不再赘述。
实施例四
图7示出了根据本申请实施例四的设备虚拟化***的结构示意图。
如图7所示,根据本申请实施例四的设备虚拟化***700包括:第二操作***701,用于接收物理设备的应用接口API调用指令,确定该应用接口调用指令对应的处理指令,并将该处理指令经该物理设备对应的共享内存发送至第一操作***702;一个或多个共享内存703,用于在该第一操作***和第二操作***之间传递处理指令;其中,该一个或多个共享内存分别对应于各物理设备;该第一操作***702,用于接收和执行该处理指令,并将处理结果作为该应用接口调用指令的响应或者经该物理设备对应的共享内存返回给该第二操作***。
在具体实施时,第二操作***701的实施可以参见本申请实施例一中第二操作***302的实施,重复之处不再赘述。
在具体实施时,第一操作***702的实施可以参见本申请实施例一中第一操作***301的实施,重复之处不再赘述。
在具体实施时,共享内存703的实施可以参见本申请实施例一中共享内存303a、303b、303c的实施,重复之处不再赘述。
具体地,该第一操作***可以为客Guest操作***,该第二操作***可以为主Host操作***。
采用本申请实施例中的设备虚拟化***,通过在第一操作***和第二操作***之间创建共享内存,然后通过该共享内存实现物理设备的虚拟化,由于第一操作***和第二操作***通过该共享内存转接API调用,从而减少了虚拟化过程中的***延时,提高了***性能。
实施例五
基于同一发明构思,本申请实施例中还提供了如图8所示的一种电子设备800。
如图8所示,根据本申请实施例五的电子设备800包括:显示器801,存储器802,处理器803;总线804;以及一个或多个模块,该一个或多个模块被存储在该存储器中,并被配置成由该一个或多个处理器执行,该一个或多个模块包括用于执行根据本申请实施例一或实施例二中任一方法中各个步骤的指令。
基于同一发明构思,本申请实施例中还提供了一种可以与包括显示器的电子设备800结合使用的计算机程序产品,该计算机程序产品包括计算机可读的存储介质和内嵌于其中的计算机程序机制,该计算机程序机制包括用于执行本申请实施例一或实施例二中任一该方法中各个步骤的指令。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (16)
1.一种设备虚拟化方法,其特征在于,包括:
在第一操作***处创建共享内存,并将所述共享内存映射为第二操作***的外设部件互连标准PCI设备内存空间;其中,所述共享内存对应于一物理设备;
在所述第二操作***处接收所述物理设备的应用接口API操作指令,并根据所述API操作指令,确定对应的处理指令;将所述处理指令通过所述共享内存传递至第一操作***;
在第一操作***处执行所述处理指令,并将处理结果作为所述API操作指令的响应或者经所述共享内存返回给所述第二操作***。
2.根据权利要求1所述的方法,其特征在于,在第一操作***处创建共享内存,并将所述共享内存映射为第二操作***的外设部件互连标准PCI设备内存空间,具体包括:
在第二操作***对应的模拟处理器Qemu启动时,为所述物理设备创建共享内存;
将所述共享内存映射为所述第二操作***的PCI设备内存空间;并为所述第二操作***提供虚拟的PCI寄存器作为PCI配置空间。
3.根据权利要求1所述的方法,其特征在于,所述物理设备为多个,在第一操作***处创建共享内存,并将所述共享内存映射为第二操作***的外设部件互连标准PCI设备内存空间,具体包括:
在第二操作***的对应的Qemu启动时,为各物理设备分别创建共享内存;
将所述多个共享内存分别映射为第二操作***的PCI设备内存空间;并为所述第二操作***提供虚拟的多个PCI寄存器作为PCI配置空间,所述多个PCI寄存器分别对应于所述多个共享内存。
4.根据权利要求1所述的方法,其特征在于,在第一操作***处创建共享内存,并将所述共享内存映射为第二操作***的外设部件互连标准PCI设备内存空间之后,在所述第二操作***处接收所述物理设备的应用接口API操作指令之前,还包括:
将所述共享内存划分为第一存储区和第二存储区,其中,所述第一存储区包括第一预设数量的多个通道;所述第二存储区包括第二预设数量的多个块。
5.根据权利要求4所述的方法,其特征在于,所述第一存储区的多个通道的大小相等;所述第二存储区的多个块的大小适配于所述共享内存对应的物理设备的处理数据。
6.根据权利要求1所述的方法,其特征在于,所述物理设备为多个,将所述处理指令通过所述共享内存传递至第一操作***之前,还包括:
根据所述API操作指令,确定所述API操作指令对应的物理设备,并根据所述物理设备确定对应的共享内存。
7.根据权利要求2所述的方法,其特征在于,在将所述共享内存映射为第二操作***的外设部件互连标准PCI设备内存空间之后,在所述第二操作***处接收所述物理设备的应用接口API操作指令之前,还包括:
在第二操作***中,在接收到API调用指令时,创建与所述API调用指令对应的第一线程;并将API调用指令对应的线程创建指令发送到第一操作***;并为所述第一线程分配在所述第一存储区中对应的通道的地址空间、以及对应的所述第二存储区的地址空间;将在第一存储区中的通道的地址空间、以及第二存储区的地址空间通过PCI配置空间传递给所述第二操作***的Qemu;
在第一操作***中,在接收到API调用指令对应的线程创建指令后,创建对应的第二线程;并将在所述第一存储区中对应的通道的地址空间、以及对应的所述第二存储区的地址空间映射为所述第二线程的地址空间;
将所述处理指令通过所述共享内存传递至第一操作***,具体包括:
通过第一线程将所述处理指令写入所述第一存储区中对应的通道的地址空间、以及对应的所述第二存储区的地址空间中;并将所述处理指令在所述地址空间中的偏移地址通过Qemu发送到第一操作***;在第一操作***中,将接收到的偏移地址同步给对应的第二线程。
8.一种设备虚拟化装置,其特征在于,包括:
共享内存创建模块,用于在第一操作***处创建共享内存,并将所述共享内存映射为第二操作***的外设部件互连标准PCI设备内存空间;其中,所述共享内存对应于一物理设备;
接收模块,用于在所述第二操作***处接收所述物理设备的应用接口API操作指令,并根据所述API操作指令,确定对应的处理指令;
发送模块,用于将所述处理指令通过所述共享内存传递至第一操作***;
处理模块,用于在第一操作***处执行所述处理指令,并将处理结果作为所述API操作指令的响应或者经所述共享内存返回给所述第二操作***。
9.根据权利要求8所述的装置,其特征在于,共享内存创建模块,具体包括:
共享内存创建子模块,用于在第二操作***对应的Qemu启动时,为所述物理设备创建共享内存;
映射子模块,用于将所述共享内存映射为第二操作***的PCI设备内存空间;并为所述第二操作***提供虚拟的PCI寄存器作为PCI配置空间。
10.根据权利要求8所述的装置,其特征在于,所述物理设备为多个,共享内存创建模块,具体用于:
在第二操作***对应的模拟处理器Qemu启动时,为各物理设备分别创建共享内存;
将所述多个共享内存分别映射为第二操作***的PCI设备内存空间;并为所述第二操作***提供虚拟的多个PCI寄存器作为PCI配置空间,所述多个PCI寄存器分别对应于所述多个共享内存。
11.根据权利要求8所述的装置,其特征在于,还包括:
划分模块,用于将所述共享内存划分为第一存储区和第二存储区,其中,所述第一存储区包括第一预设数量的多个通道;所述第二存储区包括第二预设数量的多个块。
12.根据权利要求11所述的装置,其特征在于,所述第一存储区的多个通道的大小相等;所述第二存储区的多个块的大小适配于所述共享内存对应的物理设备的处理数据。
13.根据权利要求8所述的装置,其特征在于,所述物理设备为多个,所述装置还包括:
共享内存确定模块,用于根据所述API操作指令,确定所述API操作指令对应的物理设备,并根据所述物理设备确定对应的共享内存。
14.根据权利要求9所述的装置,其特征在于,还包括:
第一映射模块,用于在第二操作***中,在接收到API调用指令时,创建与所述API调用指令对应的第一线程;并将API调用指令对应的线程创建指令发送到第一操作***;并为所述第一线程分配在所述第一存储区中对应的通道的地址空间、以及对应的所述第二存储区的地址空间;将在第一存储区中的通道的地址空间、以及第二存储区的地址空间通过PCI配置空间传递给所述第二操作***的Qemu;
第二映射模块,用于在第一操作***中,在接收到API调用指令对应的线程创建指令后,创建对应的第二线程;并将在所述第一存储区中对应的通道的地址空间、以及对应的所述第二存储区的地址空间映射为所述第二线程的地址空间;
所述发送模块,具体用于通过第一线程将所述处理指令写入所述第一存储区中对应的通道的地址空间、以及对应的所述第二存储区的地址空间中;并将所述处理指令在所述地址空间中的偏移地址通过Qemu发送到第一操作***;在第一操作***中,将接收到的偏移地址同步给对应的第二线程。
15.一种电子设备,其特征在于,所述电子设备包括:显示器,存储器,一个或多个处理器;以及一个或多个模块,所述一个或多个模块被存储在所述存储器中,并被配置成由所述一个或多个处理器执行,所述一个或多个模块包括用于执行权利要求1-7中任一所述方法中各个步骤的指令。
16.一种计算机程序产品,所述计算机程序产品对用于执行一种过程的指令进行编码,所述过程包括根据权利要求1-7中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/113265 WO2018119952A1 (zh) | 2016-12-29 | 2016-12-29 | 一种设备虚拟化方法、装置、***及电子设备、计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107077377A true CN107077377A (zh) | 2017-08-18 |
CN107077377B CN107077377B (zh) | 2020-08-04 |
Family
ID=59623873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680002834.3A Active CN107077377B (zh) | 2016-12-29 | 2016-12-29 | 一种设备虚拟化方法、装置、***及电子设备、计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107077377B (zh) |
WO (1) | WO2018119952A1 (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107741863A (zh) * | 2017-10-08 | 2018-02-27 | 深圳市星策网络科技有限公司 | 一种显卡的驱动方法和装置 |
CN108124475A (zh) * | 2017-12-29 | 2018-06-05 | 深圳前海达闼云端智能科技有限公司 | 虚拟***蓝牙通信方法及装置、虚拟***、存储介质及电子设备 |
CN108932213A (zh) * | 2017-10-10 | 2018-12-04 | 北京猎户星空科技有限公司 | 多操作***间的通讯方法、装置、电子设备和存储介质 |
CN109343922A (zh) * | 2018-09-17 | 2019-02-15 | 广东微云科技股份有限公司 | 一种gpu虚拟化画面显示的方法及装置 |
WO2019072182A1 (zh) * | 2017-10-13 | 2019-04-18 | 阿里巴巴集团控股有限公司 | 硬件抽象层复用方法、装置、操作***和设备 |
CN109725867A (zh) * | 2019-01-04 | 2019-05-07 | 中科创达软件股份有限公司 | 虚拟化屏幕共享方法、装置及电子设备 |
WO2019127191A1 (zh) * | 2017-12-28 | 2019-07-04 | 深圳前海达闼云端智能科技有限公司 | 一种多操作***共享文件***的方法、装置和电子设备 |
CN110442389A (zh) * | 2019-08-07 | 2019-11-12 | 北京技德***技术有限公司 | 一种多桌面环境共享使用gpu的方法 |
CN111510780A (zh) * | 2020-04-10 | 2020-08-07 | 广州华多网络科技有限公司 | 视频直播控制、桥接、流控、播控方法及客户端 |
CN111522670A (zh) * | 2020-05-09 | 2020-08-11 | 中瓴智行(成都)科技有限公司 | 一种用于Android***的GPU虚拟化方法、***及介质 |
CN112015605A (zh) * | 2020-07-28 | 2020-12-01 | 深圳市金泰克半导体有限公司 | 内存的测试方法、装置、计算机设备和存储介质 |
CN112131146A (zh) * | 2019-06-24 | 2020-12-25 | 维塔科技(北京)有限公司 | 获取设备信息的方法、装置、存储介质及电子设备 |
CN112764872A (zh) * | 2021-04-06 | 2021-05-07 | 阿里云计算有限公司 | 计算机设备、虚拟化加速设备、远程控制方法及存储介质 |
CN113379589A (zh) * | 2021-07-06 | 2021-09-10 | 湖北亿咖通科技有限公司 | 双***的图形处理方法、装置及终端 |
CN113805952A (zh) * | 2021-09-17 | 2021-12-17 | 中国联合网络通信集团有限公司 | 外设虚拟化管理方法、服务器和*** |
CN114047960A (zh) * | 2021-11-10 | 2022-02-15 | 北京鲸鲮信息***技术有限公司 | 操作***运行方法及装置、电子设备和存储介质 |
CN114327944A (zh) * | 2021-12-24 | 2022-04-12 | 科东(广州)软件科技有限公司 | 一种多***共享内存的方法、装置、设备及存储介质 |
CN114816417A (zh) * | 2022-04-18 | 2022-07-29 | 北京凝思软件股份有限公司 | 一种交叉编译方法、装置、计算设备及存储介质 |
WO2022194156A1 (zh) * | 2021-03-16 | 2022-09-22 | 华为技术有限公司 | 分布式的访问控制方法、相关装置及*** |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860506B (zh) * | 2019-11-28 | 2024-05-17 | 阿里巴巴集团控股有限公司 | 监控数据的处理方法、装置、***和存储介质 |
CN112685197B (zh) * | 2020-12-28 | 2022-08-23 | 浪潮软件科技有限公司 | 接口数据的交互*** |
CN114661497B (zh) * | 2022-03-31 | 2023-01-10 | 慧之安信息技术股份有限公司 | 操作***分区共享内存方法和*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477511A (zh) * | 2008-12-31 | 2009-07-08 | 杭州华三通信技术有限公司 | 一种实现多操作***共享存储介质的方法和装置 |
CN101847105A (zh) * | 2009-03-26 | 2010-09-29 | 联想(北京)有限公司 | 一种计算机及多操作***共享内存的方法 |
US20110264841A1 (en) * | 2010-04-26 | 2011-10-27 | International Business Machines Corporation | Sharing of class data among virtual machine applications running on guests in virtualized environment using memory management facility |
CN103077071A (zh) * | 2012-12-31 | 2013-05-01 | 北京启明星辰信息技术股份有限公司 | 一种kvm虚拟机进程信息的获取方法及*** |
CN104216862A (zh) * | 2013-05-29 | 2014-12-17 | 华为技术有限公司 | 一种用户进程与***服务之间的通信方法、装置 |
CN102541618B (zh) * | 2010-12-29 | 2015-05-27 | ***通信集团公司 | 一种通用图形处理器虚拟化的实现方法、***及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661381B (zh) * | 2009-09-08 | 2012-05-30 | 华南理工大学 | 一种基于Xen的数据共享与访问控制方法 |
CN102262557B (zh) * | 2010-05-25 | 2015-01-21 | 运软网络科技(上海)有限公司 | 通过总线架构构建虚拟机监控器的方法及性能服务框架 |
-
2016
- 2016-12-29 CN CN201680002834.3A patent/CN107077377B/zh active Active
- 2016-12-29 WO PCT/CN2016/113265 patent/WO2018119952A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477511A (zh) * | 2008-12-31 | 2009-07-08 | 杭州华三通信技术有限公司 | 一种实现多操作***共享存储介质的方法和装置 |
CN101847105A (zh) * | 2009-03-26 | 2010-09-29 | 联想(北京)有限公司 | 一种计算机及多操作***共享内存的方法 |
US20110264841A1 (en) * | 2010-04-26 | 2011-10-27 | International Business Machines Corporation | Sharing of class data among virtual machine applications running on guests in virtualized environment using memory management facility |
CN102541618B (zh) * | 2010-12-29 | 2015-05-27 | ***通信集团公司 | 一种通用图形处理器虚拟化的实现方法、***及装置 |
CN103077071A (zh) * | 2012-12-31 | 2013-05-01 | 北京启明星辰信息技术股份有限公司 | 一种kvm虚拟机进程信息的获取方法及*** |
CN104216862A (zh) * | 2013-05-29 | 2014-12-17 | 华为技术有限公司 | 一种用户进程与***服务之间的通信方法、装置 |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107741863A (zh) * | 2017-10-08 | 2018-02-27 | 深圳市星策网络科技有限公司 | 一种显卡的驱动方法和装置 |
CN108932213A (zh) * | 2017-10-10 | 2018-12-04 | 北京猎户星空科技有限公司 | 多操作***间的通讯方法、装置、电子设备和存储介质 |
CN109669782A (zh) * | 2017-10-13 | 2019-04-23 | 阿里巴巴集团控股有限公司 | 硬件抽象层复用方法、装置、操作***和设备 |
WO2019072182A1 (zh) * | 2017-10-13 | 2019-04-18 | 阿里巴巴集团控股有限公司 | 硬件抽象层复用方法、装置、操作***和设备 |
WO2019127191A1 (zh) * | 2017-12-28 | 2019-07-04 | 深圳前海达闼云端智能科技有限公司 | 一种多操作***共享文件***的方法、装置和电子设备 |
CN108124475B (zh) * | 2017-12-29 | 2022-05-20 | 达闼机器人股份有限公司 | 虚拟***蓝牙通信方法及装置、虚拟***、存储介质及电子设备 |
CN108124475A (zh) * | 2017-12-29 | 2018-06-05 | 深圳前海达闼云端智能科技有限公司 | 虚拟***蓝牙通信方法及装置、虚拟***、存储介质及电子设备 |
CN109343922A (zh) * | 2018-09-17 | 2019-02-15 | 广东微云科技股份有限公司 | 一种gpu虚拟化画面显示的方法及装置 |
CN109343922B (zh) * | 2018-09-17 | 2022-01-11 | 广东微云科技股份有限公司 | 一种gpu虚拟化画面显示的方法及装置 |
CN109725867A (zh) * | 2019-01-04 | 2019-05-07 | 中科创达软件股份有限公司 | 虚拟化屏幕共享方法、装置及电子设备 |
CN112131146B (zh) * | 2019-06-24 | 2022-07-12 | 维塔科技(北京)有限公司 | 获取设备信息的方法、装置、存储介质及电子设备 |
CN112131146A (zh) * | 2019-06-24 | 2020-12-25 | 维塔科技(北京)有限公司 | 获取设备信息的方法、装置、存储介质及电子设备 |
CN110442389A (zh) * | 2019-08-07 | 2019-11-12 | 北京技德***技术有限公司 | 一种多桌面环境共享使用gpu的方法 |
CN110442389B (zh) * | 2019-08-07 | 2024-01-09 | 北京技德***技术有限公司 | 一种多桌面环境共享使用gpu的方法 |
CN111510780B (zh) * | 2020-04-10 | 2021-10-26 | 广州方硅信息技术有限公司 | 视频直播控制、桥接、流控、播控方法及客户端 |
CN111510780A (zh) * | 2020-04-10 | 2020-08-07 | 广州华多网络科技有限公司 | 视频直播控制、桥接、流控、播控方法及客户端 |
CN111522670A (zh) * | 2020-05-09 | 2020-08-11 | 中瓴智行(成都)科技有限公司 | 一种用于Android***的GPU虚拟化方法、***及介质 |
CN112015605A (zh) * | 2020-07-28 | 2020-12-01 | 深圳市金泰克半导体有限公司 | 内存的测试方法、装置、计算机设备和存储介质 |
CN112015605B (zh) * | 2020-07-28 | 2024-05-14 | 深圳市金泰克半导体有限公司 | 内存的测试方法、装置、计算机设备和存储介质 |
WO2022194156A1 (zh) * | 2021-03-16 | 2022-09-22 | 华为技术有限公司 | 分布式的访问控制方法、相关装置及*** |
CN112764872A (zh) * | 2021-04-06 | 2021-05-07 | 阿里云计算有限公司 | 计算机设备、虚拟化加速设备、远程控制方法及存储介质 |
CN112764872B (zh) * | 2021-04-06 | 2021-07-02 | 阿里云计算有限公司 | 计算机设备、虚拟化加速设备、远程控制方法及存储介质 |
CN113379589A (zh) * | 2021-07-06 | 2021-09-10 | 湖北亿咖通科技有限公司 | 双***的图形处理方法、装置及终端 |
CN113805952B (zh) * | 2021-09-17 | 2023-10-31 | 中国联合网络通信集团有限公司 | 外设虚拟化管理方法、服务器和*** |
CN113805952A (zh) * | 2021-09-17 | 2021-12-17 | 中国联合网络通信集团有限公司 | 外设虚拟化管理方法、服务器和*** |
CN114047960A (zh) * | 2021-11-10 | 2022-02-15 | 北京鲸鲮信息***技术有限公司 | 操作***运行方法及装置、电子设备和存储介质 |
CN114327944A (zh) * | 2021-12-24 | 2022-04-12 | 科东(广州)软件科技有限公司 | 一种多***共享内存的方法、装置、设备及存储介质 |
CN114816417A (zh) * | 2022-04-18 | 2022-07-29 | 北京凝思软件股份有限公司 | 一种交叉编译方法、装置、计算设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107077377B (zh) | 2020-08-04 |
WO2018119952A1 (zh) | 2018-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107077377A (zh) | 一种设备虚拟化方法、装置、***及电子设备、计算机程序产品 | |
CN107003892A (zh) | Gpu虚拟化方法、装置、***及电子设备、计算机程序产品 | |
CN103034524B (zh) | 半虚拟化的虚拟gpu | |
CN102707986B (zh) | 子分区与父分区之间的共享存储器 | |
CN104714846B (zh) | 资源处理方法、操作***及设备 | |
CN104965757B (zh) | 虚拟机热迁移的方法、虚拟机迁移管理装置及*** | |
CN101128807B (zh) | 用于扩充中断控制器和合成中断来源的***和方法 | |
CN103856547B (zh) | 多虚拟机的映射方法、***及客户端设备 | |
USRE38134E1 (en) | System for communications where first priority data transfer is not disturbed by second priority data transfer and where allocated bandwidth is removed when process terminates abnormally | |
CN100385403C (zh) | 在逻辑分区之间转移网络业务的方法及*** | |
CN106385329B (zh) | 资源池的处理方法、装置和设备 | |
EP1783609A1 (en) | Processing management device, computer system, distributed processing method, and computer program | |
CN109086241A (zh) | 基于应用的动态异构多核***和方法 | |
CN102239483B (zh) | 命令遥控 | |
CN103999051A (zh) | 用于着色器核心中着色器资源分配的策略 | |
CN103106058A (zh) | 一种基于Android***的双屏显示方法及智能显示终端 | |
CN103346981A (zh) | 虚拟交换方法、相关装置和计算机*** | |
CN106371894A (zh) | 一种配置方法、装置和数据处理服务器 | |
CN109324903A (zh) | 用于嵌入式***的显示资源调度方法及装置 | |
JP2013508869A (ja) | アプリケーション画像の表示方法及び装置 | |
CN106462522B (zh) | 基于闪存的存储设备的输入/输出虚拟化(iov)主机控制器(hc)(iov-hc) | |
US12008389B2 (en) | Flexible resource assignment to physical and virtual functions in a virtualized processing system | |
CN106796530A (zh) | 一种虚拟化方法、装置、及电子设备、计算机程序产品 | |
CN114972607B (zh) | 加速图像显示的数据传输方法、装置及介质 | |
CN108351838B (zh) | 使用聚合存储器管理单元(mmu)提供存储器管理功能 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |