一种虚拟机调度方法及装置制造方法及图纸

技术编号:16873551 阅读:32 留言:0更新日期:2017-12-23 11:34
本申请涉及虚拟机技术领域,尤其涉及一种虚拟机调度方法及装置,用以解决现有技术中在业务需求较为复杂的场景下,仅采用一种调度算法来运行虚拟机,很难满足用户的业务需求,以及CPU资源的利用率较低的问题。本申请实施例提供的虚拟机调度方法,包括:当时间调度表中设置有用于控制时间调度表中时间窗口切换的第一定时器,以及用于控制时间调度表中主帧时间切换的第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;其中,所述主帧时间为时间调度表中各时间窗口的长度之和;若是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;若否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。

A virtual machine scheduling method and device

The invention relates to the field of virtual machine technology, especially relates to a device and a virtual machine scheduling method is used to solve the existing technology in business needs more complex scenarios, using only a scheduling algorithm to run virtual machines, it is difficult to meet the business needs of users, and using the CPU source rate is low. Including the virtual machine scheduling method, the embodiment of the application provides: when the time schedule is used to control the first timer time schedule in time window switch, and is used to control the time the main frame time schedule for switching second timer when judging whether the current time is within the time schedule of non idle time in the window; among them, the main frame time for each time window in the length of time schedule and; if so, from the non idle time window acquisition in the ready state, the first virtual machine and run; if not, from the priority ready queue gets in the ready state second virtual machines and run.

【技术实现步骤摘要】
一种虚拟机调度方法及装置
本专利技术涉及虚拟机
,尤其涉及一种虚拟机调度方法及装置。
技术介绍
虚拟化技术出现于上世纪六七年代,主要应用于大型机上,初衷是为了实现更高的设备利用率,使多个用户能够尽可能的利用大型机的丰富系统资源,以达到对计算机资源的整合,节省成本。通常所说的虚拟机技术指系统级虚拟化技术,系统级虚拟化技术中的虚拟化软件称为虚拟机监控器(VirtualMachineMonitor,VMM),以虚拟指令系统架构为目标。系统级虚拟化的核心是构建虚拟机监视器,然后在其上创建虚拟机,将本来直接运行于实际硬件平台的操作系统放在虚拟机里运行。通过虚拟机监视器可以在单个物理机上运行多个虚拟机,每个虚拟机运行不同的操作系统,且运行在各个虚拟机的操作系统之间具有较好的隔离性和扩展性。然而针对虚拟机的调度,目前在虚拟机环境下仅支持采用一种调度算法来实现。而对于不同的调度算法,其适用的业务场景也不相同。比如,优先级调度算法主要应用于实时性较高的业务场景下,而基于时间片或时间调度表的调度算法主要应用于对实时性要求不高的业务场景下。因此,在业务需求较为复杂的场景下,仅采用一种调度算法来运行虚拟机,很难满足用户的业务需求。并且对于时间调度表的调度算法来说,只在时间调度表的非空闲时间窗口中调度待运行的虚拟机,而在时间调度表的空闲时间窗口下不进行虚拟机的调度,这也会造成中央处理器(CentralProcessingUnit,CPU)资源的利用率较低。基于此,为了提高CPU资源的利用率以及满足不同用户的业务需求,急需一种新的虚拟机调度方案。
技术实现思路
本申请实施例提供一种虚拟机调度方法及装置,用以解决现有技术中在业务需求较为复杂的场景下,仅采用一种调度算法来运行虚拟机,很难满足用户的业务需求,以及CPU资源的利用率较低的问题。本申请实施例提供的技术方案如下:第一方面,一种虚拟机调度方法,包括:当时间调度表中设置有用于控制时间调度表中时间窗口切换的第一定时器,以及用于控制时间调度表中主帧时间切换的第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;其中,所述主帧时间为时间调度表中各时间窗口的长度之和;若是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;若否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。进一步地,当所述第一定时器所对应的定时周期到达时,将所述时间调度表中当前时间窗口切换为相邻的下一时间窗口,并在确定所述下一时间窗口为非空闲时间窗口时,从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;当所述第二定时器所对应的定时周期到达时,将所述时间调度表中当前时间窗口切换为所述时间调度表中第一个时间窗口,并在确定所述第一个时间窗口为非空闲时间窗口时,从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行。进一步地,所述方法还包括:当时间调度表中没有设置所述第一定时器和所述第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;若是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机,以及从优先级就绪队列中获取处于就绪态的第二虚拟机;比较所述第一虚拟机和所述第二虚拟机的优先级;若确定所述第一虚拟机和所述第二虚拟机的优先级不同,则运行优先级高的虚拟机;若确定所述第一虚拟机和所述第二虚拟机的优先级相同,则运行所述第一虚拟机;若否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。进一步地,在判断出当前时刻在所述时间调度表中的非空闲时间窗口内之后,所述方法还包括:若所述非空闲时间窗口下没有处于就绪态的第一虚拟机,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。进一步地,若所述第二虚拟机有多个,则所述方法还包括:针对多个第二虚拟机中的每个第二虚拟机,以预设时长为周期进行轮转运行。第二方面,一种虚拟机调度装置,包括:判断模块,用于当时间调度表中设置有用于控制时间调度表中时间窗口切换的第一定时器,以及用于控制时间调度表中主帧时间切换的第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;其中,所述主帧时间为时间调度表中各时间窗口的长度之和;第一处理模块,用于若判断模块的判断结果为是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;第二处理模块,用于若判断模块的判断结果为否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。进一步地,所述第一处理模块还用于:当所述第一定时器所对应的定时周期到达时,将所述时间调度表中当前时间窗口切换为相邻的下一时间窗口,并在所述判断模块确定所述下一时间窗口为非空闲时间窗口时,从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;当所述第二定时器所对应的定时周期到达时,将所述时间调度表中当前时间窗口切换为所述时间调度表中第一个时间窗口,并在所述判断模块确定所述第一个时间窗口为非空闲时间窗口时,从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行。进一步地,所述判断模块还用于:当时间调度表中没有设置所述第一定时器和所述第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;所述第一处理模块还用于:若所述判断模块的判断结果为是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机,以及从优先级就绪队列中获取处于就绪态的第二虚拟机;比较所述第一虚拟机和所述第二虚拟机的优先级;若确定所述第一虚拟机和所述第二虚拟机的优先级不同,则运行优先级高的虚拟机;若确定所述第一虚拟机和所述第二虚拟机的优先级相同,则运行所述第一虚拟机;所述第二处理模块还用于:若所述判断模块的判断结果为否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。进一步地,所述第二处理模块还用于:在所述判断模块判断出当前时刻在所述时间调度表中的非空闲时间窗口内之后,若所述非空闲时间窗口下没有处于就绪态的第一虚拟机,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。进一步地,所述第二处理模块具体用于:若所述第二虚拟机有多个,则针对多个第二虚拟机中的每个第二虚拟机,以预设时长为周期进行轮转运行。本申请实施例的有益效果如下:本申请实施例中,在包含有两个定时器的时间调度表处于非空闲时间窗口下时,从该非空闲时间窗口下获取处于就绪态的第一虚拟机并运行,在包含有两个定时器的时间调度表处于空闲时间窗口下时,从优先级就绪队列中获取处于就绪态的第二虚拟机并运行,能够支持优先级调度算法以及时间调度表来调度虚拟机,故能够满足不同用户的业务需求。并且在该时间调度表的非空闲窗口下,仍可采用优先级调度算法,从优先级就绪队列中获取处于就绪态的虚拟机并运行,从而提高了CPU资源的利用率。另外,本申请实施例中时间调度表设置有第一定时器和第二定时器,其中,通过第一定时器对时间窗口进行定时,以控制时间窗口的切换,通过第二定时器对主帧时间进行定时,以控制主帧时间的切换,能够有效避免现有时间调度表采用系统时钟导致虚拟机的切换以及主帧的切换产生延迟的现象。附图说明图1为本申请实施例提供的采用优先级调度算法时优先级就绪队列对应的8*32位图的示意图;图2为本申请实施例提供的虚拟机的时间调度表的示意图;图3为本申请实施例一提供的虚拟机调度方法流程图;图4为本申请实施本文档来自技高网...
一种虚拟机调度方法及装置

【技术保护点】
一种虚拟机调度方法,其特征在于,该方法包括:当时间调度表中设置有用于控制时间调度表中时间窗口切换的第一定时器,以及用于控制时间调度表中主帧时间切换的第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;其中,所述主帧时间为时间调度表中各时间窗口的长度之和;若是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;若否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。

【技术特征摘要】
1.一种虚拟机调度方法,其特征在于,该方法包括:当时间调度表中设置有用于控制时间调度表中时间窗口切换的第一定时器,以及用于控制时间调度表中主帧时间切换的第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;其中,所述主帧时间为时间调度表中各时间窗口的长度之和;若是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;若否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。2.如权利要求1所述的方法,其特征在于,当所述第一定时器所对应的定时周期到达时,将所述时间调度表中当前时间窗口切换为相邻的下一时间窗口,并在确定所述下一时间窗口为非空闲时间窗口时,从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;当所述第二定时器所对应的定时周期到达时,将所述时间调度表中当前时间窗口切换为所述时间调度表中第一个时间窗口,并在确定所述第一个时间窗口为非空闲时间窗口时,从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行。3.如权利要求1所述的方法,其特征在于,所述方法还包括:当时间调度表中没有设置所述第一定时器和所述第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;若是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机,以及从优先级就绪队列中获取处于就绪态的第二虚拟机;比较所述第一虚拟机和所述第二虚拟机的优先级;若确定所述第一虚拟机和所述第二虚拟机的优先级不同,则运行优先级高的虚拟机;若确定所述第一虚拟机和所述第二虚拟机的优先级相同,则运行所述第一虚拟机;若否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。4.如权利要求3所述的方法,其特征在于,在判断出当前时刻在所述时间调度表中的非空闲时间窗口内之后,所述方法还包括:若所述非空闲时间窗口下没有处于就绪态的第一虚拟机,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。5.如权利要求1~4任一所述的方法,其特征在于,若所述第二虚拟机有多个,则所述方法还包括:针对多个第二虚拟机中的每个第二虚拟机,以预设时长为周期进行轮转运行。6.一种虚拟机调度装置,其特征在于,该装置包括:判断模块,用于当时间调度表中设置有用于控制时间调度表中时间窗口切换的第一定时器,以及用...

【专利技术属性】
技术研发人员:彭元志
申请(专利权)人:北京东土科技股份有限公司北京科银京成技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1