【技术实现步骤摘要】
一种VCPU切换方法和物理主机
本专利技术涉及计算机虚拟化
,尤其涉及一种VCPU切换方法和物理主机。
技术介绍
虚拟化指在物理设备上,通过空间上的分割以及时间上的分时和模拟,将物理机器上的一份资源抽象成多份。虚拟机(VirtualMachine)是由虚拟化层提供的独立虚拟计算机系统,每个虚拟机都拥有自己的虚拟硬件,包括CPU、内存和IO(Input/Output,输入/输出)设备等,通过虚拟化层的模拟,虚拟机在上层软件看来,就是一个真实的物理设备。虚拟化层一般称为虚拟机监控器(VirtualMachineMonitor,VMM)。在VMM虚拟化机器硬件资源的过程中,CPU虚拟化是最为重要的一个环节。CPU虚拟化为每个虚拟机创建一个或者多个VCPU(VirtualCPU,即VCPU),多个VCPU分时复用/空间复用物理CPU。VMM为多个VCPU分配时间片/空间并维护所有VCPU的状态,当一个VCPU的时间片/空间用完需要切换时,要保存当前运行VCPU的状态,并恢复目标VCPU(将要切换到的VCPU)的状态,也就是将目标VCPU的状态载入物理CPU。VCPU的状态指VCPU的上下文,所述上下文指某一时间点VCPU在寄存器和程序计数器的内容。CPU虚拟化将每个VCPU与一个HostOS(主机操作系统,即物理设备自身的操作系统)线程一一对应,由HostOS线程来调用VCPU。图1为现有技术VCPU切换过程示例图,当需要从一个VCPU(设为VCPUA)切换至另一个VCPU(设为VCPUB)时,先将VCPUA的状态保存在内存;然后HostOS根据线程调度算法 ...
【技术保护点】
1.一种虚拟中央处理器VCPU切换方法,应用于运行有至少一个VCPU的物理主机,其特征在于,所述物理主机包括至少一个VCPU队列,每一个VCPU队列包括至少一个VCPU,且所述至少一个VCPU队列由至少一个线程来管理;所述方法包括:保存第一VCPU的状态,所述第一VCPU为当前运行的VCPU;从所述第一VCPU所在的VCPU队列中确定第二VCPU,所述第二VCPU为待运行VCPU;恢复所述第二VCPU的状态。
【技术特征摘要】
1.一种虚拟中央处理器VCPU切换方法,应用于运行有至少一个VCPU的物理主机,其特征在于,所述物理主机包括至少一个VCPU队列,每一个VCPU队列包括至少一个VCPU,且所述至少一个VCPU队列由至少一个线程来管理;所述方法包括:保存第一VCPU的状态,所述第一VCPU为当前运行的VCPU;从所述第一VCPU所在的VCPU队列中确定第二VCPU,所述第二VCPU为待运行VCPU;恢复所述第二VCPU的状态。2.如权利要求1所述的VCPU切换方法,其特征在于,所述从所述第一VCPU所在VCPU的队列中确定第二VCPU,包括:若所述第一VCPU所在的VCPU队列中存在待运行VCPU,选取一个所述待运行VCPU为所述第二VCPU;若所述第一VCPU所在的VCPU队列中不存在待运行VCPU,则从其他VCPU队列中选取一待运行VCPU,将所选取的待运行VCPU迁移至所述第一VCPU所在的VCPU队列中,所述选取的待运行VCPU为所述第二VCPU。3.如权利要求1所述的VCPU切换方法,其特征在于,所述从所述第一VCPU所在的VCPU队列中确定第二VCPU,包括:若存在优先级高于所述第一VCPU所在的VCPU队列中所有待运行VCPU的优选待运行VCPU,则从所述优选待运行VCPU中选择其一作为被选VCPU,并将所述被选VCPU迁移至所述第一VCPU所在的VCPU队列中,所述被选VCPU为所述第二VCPU;若不存在所述优选待运行VCPU,选取所述第一VCPU所在的VCPU队列中的一个待运行VCPU为所述第二VCPU。4.如权利要求2所述的VCPU切换方法,其特征在于,若所述第一VCPU所在的VCPU队列中存在待运行VCPU,所述选取一个所述待运行VCPU为所述第二VCPU,包括:随机选取所述待运行VCPU其中之一为所述第二VCPU;或者选取所述待运行VCPU中优先级最高的VCPU为所述第二VCPU;或者选取最先进入所述VCPU队列的待运行VCPU为所述第二VCPU。5.如权利要求3所述的VCPU切换方法,其特征在于,若存在所述优选待运行VCPU,在将所述被选VCPU迁移至所述第一VCPU所在的VCPU队列中之前,还包括:若所述第一VCPU所在的VCPU队列已满,移除所述VCPU队列中除所述第一VCPU之外的一个或多个VCPU;若所述第一VCPU所在的VCPU队列未满,将所述被选VCPU迁移至所述第一VCPU对应的VCPU队列中。6.如权利要求5所述的VCPU切换方法,其特征在于,所述移除所述VCPU队列中除所述第一VCPU之外的一个或多个VCPU,包括:随机移除所述VCPU队列中除所述第一VCPU之外的一个或多个VCPU;或者,移除所述VCPU队列中除所述第一VCPU之外优先级最低的一个VCPU;或者,移除所述VCPU队列中除所述第一VCPU之外优先级最低的多个VCPU;其中,所述移除为删除VCPU或者将VCPU迁移至所述第一VCPU所在的VCPU队列之外的其他VCPU队列中,所述其他VCPU队列为未满的VCPU队列。7.如权利要求1所述的VCPU切换方法,其特征在于,还包括:若存在VCPU数小于预设下限的空闲VCPU队列,且存在VCPU数大于预设上限的忙碌VCPU队列,选取所述忙碌VCPU队列中的n个待运行VCPU;将选取的n个待运行VCPU迁移至所述空闲VCPU队列中;其中,n等于所述忙碌VCPU队列中VCPU的个数减去所述预设上限。8.如权利要求7所述的VCPU切换方法,其特征在于,所述选取所述忙碌VCPU队列中的n个待运行VCPU,包括:随机选取所述忙碌VCPU队列中的n个待运行VCPU;或者,按所述忙碌VCPU队列中待运行VCPU优先级从大到小的顺序,截取前n个待运行VCPU。9.一种物理主机,包括:硬件层,运行在所述硬件层之上的虚拟机监视器VMM,以及运行在所述VMM上的虚拟机,所述硬件层包括至少一个处理器和存储设备,所述VMM包括至少一个...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。