CN109739612B - 虚拟机进程的调度方法、装置、设备和存储介质 - Google Patents
虚拟机进程的调度方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN109739612B CN109739612B CN201811400802.6A CN201811400802A CN109739612B CN 109739612 B CN109739612 B CN 109739612B CN 201811400802 A CN201811400802 A CN 201811400802A CN 109739612 B CN109739612 B CN 109739612B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- target
- core
- host
- scheduling
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种虚拟机进程的调度方法、装置、设备和存储介质,所述方法包括获取目标虚拟机、目标物理核心以及关联主机;查找是否存在未经判断的关联虚拟机进程,若存在,获取其关联虚拟机,并判断是否满足二者之一:所述关联虚拟机与所述目标虚拟机相同,所述关联虚拟机与所述关联主机相同;若所述关联虚拟机与所述目标虚拟机相同,则调度;若所述关联虚拟机与所述关联主机相同,则再次查找是否存在未经判断的关联虚拟机进程;若均不满足,则停止调度。本发明实施例所提供的虚拟机进程的调度方法能够防止不同虚拟机的进程同时调度至同一物理核心上运行,保证虚拟机数据的安全性。
Description
技术领域
本发明实施例涉及虚拟机技术领域,具体涉及一种虚拟机进程的调度方法、装置、设备和存储介质。
背景技术
通过虚拟化技术(Virtualization),物理主机可虚拟化出多台虚拟机(VirtualMachine,VM),从而最大化的利用物理主机的硬件资源;虚拟化出的每台虚拟机可被分配内存(空间)和处理器核心,每台虚拟机配的内存主要用于任务消耗及支持虚拟化,每台虚拟机配的处理器核心实现进程的执行。
虚拟机运行时,可被虚拟机管理器在任意的处理器核心上执行调度,这就存在不同的虚拟机会在同时被调度至同一物理核心对应的不同逻辑核心的可能,对数据的安全带来了潜在的威胁,因此,如何设置虚拟机的调度,保证虚拟机数据的安全性,成为了本领域技术人员亟需解决的问题。
发明内容
有鉴于此,本发明实施例提供一种虚拟机进程的调度方法、装置、设备和存储介质,以防止不同虚拟机的进程同时调度至同一物理核心上运行,防止恶意的程序对其他虚拟机的数据安全产生危害,保证虚拟机数据的安全性。
为实现上述目的,本发明实施例提供如下技术方案:
为解决上述问题,本发明实施例提供一种虚拟机进程的调度方法,包括:
获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机,所述目标虚拟机进程请求调度至所述目标逻辑核心执行;
在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,若存在,获取所述关联虚拟机进程的关联虚拟机,并判断所述关联虚拟机是否满足以下条件中的一个:
(1)所述关联虚拟机与所述目标虚拟机相同;
(2)所述关联虚拟机与所述关联主机相同;
若所述关联虚拟机与所述目标虚拟机相同,则将所述目标虚拟机进程调度至所述目标逻辑核心执行;若所述关联虚拟机与所述关联主机相同,则触发所述在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程的步骤;若均不满足,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
可选地,若不存在,则将所述目标虚拟机进程调度至所述目标逻辑核心执行。
可选地,所述停止将所述目标虚拟机进程调度至所述目标逻辑核心执行的步骤之后,还包括:
为所述目标虚拟机进程更换目标逻辑核心,并触发所述获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机的步骤。
可选地,所述获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机的步骤之前;
还包括,接收将所述目标虚拟机进程调度至所述目标逻辑核心执行的请求。
可选地,所述在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程的步骤包括:
判断是否存在未经查找的运行于所述目标物理核心的关联逻辑核心;
获取运行于所述关联逻辑核心的关联虚拟机进程。
可选地,所述目标虚拟机通过目标虚拟机标识进行标识,所述关联虚拟机通过关联虚拟机标识进行标识,所述关联主机通过关联主机标识进行标识;
所述关联虚拟机与所述目标虚拟机相同包括所述关联虚拟机标识与所述目标虚拟机标识相同;
所述关联虚拟机与所述关联主机相同包括所述关联虚拟机标识与所述关联主机标识相同。
为解决前述问题,本发明实施例还提供一种处理器,包括:处理器核心执行装置,适于执行前述虚拟机进程的调度方法。
为解决前述问题,本发明实施例还提供一种存储介质,所述存储介质存储有适于处理器核心执行的程序,以实现前述的虚拟机进程的调度方法。
为解决上述问题,本发明实施例提供一种虚拟机进程的调度方法,包括:
获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机,所述目标虚拟机进程请求调度至所述目标逻辑核心执行;
在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,若存在,获取所述关联虚拟机进程的关联虚拟机,并判断关联虚拟机是否满足以下条件中的一个:
(1)所述关联虚拟机与所述目标虚拟机相同;
(2)所述关联虚拟机与所述关联主机相同;
若满足其中一个,则触发所述在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程的步骤;若均不满足,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
可选地,若不存在,则将所述目标虚拟机进程调度至所述目标逻辑核心执行。
可选地,所述停止将所述目标虚拟机进程调度至所述目标逻辑核心执行的步骤之后,还包括:
为所述目标虚拟机进程更换目标逻辑核心,并触发所述获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机的步骤。
可选地,所述获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机的步骤之前;
还包括,接收将所述目标虚拟机进程调度至所述目标逻辑核心执行的请求。
可选地,所述在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程的步骤包括:
判断是否存在未经查找的运行于所述目标物理核心的关联逻辑核心;
获取运行于所述关联逻辑核心的关联虚拟机进程。
可选地,所述目标虚拟机通过目标虚拟机标识进行标识,所述关联虚拟机通过关联虚拟机标识进行标识,所述关联主机通过关联主机标识进行标识;
所述关联虚拟机与所述目标虚拟机相同包括所述关联虚拟机标识与所述目标虚拟机标识相同;
所述关联虚拟机与所述关联主机相同包括所述关联虚拟机标识与所述关联主机标识相同。
为解决上述问题,本发明实施例还提供一种虚拟机进程的调度装置,包括:
获取装置,获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机,所述目标虚拟机进程请求调度至所述目标逻辑核心执行;
判断与执行装置,在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,若存在,获取所述关联虚拟机进程的关联虚拟机,并判断所述关联虚拟机是否满足以下条件中的一个:
(1)所述关联虚拟机与所述目标虚拟机相同;
(2)所述关联虚拟机与所述关联主机相同;
若所述关联虚拟机与所述目标虚拟机相同,则将所述目标虚拟机进程调度至所述目标逻辑核心执行;若所述关联虚拟机与所述关联主机相同,则触发所述在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程的步骤,若均不满足,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
可选地,若在所述目标物理核心上不存在未经判断的关联虚拟机进程,所述判断与执行装置还适于将所述目标虚拟机进程调度至所述目标逻辑核心执行。
可选地,还包括逻辑核心更换装置,适于在停止将所述目标虚拟机进程调度至所述目标逻辑核心执行之后,为所述目标虚拟机进程更换目标逻辑核心,并向所述获取装置发送更换后的目标逻辑核心。
可选地,还包括指令接收装置,适于接收将所述目标虚拟机进程调度至所述目标逻辑核心执行的请求,并将所述请求发送至所述获取装置。
可选地,所述判断与执行装置包括:
关联逻辑核心判断装置,适于判断是否存在未经查找的运行于所述目标物理核心的关联逻辑核心;
关联虚拟机进程查找装置,适于获取运行于所述关联逻辑核心的关联虚拟机进程。
可选地,所述目标虚拟机通过目标虚拟机标识进行标识,所述关联虚拟机通过关联虚拟机标识进行标识,所述关联主机通过关联主机标识进行标识;
所述关联虚拟机与所述目标虚拟机相同包括所述关联虚拟机标识与所述目标虚拟机标识相同;
所述关联虚拟机与所述关联主机相同包括所述关联虚拟机标识与所述关联主机标识相同。
为解决前述问题,本发明实施例还提供一种虚拟机进程的调度装置,包括:
获取装置,获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机,所述目标虚拟机进程请求调度至所述目标逻辑核心执行;
判断与执行装置,在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,若存在,获取所述关联虚拟机进程的关联虚拟机,并判断关联虚拟机是否满足以下条件中的一个:
(1)所述关联虚拟机与所述目标虚拟机相同;
(2)所述关联虚拟机与所述关联主机相同;
若满足其中一个,则触发所述在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程的步骤;若均不满足,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
可选地,若在所述目标物理核心上不存在未经判断的关联虚拟机进程,所述判断与执行装置还适于将所述目标虚拟机进程调度至所述目标逻辑核心执行。
可选地,还包括逻辑核心更换装置,适于在停止将所述目标虚拟机进程调度至所述目标逻辑核心执行之后,为所述目标虚拟机进程更换目标逻辑核心,并向所述获取装置发送更换后的目标逻辑核心。
可选地,还包括指令接收装置,适于接收将所述目标虚拟机进程调度至所述目标逻辑核心执行的请求,并将所述请求发送至所述获取装置。
可选地,所述判断与执行装置包括:
关联逻辑核心判断装置,适于判断是否存在未经查找的运行于所述目标物理核心的关联逻辑核心;
关联虚拟机进程查找装置,适于获取运行于所述关联逻辑核心的关联虚拟机进程。
可选地,所述目标虚拟机通过目标虚拟机标识进行标识,所述关联虚拟机通过关联虚拟机标识进行标识,所述关联主机通过关联主机标识进行标识;
所述关联虚拟机与所述目标虚拟机相同包括所述关联虚拟机标识与所述目标虚拟机标识相同;
所述关联虚拟机与所述关联主机相同包括所述关联虚拟机标识与所述关联主机标识相同。
为解决前述问题,本发明实施例还提供一种处理器,包括:处理器核心执行装置,适于执行前述虚拟机进程的调度方法。
为解决前述问题,本发明实施例还提供一种存储介质,所述存储介质存储有适于处理器核心执行的程序,以实现前述任一项所述的虚拟机进程的调度方法。
本发明实施例所提供的虚拟机进程的调度方法及装置,所述方法包括:获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机,所述目标虚拟机进程请求调度至所述目标逻辑核心执行;在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,若存在,获取所述关联虚拟机进程的关联虚拟机,并判断所述关联虚拟机是否满足以下条件中的一个:
(1)所述关联虚拟机与所述目标虚拟机相同;
(2)所述关联虚拟机与所述关联主机相同;
若所述关联虚拟机与所述目标虚拟机相同,则将所述目标虚拟机进程调度至所述目标逻辑核心执行;若所述关联虚拟机与所述关联主机相同,则触发所述在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程的步骤;若均不满足,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
这样,本发明实施例所提供的虚拟机进程的方法,在对目标虚拟机进程进行调度的过程中,通过处理器分配的目标逻辑核心确定目标虚拟机进程的目标物理核心,进而通过目标物理核心确定关联逻辑核心及在各个关联逻辑核心上运行的关联虚拟机,并判断关联虚拟机是否与目标虚拟机相同,或者关联虚拟机是否与关联主机相同,如果其中一个关联虚拟机与目标虚拟机相同,或者全部的关联虚拟机均与关联主机相同,则将所述目标虚拟机进程调度至所述目标逻辑核心执行,如果不存在与目标虚拟机相同的关联虚拟机,或者全部的关联虚拟机均与关联主机不同,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。从而保证了同一时间在相同的目标物理核心上所运行的进程只有同一个虚拟机的进程和主机的进程,防止了不同虚拟机的进程同时在同一个物理核心上执行,从硬件方面保证了同一时刻不同的虚拟机的隔离,进而可以防止恶意虚拟机获取其他虚拟机的数据,提高了虚拟机数据的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是虚拟化环境的一种系统架构示意图;
图2示出了本发明实施例提供的虚拟机进程的调度方法的一种可选流程;
图3示出了本发明实施例提供的虚拟机进程的调度方法的另一种可选流程;
图4示出了本发明实施例提供的虚拟机进程的调度方法的再一种可选流程;
图5示出了本发明实施例提供的虚拟机进程的调度方法的又一种可选流程;
图6示出了本发明实施例提供的虚拟机进程的调度方法的又一种可选流程;
图7示出了本发明实施例提供的虚拟机进程的调度方法的又一种可选流程;
图8为本发明实施例提供的虚拟机进程的调度装置的一种可选框图;
图9为本发明实施例提供的虚拟机进程的调度装置的另一种可选框图;
图10为本发明实施例提供的虚拟机进程的调度装置的又一种可选框图;
图11本发明实施例所提供的虚拟机进程的调度装置的判断与执行装置的一种可选框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
作为一种可选示例,图1示出了虚拟化环境的系统架构示意图,如图1所示,虚拟化环境的系统架构可以包括:CPU核心(Central Processing Unit,中央处理器核心)1,内存控制器2,内存3;
其中,CPU核心1包含包含存取器、解码器、执行单元、寄存器等器件,CPU核心1可通过软件形式配置虚拟机管理器11,并且通过虚拟化技术虚拟化出多台虚拟机12,该多台虚拟机12可由虚拟机管理器11进行内存3分配管理;
在一个CPU核心1的基础上,可以通过共享部分物理器件的方式提供多个逻辑核心供软件使用,以提高物理器件的利用率,同时提高计算速度,这被称为处理器同步多线程技术。
内存控制器2是控制内存3,并且使内存3与CPU核心1之间交换数据的硬件;在典型的计算机系统中,内存控制器2负责处理内存访问请求,对于内存访问请求,内存控制器2可检测缓存是否记录内存访问请求对应的地址,若是,则从缓存读取该地址相应的数据,否则,查找该地址并读取该地址相应的数据。
内存3以内存页面为单位,通过虚拟机控制器11实现为虚拟机12的内存分配。本发明实施例可在内存3中划分安全内存(空间)和普通内存(空间),一般的,安全内存的安全性高于普通内存,例如,安全内存可以采用安全保护机制提高内存的访问权限。
在虚拟机12的程序执行过程中,虚拟机12需要通过虚拟机管理器11在任意处理器核心上执行调度,虚拟机管理器11的操作系统以进程为单位对程序进行管理。当程序被调度时,虚拟机管理器11操作系统选中某个处理器核心,并将该处理器核心设置为调度程序的即将运行的处理器核心,并进行程序的执行。
可以看出,在对程序进行调度和执行的过程中,可能导致两个毫不相干的程序会被同时调度至同一个物理核心所提供的不同逻辑核心上。
程序在运行过程中,尽管比如分支预测、乱序执行等技术在处理器中的工作通常对外部是不可见的,但仍然不可避免地会留下痕迹,如果在上述情况下,某个程序是恶意的,它就可以依靠探查另一个程序执行过程中在同一个物理核心上所留下的痕迹,通过计算推测出另一个程序的数据信息,甚至获得敏感数据,这就给信息安全留下了隐患。
尤其是在云计算多租户共享硬件的情况下,两个程序可能是来自不同租户的虚拟机程序,即使软件程序上没有任何缺陷,恶意的程序也可能获得其他租户的敏感数据,进而导致租户的数据安全受到威胁。
为解决上述问题,本发明实施例提供一种虚拟机的调度方法,通过限制运行在同一物理核心上可调度的虚拟机,仅允许来自于同一虚拟机的不同进程在同一时间运行在相同的物理核心上,以防止恶意的虚拟机对其他的虚拟机的数据安全产生危害,进而提高虚拟化技术的安全性。
可以理解的是,在虚拟化技术中,物理主机虚拟化出多台虚拟机,为了标识虚拟机,主机操作系统软件需要维护一组用于描述虚拟机的状态和设置的数据,该组数据被称为虚拟机控制数据VMCD(Virtual Machine Control Data),该组数据还用于处理虚拟机与主机之间的交互,以及通过特定的方式启动和执行虚拟机。例如,在某个平台的VMRUN指令,在执行该指令时,需要指定VMCB(Virtual Machine Control Block)即虚拟机控制块,是对虚拟机的虚拟处理器的状态进行描述的信息结构,以告知处理器需要执行的虚拟机信息。而为了够对运行的虚拟机进行唯一标识,虚拟机控制数据VMCD中还包含有一组数据,该组数据称为虚拟机标识(Virtual Machine Identifier,VMID),以实现对虚拟机的唯一标识,而基于该虚拟机的操作系统而运行的程序以及该程序的进程均具有该虚拟机标识,进而实现了对虚拟机进程所属于的虚拟机的标识。
可见,被虚拟机操纵系统调度至处理器逻辑核心上的虚拟机进程都会基于作为其执行基础的虚拟机被分配一个虚拟机标识(VMID),而当被调度至处理器逻辑核心上的进程为物理主机的进程时,该物理主机进程会被分配特殊的虚拟机标识(VMID0),为方便描述,本文中物理主机的进程被称为主机进程。
需要说明的是,本文所述的目标虚拟机进程是指将要被调度分配逻辑核心的虚拟机进程,本文所述的目标虚拟机是指目标虚拟机进程运行所基于的虚拟机,本文所述的目标逻辑核心是指目标虚拟机进程将要被调度分配的逻辑核心,本文所述的目标物理核心是指在目标逻辑核心上运行程序所实际使用的处理器物理核心,本文所述的关联逻辑核心是指以目标物理核心为物理核心的除了目标逻辑核心以外的其他逻辑核心,本文所述的关联虚拟机进程是指调度在关联逻辑核心上运行的虚拟机进程,本文所述的关联虚拟机是指关联虚拟机进程运行所基于的虚拟机,本文所述的关联主机进程是指调度关联逻辑核心上运行的主机进程,本文所述的关联主机是指关联主机进程运行所基于的主机即前述的特殊的虚拟机进程。
在一种具体实施方式,本发明所提供的虚拟机进程的调度方法的关联虚拟机可以通过关联虚拟机标识进行标识,目标虚拟机可以通过目标虚拟机标识进行标识,关联主机则可以通过关联主机标识进行标识;在其他实施方式中,也可以通过其他方式进行标识。
在处理器核心接收到了由虚拟机管理器的操作系统发起的目标虚拟机进程的调度请求,进行目标虚拟机进程的调度时,会首先获取为目标虚拟机进程而分配的目标逻辑核心,即目标虚拟机进程请求调度至目标逻辑核心执行,进而,基于目标虚拟机进程得到目标虚拟机,基于目标逻辑核心得到与其对应的目标物理核心以及基于目标物理核心的关联逻辑核心,和运行在关联逻辑核心的关联主机进程的关联主机。
可以理解的是,一旦处理器启动,来自主机的进程就开始运行,即目标物理核心上会有关联主机进程在运行,进而可以获得关联主机进程的关联主机。
在本发明所提供的一种具体实施方式中,当进行进程调度时,处理器会获取在关联逻辑核心上运行的未经判断的关联虚拟机进程的关联虚拟机,进而判断该关联虚拟机与目标虚拟机是否相同,如果相同,则说明该关联逻辑核心上已经运行了与目标虚拟机进程相同虚拟机的进程,就可以将所述目标虚拟机进程调度至所述目标逻辑核心执行,如果不相同,则判断关联虚拟机是否与关联主机相同,如果相同,则说明该关联逻辑核心上运行着主机进程,则进一步查找在未经判断的关联逻辑核心上运行的管理虚拟机进程的关联虚拟机,并将其分别与目标虚拟机和关联主机比较,如果目标物理核心所对应的全部关联逻辑核心所运行的关联虚拟机进程的关联虚拟机均与关联主机相同,则说明目标物理核心所对应的全部关联逻辑核心所运行的进程均为主机进程,则将所述目标虚拟机进程调度至所述目标逻辑核心执行。
当然,如果目标物理核心所对应的全部关联逻辑核心所运行关联虚拟机进程所归属的虚拟机中存在既与关联主机不同,也与目标虚拟机不同的关联虚拟机,这说明,该目标物理核心已经执行了来自于其他虚拟机的进程,则处理器需要停止将目标虚拟机进程调度至目标逻辑核心执行。
可以理解的是,在首次进行判断时,本文所述的未经判断的关联虚拟机进程是指所有的关联逻辑核心上的关联虚拟机进程,而经过一次或者多次判断后,本文所述的未经判断的关联虚拟机进程是指除去已经比较判断过的关联逻辑核心上运行的关联虚拟机进程后,剩余的关联逻辑核心上运行的关联虚拟机进程。
需要说明的是,在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程时,在一实施例中,可以首先获取全部的关联虚拟机进程,然后判断是否还剩余未经判断的关联虚拟机进程;在其他实施例中,可以在完成一次循环判断后,在查找是否还有未经判断的关联虚拟机进程。
可以看出,本发明实施例所提供的虚拟机进程的调度方法,在发现其中一个关联虚拟机与目标虚拟机相同时,处理器执行机构就可以将目标虚拟机进程调度至目标逻辑核心执行,而不需要再进行后续的判断,这是由于,按照本发明实施例所提供的虚拟机进程的调度方法,任何一个目标虚拟机进程被调度至一个目标逻辑核心时,都需要进行前述的判断步骤,而在第一个目标虚拟机进程被调度至该目标物理核心对应的逻辑核心之前,仅存在关联主机进程在该目标物理核心对应的逻辑核心运行的情况,也就是从第一个目标虚拟机进程被调度至该目标物理核心对应的逻辑核心中的一个开始,只要存在目标虚拟机进程没有执行完成的情况,该目标物理核心所对应的多个逻辑核心只能执行与第一个目标虚拟机进程的虚拟机相同的目标虚拟机进程和主机进程,因此,只要发现其中一个关联虚拟机进程的关联虚拟机与目标虚拟机相同,就可以判定该目标物理核心上所运行的全部进程分别来自于目标虚拟机进程相同的虚拟机或者主机,处理器也就可以将目标虚拟机进程调度至目标逻辑核心执行。
举例说明:为方便说明,此处关联虚拟机通过关联虚拟机标识进行标识,目标虚拟机通过目标虚拟机标识进行标识,关联主机通过关联主机标识进行标识;目标虚拟机进程的目标虚拟机标识为CVMID,关联逻辑核心一共由3个,分别为1、2、3,其上运行的关联虚拟机进程的关联虚拟机标识分别为AVMID1、AVMID2和AVMID3,而主机进程的关联主机标识为VMID0。
在进行虚拟机进程的调度时,首先可以查找到1个逻辑核心,其上运行的关联虚拟机进程的虚拟机标识为AVMID1,则判断AVMID1是否等于CVMID,若等于,则可以直接将目标虚拟机进程调度至目标逻辑核心,不必再进行后续的判断;若不等于,则判断AVMID1是否等于VMID0,若AVMID1等于VMID0,则继续查找到未经过判断的关联虚拟机进程的虚拟机标识AVMID2,并继续判断AVMID2是否等于CVMID,若AVMID1不等于VMID0,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行,也不必再执行后续的判断。
在判断AVMID2是否等于CVMID时,若AVMID2等于CVMID,则也可以直接将目标虚拟机进程调度至目标逻辑核心,不必再进行后续的判断;若AVMID2不等于CVMID,则判断AVMID3是否等于VMID0,若AVMID2等于VMID0,则继续查找到未经过判断的关联虚拟机进程的虚拟机标识AVMID3,并继续判断AVMID3是否等于CVMID,若AVMID2不等于VMID0,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行,也不必再执行后续的判断。
在判断AVMID3是否等于CVMID时,若AVMID3等于CVMID,则也可以直接将目标虚拟机进程调度至目标逻辑核心,不必再进行后续的判断;若AVMID3不等于CVMID,则判断AVMID3是否等于VMID0,若AVMID3等于VMID0,则继续查找未经过判断的关联虚拟机进程的虚拟机标识,发现已经不存在未经判断的关联虚拟机进程的虚拟机标识,并则将目标虚拟机进程调度至目标逻辑核心,若AVMID3不等于VMID0,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
可见,本发明实施例所提供的虚拟机进程的调度方法,如果前面查找比较的关联虚拟机进程的关联虚拟机与目标虚拟机相同,则不必进行后续的判断,减少了运算数量,提高了运算速度。
当然,在另一种具体实施例中,可以对每一个关联虚拟机进程的关联虚拟机依次进行判断,直至完全判断完成,再确定该目标物理核心上所运行的全部进程分别来自于目标虚拟机进程相同的虚拟机或者来自于主机,进而可以将目标虚拟机进程调度至目标逻辑核心执行。
继续参考前序案例,在进行虚拟机进程的调度时,首先可以查找到1个逻辑核心,其上运行的关联虚拟机进程的虚拟机标识为AVMID1,则判断AVMID1是否等于CVMID,若等于,则继续查找到未经过判断的关联虚拟机进程的虚拟机标识AVMID2,并继续判断AVMID2是否等于CVMID;若不等于,则判断AVMID1是否等于VMID0,若AVMID1等于VMID0,则继续查找到未经过判断的关联虚拟机进程的虚拟机标识AVMID2,并继续判断AVMID2是否等于CVMID,若AVMID1不等于VMID0,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行,也不必再执行后续的判断。
在判断AVMID2是否等于CVMID时,若AVMID2等于CVMID,则继续查找到未经过判断的关联虚拟机进程的虚拟机标识AVMID3,并继续判断AVMID3是否等于CVMID;若AVMID2不等于CVMID,则判断AVMID3是否等于VMID0,若AVMID2等于VMID0,则继续查找到未经过判断的关联虚拟机进程的虚拟机标识AVMID3,并继续判断AVMID3是否等于CVMID,若AVMID2不等于VMID0,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行,也不必再执行后续的判断。
在判断AVMID3是否等于CVMID时,若AVMID3等于CVMID,则继续查找未经过判断的关联虚拟机进程的虚拟机标识,发现已经不存在未经判断的关联虚拟机进程的虚拟机标识,并则将目标虚拟机进程调度至目标逻辑核心;若AVMID3不等于CVMID,则判断AVMID3是否等于VMID0,若AVMID3等于VMID0,则继续查找未经过判断的关联虚拟机进程的虚拟机标识,发现已经不存在未经判断的关联虚拟机进程的虚拟机标识,并则将目标虚拟机进程调度至目标逻辑核心,若AVMID3不等于VMID0,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
在另一具体实施方式中,本发明实施例所提供的虚拟机进程的调度方法,可以改变判断关联虚拟机与目标虚拟机是否相同,以及关联虚拟机与关联主机是否相同的顺序,先判断一个关联虚拟机是否与关联主机相同,如果关联虚拟机与关联主机不同,再判断关联虚拟机是否与目标虚拟机相同,如果关联虚拟机与目标虚拟机不同,则处理器停止将所述目标虚拟机进程调度至所述目标逻辑核心执行,如果关联虚拟机与目标虚拟机相同或者关联虚拟机与关联主机相同,则触发执行查找其他的关联虚拟机进程的关联虚拟机,进行下一轮的比较,直到全部关联虚拟机进程的关联虚拟机全部完成判断比较。
可以看出,本发明实施例所提供的虚拟机进程的调度方法,在将目标虚拟机进行调度至目标逻辑核心执行时,首先通过对进程的虚拟机的比较,判断与目标逻辑核心使用相同的目标物理核心的关联逻辑核心上所运行的关联虚拟机进程与目标虚拟机进程是否来自于同一个虚拟机或者主机,当关联虚拟机进程既不是主机进程,其来源也不是目标虚拟机进程的虚拟机时,停止将目标虚拟机进程调度至目标逻辑核心,从而防止了来自于不同虚拟机的虚拟机进程在同一时刻运行于相同的物理核心,实现了来自于不同虚拟机的虚拟机进程的物理隔离,避免了由于不同虚拟机的进程同时共同使用同一物理核心而造成的数据安全性的隐患,提高了虚拟机技术的数据安全性,并且判断逻辑也较为简单。
可以理解的是,在另一种具体实施方式中,当停止将目标虚拟机进程调度至目标逻辑核心后,为保证进程的顺利执行,还可以为目标虚拟机进程更换目标逻辑核心,可以理解的是,更换新的目标逻辑核心后,针对新的目标逻辑核心依然还会触发新的所述获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机的步骤。
当然,本发明另一实施例所提供的虚拟机进程的调度方法,在所述获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机的步骤之前还包括,接收将所述目标虚拟机进程调度至所述目标逻辑核心执行的请求,即先将目标虚拟机进程调度至目标逻辑核心,然后再根据目标虚拟机进程和目标逻辑核心获取目标虚拟机、目标物理核心和关联主机。
可以理解的是,进行进程调度的触发方式可以有很多种,比如:时间片的进程调度、基于程序执行操作系统等待过程中的进程调度、响应中断的进程调度、内存交换的进程调度,等等。本发明实施例所提供的虚拟机进程的调度方法不限制虚拟机进程调度的触发方式,任何一种虚拟机进程调度触发都可以。
具体地,在另一种具体实施方式中,所述在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程的步骤可以包括:
判断是否存在未经查找的运行于所述目标物理核心的关联逻辑核心;
获取运行于所述关联逻辑核心的关联虚拟机进程。
也就是,先基于目标物理核心找到运行于其上的关联逻辑核心,然后再找到未经查找的关联逻辑核心。
如果存在未经查找的关联逻辑核心,再从关联逻辑核心获取运行于其上的关联虚拟机进程。
具体地,本发明实施例所提供的虚拟机进程的调度方法,在一种实施例中,可以通过硬件的方式实现执行,在处理器的执行单元中设置芯片,通过集成电路实现本发明实施例所提供的虚拟机进程的调度方法;在另一种实施例中,也可以通过软件的方式实现执行,在内存中存储实现所述虚拟机进程的调度方法的程序,通过处理器调度该程序实现本发明实施例所提供的虚拟机进程的调度方法。
作为本发明实施例公开内容的一种可选实现,图2示出了本发明实施例提供的虚拟机进程的调度方法的一种可选流程,基于图2所示方法,本发明实施例可实现虚拟机数据的安全性。
参照图2所示,该方法流程可以包括:
步骤S10:获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机,所述目标虚拟机进程请求调度至所述目标逻辑核心执行。
在接收到了由目标虚拟机的程序发起的目标虚拟机进程的调度请求,进行目标虚拟机进程的调度时,会首先获取为目标虚拟机进程分配的目标逻辑核心,即目标虚拟机进程请求调度至目标逻辑核心执行,进而,基于目标虚拟机进程得到目标虚拟机,基于目标逻辑核心得到与其对应的目标物理核心以及基于目标物理核心的关联逻辑核心,和运行在关联逻辑核心的关联主机进程的关联主机。
可以理解的是,一旦处理器启动,来自主机的进程就开始运行,即目标物理核心上会有关联主机进程在运行,进而可以获得关联主机进程的关联主机。
步骤S11:在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,若存在,则执行步骤S12;若不存在,则执行步骤S15。
具体地,在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程时,在一实施例中,可以首先获取全部的关联虚拟机进程,然后从全部的关联虚拟机进程中查找是否还存在未经判断进程;在其他实施例中,可以在完成一次循环判断后,获取一个关联虚拟机进程,然后判断是否是未经过判断的虚拟机进程。
可以理解的是,在首次进行判断时,本文所述的未经判断的关联虚拟机进程是指所有的关联逻辑核心上的关联虚拟机进程,而经过一次或者多次判断后,本文所述的未经判断的关联虚拟机进程是指除去已经比较判断过的关联逻辑核心上运行的关联虚拟机进程后,剩余的关联逻辑核心上运行的关联虚拟机进程。
可以看出,如果存在,则说明在该目标物理核心上运行有其他的未经过判断的关联虚拟机进程,则执行步骤S12,即获取所述关联虚拟机进程的关联虚拟机;如果不存在,则说明该物理核心上未运行有关联虚拟机进程或者所运行的关联虚拟机进程都已经经过了判断,则执行步骤S15,即将所述目标虚拟机进程调度至所述目标逻辑核心执行。
步骤S12:获取所述关联虚拟机进程的关联虚拟机,进而执行步骤13;
如果存在未经判断的关联虚拟机进程,为了进行后续的判断,则首先需要获取关联虚拟机进程的关联虚拟机,即找到关联虚拟机进程运行所依赖的虚拟机。
步骤S13:判断所述关联虚拟机与所述目标虚拟机是否相同,若相同,执行步骤S15;若不同,则执行步骤S14;
得到关联虚拟机后,判断关联虚拟机与目标虚拟机是否相同,如果相同,则说明已经在目标物理核心上的关联逻辑核心上运行的关联虚拟机进程与目标虚拟机进程来自于同一个虚拟机,二者不存在数据泄露的风险,则执行步骤S15,即将所述目标虚拟机进程调度至所述目标逻辑核心执行,而无需进行后续的判断,减少运算量,同时缩短判断时间;如果不同,则说明已经在目标物理核心上的关联逻辑核心上运行的关联虚拟机进程与目标虚拟机进程不是来自于同一个虚拟机,那么为了保证数据的安全性,还需再进行进一步地判断,为此,需要再执行步骤S14,即判断所述关联虚拟机与所述关联主机是否相同。
步骤S14:判断所述关联虚拟机与所述关联主机是否相同,若相同,则转向步骤S11,若不同,则执行步骤S16。
在关联虚拟机与目标虚拟机不同的情况下,执行该步骤,即判断所述关联虚拟机与所述关联主机是否相同,如果相同,则说明,已经在目标物理核心上的关联逻辑核心上运行的关联虚拟机进程是关联主机进程,因此,目标虚拟机进程在目标逻辑核心上运行,也不存在两个虚拟机之间数据泄露的问题,因此针对当前所判断的关联虚拟机进程而言,目标虚拟机进程的运行是安全的,但在此种情况下,需要保证运行于该目标物理核心上的全部的关联虚拟机进程均为关联主机进程,即需要再次执行步骤S11,即在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,直至所有的都判断完毕。而如果判断的结论为不相同,则说明已经在目标物理核心上的关联逻辑核心上运行的关联虚拟机进程也不是关联主机进程,那么只有可能是来自于与目标虚拟机进程不同的虚拟机,因此,如果让目标虚拟机进程调度至目标逻辑核心,则存在不同虚拟机进程运行于同一目标物理核心的问题,造成数据泄露的风险,因此,此时需执行步骤S16,停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
步骤S15:将所述目标虚拟机进程调度至所述目标逻辑核心执行。
在满足条件的情况下,将目标虚拟机进程调度至目标逻辑核心上,进行进程的运行。
步骤S16:停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
在不满足条件的情况下,停止将目标虚拟机进程调度至目标逻辑核心上。
可以看出,本发明实施例所提供的虚拟机进程的调度方法,在发现其中一个关联虚拟机与目标虚拟机相同时,处理器执行机构就可以将目标虚拟机进程调度至目标逻辑核心执行,而不需要再进行后续的判断,这是由于,按照本发明实施例所提供的虚拟机进程的调度方法,任何一个目标虚拟机进程被调度至一个目标逻辑核心时,都需要进行前述的判断步骤,而在第一个目标虚拟机进程被调度至该目标物理核心对应的逻辑核心之前,仅存在关联主机进程在该目标物理核心对应的逻辑核心运行的情况,也就是从第一个目标虚拟机进程被调度至该目标物理核心对应的逻辑核心中的一个开始,只要存在目标虚拟机进程没有执行完成的情况,该目标物理核心所对应的多个逻辑核心只能执行与第一个目标虚拟机进程的虚拟机相同的目标虚拟机进程和主机进程,因此,只要发现其中一个关联虚拟机进程的关联虚拟机与目标虚拟机相同,就可以判定该目标物理核心上所运行的全部进程分别来自于目标虚拟机进程相同的虚拟机或者主机,处理器也就可以将目标虚拟机进程调度至目标逻辑核心执行。
举例说明:为方便说明,此处关联虚拟机通过关联虚拟机标识进行标识,目标虚拟机通过目标虚拟机标识进行标识,关联主机通过关联主机标识进行标识;目标虚拟机进程的虚拟机标识为CVMID,关联逻辑核心一共由3个,分别为1、2、3,其上运行的关联虚拟机进程的虚拟机标识分别为AVMID1、AVMID2和AVMID3,而主机进程的关联主机标识为VMID0。
在进行虚拟机进程的调度时,首先可以查找到1个逻辑核心,其上运行的关联虚拟机进程的虚拟机标识为AVMID1,则判断AVMID1是否等于CVMID,若等于,则可以直接将目标虚拟机进程调度至目标逻辑核心,不必再进行后续的判断;若不等于,则判断AVMID1是否等于VMID0,若AVMID1等于VMID0,则继续查找到未经过判断的关联虚拟机进程的虚拟机标识AVMID2,并继续判断AVMID2是否等于CVMID,若AVMID1不等于VMID0,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行,也不必再执行后续的判断。
在判断AVMID2是否等于CVMID时,若AVMID2等于CVMID,则也可以直接将目标虚拟机进程调度至目标逻辑核心,不必再进行后续的判断;若AVMID2不等于CVMID,则判断AVMID3是否等于VMID0,若AVMID2等于VMID0,则继续查找到未经过判断的关联虚拟机进程的虚拟机标识AVMID3,并继续判断AVMID3是否等于CVMID,若AVMID2不等于VMID0,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行,也不必再执行后续的判断。
在判断AVMID3是否等于CVMID时,若AVMID3等于CVMID,则也可以直接将目标虚拟机进程调度至目标逻辑核心,不必再进行后续的判断;若AVMID3不等于CVMID,则判断AVMID3是否等于VMID0,若AVMID3等于VMID0,则继续查找未经过判断的关联虚拟机进程的虚拟机标识,发现已经不存在未经判断的关联虚拟机进程的虚拟机标识,并则将目标虚拟机进程调度至目标逻辑核心,若AVMID3不等于VMID0,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
可以看出,本发明实施例所提供的虚拟机进程的调度方法,在将目标虚拟机进行调度至目标逻辑核心执行时,首先通过对进程的虚拟机的比较,判断与目标逻辑核心使用相同的目标物理核心的关联逻辑核心上所运行的关联虚拟机进程与目标虚拟机进程是否来自于同一个虚拟机或者主机,当关联虚拟机进程既不是主机进程,其来源也不是目标虚拟机进程的虚拟机时,停止将目标虚拟机进程调度至目标逻辑核心,从而防止了来自于不同虚拟机的虚拟机进程在同一时刻运行于相同的物理核心,实现了来自于不同虚拟机的虚拟机进程的物理隔离,避免了由于不同虚拟机的进程同时共同使用同一物理核心而造成的数据安全性的隐患,提高了虚拟机技术的数据安全性。
图3示出了本发明实施例提供的虚拟机进程的调度方法的另一种可选流程,该方法流程可以包括:
步骤S20:获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机,所述目标虚拟机进程请求调度至所述目标逻辑核心执行。
步骤S20可参照图2所示步骤S10部分的描述,此处不再赘述。
步骤S21:在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,若存在,则执行步骤S22;若不存在,则执行步骤S25。
步骤S21可参照图2所示步骤S11部分的描述,此处不再赘述。
步骤S22:获取所述关联虚拟机进程的关联虚拟机,进而执行步骤23。
步骤S22可参照图2所示步骤S12部分的描述,此处不再赘述。
步骤S23:判断所述关联虚拟机与所述关联主机是否相同,若相同,则转向步骤S21,若不同,则执行步骤S24。
在本发明实施例中,当目标物理核心上存在未经判断的关联虚拟机进程时,首先判断关联虚拟机是否与关联主机相同,如果与关联主机相同,则说明,已经在目标物理核心上的关联逻辑核心上运行的关联虚拟机进程是关联主机进程,因此,目标虚拟机进程在目标逻辑核心上运行,也不存在两个虚拟机之间数据泄露的问题,因此针对当前所判断的关联虚拟机进程而言,目标虚拟机进程的运行是安全的,但在此种情况下,需要保证运行于该目标物理核心上的全部的关联虚拟机进程均为关联主机进程,即需要再次执行步骤S21,即在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,直至步骤S21的判断结论为否,进而执行步骤S25,将所述目标虚拟机进程调度至所述目标逻辑核心执行。
如果不同,则说明已经在目标物理核心上的关联逻辑核心上运行的关联虚拟机进程不是关联主机进程,则需要进一步判断是否与目标虚拟机相同,即执行步骤S24。
步骤S24:判断所述关联虚拟机与所述目标虚拟机是否相同,若相同,执行步骤S25;若不同,则执行步骤S26;
在本发明实施例中,完成关联虚拟机是否与关联主机相同,并得到二者不同的结论后,再判断关联虚拟机与目标虚拟机是否相同,如果相同,则说明已经在目标物理核心上的关联逻辑核心上运行的关联虚拟机进程与目标虚拟机进程来自于同一个虚拟机,二者不存在数据泄露的风险,则执行步骤S25,即将所述目标虚拟机进程调度至所述目标逻辑核心执行,而无需进行其他关联虚拟机进程的判断,减少运算量,同时缩短判断时间。
如果不同,则说明已经在目标物理核心上的关联逻辑核心上运行的关联虚拟机进程与目标虚拟机进程不是来自于同一个虚拟机,而且经过步骤S23的判断,已经确定关联虚拟进程不是关联主机进程,那么为了保证数据的安全性,需执行步骤S16,停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
步骤S25:将所述目标虚拟机进程调度至所述目标逻辑核心执行。
步骤S25可参照图2所示步骤S15部分的描述,此处不再赘述。
步骤S26:停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
步骤S26可参照图2所示步骤S16部分的描述,此处不再赘述。
可以看出,在另一种具体实施例中,本发明所提供的虚拟机进程的调度方法,可以先判断目标虚拟机的进程是否为关联主机进程,再判断是否是与关联虚拟机进程来自于同一虚拟机,二者的判断顺序不受限制。
图4示出了本发明实施例提供的虚拟机进程的调度方法的再一种可选流程,该方法流程可以包括:
步骤S30:获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机,所述目标虚拟机进程请求调度至所述目标逻辑核心执行。
步骤S30可参照图2所示步骤S10部分的描述,此处不再赘述。
步骤S31:在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,若存在,则执行步骤S32;若不存在,则执行步骤S35。
步骤S31可参照图2所示步骤S11部分的描述,此处不再赘述。
步骤S32:获取所述关联虚拟机进程的关联虚拟机,进而执行步骤33。
步骤S32可参照图2所示步骤S12部分的描述,此处不再赘述。
步骤S33:判断所述关联虚拟机与所述关联主机是否相同,若相同,则转向步骤S31,若不同,则执行步骤S34。
在本发明实施例中,当目标物理核心上存在未经判断的关联虚拟机进程时,首先判断关联虚拟机是否与关联主机相同,如果与关联主机相同,则说明,已经在目标物理核心上的关联逻辑核心上运行的关联虚拟机进程是关联主机进程,因此,目标虚拟机进程在目标逻辑核心上运行,也不存在两个虚拟机之间数据泄露的问题,因此针对当前所判断的关联虚拟机进程而言,目标虚拟机进程的运行是安全的,但在此种情况下,需要保证运行于该目标物理核心上的全部的关联虚拟机进程均为关联主机进程,即需要再次执行步骤S31,即在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,直至步骤S31的判断结论为否,进而执行步骤S35,将所述目标虚拟机进程调度至所述目标逻辑核心执行。
如果不同,则说明已经在目标物理核心上的关联逻辑核心上运行的关联虚拟机进程不是关联主机进程,则需要进一步判断是否与目标虚拟机相同,即执行步骤S34。
步骤S34:判断所述关联虚拟机与所述目标虚拟机是否相同,若相同,执行步骤S31;若不同,则执行步骤S36。
在本发明实施例中,完成关联虚拟机是否与关联主机相同,并得到二者不同的结论后,再判断关联虚拟机与目标虚拟机是否相同,如果相同,则说明已经在目标物理核心上的关联逻辑核心上运行的关联虚拟机进程与目标虚拟机进程来自于同一个虚拟机,二者不存在数据泄露的风险,则可以再执行步骤S31,在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,直至步骤S31的判断结论为否,进而执行步骤S35,将所述目标虚拟机进程调度至所述目标逻辑核心执行。
如果不同,则说明已经在目标物理核心上的关联逻辑核心上运行的关联虚拟机进程与目标虚拟机进程不是来自于同一个虚拟机,而且经过步骤S33的判断,已经确定关联虚拟进程不是关联主机进程,那么为了保证数据的安全性,需执行步骤S36,停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
步骤S35:将所述目标虚拟机进程调度至所述目标逻辑核心执行。
步骤S35可参照图2所示步骤S15部分的描述,此处不再赘述。
步骤S36:停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
步骤S36可参照图2所示步骤S16部分的描述,此处不再赘述。
继续参考前序案例,在进行虚拟机进程的调度时,首先可以查找到1个逻辑核心,其上运行的关联虚拟机进程的虚拟机标识为AVMID1,则判断AVMID1是否等于CVMID,若等于,则继续查找到未经过判断的关联虚拟机进程的虚拟机标识AVMID2,并继续判断AVMID2是否等于CVMID;若不等于,则判断AVMID1是否等于VMID0,若AVMID1等于VMID0,则继续查找到未经过判断的关联虚拟机进程的虚拟机标识AVMID2,并继续判断AVMID2是否等于CVMID,若AVMID1不等于VMID0,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行,也不必再执行后续的判断。
在判断AVMID2是否等于CVMID时,若AVMID2等于CVMID,则继续查找到未经过判断的关联虚拟机进程的虚拟机标识AVMID3,并继续判断AVMID3是否等于CVMID;若AVMID2不等于CVMID,则判断AVMID3是否等于VMID0,若AVMID2等于VMID0,则继续查找到未经过判断的关联虚拟机进程的虚拟机标识AVMID3,并继续判断AVMID3是否等于CVMID,若AVMID2不等于VMID0,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行,也不必再执行后续的判断。
在判断AVMID3是否等于CVMID时,若AVMID3等于CVMID,则继续查找未经过判断的关联虚拟机进程的虚拟机标识,发现已经不存在未经判断的关联虚拟机进程的虚拟机标识,并则将目标虚拟机进程调度至目标逻辑核心;若AVMID3不等于CVMID,则判断AVMID3是否等于VMID0,若AVMID3等于VMID0,则继续查找未经过判断的关联虚拟机进程的虚拟机标识,发现已经不存在未经判断的关联虚拟机进程的虚拟机标识,并则将目标虚拟机进程调度至目标逻辑核心,若AVMID3不等于VMID0,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
当然,再另一种具体实施方式中,本发明实施例所提供的虚拟机进程的调度方法,可以改变判断关联虚拟机与目标虚拟机和关联主机顺序,先判断一个关联虚拟机是否与目标虚拟机相同,如果不同,再判断关联虚拟机是否与关联主机相同,如果不同,则处理器停止将所述目标虚拟机进程调度至所述目标逻辑核心执行,如果相同,则触发执行查找其他的关联虚拟机进程的关联虚拟机,进行下一轮的比较,直到全部关联虚拟机进程的关联虚拟机全部完成判断比较。
可以看出,本发明实施例所提供的虚拟机进程的调度方法,可以对每一个关联虚拟机进程的关联虚拟机依次进行是否与关联主机相同和是否与目标虚拟机相同的判断,直至完全判断完成,再确定该目标物理核心上所运行的全部进程分别来自于目标虚拟机进程相同的虚拟机或者来自于主机,再将目标虚拟机进程调度至目标逻辑核心执行,否则停止将目标虚拟机进程调度至目标逻辑核心执行,通过对所有的关联虚拟机进程的关联虚拟机进行判断后再执行的方式,判断逻辑更为简单,且逻辑过程更为严密。
图5示出了本发明实施例提供的虚拟机进程的调度方法的又一种可选流程,参照图5所示,该方法流程可以包括:
步骤S40:获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机,所述目标虚拟机进程请求调度至所述目标逻辑核心执行。
步骤S40可参照图2所示步骤S10部分的描述,此处不再赘述。
步骤S41:在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,若存在,则执行步骤S42;若不存在,则执行步骤S44。
步骤S41可参照图2所示步骤S11部分的描述,此处不再赘述。
步骤S42:获取所述关联虚拟机进程的关联虚拟机,进而执行步骤43。
步骤S42可参照图2所示步骤S12部分的描述,此处不再赘述。
步骤S43:判断所述关联虚拟机与所述目标虚拟机是否相同,若相同,执行步骤S45;若不同,则执行步骤S44.
步骤S43可参照图2所示步骤S13部分的描述,此处不再赘述。
步骤S44:判断所述关联虚拟机与所述关联主机是否相同,若相同,则转向步骤S40,若不同,则执行步骤S46。
步骤S44可参照图2所示步骤S14部分的描述,此处不再赘述。
步骤S45:将所述目标虚拟机进程调度至所述目标逻辑核心执行。
步骤S45可参照图2所示步骤S15部分的描述,此处不再赘述。
步骤S46:停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
步骤S46可参照图2所示步骤S16部分的描述,此处不再赘述。
步骤S47:为所述目标虚拟机进程更换目标逻辑核心,并再次触发步骤S40。
当处理器停止将目标虚拟机进程调度至目标逻辑核心后,为保证进程的顺利执行,还可以为目标虚拟机进程更换目标逻辑核心,即执行步骤S47。
可以理解的是,更换新的目标逻辑核心后,针对新的目标逻辑核心依然还会触发新一轮的虚拟机进程的调度方法的判断,即再次触发步骤S40,获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机。
图6示出了本发明实施例提供的虚拟机进程的调度方法的又一种可选流程,参照图6所示,该方法流程可以包括:
步骤S50:接收将所述目标虚拟机进程调度至所述目标逻辑核心执行的请求。
在步骤S51,即所述获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机的步骤之前,还首先接收将所述目标虚拟机进程调度至所述目标逻辑核心执行的请求。也就是,先将目标虚拟机进程调度至目标逻辑核心,然后再根据目标虚拟机进程和目标逻辑核心获取目标虚拟机、目标物理核心和关联主机。
为目标虚拟机进程分配目标逻辑核心通常为虚拟机操作系统,因此对于处理器或者说处理器执行单元而言,首先需要接收虚拟机操作系统将所述目标虚拟机进程调度至所述目标逻辑核心执行的请求。
可以理解的是,处理器进行进程调度的触发方式可以有很多种,比如:时间片的进程调度、基于程序执行操作系统等待过程中的进程调度、响应中断的进程调度、内存交换的进程调度,等等。本发明实施例所提供的虚拟机进程的调度方法不限制虚拟机进程调度的触发方式,任何一种虚拟机进程调度触发都可以。
步骤S51:获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机,所述目标虚拟机进程请求调度至所述目标逻辑核心执行。
步骤S51可参照图2所示步骤S10部分的描述,此处不再赘述。
步骤S52:在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,若存在,则执行步骤S53;若不存在,则执行步骤S56。
步骤S52可参照图2所示步骤S11部分的描述,此处不再赘述。
步骤S53:获取所述关联虚拟机进程的关联虚拟机,进而执行步骤54。
步骤S53可参照图2所示步骤S12部分的描述,此处不再赘述。
步骤S54:判断所述关联虚拟机与所述目标虚拟机是否相同,若相同,执行步骤S56;若不同,则执行步骤S55;
步骤S54可参照图2所示步骤S13部分的描述,此处不再赘述。
步骤S55:判断所述关联虚拟机与所述关联主机是否相同,若相同,则转向步骤S52,若不同,则执行步骤S57。
步骤S55可参照图2所示步骤S14部分的描述,此处不再赘述。
步骤S56:将所述目标虚拟机进程调度至所述目标逻辑核心执行。
步骤S56可参照图2所示步骤S15部分的描述,此处不再赘述。
步骤S57:停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
步骤S57可参照图2所示步骤S16部分的描述,此处不再赘述。
图7示出了本发明实施例提供的虚拟机进程的调度方法的又一种可选流程,该方法流程可以包括:
步骤S60:获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机,所述目标虚拟机进程请求调度至所述目标逻辑核心执行。
步骤S60可参照图2所示步骤S10部分的描述,此处不再赘述。
步骤S61:判断是否存在未经查找的运行于所述目标物理核心的关联逻辑核心,若存在,则执行步骤S62;若不存在,则执行步骤S66。
首先基于目标物理核心找到运行于其上的关联逻辑核心,然后再找到未经查找的关联逻辑核心,如果存在,那么执行步骤S62,即获取运行于关联逻辑核心的关联虚拟机进程;如果不存在,则执行步骤S66,即将所述目标虚拟机进程调度至所述目标逻辑核心执行。
步骤S62:获取运行于所述关联逻辑核心的关联虚拟机进程。
从步骤S61获取到的关联逻辑核心中获取关联虚拟机进程。
步骤S63:获取所述关联虚拟机进程的关联虚拟机,进而执行步骤64。
步骤S63可参照图2所示步骤S12部分的描述,此处不再赘述。
步骤S64:判断所述关联虚拟机与所述目标虚拟机是否相同,若相同,执行步骤S66;若不同,则执行步骤S65。
步骤S64可参照图2所示步骤S13部分的描述,此处不再赘述。
步骤S65:判断所述关联虚拟机与所述关联主机是否相同,若相同,则转向步骤S61,若不同,则执行步骤S67。
步骤S65可参照图2所示步骤S14部分的描述,此处不再赘述。
步骤S66:将所述目标虚拟机进程调度至所述目标逻辑核心执行。
步骤S66可参照图2所示步骤S15部分的描述,此处不再赘述。
步骤S67:停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
步骤S67可参照图2所示步骤S16部分的描述,此处不再赘述。
下面从处理器的角度,对本发明实施例提供的虚拟机进程的调度装置进行介绍,下文描述的虚拟机进程的调度装置可以认为是处理器为实现本发明实施例提供的虚拟机进程的调度方法,所需设置的程序模块。下文描述的虚拟机进程的调度装置可与前文描述的方案内容相互对应参照。
图8为本发明实施例提供的虚拟机进程的调度装置的一种可选框图,该装置可应用于处理器,参照图8,该装置可以包括:
获取装置100,获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机,所述目标虚拟机进程请求调度至所述目标逻辑核心执行;
判断与执行装置110,适于在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,若存在,获取所述关联虚拟机进程的关联虚拟机,并判断所述关联虚拟机是否满足以下条件中的一个:
(1)所述关联虚拟机与所述目标虚拟机相同;
(2)所述关联虚拟机与所述关联主机相同;
若所述关联虚拟机与所述目标虚拟机相同,则将所述目标虚拟机进程调度至所述目标逻辑核心执行;若所述关联虚拟机与所述关联主机相同,则触发所述在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程的步骤,若均不满足,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
获取装置100,首先获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机,判断与执行装置110根据目标物理核心查找是否存在运行于目标物理核心的未经判断的关联虚拟机进程,如果存在则获取所述关联虚拟机进程的关联虚拟机,并进一步判断关联虚拟机是否满足以下条件中的一个:
(1)所述关联虚拟机与所述目标虚拟机相同;
(2)所述关联虚拟机与所述关联主机相同;
若所述关联虚拟机与所述目标虚拟机相同,则将所述目标虚拟机进程调度至所述目标逻辑核心执行;若所述关联虚拟机与所述关联主机相同,则触发所述在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程的步骤,若均不满足,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
需要说明的是,判断所述关联虚拟机与所述目标虚拟机是否相同,以及判断所述关联虚拟机与所述关联主机是否相同的顺序可以更换,在此不做限定。
当然,在一具体实施例中,目标虚拟机可以通过目标虚拟机标识进行标识,关联虚拟机可以通过关联虚拟机标识进行标识,关联主机可以通过关联主机标识进行标识;
关联虚拟机与所述目标虚拟机相同可以包括关联虚拟机标识与目标虚拟机标识相同;
关联虚拟机与关联主机相同可以包括所述关联虚拟机标识与所述关联主机标识相同。
可见,本发明实施例所提供的虚拟机进程的调度装置,其判断与执行装置110在发现其中一个关联虚拟机与目标虚拟机相同时,就可以将目标虚拟机进程调度至目标逻辑核心执行,而不需要再进行后续的判断,这是由于,按照本发明实施例所提供的虚拟机进程的调度装置,任何一个目标虚拟机进程被调度至一个目标逻辑核心时,都需要进行前述的判断,而在第一个目标虚拟机进程被调度至该目标物理核心对应的逻辑核心之前,仅存在关联主机进程在该目标物理核心对应的逻辑核心运行的情况,也就是从第一个目标虚拟机进程被调度至该目标物理核心对应的逻辑核心中的一个开始,只要存在目标虚拟机进程没有执行完成的情况,该目标物理核心所对应的多个逻辑核心只能执行与第一个目标虚拟机进程的虚拟机相同的目标虚拟机进程和主机进程,因此,只要发现其中一个关联虚拟机进程的关联虚拟机与目标虚拟机相同,判断与执行装置110就可以判定该目标物理核心上所运行的全部进程分别来自于目标虚拟机进程相同的虚拟机或者主机,也就可以将目标虚拟机进程调度至目标逻辑核心执行。
从而,本发明实施例所提供的虚拟机进程的调度装置,其判断与执行装置110在将目标虚拟机进行调度至目标逻辑核心执行时,首先通过对进程的虚拟机的比较,判断与目标逻辑核心使用相同的目标物理核心的关联逻辑核心上所运行的关联虚拟机进程与目标虚拟机进程是否来自于同一个虚拟机或者主机,当关联虚拟机进程既不是主机进程,其来源也不是目标虚拟机进程的虚拟机时,停止将目标虚拟机进程调度至目标逻辑核心,从而防止了来自于不同虚拟机的虚拟机进程在同一时刻运行于相同的物理核心,实现了来自于不同虚拟机的虚拟机进程的物理隔离,避免了由于不同虚拟机的进程同时共同使用同一物理核心而造成的数据安全性的隐患,提高了虚拟机技术的数据安全性,同时可以采用较少的运算数量,提高了运算速度。
在另一种具体实施方式中,本发明实施例所提供的虚拟机进程的调度装置的判断与执行装置110,还可以适于在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,若存在,获取所述关联虚拟机进程的关联虚拟机,并判断关联虚拟机是否满足以下条件中的一个:
(1)所述关联虚拟机与所述目标虚拟机相同;
(2)所述关联虚拟机与所述关联主机相同;
若满足其中一个,则触发所述在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程的步骤;若均不满足,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
也就是,判断与执行装置110对每一个关联虚拟机进程的关联虚拟机依次进行判断,直至完全判断完成,再确定该目标物理核心上所运行的全部进程分别来自于目标虚拟机进程相同的虚拟机或者来自于主机,进而可以将目标虚拟机进程调度至目标逻辑核心执行。
当然,在一具体实施例中,目标虚拟机可以通过目标虚拟机标识进行标识,关联虚拟机可以通过关联虚拟机标识进行标识,关联主机可以通过关联主机标识进行标识;
关联虚拟机与所述目标虚拟机相同可以包括关联虚拟机标识与目标虚拟机标识相同;
关联虚拟机与关联主机相同可以包括所述关联虚拟机标识与所述关联主机标识相同。
当然,在此实施例中,判断所述关联虚拟机与所述目标虚拟机是否相同,以及判断所述关联虚拟机与所述关联主机是否相同的顺序也可以更换,在此不做限定。
并且,在另一实施例中,若在所述目标物理核心上不存在未经判断的关联虚拟机进程,判断与执行装置110还适于将所述目标虚拟机进程调度至所述目标逻辑核心执行。
可见,本发明实施例所提供的虚拟机进程的调度装置,判断与执行装置110可以对每一个关联虚拟机进程的关联虚拟机依次进行是否与关联主机相同和是否与目标虚拟机相同的判断,直至完全判断完成,再确定该目标物理核心上所运行的全部进程分别来自于目标虚拟机进程相同的虚拟机或者来自于主机,再将目标虚拟机进程调度至目标逻辑核心执行,否则停止将目标虚拟机进程调度至目标逻辑核心执行,通过对所有的关联虚拟机进程的关联虚拟机进行判断后再执行的方式,判断逻辑更为简单,且逻辑过程更为严密。
请参考图9,图9为本发明实施例提供的虚拟机进程的调度装置的另一种可选框图。
如图中可以看出,在另一种具体实施方式中,本发明所提供的虚拟机进程的调度装置还包括逻辑核心更换装置120,适于在停止将所述目标虚拟机进程调度至所述目标逻辑核心执行之后,为所述目标虚拟机进程更换目标逻辑核心,并向所述获取装置100发送更换后的目标逻辑核心。
当判断与执行装置110停止将目标虚拟机进程调度至目标逻辑核心后,为保证进程的顺利执行,逻辑核心更换装置120还可以为目标虚拟机进程更换目标逻辑核心。
可以理解的是,更换新的目标逻辑核心后,逻辑核心更换装置120需要将新的目标逻辑核心发送至获取装置100,再次获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机。
请参考图10,图10为本发明实施例提供的虚拟机进程的调度装置的又一种可选框图。
如图中可以看出,在另一种具体实施方式中,本发明所提供的虚拟机进程的调度装置还包括指令接收装置130,适于接收将所述目标虚拟机进程调度至所述目标逻辑核心执行的请求,并将所述请求发送至所述获取装置100。
为目标虚拟机进程分配目标逻辑核心通常为虚拟机操作系统,首先需要指令接收装置130接收虚拟机操作系统将所述目标虚拟机进程调度至所述目标逻辑核心执行的请求。
可以理解的是,处理器进行进程调度的触发方式可以有很多种,比如:时间片的进程调度、基于程序执行操作系统等待过程中的进程调度、响应中断的进程调度、内存交换的进程调度,等等。本发明实施例所提供的虚拟机进程的调度方法不限制虚拟机进程调度的触发方式,任何一种虚拟机进程调度触发都可以。
请参考图11,图11示出了图8所示的虚拟机进程的调度装置的判断与执行装置的一种可选框图,所述判断与执行装置110可以包括:
关联逻辑核心判断装置111,适于判断是否存在未经查找的运行于所述目标物理核心的关联逻辑核心;
关联虚拟机进程查找装置112,适于获取运行于所述关联逻辑核心的关联虚拟机进程。
关联逻辑核心判断装置111,首先基于获取装置100获取到的目标物理核心找到运行于其上的关联逻辑核心,然后再找到未经查找的关联逻辑核心,如果存在,那么关联虚拟机进程查找装置112获取运行于关联逻辑核心的关联虚拟机进程;如果不存在,则判断与执行装置110将所述目标虚拟机进程调度至所述目标逻辑核心执行。
可选地,本发明实施例还提供一种处理器,包括:处理器核心执行装置,适于执行前述虚拟机进程的调度方法。
可选地,本发明实施例还提供一种存储介质,所述存储介质存储有适于处理器核心执行的程序,以实现前述的虚拟机进程的调度方法。。
上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (18)
1.一种虚拟机进程的调度方法,其特征在于,包括:
获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机,所述目标虚拟机进程请求调度至所述目标逻辑核心执行,其中,所述关联主机是所述关联主机进程运行所基于的主机;
在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,若存在,获取所述关联虚拟机进程的关联虚拟机,并判断所述关联虚拟机是否满足以下条件中的一个:所述关联虚拟机与所述目标虚拟机相同,所述关联虚拟机与所述关联主机相同,其中,所述关联虚拟机为所述关联虚拟机进程运行所基于的虚拟机;
若所述关联虚拟机与所述目标虚拟机相同,则将所述目标虚拟机进程调度至所述目标逻辑核心执行;若所述关联虚拟机与所述关联主机相同,则触发所述在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程的步骤;若均不满足,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
2.如权利要求1所述的虚拟机进程的调度方法,其特征在于,若不存在,则将所述目标虚拟机进程调度至所述目标逻辑核心执行。
3.如权利要求1所述的虚拟机进程的调度方法,其特征在于,所述停止将所述目标虚拟机进程调度至所述目标逻辑核心执行的步骤之后,还包括:
为所述目标虚拟机进程更换目标逻辑核心,并触发所述获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机的步骤。
4.如权利要求1所述的虚拟机进程的调度方法,其特征在于,所述获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机的步骤之前;
还包括,接收将所述目标虚拟机进程调度至所述目标逻辑核心执行的请求。
5.如权利要求1所述的虚拟机进程的调度方法,其特征在于,所述在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程的步骤包括:
判断是否存在未经查找的运行于所述目标物理核心的关联逻辑核心;
获取运行于所述关联逻辑核心的关联虚拟机进程。
6.如权利要求1-5任一项所述的虚拟机进程的调度方法,其特征在于,
所述目标虚拟机通过目标虚拟机标识进行标识,所述关联虚拟机通过关联虚拟机标识进行标识,所述关联主机通过关联主机标识进行标识;
所述关联虚拟机与所述目标虚拟机相同包括所述关联虚拟机标识与所述目标虚拟机标识相同;
所述关联虚拟机与所述关联主机相同包括所述关联虚拟机标识与所述关联主机标识相同。
7.一种虚拟机进程的调度方法,其特征在于,包括:
获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机,所述目标虚拟机进程请求调度至所述目标逻辑核心执行,其中,所述关联主机是所述关联主机进程运行所基于的主机;
在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,若存在,获取所述关联虚拟机进程的关联虚拟机,并判断关联虚拟机是否满足以下条件中的一个:所述关联虚拟机与所述目标虚拟机相同,所述关联虚拟机与所述关联主机相同,其中,所述关联虚拟机为所述关联虚拟机进程运行所基于的虚拟机;
若满足其中一个,则触发所述在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程的步骤;若均不满足,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
8.如权利要求7所述的虚拟机进程的调度方法,其特征在于,若不存在,则将所述目标虚拟机进程调度至所述目标逻辑核心执行。
9.如权利要求7所述的虚拟机进程的调度方法,其特征在于,所述停止将所述目标虚拟机进程调度至所述目标逻辑核心执行的步骤之后,还包括:
为所述目标虚拟机进程更换目标逻辑核心,并触发所述获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机的步骤。
10.如权利要求7所述的虚拟机进程的调度方法,其特征在于,所述获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机的步骤之前;
还包括,接收将所述目标虚拟机进程调度至所述目标逻辑核心执行的请求。
11.如权利要求7所述的虚拟机进程的调度方法,其特征在于,所述在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程的步骤包括:
判断是否存在未经查找的运行于所述目标物理核心的关联逻辑核心;
获取运行于所述关联逻辑核心的关联虚拟机进程。
12.如权利要求7-11任一项所述的虚拟机进程的调度方法,其特征在于,
所述目标虚拟机通过目标虚拟机标识进行标识,所述关联虚拟机通过关联虚拟机标识进行标识,所述关联主机通过关联主机标识进行标识;
所述关联虚拟机与所述目标虚拟机相同包括所述关联虚拟机标识与所述目标虚拟机标识相同;
所述关联虚拟机与所述关联主机相同包括所述关联虚拟机标识与所述关联主机标识相同。
13.一种虚拟机进程的调度装置,其特征在于,包括:
获取装置,获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机,所述目标虚拟机进程请求调度至所述目标逻辑核心执行,其中,所述关联主机是所述关联主机进程运行所基于的主机;
判断与执行装置,在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,若存在,获取所述关联虚拟机进程的关联虚拟机,并判断所述关联虚拟机是否满足以下条件中的一个:所述关联虚拟机与所述目标虚拟机相同,所述关联虚拟机与所述关联主机相同,其中,所述关联虚拟机为所述关联虚拟机进程运行所基于的虚拟机;
若所述关联虚拟机与所述目标虚拟机相同,则将所述目标虚拟机进程调度至所述目标逻辑核心执行;若所述关联虚拟机与所述关联主机相同,则触发所述在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程的步骤;若均不满足,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行。
14.一种虚拟机进程的调度装置,其特征在于,包括:
获取装置,获取目标虚拟机进程的目标虚拟机、目标逻辑核心对应的目标物理核心以及运行于所述目标物理核心上的关联主机进程的关联主机,所述目标虚拟机进程请求调度至所述目标逻辑核心执行,其中,所述关联主机是所述关联主机进程运行所基于的主机;
判断与执行装置,在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程,若存在,获取所述关联虚拟机进程的关联虚拟机,并判断关联虚拟机是否满足以下条件中的一个:所述关联虚拟机与所述目标虚拟机相同,所述关联虚拟机与所述关联主机相同,其中,所述关联虚拟机为所述关联虚拟机进程运行所基于的虚拟机;
若满足其中一个,则触发所述在所述目标物理核心上查找是否存在未经判断的关联虚拟机进程的步骤;若均不满足,则停止将所述目标虚拟机进程调度至所述目标逻辑核心执行,若不存在,则将所述目标虚拟机进程调度至所述目标逻辑核心执行。
15.一种处理器,其特征在于,包括:处理器核心执行装置,适于执行如权利要求1至6任一项所述虚拟机进程的调度方法。
16.一种存储介质,其特征在于,所述存储介质存储有适于处理器核心执行的程序,以实现如权利要求1至6任一项所述的虚拟机进程的调度方法。
17.一种处理器,其特征在于,包括:处理器核心执行装置,适于执行如权利要求7至12任一项所述虚拟机进程的调度方法。
18.一种存储介质,其特征在于,所述存储介质存储有适于处理器核心执行的程序,以实现如权利要求7至12任一项所述的虚拟机进程的调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811400802.6A CN109739612B (zh) | 2018-11-22 | 2018-11-22 | 虚拟机进程的调度方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811400802.6A CN109739612B (zh) | 2018-11-22 | 2018-11-22 | 虚拟机进程的调度方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109739612A CN109739612A (zh) | 2019-05-10 |
CN109739612B true CN109739612B (zh) | 2021-10-26 |
Family
ID=66358117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811400802.6A Active CN109739612B (zh) | 2018-11-22 | 2018-11-22 | 虚拟机进程的调度方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739612B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169731A (zh) * | 2007-12-05 | 2008-04-30 | 华为技术有限公司 | 多路多核服务器及其cpu的虚拟化处理方法 |
CN101561769A (zh) * | 2009-05-25 | 2009-10-21 | 北京航空航天大学 | 一种基于多核平台虚拟机的进程迁移跟踪方法 |
CN102253857A (zh) * | 2011-06-24 | 2011-11-23 | 华中科技大学 | 一种多核环境下的Xen虚拟机调度控制方法 |
CN105242954A (zh) * | 2014-06-12 | 2016-01-13 | 华为技术有限公司 | 一种虚拟cpu与物理cpu之间的映射方法及电子设备 |
CN106354544A (zh) * | 2016-08-24 | 2017-01-25 | 华为技术有限公司 | 虚拟机创建方法、系统以及主机 |
CN106462437A (zh) * | 2014-03-27 | 2017-02-22 | 国际商业机器公司 | 用于管理计算机中的多个线程的控制区 |
US9740518B2 (en) * | 2012-09-12 | 2017-08-22 | Nxp Usa, Inc. | Conflict detection circuit for resolving access conflict to peripheral device by multiple virtual machines |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110202640A1 (en) * | 2010-02-12 | 2011-08-18 | Computer Associates Think, Inc. | Identification of a destination server for virtual machine migration |
EP2852887A1 (en) * | 2012-06-27 | 2015-04-01 | Qatar Foundation | An arrangement configured to allocate resources of a plurality of data storage media to a plurality virtual machines and associated method |
US9268583B2 (en) * | 2013-02-25 | 2016-02-23 | Red Hat Israel, Ltd. | Migration of virtual machines with shared memory |
US10684876B2 (en) * | 2015-05-14 | 2020-06-16 | Netapp, Inc. | Migration of virtual machine data using native data paths |
-
2018
- 2018-11-22 CN CN201811400802.6A patent/CN109739612B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169731A (zh) * | 2007-12-05 | 2008-04-30 | 华为技术有限公司 | 多路多核服务器及其cpu的虚拟化处理方法 |
CN101561769A (zh) * | 2009-05-25 | 2009-10-21 | 北京航空航天大学 | 一种基于多核平台虚拟机的进程迁移跟踪方法 |
CN102253857A (zh) * | 2011-06-24 | 2011-11-23 | 华中科技大学 | 一种多核环境下的Xen虚拟机调度控制方法 |
US9740518B2 (en) * | 2012-09-12 | 2017-08-22 | Nxp Usa, Inc. | Conflict detection circuit for resolving access conflict to peripheral device by multiple virtual machines |
CN106462437A (zh) * | 2014-03-27 | 2017-02-22 | 国际商业机器公司 | 用于管理计算机中的多个线程的控制区 |
CN105242954A (zh) * | 2014-06-12 | 2016-01-13 | 华为技术有限公司 | 一种虚拟cpu与物理cpu之间的映射方法及电子设备 |
CN106354544A (zh) * | 2016-08-24 | 2017-01-25 | 华为技术有限公司 | 虚拟机创建方法、系统以及主机 |
Non-Patent Citations (1)
Title |
---|
校园虚拟化云计算实验室设计;杜朝晖;《长春教育学院学报》;20150831;第31卷(第15期);第69-70页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109739612A (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844007B (zh) | 一种基于空间复用的虚拟化方法与系统 | |
US10241674B2 (en) | Workload aware NUMA scheduling | |
JP6219512B2 (ja) | 仮想ハドゥープマネジャ | |
US10534653B2 (en) | Hypervisor-based virtual machine isolation apparatus and method | |
US10474488B2 (en) | Configuration of a cluster of hosts in virtualized computing environments | |
US8271989B2 (en) | Method and apparatus for virtual processor dispatching to a partition based on shared memory pages | |
US9916172B2 (en) | Method and apparatus for recovering lock holder preemption | |
US20070294689A1 (en) | Sharing resources of a partitioned system | |
CN104731560B (zh) | 支持多线程处理的功能单元、处理器及其操作方法 | |
US9858101B2 (en) | Virtual machine input/output thread management | |
US11755369B2 (en) | Techniques for container scheduling in a virtual environment | |
US10394608B2 (en) | Prioritization of low active thread count virtual machines in virtualized computing environment | |
US20090241112A1 (en) | Recording medium recording virtual machine control program and virtual machine system | |
US8307371B2 (en) | Method for efficient utilization of processors in a virtual shared environment | |
US20150286501A1 (en) | Register-type-aware scheduling of virtual central processing units | |
CN109739612B (zh) | 虚拟机进程的调度方法、装置、设备和存储介质 | |
US8689230B2 (en) | Determination of running status of logical processor | |
US11194615B2 (en) | Dynamic pause exiting | |
US11182183B2 (en) | Workload placement using conflict cost | |
US11144419B2 (en) | Controlled use of a memory monitor instruction and memory wait instruction in a virtualized environment | |
CN110795231A (zh) | 一种虚拟cpu的处理方法及装置 | |
US20230138145A1 (en) | Information processing device, vehicle, information processing method, and storage medium | |
US20200319940A1 (en) | Management of dynamic sharing of central processing units | |
CN115390983A (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 | ||
CB02 | Change of applicant information |
Address after: 300384 industrial incubation-3-8, North 2-204, No. 18, Haitai West Road, Tianjin Huayuan Industrial Zone, Binhai New Area, Tianjin Applicant after: Haiguang Information Technology Co., Ltd Address before: 300384 industrial incubation-3-8, North 2-204, No. 18, Haitai West Road, Tianjin Huayuan Industrial Zone, Binhai New Area, Tianjin Applicant before: HAIGUANG INFORMATION TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |