CN103049332B - 一种虚拟cpu调度方法 - Google Patents

一种虚拟cpu调度方法 Download PDF

Info

Publication number
CN103049332B
CN103049332B CN201210523614.9A CN201210523614A CN103049332B CN 103049332 B CN103049332 B CN 103049332B CN 201210523614 A CN201210523614 A CN 201210523614A CN 103049332 B CN103049332 B CN 103049332B
Authority
CN
China
Prior art keywords
virtual
virtual cpu
cpu
queue
request
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
Application number
CN201210523614.9A
Other languages
English (en)
Other versions
CN103049332A (zh
Inventor
童薇
冯丹
刘景宁
张炬
李宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201210523614.9A priority Critical patent/CN103049332B/zh
Publication of CN103049332A publication Critical patent/CN103049332A/zh
Application granted granted Critical
Publication of CN103049332B publication Critical patent/CN103049332B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种虚拟CPU调度方法,属于计算机虚拟化技术领域,解决现有虚拟CPU调度方法对所有虚拟CPU采用定长时间片进行调度,使得虚拟机性能因资源限制而受到影响的问题。本发明包括初始化步骤、更新虚拟CPU信用值步骤、加入队列步骤、选取运行虚拟CPU步骤、处理IO请求位图步骤和运行步骤。本发明根据虚拟CPU运行状态设置调度时间片,在调度虚拟CPU时,根据虚拟CPU所属虚拟机的IO请求位图以及调度时间片表的情况从而动态设置虚拟CPU的调度时间片,IO请求位图反映了各虚拟机的运行特点,因此以CPU操作为主的虚拟机具有较小的切换开销,而以IO操作为主的虚拟机具有较短的响应延迟,从而能够达到适用于多种不同应用环境,满足不同应用服务类型需求的效果。

Description

一种虚拟CPU调度方法
技术领域
本发明属于计算机虚拟化技术领域,具体涉及一种虚拟CPU调度方法,采用动态时间片和信用值,提升虚拟化平台整体性能。
背景技术
目前IT企业普遍存在下述问题:(1)物理基础架构的利用率低且成本日益攀升,根据市场调研公司国际数据公司(International Data Corporation,IDC)的报告,在IT企业典型的数据中心,物理基础架构的利用率平均只有10%到15%,大部分计算机资源没有得到充分利用;(2)IT资源管理、维护的成本不断提高。
虚拟化技术通过在物理硬件和操作系统之间插入一个抽象层(虚拟机监控器),允许在单台物理机上运行多个虚拟机,即多个虚拟机共享同一台物理机的资源,不同的虚拟机可以运行不同的操作系统以及应用程序,从而提高了硬件的利用率和灵活性,降低了管理成本,同时增加了系统安全性和可扩展性,因此虚拟化技术在IT企业中的应用越来越广泛。经过多年的发展,CPU虚拟化与内存虚拟化技术已日趋成熟,而IO虚拟化技术的发展却相对滞后,影响了虚拟化平台的整体性能,也限制了虚拟化技术的进一步推广应用。如何提高虚拟机的IO访问性能,以及IO设备的利用率,是当前虚拟化技术的研究重点之一。
目前,IO虚拟化技术的性能优化思路主要是减少抽象层(虚拟机监控器)引起的开销,但虚拟CPU的调度对IO性能也具有重要的影响,信用值调度方法是目前在虚拟化平台中应用广泛的一种虚拟CPU调度方法,信用值调度方法为每一个虚拟机设置权重和时间上限,某虚拟机权重占各虚拟机总权重的比例为该虚拟机的信用值,信用值决定该虚拟机占用处理器时间片的比例,而时间上限决定一个虚拟机在每次调度中能够占用处理器时间的最大值。信用值调度方法的缺点是:在对响应速度要求较高的应用中,虚拟CPU响应延迟与虚拟CPU在运行队列中的位置密切相关,当运行队列较长时,响应延迟普遍较长且有较大的波动。针对上述问题,2008年,Diego Ongaro等人在《Scheduling I/O in Virtual Machine Monitors》一文中提出在信用值调度方法中添加突发(BOOST)状态,处于突发状态的虚拟CPU具有最高优先级,当虚拟CPU在空闲状态时被事件唤醒时,则进入突发状态,引起一次调度,在该次调度中,处于突发状态的虚拟CPU抢占物理CPU,从而降低了IO延迟,见Proceedings of The fourth ACM SIGPLAN/SIGOPS internationalconference on Virtual execution environments,2008。然而,即使是添加了突发状态的信用值调度方法也不区分虚拟机的应用服务特征,仍然对所有虚拟CPU采用定长时间片进行调度,使得虚拟机性能会因资源限制而受到影响,以太网光纤通道是一种网络协议,被广泛应用于IT企业数据中心,对于此类对响应速度要求高的应用,现有的虚拟CPU调度算法并不适用。
为了清楚地理解本发明,以下对本发明中所使用的术语进行解释:
物理CPU(PCPU):计算机系统中真实的CPU。
虚拟机(Virtual Machine):指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
虚拟化平台:是让多个虚拟机可以在一套物理硬件上安全运行的软硬件系统,目前提供虚拟化平台的公司有:微软,思杰,威睿等。
虚拟CPU(VCPU):虚拟化平台分配给虚拟机的CPU。
空闲虚拟CPU(IDLE VCPU):用来占位的虚拟CPU,不完成实际工作,具有最低的优先级负1,在每个物理CPU上均有一个空闲虚拟CPU。
运行队列:当具有多个物理CPU时,每个物理CPU具有一个运行队列,运行队列由在该物理CPU上运行的虚拟CPU按照优先级从高到低的顺序组成。
虚拟机监控器:运行在基础物理服务器和操作系统之间的中间抽象层,可允许多个操作系统和应用共享硬件,虚拟机监控器为每台IO设备建立相应的IO请求队列。
Xen:是英国剑桥大学计算机实验室开发的一种虚拟化平台,它和虚拟机密切结合,占用资源少,以高性能、占用资源少著称。
以太网光纤通道:将光纤通道映射到以太网,可以将光纤通道信息插入以太网信息包内,从而让服务器和存储设备之间的光纤通道请求和数据可以通过以太网连接来传输,而无需专门的光纤通道结构。
发明内容
本发明提供一种虚拟CPU调度方法,解决现有虚拟CPU调度方法对所有虚拟CPU采用定长时间片进行调度,使得虚拟机性能因资源限制而受到影响的问题。
本发明所提供的一种虚拟CPU调度方法,包括如下步骤:
(1)初始化步骤,包括下述子步骤:
(1.1)将每个虚拟机的虚拟CPU信用值初始化,其中第i个虚拟机的第j个虚拟CPU信用值Cij为:
Cii=CT×Wi/(WT×Mi),
其中,CT为总信用值,WT为总权重,Wi为第i个虚拟机的权重,由用户设定,为正整数;Mi为第i个虚拟机的虚拟CPU个数,由用户设定,为小于P的整数;i=1~V,虚拟机的总数V=1~100,j=1~Mi,物理CPU的个数P=1~64;
CT=P×300, W T = Σ i = 1 V ( W i × M i ) ,
(1.2)初始化各虚拟机的IO请求位图;
将各虚拟机的IO请求位图各位初始化为0;
IO请求位图为一维的N位数组,数组中不同的位,表示由不同IO设备产生的IO请求,“1”表示有IO请求,“0”表示无IO请求,N=10~40;
(1.3)初始化调度时间片表;
调度时间片表为一维的N字节数组,每字节8位,数组中每字节与各虚拟机的IO请求位图中的一位对应,表示IO请求位图中对应位的调度时间片;
判断是否N≤T0-1,T0=20~40,是则将调度时间片表中第q字节的值初始化为qms,q=1~N,转子步骤(1.4);否则将调度时间片表中第q字节的值初始化为qms,q=1~T0-1,再将调度时间片表中第T0字节~第N字节的值初始化为T0ms,转子步骤(1.4);
(1.4)将各虚拟CPU的优先级初始化为1;
(2)更新虚拟CPU信用值步骤:
置当前虚拟CPU信用值=当前虚拟CPU信用值-10×T1
T1为当前虚拟CPU从上次开始运行至今经历的时间,单位为ms;
判断当前虚拟CPU信用值是否小于或者等于0,是则将当前虚拟CPU的优先级设置成0,转步骤(3);否则直接转步骤(3);
(3)加入队列步骤:
从物理CPU的运行队列队首开始,比较当前虚拟CPU的优先级是否大于运行队列中的虚拟CPU优先级,是则将当前虚拟CPU插入运行队列中相应虚拟CPU之前,否则顺序往后比较,直至运行队列队尾;
(4)选取运行虚拟CPU步骤,包括如下子步骤:
(4.1)从当前虚拟CPU所在物理CPU的运行队列中,检查队首虚拟CPU信用值是否小于或者等于0,是则转子步骤(4.2),否则从运行队列中取出队首虚拟CPU,转步骤(5);
(4.2)从其它各物理CPU上的运行队列中,检查队首虚拟CPU信用值是否均小于或者等于0,是则转子步骤(4.3);否则取出第一个信用值大于0的队首虚拟CPU,转步骤(5);
(4.3)将每个虚拟机的虚拟CPU优先级重新设置为1,每个虚拟机的虚拟CPU信用值重新初始化,将Cij+CT×Wi/(WT×Mi)所得的值赋予Cij
(4.4)选择空闲虚拟CPU运行,运行时间为T0ms,当达到运行时间,转步骤(2);
(5)处理IO请求位图步骤,包括如下子步骤:
(5.1)检查所取出的队首虚拟CPU所属虚拟机的IO请求位图,判断该IO请求位图中是否各位都为“0”,是则转步骤(5.2),否则转步骤(5.3);
(5.2)设置该队首虚拟CPU的调度时间片为T0ms,转步骤(6);
(5.3)遍历该IO请求位图和调度时间片表,找到该IO请求位图中值为“1”的位并且在调度时间片表中找到相应各字节,从相应各字节中找到其值最小的字节;
将所述队首虚拟CPU的调度时间片设置为调度时间片表中所述相应各字节中其值最小的字节的值,并且置其所属虚拟机的IO请求位图中对应该字节的位为“0”,转步骤(6);
(6)运行步骤:将所述队首虚拟CPU从所在运行队列中删除,并开始运行,运行时间为该虚拟CPU的调度时间片,当达到运行时间,转步骤(2)。
所述的虚拟CPU调度方法,其特征在于:
所述运行步骤中,所述队首虚拟CPU在运行过程中,发出IO请求后,IO请求被发送到虚拟机监控器的相应IO请求队列,虚拟机监控器执行下述操作:
(1)判断是否所有的IO请求队列均为空,是则转步骤(4),否则转步骤(2);
(2)从第一个不为空的IO请求队列开始,从队首的IO请求中获取产生IO请求的虚拟机以及所请求的设备,然后将该队首的IO请求移除;
(3)将产生IO请求的虚拟机的IO请求位图中置所请求的设备对应的位置为“1”,转步骤(1);
(4)休眠时间T0ms,转步骤(1)。
所述的虚拟CPU调度方法,其特征在于:
所述运行步骤中,所述队首虚拟CPU在运行过程中,虚拟机监控器唤醒虚拟化平台中某虚拟CPU时,执行下述操作:
(1)判断唤醒是否由硬件的IO中断引起,是则转步骤(2),否则转步骤(3);
(2)从硬件的IO中断中,获取目标虚拟CPU,找到目标虚拟CPU所属的虚拟机及其IO请求位图,置该IO请求位图中引起IO中断的设备所对应的位为1,进行步骤(3);
(3)判断目标虚拟CPU信用值是否小于或者等于0,是则置目标虚拟CPU优先级为0,否则置目标虚拟CPU优先级为2;
(4)从当前物理CPU的运行队列队首开始,比较目标虚拟CPU的优先级是否大于运行队列中的虚拟CPU优先级,是则将目标虚拟CPU插入运行队列中相应虚拟CPU之前,否则顺序往后比较,直至运行队列队尾;转所述更新虚拟CPU信用值步骤。
虚拟机监控器唤醒由下述两种情况之一引起:虚拟监控器检测到有硬件的IO中断需要交给虚拟化平台中某个目标虚拟CPU处理,或者某个物理CPU上运行的虚拟CPU给虚拟化平台中另外一个目标虚拟CPU发送事件。
在虚拟化平台上,虚拟CPU在运行状态时,一定处于执行CPU操作或者执行IO操作两种状态之一,虚拟CPU执行CPU操作,则应该给该虚拟CPU分配较长的调度时间片,从而减少上下文切换开销;虚拟CPU执行IO操作,则应该设置较短的调度时间片,从而增加其调度次数;本发明根据虚拟CPU运行状态设置调度时间片,在调度虚拟CPU时,根据虚拟CPU所属虚拟机的IO请求位图以及调度时间片表的情况从而动态设置虚拟CPU的调度时间片,IO请求位图反映了各虚拟机的运行特点,因此以CPU操作为主的虚拟机具有较小的切换开销,而以IO操作为主的虚拟机具有较短的响应延迟,从而能够达到适用于多种不同应用环境,满足不同应用服务类型需求的效果。
附图说明
图1为本发明的流程示意图;
图2为虚拟机监控器处理IO请求流程示意图;
图3为虚拟机监控器的唤醒处理流程示意图;
具体实施方式
下面结合附图和具体实施例对本发明进一步说明。
本发明实施例,包括如下步骤:
(1)初始化步骤,包括下述子步骤:
(1.1)将每个虚拟机的虚拟CPU信用值初始化,
虚拟机的总数V=32,每台虚拟机包括2个虚拟CPU,物理CPU的个数P=16;每台虚拟机的权重Wi=256,总信用值CT=4800,总权重WT=16384,各虚拟机的各虚拟CPU信用值Cii=75;
(1.2)初始化各虚拟机的IO请求位图;
将各虚拟机的IO请求位图各位初始化为0;IO请求位图为一维的30位数组,第1位表示以太网光纤通道的IO请求,第2位表示磁盘的IO请求;
(1.3)初始化调度时间片表;
将调度时间片表中第1字节~第29字节的值分别初始化为1ms~29ms,将第30字节的值初始化为T0=30ms;
第1字节表示虚拟机有以太网光纤通道网络IO请求时应给该虚拟机设置的时间片,第2字节表示虚拟机有磁盘IO请求时应给该虚拟机设置的时间片;
(1.4)将各虚拟CPU的优先级初始化为1;
(2)更新虚拟CPU信用值步骤:
置当前虚拟CPU信用值=当前虚拟CPU信用值-10×T1
T1为当前虚拟CPU从上次开始运行至今经历的时间,单位为ms;
判断当前虚拟CPU信用值是否小于或者等于0,是则将当前虚拟CPU的优先级设置成0,转步骤(3);否则直接转步骤(3);
(3)加入队列步骤:
从物理CPU的运行队列队首开始,比较当前虚拟CPU的优先级是否大于运行队列中的虚拟CPU优先级,是则将当前虚拟CPU插入运行队列中相应虚拟CPU之前,否则顺序往后比较,直至运行队列队尾;
(4)选取运行虚拟CPU步骤,包括如下子步骤:
(4.1)从当前虚拟CPU所在物理CPU的运行队列中,检查队首虚拟CPU信用值是否小于或者等于0,是则转子步骤(4.2),否则从运行队列中取出队首虚拟CPU,转步骤(5);
(4.2)从其它各物理CPU上的运行队列中,检查队首虚拟CPU信用值是否均小于或者等于0,是则转子步骤(4.3);否则取出第一个信用值大于0的队首虚拟CPU,转步骤(5);
(4.3)将每个虚拟机的虚拟CPU优先级重新设置为1,每个虚拟机的虚拟CPU信用值重新初始化为Cij=Cij+75;
(4.4)选择空闲虚拟CPU运行,运行时间为T0,当达到运行时间,转步骤(2);
(5)处理IO请求位图步骤,包括如下子步骤:
(5.1)检查所取出的队首虚拟CPU所属虚拟机的IO请求位图,判断该IO请求位图中是否各位都为“0”,是则转步骤(5.2),否则转步骤(5.3);
(5.2)设置该队首虚拟CPU的调度时间片为T0=30ms,转步骤(6);
(5.3)遍历该IO请求位图和调度时间片表,该虚拟机产生了磁盘IO请求和以太网光纤通道网络的IO请求而无其它IO请求,在调度时间片表中找到该虚拟机的IO请求位图中值为“1”的位相应各字节值即1ms和2ms,最小的值为1ms;
将所述队首虚拟CPU的调度时间片设置为1ms,并且置其所属虚拟机的IO请求位图第1位为“0”,转步骤(6);
(6)运行步骤:将所述队首虚拟CPU从所在运行队列中删除,并开始运行,运行时间为该虚拟CPU的调度时间片,当达到运行时间,转步骤(2)。
本实施例中,所述运行步骤中,所述队首虚拟CPU在运行过程中,发出以太网光纤通道IO请求后,以太网光纤通道IO请求被发送到虚拟机监控器的以太网光纤通道IO请求队列,虚拟机监控器执行下述操作:
(1)判断是否所有的IO请求队列均为空,是则转步骤(4),否则转步骤(2),本实施例中以太网光纤通道IO请求队列非空,转步骤(2);
(2)移除以太网光纤通道IO请求队列队首的IO请求并获取产生IO请求的虚拟机;
(3)将产生IO请求的虚拟机的IO请求位图中第1位置为“1”,转步骤(1);
(4)休眠时间T0,转步骤(1)。
本实施例中,所述运行步骤中,所述队首虚拟CPU在运行过程中,虚拟机监控器检测到某个物理CPU上运行的虚拟CPU给虚拟化平台中另外一个目标虚拟CPU发送事件,执行下述操作:
(1)判断唤醒是否由硬件的IO中断引起,是则转步骤(2),否则转步骤(3),本实施例转步骤(3);
(2)从硬件的IO中断中,获取目标虚拟CPU,找到目标虚拟CPU所属的虚拟机及其IO请求位图,置该IO请求位图中引起IO中断的设备所对应的位为1,进行步骤(3);
(3)判断目标虚拟CPU信用值是否小于或者等于0,是则置目标虚拟CPU优先级为0,否则置目标虚拟CPU优先级为2;
(4)从当前物理CPU的运行队列队首开始,比较目标虚拟CPU的优先级是否大于运行队列中的虚拟CPU优先级,是则将目标虚拟CPU插入运行队列中相应虚拟CPU之前,否则顺序往后比较,直至运行队列队尾;转所述更新虚拟CPU信用值步骤。
本实施例中,所述运行步骤中,所述队首虚拟CPU在运行过程中,虚拟机监控器检测到有硬件的IO中断需要交给虚拟化平台中某个目标虚拟CPU处理,执行下述操作:
(1)判断唤醒是否由IO中断引起,是则转步骤(2),否则转步骤(3),此时唤醒是由IO中断引起,因此执行步骤(2);
(2)找到虚拟CPU所属的虚拟机及其IO请求位图,将该IO请求位图中引起IO中断的设备所对应的位为1,例如针对上述以太网光纤通道IO请求的响应,则置IO请求位图第一位为“1”;
(3)判断目标虚拟CPU信用值是否小于或者等于0,是则置目标虚拟CPU优先级为0,否则置目标虚拟CPU优先级为2;
(4)从当前物理CPU的运行队列队首开始,比较目标虚拟CPU的优先级是否大于运行队列中的虚拟CPU优先级,是则将目标虚拟CPU插入运行队列中相应虚拟CPU之前,否则顺序往后比较,直至运行队列队尾;转所述更新虚拟CPU信用值步骤。

Claims (3)

1.一种虚拟CPU调度方法,包括如下步骤:
(1)初始化步骤,包括下述子步骤:
(1.1)将每个虚拟机的虚拟CPU信用值初始化,其中第i个虚拟机的第j个虚拟CPU信用值Cij为:
Cij=CT×Wi/(WT×Mi),
其中,CT为总信用值,WT为总权重,Wi为第i个虚拟机的权重,由用户设定,为正整数;Mi为第i个虚拟机的虚拟CPU个数,由用户设定,为小于P的整数;i=1~V,虚拟机的总数V=1~100,j=1~Mi,物理CPU的个数P=1~64;
C T = P × 300 , W T = Σ i = 1 V ( W i × M i ) ,
(1.2)初始化各虚拟机的IO请求位图;
将各虚拟机的IO请求位图各位初始化为0;
IO请求位图为一维的N位数组,数组中不同的位,表示由不同IO设备产生的IO请求,“1”表示有IO请求,“0”表示无IO请求,N=10~40;
(1.3)初始化调度时间片表;
调度时间片表为一维的N字节数组,每字节8位,数组中每字节与各虚拟机的IO请求位图中的一位对应,表示IO请求位图中对应位的调度时间片;
判断是否N≤T0-1,T0=20~40,是则将调度时间片表中第q字节的值初始化为qms,q=1~N,转子步骤(1.4);否则将调度时间片表中第q字节的值初始化为qms,q=1~T0-1,再将调度时间片表中第T0字节~第N字节的值初始化为T0ms,转子步骤(1.4);
(1.4)将各虚拟CPU的优先级初始化为1;
(2)更新虚拟CPU信用值步骤:
置当前虚拟CPU信用值=当前虚拟CPU信用值-10×T1
T1为当前虚拟CPU从上次开始运行至今经历的时间,单位为ms;
判断当前虚拟CPU信用值是否小于或者等于0,是则将当前虚拟CPU的优先级设置成0,转步骤(3);否则直接转步骤(3);
(3)加入队列步骤:
从物理CPU的运行队列队首开始,比较当前虚拟CPU的优先级是否大于运行队列中的虚拟CPU优先级,是则将当前虚拟CPU插入运行队列中相应虚拟CPU之前,否则顺序往后比较,直至运行队列队尾;
(4)选取运行虚拟CPU步骤,包括如下子步骤:
(4.1)从当前虚拟CPU所在物理CPU的运行队列中,检查队首虚拟CPU信用值是否小于或者等于0,是则转子步骤(4.2),否则从运行队列中取出队首虚拟CPU,转步骤(5);
(4.2)从其它各物理CPU上的运行队列中,检查队首虚拟CPU信用值是否均小于或者等于0,是则转子步骤(4.3);否则取出第一个信用值大于0的队首虚拟CPU,转步骤(5);
(4.3)将每个虚拟机的虚拟CPU优先级重新设置为1,每个虚拟机的虚拟CPU信用值重新初始化,将Cij+CT×Wi/(WT×Mi)所得的值赋予Cij
(4.4)选择空闲虚拟CPU运行,运行时间为T0ms,当达到运行时间,转步骤(2);
(5)处理IO请求位图步骤,包括如下子步骤:
(5.1)检查所取出的队首虚拟CPU所属虚拟机的IO请求位图,判断该IO请求位图中是否各位都为“0”,是则转步骤(5.2),否则转步骤(5.3);
(5.2)设置该队首虚拟CPU的调度时间片为T0ms,转步骤(6);
(5.3)遍历该IO请求位图和调度时间片表,找到该IO请求位图中值为“1”的位并且在调度时间片表中找到相应各字节,从相应各字节中找到其值最小的字节;
将所述队首虚拟CPU的调度时间片设置为调度时间片表中所述相应各字节中其值最小的字节的值,并且置其所属虚拟机的IO请求位图中对应该字节的位为“0”,转步骤(6);
(6)运行步骤:将所述队首虚拟CPU从所在运行队列中删除,并开始运行,运行时间为该虚拟CPU的调度时间片,当达到运行时间,转步骤(2)。
2.如权利要求1所述的虚拟CPU调度方法,其特征在于:
所述运行步骤中,所述队首虚拟CPU在运行过程中,发出IO请求后,IO请求被发送到虚拟机监控器的相应IO请求队列,虚拟机监控器执行下述操作:
(1)判断是否所有的IO请求队列均为空,是则转步骤(4),否则转步骤(2);
(2)从第一个不为空的IO请求队列开始,从队首的IO请求中获取产生IO请求的虚拟机以及所请求的设备,然后将该队首的IO请求移除;
(3)将产生IO请求的虚拟机的IO请求位图中所请求的设备对应的位置为“1”,转步骤(1);
(4)休眠时间T0ms,转步骤(1)。
3.如权利要求1或2所述的虚拟CPU调度方法,其特征在于:
所述运行步骤中,所述队首虚拟CPU在运行过程中,虚拟机监控器唤醒虚拟化平台中某虚拟CPU时,执行下述操作:
(1)判断唤醒是否由硬件的IO中断引起,是则转步骤(2),否则转步骤(3);
(2)从硬件的IO中断中,获取目标虚拟CPU,找到目标虚拟CPU所属的虚拟机及其IO请求位图,置该IO请求位图中引起IO中断的设备所对应的位为1,进行步骤(3);
(3)判断目标虚拟CPU信用值是否小于或者等于0,是则置目标虚拟CPU优先级为0,否则置目标虚拟CPU优先级为2;
(4)从当前物理CPU的运行队列队首开始,比较目标虚拟CPU的优先级是否大于运行队列中的虚拟CPU优先级,是则将目标虚拟CPU插入运行队列中相应虚拟CPU之前,否则顺序往后比较,直至运行队列队尾;转所述更新虚拟CPU信用值步骤;
虚拟机监控器唤醒由下述两种情况之一引起:虚拟监控器检测到有硬件的IO中断需要交给虚拟化平台中某个目标虚拟CPU处理,或者某个物理CPU上运行的虚拟CPU给虚拟化平台中另外一个目标虚拟CPU发送事件。
CN201210523614.9A 2012-12-06 2012-12-06 一种虚拟cpu调度方法 Active CN103049332B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210523614.9A CN103049332B (zh) 2012-12-06 2012-12-06 一种虚拟cpu调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210523614.9A CN103049332B (zh) 2012-12-06 2012-12-06 一种虚拟cpu调度方法

Publications (2)

Publication Number Publication Date
CN103049332A CN103049332A (zh) 2013-04-17
CN103049332B true CN103049332B (zh) 2015-05-20

Family

ID=48061982

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210523614.9A Active CN103049332B (zh) 2012-12-06 2012-12-06 一种虚拟cpu调度方法

Country Status (1)

Country Link
CN (1) CN103049332B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103793274B (zh) * 2014-02-19 2017-06-09 上海交通大学 一种credit调度器中增量时间片调整装置及方法
CN105242954B (zh) 2014-06-12 2019-06-07 华为技术有限公司 一种虚拟cpu与物理cpu之间的映射方法及电子设备
CN104503838B (zh) * 2014-11-23 2017-06-27 华中科技大学 一种虚拟cpu调度方法
US9411629B1 (en) * 2015-03-10 2016-08-09 International Business Machines Corporation Reducing virtual machine pre-emption in virtualized environment
CN106020973A (zh) * 2016-05-10 2016-10-12 广东睿江云计算股份有限公司 云主机系统中的cpu调度方法及装置
CN105912408A (zh) * 2016-05-10 2016-08-31 广东睿江云计算股份有限公司 云主机系统中的cpu调度方法及装置
CN106534140A (zh) * 2016-11-25 2017-03-22 西安烽火电子科技有限责任公司 一种sip消息的传递系统及方法
CN108241522B (zh) * 2016-12-27 2022-05-17 阿里巴巴集团控股有限公司 虚拟化环境中的睡眠状态切换方法、装置及电子设备
CN107346261A (zh) * 2017-06-30 2017-11-14 联想(北京)有限公司 虚拟机时间同步方法、物理主机及虚拟机
CN109753339B (zh) * 2017-11-06 2023-04-28 阿里巴巴集团控股有限公司 资源配置方法和装置以及电子设备
CN108958157B (zh) * 2018-07-09 2020-09-18 北京东土科技股份有限公司 控制程序控制调度方法、装置、计算机设备以及存储介质
CN112328270A (zh) * 2020-11-27 2021-02-05 杭州和利时自动化有限公司 基于多控制器的组态程序安装方法、装置、设备及介质
CN113434262A (zh) * 2021-08-30 2021-09-24 云宏信息科技股份有限公司 dom0调度方法、虚拟机运行方法、存储介质和计算机
CN114661415A (zh) * 2022-03-04 2022-06-24 阿里巴巴(中国)有限公司 调度方法及计算机系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101408853A (zh) * 2008-10-27 2009-04-15 中国科学院计算技术研究所 一种虚拟机调度的装置及方法
CN101894047A (zh) * 2010-06-24 2010-11-24 北京航空航天大学 一种基于内核虚拟机调度策略的实现方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090158299A1 (en) * 2007-10-31 2009-06-18 Carter Ernst B System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed
US8478924B2 (en) * 2009-04-24 2013-07-02 Vmware, Inc. Interrupt coalescing for outstanding input/output completions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101408853A (zh) * 2008-10-27 2009-04-15 中国科学院计算技术研究所 一种虚拟机调度的装置及方法
CN101894047A (zh) * 2010-06-24 2010-11-24 北京航空航天大学 一种基于内核虚拟机调度策略的实现方法

Also Published As

Publication number Publication date
CN103049332A (zh) 2013-04-17

Similar Documents

Publication Publication Date Title
CN103049332B (zh) 一种虚拟cpu调度方法
CN103957231B (zh) 一种云计算平台下的虚拟机分布式任务调度方法
CN101557420B (zh) 虚拟机监控器高效网络通信的实现方法
CN104503838B (zh) 一种虚拟cpu调度方法
CN102253857B (zh) 一种多核环境下的Xen虚拟机调度控制方法
CN101436966B (zh) 虚拟机环境下的网络监控与分析系统
CN106506670B (zh) 一种云平台虚拟资源高速调度方法与系统
CN105677486A (zh) 数据并行处理方法及系统
EP3242440A1 (en) Fault tolerant method, apparatus and system for virtual machine
CN102073545A (zh) 操作系统中防止用户界面卡屏的进程调度方法及装置
CN102929769B (zh) 一种基于代理服务的虚拟机内部数据采集方法
CN103955398A (zh) 一种基于处理器性能监控的虚拟机共生调度方法
CN106874143A (zh) 服务器备份方法及其备份系统
CN104331331A (zh) 任务数目和性能感知的可重构多核处理器的资源分配方法
CN101794993A (zh) 基于mpi的电网仿真实时并行计算平台及应用
Xiang et al. Rb-storm: Resource balance scheduling in apache storm
CN115150471A (zh) 数据处理方法、装置、设备、存储介质及程序产品
CN105868000B (zh) 一种针对网络i/o虚拟化的并行化可扩展数据处理方法
CN114610440A (zh) 模拟机系统的运行环境构建方法及系统
CN110046064A (zh) 一种基于故障漂移的云服务器容灾实现方法
CN103617305A (zh) 一种自适应的电力仿真云计算平台作业调度算法
CN103064730B (zh) 一种面向云计算环境的两级磁盘调度方法
Xiao et al. Workload-aware Reliability Evaluation Model in Grid Computing.
Hu et al. Research on dependability of virtual computing system based on Stochastic Petri nets
CN201230328Y (zh) 一种基于三层架构的网络系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant