CN107506234A - 一种虚拟机调度方法及装置 - Google Patents
一种虚拟机调度方法及装置 Download PDFInfo
- Publication number
- CN107506234A CN107506234A CN201710534134.5A CN201710534134A CN107506234A CN 107506234 A CN107506234 A CN 107506234A CN 201710534134 A CN201710534134 A CN 201710534134A CN 107506234 A CN107506234 A CN 107506234A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- time
- time window
- priority
- busy
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及虚拟机技术领域,尤其涉及一种虚拟机调度方法及装置,用以解决现有技术中在业务需求较为复杂的场景下,仅采用一种调度算法来运行虚拟机,很难满足用户的业务需求,以及CPU资源的利用率较低的问题。本申请实施例提供的虚拟机调度方法,包括:当时间调度表中设置有用于控制时间调度表中时间窗口切换的第一定时器,以及用于控制时间调度表中主帧时间切换的第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;其中,所述主帧时间为时间调度表中各时间窗口的长度之和;若是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;若否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
Description
技术领域
本发明涉及虚拟机技术领域,尤其涉及一种虚拟机调度方法及装置。
背景技术
虚拟化技术出现于上世纪六七年代,主要应用于大型机上,初衷是为了实现更高的设备利用率,使多个用户能够尽可能的利用大型机的丰富系统资源,以达到对计算机资源的整合,节省成本。
通常所说的虚拟机技术指系统级虚拟化技术,系统级虚拟化技术中的虚拟化软件称为虚拟机监控器(Virtual Machine Monitor,VMM),以虚拟指令系统架构为目标。系统级虚拟化的核心是构建虚拟机监视器,然后在其上创建虚拟机,将本来直接运行于实际硬件平台的操作系统放在虚拟机里运行。通过虚拟机监视器可以在单个物理机上运行多个虚拟机,每个虚拟机运行不同的操作系统,且运行在各个虚拟机的操作系统之间具有较好的隔离性和扩展性。然而针对虚拟机的调度,目前在虚拟机环境下仅支持采用一种调度算法来实现。而对于不同的调度算法,其适用的业务场景也不相同。比如,优先级调度算法主要应用于实时性较高的业务场景下,而基于时间片或时间调度表的调度算法主要应用于对实时性要求不高的业务场景下。因此,在业务需求较为复杂的场景下,仅采用一种调度算法来运行虚拟机,很难满足用户的业务需求。并且对于时间调度表的调度算法来说,只在时间调度表的非空闲时间窗口中调度待运行的虚拟机,而在时间调度表的空闲时间窗口下不进行虚拟机的调度,这也会造成中央处理器(Central Processing Unit,CPU)资源的利用率较低。
基于此,为了提高CPU资源的利用率以及满足不同用户的业务需求,急需一种新的虚拟机调度方案。
发明内容
本申请实施例提供一种虚拟机调度方法及装置,用以解决现有技术中在业务需求较为复杂的场景下,仅采用一种调度算法来运行虚拟机,很难满足用户的业务需求,以及CPU资源的利用率较低的问题。
本申请实施例提供的技术方案如下:
第一方面,一种虚拟机调度方法,包括:
当时间调度表中设置有用于控制时间调度表中时间窗口切换的第一定时器,以及用于控制时间调度表中主帧时间切换的第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;其中,所述主帧时间为时间调度表中各时间窗口的长度之和;
若是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;
若否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
进一步地,当所述第一定时器所对应的定时周期到达时,将所述时间调度表中当前时间窗口切换为相邻的下一时间窗口,并在确定所述下一时间窗口为非空闲时间窗口时,从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;
当所述第二定时器所对应的定时周期到达时,将所述时间调度表中当前时间窗口切换为所述时间调度表中第一个时间窗口,并在确定所述第一个时间窗口为非空闲时间窗口时,从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行。
进一步地,所述方法还包括:
当时间调度表中没有设置所述第一定时器和所述第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;
若是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机,以及从优先级就绪队列中获取处于就绪态的第二虚拟机;比较所述第一虚拟机和所述第二虚拟机的优先级;若确定所述第一虚拟机和所述第二虚拟机的优先级不同,则运行优先级高的虚拟机;若确定所述第一虚拟机和所述第二虚拟机的优先级相同,则运行所述第一虚拟机;
若否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
进一步地,在判断出当前时刻在所述时间调度表中的非空闲时间窗口内之后,所述方法还包括:
若所述非空闲时间窗口下没有处于就绪态的第一虚拟机,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
进一步地,若所述第二虚拟机有多个,则所述方法还包括:
针对多个第二虚拟机中的每个第二虚拟机,以预设时长为周期进行轮转运行。
第二方面,一种虚拟机调度装置,包括:
判断模块,用于当时间调度表中设置有用于控制时间调度表中时间窗口切换的第一定时器,以及用于控制时间调度表中主帧时间切换的第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;其中,所述主帧时间为时间调度表中各时间窗口的长度之和;
第一处理模块,用于若判断模块的判断结果为是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;
第二处理模块,用于若判断模块的判断结果为否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
进一步地,所述第一处理模块还用于:
当所述第一定时器所对应的定时周期到达时,将所述时间调度表中当前时间窗口切换为相邻的下一时间窗口,并在所述判断模块确定所述下一时间窗口为非空闲时间窗口时,从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;
当所述第二定时器所对应的定时周期到达时,将所述时间调度表中当前时间窗口切换为所述时间调度表中第一个时间窗口,并在所述判断模块确定所述第一个时间窗口为非空闲时间窗口时,从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行。
进一步地,所述判断模块还用于:
当时间调度表中没有设置所述第一定时器和所述第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;
所述第一处理模块还用于:若所述判断模块的判断结果为是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机,以及从优先级就绪队列中获取处于就绪态的第二虚拟机;比较所述第一虚拟机和所述第二虚拟机的优先级;若确定所述第一虚拟机和所述第二虚拟机的优先级不同,则运行优先级高的虚拟机;若确定所述第一虚拟机和所述第二虚拟机的优先级相同,则运行所述第一虚拟机;
所述第二处理模块还用于:若所述判断模块的判断结果为否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
进一步地,所述第二处理模块还用于:
在所述判断模块判断出当前时刻在所述时间调度表中的非空闲时间窗口内之后,若所述非空闲时间窗口下没有处于就绪态的第一虚拟机,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
进一步地,所述第二处理模块具体用于:
若所述第二虚拟机有多个,则针对多个第二虚拟机中的每个第二虚拟机,以预设时长为周期进行轮转运行。
本申请实施例的有益效果如下:本申请实施例中,在包含有两个定时器的时间调度表处于非空闲时间窗口下时,从该非空闲时间窗口下获取处于就绪态的第一虚拟机并运行,在包含有两个定时器的时间调度表处于空闲时间窗口下时,从优先级就绪队列中获取处于就绪态的第二虚拟机并运行,能够支持优先级调度算法以及时间调度表来调度虚拟机,故能够满足不同用户的业务需求。并且在该时间调度表的非空闲窗口下,仍可采用优先级调度算法,从优先级就绪队列中获取处于就绪态的虚拟机并运行,从而提高了CPU资源的利用率。
另外,本申请实施例中时间调度表设置有第一定时器和第二定时器,其中,通过第一定时器对时间窗口进行定时,以控制时间窗口的切换,通过第二定时器对主帧时间进行定时,以控制主帧时间的切换,能够有效避免现有时间调度表采用系统时钟导致虚拟机的切换以及主帧的切换产生延迟的现象。
附图说明
图1为本申请实施例提供的采用优先级调度算法时优先级就绪队列对应的8*32位图的示意图;
图2为本申请实施例提供的虚拟机的时间调度表的示意图;
图3为本申请实施例一提供的虚拟机调度方法流程图;
图4为本申请实施例二提供的虚拟机调度方法流程图;
图5a为本申请实施例二提供的虚拟机调度方法的具体场景示意图一;
图5b为本申请实施例二提供的虚拟机调度方法的具体场景示意图二;
图6为本申请实施例三提供的虚拟机调度装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了提高CPU资源的利用率以及满足不同用户的业务需求,本申请实施例提出了一种虚拟机调度方法及装置,能够实现将时间调度表、优先级调度算法以及基于时间片的调度算法三者相结合进行混合调度。
并且,针对时间调度表可基于实际业务场景配置为以下两种情况:一种是包含对时间窗口进行定时的第一定时器和对时间调度表的主帧时间进行定时的第二定时器的双时钟时间调度表,通过第一定时器控制时间窗口的切换,通过第二定时器控制主帧时间的切换,从而消除累积的时钟误差,能够支持飞控系统中采用多余度容错技术的计算机系统的同步运行。另一种是不包含上述第一定时器和第二定时器的时间调度表,其适用范围较为广泛,但由于该时间调度表采用系统时钟,在调度过程中中断产生较为频繁,造成虚拟机的切换以及主帧的切换出现延迟,不适合应用在上述采用多余度容错技术的计算机系统中。
为便于对本申请实施例的理解,首先分别对优先级调度算法、基于时间片的调度算法以及时间调度表进行简单介绍。
这里,可以为计算机系统中每个虚拟机预先配置优先级,优先级范围可设置为0~255,其中0级最高,255最低。并且,各虚拟机的状态可以为就绪、等待、挂等、挂起、休眠。其中,处于就绪态的虚拟机能够支持调度,其余非就绪态的虚拟机不支持调度。
(1)优先级调度算法
这里,可将虚拟机根据优先级的大小添加至优先级就绪队列中。该优先级就绪队列可采用8*32位图的方式来表示,每一位对应一个优先级,每一位可存放优先级相同的虚拟机。其中,若在某一位上存在处于就绪态的虚拟机,则该位置为1,若在某一位上的虚拟机均为非就绪态的虚拟机,则该位置为0。
参照图1所示,为采用优先级调度算法时优先级就绪队列对应的8*32位图的示意图。在8*32位图管理中,将优先级右移5位后的值0~7作为优先级主索引号,即优先级主索引号占优先级的高3位。将优先级低5位的值0~31作为优先级次索引号。使用8位图作为优先级主索引号位图,使用8组32位图作为优先级8个优先级主索引号对应的次索引号位图,其中8个优先级主索引号位图的每一位,均对应着一个32位优先级次索引号位图。
比如,对于优先级为42的处于就绪态的虚拟机,该优先级42按照二进制可表示为“00101010”(也就是说42=25+23+2=32+10),那么优先级右移5位后的值“001”(二进制)=1(十进制),对应着优先级主索引号中第1位(第0位为起始位);优先级的低5位“01010”(二进制)=10(十进制),对应着优先级次索引号中第10位,故而,可将优先级主索引号位图的第1位置为1,将与优先级主索引号位图的第1位对应的优先级次索引号位图中的第10位置为1,表征优先级就绪队列中优先级为42的虚拟机处于就绪态。
进一步,在调度优先级就绪队列中的虚拟机时,可依次遍历8*32位图中置为1的位,从中选取优先级最高的处于就绪态的虚拟机运行。继续参照图1,可首先由0位至7位依次遍历优先级主索引号位图,若查找到第1位置为1,则进一步在与优先级主索引号位图的第1位对应的优先级次索引号位图中由0位置31位依次遍历优先级次索引号位图,进而查找到第10位置为1,则可确定在优先级就绪队列中优先级最高的处于就绪态的虚拟机为优先级为42的虚拟机,进而可以运行该优先级为42的虚拟机。
(2)基于时间片的调度算法
这里,时间片即为预设时长,所谓基于时间片的调度算法,可以理解为各个虚拟机以所述预设时长为周期进行轮转运行。比如,对于N个虚拟机来说,若采用基于时间片的调度算法,可理解为第1个虚拟机运行预设时长后,切换至第2个虚拟机运行,并当第2个虚拟机运行预设时长后,切换至第3个虚拟机......以此类推。
(3)时间调度表
这里,在计算机系统中可配置至少一个时间调度表,但在任一时刻至多有一个时间调度表参与调度,参与调度的时间调度表的选择可根据需求预先配置。时间调度表由若干个时间窗口组成,时间窗口可分为非空闲时间窗口以及空闲时间窗口,其中,非空闲时间窗口对应着一个虚拟机的运行时间,空闲时间窗口下不运行虚拟机。主帧时间为时间调度表中各时间窗口的长度之和。时间调度表参与调度时,重复执行相同的主帧,也就是说,每执行完一次时间调度表,重新转至第一个时间窗口继续执行。
参照图2所示,为本申请实施例提供的虚拟机的时间调度表的示意图。该时间调度表中第一个非空闲时间窗口表征虚拟机1的运行时间、第二个非空闲时间窗口表征虚拟机2的运行时间、第三个非空闲时间窗口表征虚拟机3的运行时间、第四个非空闲时间窗口表征虚拟机1的运行时间。主帧时间表征了时间调度表的总时长,也即如图中6个时间窗口的长度之和。其中,每个时间窗口的长度可根据实际需求进行配置,可以配置为相同的长度,也可以配置为不同的长度。
这里,考虑到现有的这种时间调度表采用系统时钟,可能出现每隔较小的时间间隔就发生一次中断的现象,这种频繁中断可能导致时间调度表的时间窗口产生延迟。比如,假设时间调度表的主帧时间为500ms,虚拟机1对应的非空闲时间窗口为100ms,并且假定中断处理时间为1ms,若在虚拟机1运行过程中产生了10次中断,那么就会造成10s的延迟,也就是说虚拟机1运行了110ms才切换至虚拟机2,那么相应地,当主帧时间500ms到达时,实际还处于时间调度表的最后一个时间窗口,需等到510ms时才会重新切换至时间调度表的第一个时间窗口,故主帧切换会产生了10ms的延迟。
为了避免虚拟机的切换以及主帧的切换的延迟,本申请实施例中为时间调度表设计了两个定时器,其中,通过第一定时器对时间窗口进行定时,以控制时间窗口的切换,通过第二定时器对主帧时间进行定时,以控制主帧时间的切换。具体地:
当第一定时器所对应的定时周期到达时,将时间调度表中当前时间窗口切换为相邻的下一时间窗口。
这里,第一定时器的定时周期即为各个时间窗口分别对应的时长。定时周期可随着时间窗口的切换,自动切换至当前时间窗口所对应的时长。具体地,第一定时器在初始工作状态下的定时周期为时间调度表中第一时间窗口对应的时长,当计时满足该第一时间窗口对应的时长时,即定时周期到达时,将第一时间窗口切换至第二时间窗口,并将定时周期更改为第二时间窗口对应的时长,以此类推。其中,所谓时间窗口的切换,也可以理解为虚拟机之间的切换。比如,第一时间窗口和第二时间窗口均为非空闲时间窗口,且分别放置有处于就绪态的虚拟机1和虚拟机2,则所述第一时间窗口切换至第二时间窗口,也就是说将虚拟机1切换至虚拟机2。
当第二定时器所对应的定时周期到达时,将时间调度表中当前时间窗口切换为时间调度表中第一个时间窗口。
这里,第二定时器的定时周期为主帧时间,即一个时间调度表的总时长。比如500ms。那么当计时满足时间调度表的总时长,即定时周期到达时,无论当前处于哪个时间窗口,均切换为时间调度表的第一个时间窗口,并从头计时。从而实现主帧时间的同步。
下面,结合说明书附图,以及上述介绍的虚拟机调度算法,进一步对本申请实施例进行介绍。
其中,实施例一主要介绍当时间调度表中设置有两个定时器时,如何结合优先级调度、时间片调度以及时间调度表实现混合调度。实施例二主要介绍当时间调度表没有设置两个定时器时,如何结合优先级调度、时间片调度以及时间调度表实现混合调度。
实施例一
参照图3,为本申请实施例一提供的虚拟机调度方法流程图,包括以下步骤:
步骤301:当时间调度表中设置有用于控制时间调度表中时间窗口切换的第一定时器,以及用于控制时间调度表中主帧时间切换的第二定时器时,判断当前时刻是否在时间调度表中的非空闲时间窗口内。
若是,则执行步骤302;若否,则执行步骤303。
步骤302:从非空闲时间窗口中获取处于就绪态的第一虚拟机并运行。
这里,对于包含有两个定时器的时间调度表来说,若当前时刻在该时间调度表中的非空闲时间窗口内,则优先从该非空闲时间窗口中获取处于就绪态的第一虚拟机并运行。
并且,当第一定时器所对应的定时周期到达时,首先将时间调度表中当前时间窗口切换为相邻的下一时间窗口,之后在确定下一时间窗口为非空闲时间窗口时,从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行。
当第二定时器所对应的定时周期到达时,首先将时间调度表中当前时间窗口切换为时间调度表中第一个时间窗口,并在确定第一个时间窗口为非空闲时间窗口时,从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行。
需要注意的是,当该非空闲时间窗口下没有处于就绪态的第一虚拟机时,也可以直接从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
步骤303:从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
这里,仅当包含有两个定时器的时间调度表处于空闲时间窗口时,从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。而当用于对时间窗口进行定时的第一定时器的定时周期到达,并且由当前空闲时间窗口切换至非空闲时间窗口时,仍从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行。并且,参照上述对优先级调度算法的介绍可知,从优先级就绪队列中获取的处于就绪态的虚拟机,是优先级就绪队列中优先级最高的处于就绪态的虚拟机,具体获取过程请参照上文,这里不再赘述。
另外,由于从优先级就绪队列中可能获取到多个具有相同优先级的处于就绪态的虚拟机,故当获取的处于就绪态的第二虚拟机有多个时,针对多个第二虚拟机中的每个第二虚拟机,可以基于时间片的调度算法,以预设时长为周期进行轮转运行。比如,若获取的第二虚拟机有3个,预设时长为10ms,则每个第二虚拟机依次运行10ms。
由此可见,本申请实施例中,能够实现将时间调度表、优先级调度算法以及基于时间片的调度算法三者相结合进行混合调度,能够满足不同用户的业务需求,并且在时间调度表的非空闲窗口下,仍可采用优先级调度算法,从优先级就绪队列中获取处于就绪态的虚拟机并运行,从而提高了CPU资源的利用率。
并且,本申请实施例中时间调度表设置有第一定时器和第二定时器,其中,通过第一定时器对时间窗口进行定时,以控制时间窗口的切换,通过第二定时器对主帧时间进行定时,以控制主帧时间的切换,能够有效避免现有时间调度表采用系统时钟导致虚拟机的切换以及主帧的切换产生延迟的现象。
实施例二
参照图4,为本申请实施例二提供的虚拟机调度方法流程图,包括以下步骤:
步骤401:当时间调度表中没有设置上述第一定时器和第二定时器时,判断当前时刻是否在时间调度表中的非空闲时间窗口内。
若是,则执行步骤402~405;若否,则执行步骤406。
步骤402:从非空闲时间窗口中获取处于就绪态的第一虚拟机,以及从优先级就绪队列中获取处于就绪态的第二虚拟机。
这里,在判断出当前时刻在时间调度表中的非空闲时间窗口内之后,若该非空闲时间窗口下没有处于就绪态的第一虚拟机,可以直接从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
步骤403:比较第一虚拟机和第二虚拟机的优先级。
其中,若第一虚拟机和第二虚拟机的优先级不同,则执行步骤404;
若第一虚拟机和第二虚拟机的优先级相同,则执行步骤405。
步骤404:运行优先级高的虚拟机。
这里,若第一虚拟机的优先级高于第二虚拟机的优先级,则运行该第一虚拟机。
若第一虚拟机的优先级低于第二虚拟机的优先级,则运行该第二虚拟机。
步骤405:运行第一虚拟机。
这里,若第一虚拟机和第二虚拟机的优先级相同,则从时间调度表中获取的第一虚拟机优先运行。
步骤406:从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
这里,当时间调度表处于空闲时间窗口时,直接从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。并且,参照上述对优先级调度算法的介绍可知,从优先级就绪队列中获取的处于就绪态的虚拟机,是优先级就绪队列中优先级最高的处于就绪态的虚拟机,具体获取过程请参照上文,这里不再赘述。
由于从优先级就绪队列中可能获取到多个具有相同优先级的处于就绪态的虚拟机,故当获取的处于就绪态的第二虚拟机有多个时,针对多个第二虚拟机中的每个第二虚拟机,可以基于时间片的调度算法,以预设时长为周期进行轮转运行。
下面,为便于理解,列举两种具体场景,对本申请实施例提供的虚拟机调度方法进行介绍。其中,列举的时间调度表中不包含第一定时器和第二定时器。
场景1:参照图5a所示,假设当前时刻在时间调度表的第一个非空闲时间窗口内,且该第一个非空闲时间窗口下包含有优先级为7的处于就绪态的虚拟机1,那么,可从该非空闲时间窗口中获取虚拟机1,从优先级就绪队列中获取优先级最高的处于就绪态的虚拟机,即优先级为4的虚拟机4。进一步,比较虚拟机1和虚拟机4的优先级,可以得知虚拟机4的优先级较高,故选取虚拟机4运行。
场景2:参照图5b所示,假设当前时刻在时间调度表的第一个非空闲时间窗口内,且该第一个非空闲时间窗口下包含有优先级为4的处于就绪态的虚拟机1,那么,可从该非空闲时间窗口中获取虚拟机1,从优先级就绪队列中获取优先级最高的处于就绪态的虚拟机,即优先级为4的虚拟机4。进一步,由于虚拟机1和虚拟机4的优先级相同,故优先选择从时间调度表中获取的虚拟机1运行。
由此可见,本申请实施例中,能够实现将时间调度表、优先级调度算法以及基于时间片的调度算法三者相结合进行混合调度,能够满足不同用户的业务需求,并且在时间调度表的非空闲窗口下,仍可采用优先级调度算法,从优先级就绪队列中获取处于就绪态的虚拟机并运行,从而提高了CPU资源的利用率。
基于同一申请构思,本申请实施例中还提供了一种与虚拟机调度方法对应的虚拟机调度装置,由于该装置解决问题的原理与本申请实施例中虚拟机调度方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
实施例三
如图6所示,为本申请实施例三提供的虚拟机调度装置结构图,包括:
判断模块61,用于当时间调度表中设置有用于控制时间调度表中时间窗口切换的第一定时器,以及用于控制时间调度表中主帧时间切换的第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;其中,所述主帧时间为时间调度表中各时间窗口的长度之和;
第一处理模块62,用于若判断模块的判断结果为是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;
第二处理模块63,用于若判断模块的判断结果为否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
进一步地,所述第一处理模块62还用于:
当所述第一定时器所对应的定时周期到达时,将所述时间调度表中当前时间窗口切换为相邻的下一时间窗口,并在所述判断模块确定所述下一时间窗口为非空闲时间窗口时,从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;
当所述第二定时器所对应的定时周期到达时,将所述时间调度表中当前时间窗口切换为所述时间调度表中第一个时间窗口,并在所述判断模块确定所述第一个时间窗口为非空闲时间窗口时,从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行。
进一步地,所述判断模块61还用于:
当时间调度表中没有设置所述第一定时器和所述第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;
所述第一处理模块62还用于:若所述判断模块的判断结果为是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机,以及从优先级就绪队列中获取处于就绪态的第二虚拟机;比较所述第一虚拟机和所述第二虚拟机的优先级;若确定所述第一虚拟机和所述第二虚拟机的优先级不同,则运行优先级高的虚拟机;若确定所述第一虚拟机和所述第二虚拟机的优先级相同,则运行所述第一虚拟机;
所述第二处理模块63还用于:若所述判断模块的判断结果为否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
进一步地,所述第二处理模块63还用于:
在所述判断模块判断出当前时刻在所述时间调度表中的非空闲时间窗口内之后,若所述非空闲时间窗口下没有处于就绪态的第一虚拟机,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
进一步地,所述第二处理模块63具体用于:
若所述第二虚拟机有多个,则针对多个第二虚拟机中的每个第二虚拟机,以预设时长为周期进行轮转运行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种虚拟机调度方法,其特征在于,该方法包括:
当时间调度表中设置有用于控制时间调度表中时间窗口切换的第一定时器,以及用于控制时间调度表中主帧时间切换的第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;其中,所述主帧时间为时间调度表中各时间窗口的长度之和;
若是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;
若否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
2.如权利要求1所述的方法,其特征在于,当所述第一定时器所对应的定时周期到达时,将所述时间调度表中当前时间窗口切换为相邻的下一时间窗口,并在确定所述下一时间窗口为非空闲时间窗口时,从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;
当所述第二定时器所对应的定时周期到达时,将所述时间调度表中当前时间窗口切换为所述时间调度表中第一个时间窗口,并在确定所述第一个时间窗口为非空闲时间窗口时,从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
当时间调度表中没有设置所述第一定时器和所述第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;
若是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机,以及从优先级就绪队列中获取处于就绪态的第二虚拟机;比较所述第一虚拟机和所述第二虚拟机的优先级;若确定所述第一虚拟机和所述第二虚拟机的优先级不同,则运行优先级高的虚拟机;若确定所述第一虚拟机和所述第二虚拟机的优先级相同,则运行所述第一虚拟机;
若否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
4.如权利要求3所述的方法,其特征在于,在判断出当前时刻在所述时间调度表中的非空闲时间窗口内之后,所述方法还包括:
若所述非空闲时间窗口下没有处于就绪态的第一虚拟机,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
5.如权利要求1~4任一所述的方法,其特征在于,若所述第二虚拟机有多个,则所述方法还包括:
针对多个第二虚拟机中的每个第二虚拟机,以预设时长为周期进行轮转运行。
6.一种虚拟机调度装置,其特征在于,该装置包括:
判断模块,用于当时间调度表中设置有用于控制时间调度表中时间窗口切换的第一定时器,以及用于控制时间调度表中主帧时间切换的第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;其中,所述主帧时间为时间调度表中各时间窗口的长度之和;
第一处理模块,用于若判断模块的判断结果为是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;
第二处理模块,用于若判断模块的判断结果为否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
7.如权利要求6所述的装置,其特征在于,所述第一处理模块还用于:
当所述第一定时器所对应的定时周期到达时,将所述时间调度表中当前时间窗口切换为相邻的下一时间窗口,并在所述判断模块确定所述下一时间窗口为非空闲时间窗口时,从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行;
当所述第二定时器所对应的定时周期到达时,将所述时间调度表中当前时间窗口切换为所述时间调度表中第一个时间窗口,并在所述判断模块确定所述第一个时间窗口为非空闲时间窗口时,从切换后的非空闲时间窗口中获取处于就绪态的第一虚拟机并运行。
8.如权利要求6所述的装置,其特征在于,所述判断模块还用于:
当时间调度表中没有设置所述第一定时器和所述第二定时器时,判断当前时刻是否在所述时间调度表中的非空闲时间窗口内;
所述第一处理模块还用于:若所述判断模块的判断结果为是,则从所述非空闲时间窗口中获取处于就绪态的第一虚拟机,以及从优先级就绪队列中获取处于就绪态的第二虚拟机;比较所述第一虚拟机和所述第二虚拟机的优先级;若确定所述第一虚拟机和所述第二虚拟机的优先级不同,则运行优先级高的虚拟机;若确定所述第一虚拟机和所述第二虚拟机的优先级相同,则运行所述第一虚拟机;
所述第二处理模块还用于:若所述判断模块的判断结果为否,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
9.如权利要求8所述的装置,其特征在于,所述第二处理模块还用于:
在所述判断模块判断出当前时刻在所述时间调度表中的非空闲时间窗口内之后,若所述非空闲时间窗口下没有处于就绪态的第一虚拟机,则从优先级就绪队列中获取处于就绪态的第二虚拟机并运行。
10.如权利要求6~9任一所述的装置,其特征在于,所述第二处理模块具体用于:
若所述第二虚拟机有多个,则针对多个第二虚拟机中的每个第二虚拟机,以预设时长为周期进行轮转运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710534134.5A CN107506234B (zh) | 2017-07-03 | 2017-07-03 | 一种虚拟机调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710534134.5A CN107506234B (zh) | 2017-07-03 | 2017-07-03 | 一种虚拟机调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107506234A true CN107506234A (zh) | 2017-12-22 |
CN107506234B CN107506234B (zh) | 2020-04-24 |
Family
ID=60678712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710534134.5A Active CN107506234B (zh) | 2017-07-03 | 2017-07-03 | 一种虚拟机调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107506234B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563557A (zh) * | 2018-02-08 | 2018-09-21 | 北京东土科技股份有限公司 | 一种多通道计算机的通道同步方法及装置 |
CN108958157A (zh) * | 2018-07-09 | 2018-12-07 | 北京东土科技股份有限公司 | 控制程序控制调度方法、装置、计算机设备以及存储介质 |
CN108984267A (zh) * | 2018-07-09 | 2018-12-11 | 北京东土科技股份有限公司 | 工业服务器的微内核架构控制系统及工业服务器 |
CN110377106A (zh) * | 2019-06-21 | 2019-10-25 | 湖南麒麟信安科技有限公司 | 一种时统卡虚拟化方法、系统及介质 |
CN110502310A (zh) * | 2018-05-18 | 2019-11-26 | 北京东土科技股份有限公司 | 一种虚拟机的时间同步方法及装置 |
CN112559117A (zh) * | 2019-09-25 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 定时器处理方法、装置、电子设备及计算机存储介质 |
CN112579294A (zh) * | 2020-12-25 | 2021-03-30 | 科东(广州)软件科技有限公司 | 一种虚拟机的多核调度的实现方法及装置 |
CN116893893A (zh) * | 2023-09-08 | 2023-10-17 | 北京翼辉信息技术有限公司 | 一种虚拟机调度方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092699A (zh) * | 2013-01-10 | 2013-05-08 | 中国南方电网有限责任公司超高压输电公司 | 一种云计算资源预分配实现方法 |
CN103577249A (zh) * | 2013-11-13 | 2014-02-12 | 中国科学院计算技术研究所 | 虚拟机在线迁移方法与系统 |
US20150033237A1 (en) * | 2009-12-31 | 2015-01-29 | Bmc Software, Inc. | Utility-optimized scheduling of time-sensitive tasks in a resource-constrained environment |
US9286104B1 (en) * | 2015-01-05 | 2016-03-15 | International Business Machines Corporation | Selecting virtual machines to be relocated based on memory volatility |
CN105988867A (zh) * | 2015-01-29 | 2016-10-05 | 北京科银京成技术有限公司 | 基于分时分区操作系统的速率组调度算法 |
-
2017
- 2017-07-03 CN CN201710534134.5A patent/CN107506234B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150033237A1 (en) * | 2009-12-31 | 2015-01-29 | Bmc Software, Inc. | Utility-optimized scheduling of time-sensitive tasks in a resource-constrained environment |
CN103092699A (zh) * | 2013-01-10 | 2013-05-08 | 中国南方电网有限责任公司超高压输电公司 | 一种云计算资源预分配实现方法 |
CN103577249A (zh) * | 2013-11-13 | 2014-02-12 | 中国科学院计算技术研究所 | 虚拟机在线迁移方法与系统 |
US9286104B1 (en) * | 2015-01-05 | 2016-03-15 | International Business Machines Corporation | Selecting virtual machines to be relocated based on memory volatility |
CN105988867A (zh) * | 2015-01-29 | 2016-10-05 | 北京科银京成技术有限公司 | 基于分时分区操作系统的速率组调度算法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563557A (zh) * | 2018-02-08 | 2018-09-21 | 北京东土科技股份有限公司 | 一种多通道计算机的通道同步方法及装置 |
CN110502310A (zh) * | 2018-05-18 | 2019-11-26 | 北京东土科技股份有限公司 | 一种虚拟机的时间同步方法及装置 |
CN110502310B (zh) * | 2018-05-18 | 2021-12-14 | 北京东土科技股份有限公司 | 一种虚拟机的时间同步方法及装置 |
US10977070B2 (en) | 2018-07-09 | 2021-04-13 | Kyland Technology Co., Ltd | Control system for microkernel architecture of industrial server and industrial server comprising the same |
CN108958157B (zh) * | 2018-07-09 | 2020-09-18 | 北京东土科技股份有限公司 | 控制程序控制调度方法、装置、计算机设备以及存储介质 |
CN108984267B (zh) * | 2018-07-09 | 2020-11-13 | 北京东土科技股份有限公司 | 工业服务器的微内核架构控制系统及工业服务器 |
CN108984267A (zh) * | 2018-07-09 | 2018-12-11 | 北京东土科技股份有限公司 | 工业服务器的微内核架构控制系统及工业服务器 |
CN108958157A (zh) * | 2018-07-09 | 2018-12-07 | 北京东土科技股份有限公司 | 控制程序控制调度方法、装置、计算机设备以及存储介质 |
CN110377106A (zh) * | 2019-06-21 | 2019-10-25 | 湖南麒麟信安科技有限公司 | 一种时统卡虚拟化方法、系统及介质 |
CN112559117A (zh) * | 2019-09-25 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 定时器处理方法、装置、电子设备及计算机存储介质 |
CN112559117B (zh) * | 2019-09-25 | 2024-06-07 | 阿里巴巴集团控股有限公司 | 定时器处理方法、装置、电子设备及计算机存储介质 |
US12032989B2 (en) | 2019-09-25 | 2024-07-09 | Alibaba Group Holding Limited | Timer processing method, apparatus, electronic device and computer storage medium |
CN112579294A (zh) * | 2020-12-25 | 2021-03-30 | 科东(广州)软件科技有限公司 | 一种虚拟机的多核调度的实现方法及装置 |
CN116893893A (zh) * | 2023-09-08 | 2023-10-17 | 北京翼辉信息技术有限公司 | 一种虚拟机调度方法、装置、电子设备及存储介质 |
CN116893893B (zh) * | 2023-09-08 | 2024-03-22 | 北京翼辉信息技术有限公司 | 一种虚拟机调度方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107506234B (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107506234A (zh) | 一种虚拟机调度方法及装置 | |
CN108984267B (zh) | 工业服务器的微内核架构控制系统及工业服务器 | |
CN104866374A (zh) | 基于多任务的离散事件并行仿真及时间同步方法 | |
CN108958157A (zh) | 控制程序控制调度方法、装置、计算机设备以及存储介质 | |
CN104021040B (zh) | 基于时间约束条件下的云计算关联任务调度方法和装置 | |
CN104063279B (zh) | 任务调度方法、装置和终端 | |
CN107025205A (zh) | 一种分布式系统中的训练模型的方法及设备 | |
CN104731657B (zh) | 一种资源调度方法和系统 | |
CN104866372B (zh) | 一种面向服务器整合的高效物理机到虚拟机转换方法 | |
CN103685309A (zh) | 面向地图可视化瓦片服务接入的异步请求队列模型 | |
CN104539972A (zh) | 一种多核处理器中视频并行解码的控制方法和装置 | |
CN109582436A (zh) | 基于容器集群平台的细粒度抢占式资源调度系统及方法 | |
CN105631921B (zh) | 图像数据的处理方法及装置 | |
CN106412088B (zh) | 一种数据同步方法及终端 | |
CN105933136B (zh) | 一种资源调度方法及系统 | |
CN106708618A (zh) | 一种进程调度方法及装置 | |
CN110096548A (zh) | 数据同步的方法、装置、计算机设备及计算机存储介质 | |
CN109217994B (zh) | 数据传输方法、装置及计算机可读存储介质 | |
CN109491780A (zh) | 多任务调度方法及装置 | |
CN102299820A (zh) | 一种盟员节点装置及hla系统构架的实现方法 | |
CN115502975A (zh) | 一种机器人调度方法、装置、电子设备及存储介质 | |
CN110109743B (zh) | 一种实时进程调度方法 | |
CN104572304B (zh) | 智能均衡的集群渲染任务维管方法 | |
CN109558214B (zh) | 异构环境下宿主机资源管理方法、装置和存储介质 | |
CN106034347B (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 | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20171222 Assignee: Kedong (Guangzhou) Software Technology Co., Ltd Assignor: Beijing Dongtu Technology Co., Ltd.|Beijing keyin Jingcheng Technology Co., Ltd Contract record no.: X2020980000255 Denomination of invention: Virtual machine dispatching method and device License type: Exclusive License Record date: 20200218 |
|
EE01 | Entry into force of recordation of patent licensing contract | ||
GR01 | Patent grant | ||
GR01 | Patent grant |