CN101361036B - 变更虚拟机监控器中的调度器的方法和装置 - Google Patents

变更虚拟机监控器中的调度器的方法和装置 Download PDF

Info

Publication number
CN101361036B
CN101361036B CN200580052396.3A CN200580052396A CN101361036B CN 101361036 B CN101361036 B CN 101361036B CN 200580052396 A CN200580052396 A CN 200580052396A CN 101361036 B CN101361036 B CN 101361036B
Authority
CN
China
Prior art keywords
scheduler
virtual machine
monitor
operationally
parts
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.)
Expired - Fee Related
Application number
CN200580052396.3A
Other languages
English (en)
Other versions
CN101361036A (zh
Inventor
B·刘
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN101361036A publication Critical patent/CN101361036A/zh
Application granted granted Critical
Publication of CN101361036B publication Critical patent/CN101361036B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

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)

Abstract

描述了改变虚拟机监控器中的第一调度器的机器可读介质、方法和装置。在一些实施例中,当虚拟机监控器正在运行时,在虚拟机监控器中加载第二调度器;然后,当虚拟机监控器正在运行时,激活第二调度器以便取代第一调度器来处理调度进程的调度请求。

Description

变更虚拟机监控器中的调度器的方法和装置
技术领域
本发明涉及变更虚拟机监控器中的调度器的方法、装置和系统。
背景技术
虚拟机(VM)体系结构在逻辑上划分物理机器,使得机器的基础硬件被分时共享,并表现为一个或多个单独操作的虚拟机。虚拟机环境中的计算机平台可包括虚拟机监控器(VMM),它可创建多个虚拟机并在计算机平台上运行,以便帮助其它软件对一个或多个虚拟机进行抽象。
虚拟机监控器可包括调度器,它为各虚拟机分s配时隙,以便在虚拟机之间运行和优先选择或平衡资源使用。通常,调度器可实现可适合特定情况的特定调度机制,例如借用虚拟时间(BorrowedVirtualTme)(BVT)算法、轮转算法(RoundRobinalgorithm)等。
发明内容
根据第一实施例,本发明提供了一种用于变更虚拟机监控器中的第一调度器的方法,包括:当所述虚拟机监控器正在运行时,在所述虚拟机监控器中加载第二调度器;以及
当所述虚拟机监控器正在运行时,激活所加载的第二调度器,以便取代所述第一调度器来处理调度进程的调度请求。
优选地,所述加载还包括:
响应接收到变更所述第一调度器的调度器变更请求,而停止由正在运行的虚拟机所拥有的设备资源;以及
根据所述调度器变更请求的调度器参数,在所述虚拟机监控器中加载所述第二调度器。
优选地,所述加载还包括:
在加载所述第二调度器之前,从所述虚拟机监控器中卸载所述第一调度器。
优选地,所述激活还包括:
当所述虚拟机监控器正在运行时,用第二调度器标识符来取代第一调度器标识符,以便在所述第二调度器与生成所述调度请求的请求器之间进行路由。
优选地,所述激活还包括:
当所述虚拟机监控器正在运行时,采用指向所述第二调度器的第二函数阵列的第二函数指针阵列来取代指向所述第一调度器的第一函数阵列的第一函数指针阵列,以便在所述第二调度器与生成所述请求的请求器之间进行路由。
优选地,所述激活还包括:
当所述虚拟机监控器正在运行时,将与所述第二调度器相关联的地址动态插入所述调度请求。
优选地,所述方法还包括:
当所述虚拟机监控器正在运行时,从所述虚拟机监控器中卸载所述第二调度器;以及在卸载了所述第二调度器之后,重新激活所述第一调度器以便处理调度请求。
根据第二实施例,本发明提供了一种用于变更第一调度器的虚拟机,包括:
调度器加载器,用于当所述虚拟机监控器正在运行时,在所述虚拟机监控器中加载第二调度器;以及
调度器管理器,用于当所述虚拟机监控器正在运行时,激活所加载的第二调度器,以便取代所述第一调度器来处理调度进程的调度请求。
优选地,所述调度器加载器还执行以下步骤:
响应接收到变更所述第一调度器的调度器变更请求,而停止由正在运行的虚拟机所拥有的设备资源;以及
根据所述调度器变更请求的调度器参数,在所述虚拟机监控器中加载所述第二调度器。
优选地,所述调度器加载器还执行以下步骤:
在加载所述第二调度器之前,从所述虚拟机监控器中卸载所述第一调度器。
优选地,所述调度器管理器还执行以下步骤:
采用第二调度器标识符来取代第一调度器标识符;
当所述虚拟机监控器正在运行时,在由所述第二调度器标识符所标识的第二调度器与生成所述调度请求的请求器之间进行路由。
优选地,所述调度器管理器还执行以下步骤:
采用指向所述第二调度器的第二函数阵列的第二函数指针阵列来取代指向所述第一调度器的第一函数阵列的第一函数指针阵列;
当所述虚拟机监控器正在运行时,在由所述第二函数指针阵列指向的第二函数阵列与生成所述调度请求的请求器之间进行路由。
优选地,所述调度器管理器还执行以下步骤:
当所述虚拟机监控器正在运行时,将与所述第二调度器相关联的地址动态插入调度请求。
优选地,当所述虚拟机监控器正在运行时,所述调度器加载器还从所述虚拟机监控器中卸载所述第二调度器,以及在卸载了所述第二调度器之后,所述调度器管理器还重新激活所述第一调度器以便处理调度请求。
根据第三实施例,本发明提供了一种用于变更虚拟机监控器中的第一调度器的系统,包括:
请求器,生成调度进程的调度请求;
虚拟机监控器,包括:
调度器加载器,用于当所述虚拟机监控器正在运行时,在所述虚拟机监控器中加载第二调度器;以及
调度器管理器,用于当所述虚拟机监控器正在运行时,激活所加载的第二调度器,以便取代第一调度器来处理所述调度请求。
优选地,所述请求器还包括定时器、服务虚拟机和客户虚拟机这三者中的至少一个。
优选地,所述请求器还生成变更所述第一调度器的调度器变更请求。
优选地,所述调度器加载器还执行以下步骤:
响应接收到变更所述第一调度器的调度器变更请求,而停止由正在运行虚拟机所拥有的设备资源;以及
根据所述调度器变更请求的调度器参数,在所述虚拟机监控器中加载所述第二调度器。
优选地,所述调度器加载器还执行以下步骤:
在加载所述第二调度器之前,从所述虚拟机监控器中卸载所述第一调度器。
优选地,所述调度器管理器还执行以下步骤:
采用第二调度器标识符来取代第一调度器标识符;
当所述虚拟机监控器正在运行时,在由所述第二调度器标识符所标识的第二调度器与所述请求器之间进行路由。
优选地,所述调度器管理器还执行以下步骤:
采用指向所述第二调度器的第二函数阵列的第二函数指针阵列来取代指向所述第一调度器的第一函数阵列的第一函数指针阵列;
当所述虚拟机监控器正在运行时,在由所述第二函数指针阵列所指向的第二函数阵列与所述请求器之间进行路由。
优选地,所述调度器管理器还执行以下步骤:
当所述虚拟机监控器正在运行时,将与所述第二调度器相关联的地址动态插入所述调度请求。
优选地,当所述虚拟机监控器正在运行时,所述调度器加载器还从所述虚拟机监控器中卸载所述第二调度器;以及在卸载了所述第二调度器之后,所述调度器管理器还重新激活所述第一调度器以便处理所述调度请求。
根据第四实施例,本发明提供了一种用于变更虚拟机监控器中的第一调度器的设备,包括:
加载部件,当虚拟机监控器正在运行时,在所述虚拟机监控器中加载第二调度器;以及
激活部件,当所述虚拟机监控器正在运行时,激活所加载的第二调度器,以便取代第一调度器来处理调度进程的调度请求。
优选地,所述加载部件包括:
响应接收到变更所述第一调度器的调度器变更请求,而停止由正在运行的虚拟机所拥有的设备资源的部件;以及
根据所述调度器变更请求的调度器参数,在所述虚拟机监控器中加载所述第二调度器的部件。
优选地,所述设备还包括:
在加载所述第二调度器之前,从所述虚拟机监控器中卸载所述第一调度器的部件。
优选地,所述激活部件包括:
当所述虚拟机监控器正在运行时,用第二调度器标识符来取代第一调度器标识符,以便在所述第二调度器与生成所述调度请求的请求器之间进行路由的部件。
优选地,所述激活部件包括:
当所述虚拟机监控器正在运行时,采用指向所述第二调度器的第二函数阵列的第二函数指针阵列来取代指向所述第一调度器的第一函数阵列的第一函数指针阵列,以便在所述第二调度器与生成所述调度请求的请求器之间进行路由的部件。
优选地,所述激活部件包括:
当所述虚拟机监控器正在运行时,将与所述第二调度器相关联的地址动态插入所述调度请求的部件。
优选地,所述设备还包括:
当所述虚拟机监控器正在运行时,从所述虚拟机监控器中卸载所述第二调度器的部件;以及
在卸载了所述第二调度器之后,重新激活所述第一调度器以便处理所述调度请求的部件。
附图说明
通过附图、作为实例而不是限制来说明本文所述的本发明。为了说明的简洁和清楚起见,图中所示的元件不一定按比例绘制。例如,为了清楚起见,某些元件的尺寸可能相对于其它元件被放大。此外,在认为适当的情况下,参考标记在附图中重复使用,以便指明对应或相似的元件。
图1示出具有变更调度器的虚拟机监控器的计算机平台的一实施例。
图2示出图1的虚拟机监控器中的调度器管理器的一实施例。
图3示出变更图1的虚拟机监控器中的调度器的方法的一实施例。
图4示出由图3中变更的调度器处理调度请求的方法的一实施例。
图5示出具有图1的虚拟机监控器的一般计算机平台的一实施例。
具体实施方式
以下说明描述用于变更虚拟机监控器中的调度器的技术。在以下描述中,提出了例如逻辑实现、伪代码、指定操作数的方式、资源划分/共享/重复实现、系统组件的类型和相互关系、以及逻辑划分/综合选择等许多具体细节,以便提供对本发明的较充分理解。但是,即使没有这类具体细节也可实施本发明。在其它情况下,没有详细说明控制结构、门级电路和全软件指令序列,以免影响对本发明的理解。通过所包含的描述,本领域的技术人员将能够实现适当的功能性而无需进行过度的实验。
说明中对“一个实施例”、“一实施例”、“一示例实施例”等的提法指明所述的实施例可包括特定特征、结构或特性,但可能不一定每一个实施例都包括该特定特征、结构或特性。此外,这类词语不一定指同一个实施例。另外,在结合一实施例来描述特定特征、结构或特性时,无论是否明确描述,均认为结合其它实施例来实现这种特征、结构或特性处于本领域的技术人员的知识范围之内。
本发明的实施例可通过硬件、固件、软件或它们的任何结合来实现。本发明的实施例还可实现为存储于机器可读介质上的指令,所述指令可由一个或多个处理器读取和执行。机器可读介质可包括用于存储或传送机器(例如计算设备)可读形式的信息的任何机构。例如,机器可读介质可包括:只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电、光、声或其它形式的传播信号(例如载波、红外信号、数字信号等)等等。
具有变更调度器的虚拟机监控器的计算机平台10的一实施例如图1所示。计算机平台10可包括基础硬件11,其中具有一个或多个处理器111、存储器112、控制台设备113、定时器114等。计算机平台10还可包括多个虚拟机和虚拟机监控器。多个虚拟机运行它们自己的操作系统和应用软件,例如,服务虚拟机13运行服务操作系统131和服务应用程序132,而一个或多个客户虚拟机141-14N运行它们自己的客户操作系统1411-141N和客户应用程序1411-142N。虚拟机监控器12可负责处理器/存储器虚拟化/模拟、中断处理、虚拟机调度等。计算机平台10的示例的非穷举列表可包括大型计算机、小型计算机、个人计算机、便携计算机、膝上型计算机以及用于收发和处理数据的其它设备。
计算机平台10中的各种组件可调用虚拟机监控器12来执行调度进程,例如对下一个指定时隙确定基础交换设备的下一个拥有者,或者确定虚拟机的优先级等。通常,交换设备在虚拟机监控器中的调度器所指定的时隙中由正在运行的虚拟机(例如服务虚拟机13或客户虚拟机141-14N)拥有,因此具有一“焦点(focus)”,在该焦点上,虚拟机当前为活动的。交换设备的示例可包括处理器111和控制台设备113,其中,控制台设备13可包括例如键盘、鼠标等频繁使用的I/O设备。
服务虚拟机13中的服务操作系统131可向虚拟机监控器12发送调度进程的调度请求。例如,当服务操作系统131监控运行客户虚拟机141-14N,并查找客户虚拟机中的故障、如客户操作系统故障时,服务操作系统131可向虚拟机监控器12发送调度请求来变更交换设备的拥有者。
客户虚拟机141-14N中的客户操作系统1411-141N还可向虚拟机监控器12发送调度请求。例如,当客户操作系统1411-141N正执行设备输入/输出操作并等待来自设备的响应时,客户操作系统可发送调度请求,以便产生交换设备的所有权,使得其它虚拟机可利用交换设备。
基础硬件中的定时器114、如可编程间隔定时器还可向虚拟机监控器12发送调度请求。例如,当指定给正在运行的虚拟机的时隙到期时,定时器114可向虚拟机监控器发送定时器中断,它可调用虚拟机监控器来执行虚拟机调度,以便变更交换设备的所有权。
虚拟机监控器12可包括调度器加载器120和调度器管理器121。虚拟机监控器12还可包括一个或多个调度器;但是,一个或多个调度器其中之一是活动的,以便处理调度请求。在图1所示的实施例中,虚拟机监控器12可包括旧调度器122和新调度器123,它们可分别实现特定调度机制,例如借用虚拟时间(BVT)算法、轮转算法等。
可将许多技术作为工作模式应用于旧调度器122和新调度器123。例如,虚拟机监控器12可以始终将旧调度器122保持作为缺省调度器。在将新调度器123加载到虚拟机监控器12之前,旧调度器122可以是活动的,以便处理调度请求。在加载新调度器123之后,新调度器可以是活动的,以便取代旧调度器来处理调度请求。但是,如果从虚拟机监控器12中卸载新调度器123,则旧调度器122又可以是活动的,直至向虚拟机监控器12加载另一个新调度器。对于另一个示例,在一些情况下,调度器管理器121可转换回旧调度器122,即使在虚拟机监控器12中存在新调度器123。对于又一个示例,虚拟机监控器12可在加载新调度器123之前或之后卸载旧调度器122。
调度器加载器120可处理来自服务操作系统131的调度器加载请求,并且当虚拟机监控器12或者虚拟机13、141-14N的一个或多个正在运行时,在虚拟机监控器12中加载新调度器123。可从例如网站、本地磁盘、数据中心镜像服务器等各种资源得到新调度器123的软件镜像。实现调度器加载器120的示例可包括超调用处理机(hypercallhandler),它可处理从服务操作系统131的调度器加载的超调用,并在虚拟机监控器12中加载新调度器123的软件镜像。
当虚拟机监控器12或者虚拟机13、141-14N的一个或多个正在运行时,调度器管理器121可负责激活旧调度器122和新调度器123这两者其中之一,以便处理调度请求。调度器管理器121可通过各种方式来实现调度器激活。例如,调度器管理器121可存储调度器标识符以标识对于调度请求是活动的调度器。在将新调度器123加载到虚拟机监控器12之前,调度器管理器121可存储旧调度器标识符,以便激活旧调度器122来处理调度请求。在加载新调度器123之后,调度器管理器121可用新调度器标识符取代旧调度器标识符,以便激活新调度器来处理调度请求。但是,当卸载新调度器123时,调度器管理器121可恢复旧调度器标识符,以便重新激活旧调度器122。
对于另一个示例,调度器管理器可存储指向对于处理调度请求是活动的诸如旧调度器122或新调度器123的函数阵列之类的活动调度器的函数阵列的函数指针阵列。图2示出调度器管理器121的实现的一实施例。如图所示,调度器管理器121可包括具有多个函数指针(例如指针0、1、2、3等)的函数指针阵列。旧调度器122和新调度器123均可采用多个例程函数(routinefunction)来执行调度进程,所述多个例程函数遵循特定应用编程接口(API),例如旧调度器122的函数0’、1’、2’等或者新调度器123的函数0”、1”、2”等。函数指针阵列121中的各指针可指向活动调度器函数,例如旧调度器122或新调度器123的函数。例如虚拟机13或141-14N、定时器114或者可触发虚拟机监控器12中的调度进程的其它设备等的调度请求器可包括指向函数指针阵列的指针,并且可通过取消引用它指向函数指针阵列的指针、然后调用该阵列所指向的函数,来调用活动调度器函数。
在图2所示的实施例中,通过将函数指针阵列更新为指向活动调度器函数,或者通过将调度请求器的指针更新为指向函数指针阵列,调度器管理器121可激活旧调度器122或新调度器123。
又参照图1,调度器管理器121还可负责在活动调度器(例如旧调度器122或新调度器123)与调度请求器之间传输信息。例如,响应接收到来自调度请求器的调度请求,调度器管理器121可将调度请求分派给调度器标识符所标识的活动调度器,或者分派给函数指针阵列所指向的活动调度器函数。调度器管理器121还可将调度反馈信息从活动调度器发送到调度请求器。调度反馈信息可包括关于是否正确执行预期调度操作、关于虚拟机优先级信息等的通知。
但是,对于计算机平台10的结构,其它实施例可实现其它技术。例如,可省略调度器管理器121,并且调度请求器可向虚拟机监控器发出要求调度进程的直接请求,其中,在调度器模型加载/卸载阶段中,将与活动调度器相关联的地址动态插入(patchinto)请求。通过这种方式,可将请求直接发送给活动调度器。
图3示出变更如图1的虚拟机监控器12中的调度器的方法的一实施例。在框301,当虚拟机监控器或者虚拟机的一个或多个正在运行时,用户或适当的另一方可决定变更当前活动的旧调度器(例如旧调度器122),以便采用新调度器(例如调度器123)来处理虚拟机监控器中的调度请求。例如,用户可确定旧调度器不适合当前虚拟化环境或者另一个调度更适合当前虚拟化环境。
在框302,在框301作出的决定可采用规定参数来调用在服务虚拟机中的服务操作系统(例如服务应用系统131)上运行的应用程序,并且该应用程序可将参数和其它信息通过虚拟机控制请求传递给服务操作系统,这可触发服务操作系统将调度器加载请求发到虚拟机监控器中,以便加载新调度器。特定参数可包括关于将要加载哪一个调度器、调度器镜像所在位置、虚拟机监控器可应用哪一种加载策略来加载新调度器等的信息。
在框303,调度器加载器(例如加载器120)或者其它适当组件可处理加载请求,并且停止正在运行的虚拟机所拥有的全部交换设备,其中,交换设备可包括处理器和控制台设备。可应用各种方法来执行停止进程。对于处理器停止,可将停止标记输入虚拟机监控器中的所有虚拟处理器与正在运行的虚拟机之间的所有虚拟机恢复路径中。对于控制台设备停止,虚拟机监控器可在实际上停止所有未完成业务之前,借助于控制台设备模型对它们进行刷新。在停止交换设备之后,交换设备可达到稳定、一致或可预测状态,使得虚拟机监控器可对下一个调度进程保持其状态。
在框304,调度器加载器或其它适当组件可判定在加载新调度器之前是否从虚拟机监控器中卸载旧调度器。在不同情况下,调度器加载器可作出不同的决定。例如,调度器加载器可决定保留旧调度器供将来使用。但是,如果对于新调度器不存在自由空间,则调度器加载器可决定卸载旧调度器。响应决定保留旧调度器,在框306,调度器加载器或其它适当组件可采用来自服务操作系统的参数,在虚拟机监控器中加载新调度器。但是,响应决定卸载旧调度器,在框305,调度器加载器或其它适当组件可从虚拟机监控器中卸载旧调度器,然后在框306,在虚拟机监控器中加载新调度器。其它实施例可实现用于调度器卸载的其它技术。例如,调度器加载器可在加载新调度器之后,进行关于是否卸载旧调度器的判定。
在框307,可激活新调度器,以便取代旧调度器来处理调度请求。例如,调度器管理器121可通过存储标识新调度器的标识符或者指向新调度器函数的函数指针阵列,来激活新调度器。对于另一个示例,可通过将与新调度器相关联的地址动态插入调度器请求,来激活新调度器,使得调度请求器可直接调用新调度器来执行该调度进程。
图4示出由图3中变更的新调度器处理调度请求的方法的一实施例。在框401,虚拟机监控器可从调度请求器接收要求调度进程的调度请求。在框402,例如通过可存储标识新调度器的标识符或者指向新调度器的函数阵列的函数指针阵列的调度器管理器(例如调度器管理器121),可将调度请求传送到新调度器。
在框403,新调度器可处理调度请求,例如确定交换设备的下一个拥有者或者计算特定虚拟机的调度优先级。在框404,新调度器可向调度请求器返回调度反馈信息。调度反馈信息可包括关于是否正确执行预期调度进程、关于虚拟机优先级信息等的通知。
图5示出具有图1所示的虚拟机监控器的一般计算机平台的一实施例。该计算机平台可包括一个或多个处理器50、存储器51、芯片组52、I/O设备53、BIOS固件54等。一个或多个处理器50在通信上经由一条或多条总线、如处理器总线耦合到各个组件(例如存储器51)。处理器50可实现为具有一个或多个处理核心的集成电路(IC),所述处理核心在例如包括可向IntelCorporation(加利福尼亚,圣克拉拉)购买的IntelXeonTM、IntelPentiumTM、IntelItaniumTM体系结构在内的适当体系结构下可执行代码。
在一实施例中,存储器51可存储将由处理器50执行的代码。存储器51的示例的非穷举列表可包括例如以下半导体设备其中之一或组合:同步动态随机存取存储器(SDRAM)设备,RAMBUS动态随机存取存储器(RDRAM)设备、双倍数据速率(DDR)存储设备、静态随机存取存储器(SRAM)、闪存设备等。
在一实施例中,芯片组52可提供处理器50、存储器51以及例如I/O设备53和BIOS固件54等各个组件之间的一条或多条通信通路。芯片组52可包括存储控制器集线器520、输入/输出控制器集线器521和固件集线器522。
在一实施例中,存储控制器集线器520可提供到处理器总线的通信链路,该总线可与处理器50连接并连接到例如存储器51等适当设备。存储控制器集线器520可与I/O控制器集线器521耦合,I/O控制器集线器521可提供到计算平台的I/O设备53、如键盘和鼠标的接口。I/O设备13的示例的非穷举列表可包括键盘、鼠标、网卡、存储设备、照相机、蓝牙、天线等。
在一实施例中,存储控制器集线器520可在通信上经由输入/输出控制器集线器521与固件集线器522耦合。固件集线器522可与BIOS固件54耦合,BIOS固件54可存储计算平台在系统启动期间执行以便初始化处理器50、芯片组52和计算平台的其它组件的例程。此外,BIOS固件54可包括计算设备1可执行以便与计算平台的一个或多个组件进行通信的例程或驱动器。
图5所示的计算机平台可作为图1所示的计算机平台10来执行。存储器51可存储作为虚拟机监控器的软件镜像,其中包括调度器加载器、一个或多个调度器和/或调度器管理器。存储器51还可存储包括服务操作系统和服务应用程序的服务软件以及包括客户操作系统和客户应用程序的客户软件。
虽然参照示例实施例描述了本发明的某些特征,但是该描述不应当理解为限制性的。本发明所涉及的技术领域的技术人员清楚知道的本发明的示例实施例以及本发明的其它实施例的各种修改被认为落入本发明的精神和范围之内。

Claims (10)

1.一种用于变更虚拟机监控器中的第一调度器的方法,包括:
当所述虚拟机监控器正在运行时,在所述虚拟机监控器中加载第二调度器;以及
当所述虚拟机监控器正在运行时,激活所加载的第二调度器,以便取代所述第一调度器来处理调度进程的调度请求,其中,所述激活还包括:当所述虚拟机监控器正在运行时,将与所述第二调度器相关联的地址动态插入所述调度请求,
其中,所述加载还包括:
响应接收到变更所述第一调度器的调度器变更请求,而停止由正在运行的虚拟机所拥有的设备资源;以及
根据所述调度器变更请求的调度器参数,在所述虚拟机监控器中加载所述第二调度器。
2.如权利要求1所述的方法,其中,所述加载还包括:
在加载所述第二调度器之前,从所述虚拟机监控器中卸载所述第一调度器。
3.如权利要求1所述的方法,其中,所述激活还包括:
当所述虚拟机监控器正在运行时,用第二调度器标识符来取代第一调度器标识符,以便在所述第二调度器与生成所述调度请求的请求器之间进行路由。
4.如权利要求1所述的方法,其中,所述激活还包括:
当所述虚拟机监控器正在运行时,采用指向所述第二调度器的第二函数阵列的第二函数指针阵列来取代指向所述第一调度器的第一函数阵列的第一函数指针阵列,以便在所述第二调度器与生成所述调度请求的请求器之间进行路由。
5.如权利要求1所述的方法,还包括:
当所述虚拟机监控器正在运行时,从所述虚拟机监控器中卸载所述第二调度器;以及
在卸载了所述第二调度器之后,重新激活所述第一调度器以便处理调度请求。
6.一种用于变更虚拟机监控器中的第一调度器的装置,包括:
当所述虚拟机监控器正在运行时在所述虚拟机监控器中加载第二调度器的部件;以及
当所述虚拟机监控器正在运行时,激活所加载的第二调度器,以便取代所述第一调度器来处理调度进程的调度请求的部件,其中,激活所加载的第二调度器的部件还包括:当所述虚拟机监控器正在运行时,将与所述第二调度器相关联的地址动态插入所述调度请求的部件,
其中,加载第二调度器的部件还包括:
响应接收到变更所述第一调度器的调度器变更请求,而停止由正在运行的虚拟机所拥有的设备资源的部件;以及
根据所述调度器变更请求的调度器参数,在所述虚拟机监控器中加载所述第二调度器的部件。
7.如权利要求6所述的装置,其中,加载第二调度器的部件还包括:
在加载所述第二调度器之前,从所述虚拟机监控器中卸载所述第一调度器的部件。
8.如权利要求6所述的装置,其中,激活所加载的第二调度器的部件还包括:
当所述虚拟机监控器正在运行时,用第二调度器标识符来取代第一调度器标识符,以便在所述第二调度器与生成所述调度请求的请求器之间进行路由的部件。
9.如权利要求6所述的装置,其中,激活所加载的第二调度器的部件还包括:
当所述虚拟机监控器正在运行时,采用指向所述第二调度器的第二函数阵列的第二函数指针阵列来取代指向所述第一调度器的第一函数阵列的第一函数指针阵列,以便在所述第二调度器与生成所述调度请求的请求器之间进行路由的部件。
10.如权利要求6所述的装置,还包括:
当所述虚拟机监控器正在运行时,从所述虚拟机监控器中卸载所述第二调度器的部件;以及
在卸载了所述第二调度器之后,重新激活所述第一调度器以便处理调度请求的部件。
CN200580052396.3A 2005-12-23 2005-12-23 变更虚拟机监控器中的调度器的方法和装置 Expired - Fee Related CN101361036B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2005/002305 WO2007071117A1 (en) 2005-12-23 2005-12-23 Changing a scheduler in a virtual machine monitor

Publications (2)

Publication Number Publication Date
CN101361036A CN101361036A (zh) 2009-02-04
CN101361036B true CN101361036B (zh) 2016-01-13

Family

ID=38188266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200580052396.3A Expired - Fee Related CN101361036B (zh) 2005-12-23 2005-12-23 变更虚拟机监控器中的调度器的方法和装置

Country Status (4)

Country Link
US (2) US8181179B2 (zh)
EP (1) EP1963962B1 (zh)
CN (1) CN101361036B (zh)
WO (1) WO2007071117A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135074B2 (en) * 2005-05-19 2015-09-15 Hewlett-Packard Development Company, L.P. Evaluating performance of workload manager based on QoS to representative workload and usage efficiency of shared resource for plurality of minCPU and maxCPU allocation values
US8181179B2 (en) 2005-12-23 2012-05-15 Intel Corporation Changing a scheduler in a virtual machine monitor
US8181175B1 (en) * 2008-01-28 2012-05-15 Hewlett-Packard Development Company, L.P. Accounting for resource usage time by a virtual machine
US8276147B2 (en) * 2009-10-16 2012-09-25 Microsoft Corporation Low synchronization means of scheduler finalization
WO2011081935A2 (en) 2009-12-14 2011-07-07 Citrix Systems, Inc. Methods and systems for communicating between trusted and non-trusted virtual machines
US8560826B2 (en) 2009-12-14 2013-10-15 Citrix Systems, Inc. Secure virtualization environment bootable from an external media device
US20110321044A1 (en) * 2010-06-29 2011-12-29 Samsung Sds Co., Ltd. Client hypervisor-based terminal device and operating method thereof
US8418177B2 (en) 2010-10-01 2013-04-09 Microsoft Corporation Virtual machine and/or multi-level scheduling support on systems with asymmetric processor cores
US9069594B1 (en) * 2012-12-27 2015-06-30 Emc Corporation Burst buffer appliance comprising multiple virtual machines
CN105830392B (zh) * 2013-10-23 2020-07-31 瑞典爱立信有限公司 用于能够实现资源组件分配的方法、节点和计算机程序
US9378043B1 (en) * 2015-05-28 2016-06-28 Altera Corporation Multilayer quality of service (QOS) for network functions virtualization platforms
CN107479943B (zh) * 2017-07-03 2020-02-21 北京东土科技股份有限公司 基于工业互联网操作系统的多操作系统运行方法及装置
CN107491340B (zh) * 2017-07-31 2020-07-14 上海交通大学 跨物理机的巨型虚拟机实现方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2355319A (en) * 1999-10-14 2001-04-18 Ibm Job scheduler
US20030023655A1 (en) * 2001-07-26 2003-01-30 Stepan Sokolov Method and apparatus to facilitate suspending threads in a platform-independent virtual machine
US20030037089A1 (en) * 2001-08-15 2003-02-20 Erik Cota-Robles Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542167B1 (en) * 2000-01-28 2003-04-01 Wind River Systems, Inc. System and method for flexible software linking
US7296271B1 (en) * 2000-06-28 2007-11-13 Emc Corporation Replaceable scheduling algorithm in multitasking kernel
US20020073129A1 (en) * 2000-12-04 2002-06-13 Yu-Chung Wang Integrated multi-component scheduler for operating systems
US6961941B1 (en) 2001-06-08 2005-11-01 Vmware, Inc. Computer configuration for resource management in systems including a virtual machine
US7197577B2 (en) * 2003-12-12 2007-03-27 International Business Machines Corporation Autonomic input/output scheduler selector
US20050198303A1 (en) * 2004-01-02 2005-09-08 Robert Knauerhase Dynamic virtual machine service provider allocation
US20050251806A1 (en) * 2004-05-10 2005-11-10 Auslander Marc A Enhancement of real-time operating system functionality using a hypervisor
US8181179B2 (en) 2005-12-23 2012-05-15 Intel Corporation Changing a scheduler in a virtual machine monitor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2355319A (en) * 1999-10-14 2001-04-18 Ibm Job scheduler
US20030023655A1 (en) * 2001-07-26 2003-01-30 Stepan Sokolov Method and apparatus to facilitate suspending threads in a platform-independent virtual machine
US20030037089A1 (en) * 2001-08-15 2003-02-20 Erik Cota-Robles Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor

Also Published As

Publication number Publication date
EP1963962A4 (en) 2010-02-10
EP1963962B1 (en) 2018-11-14
US20120227050A1 (en) 2012-09-06
WO2007071117A1 (en) 2007-06-28
CN101361036A (zh) 2009-02-04
US8544012B2 (en) 2013-09-24
EP1963962A1 (en) 2008-09-03
US20090019442A1 (en) 2009-01-15
US8181179B2 (en) 2012-05-15

Similar Documents

Publication Publication Date Title
CN101361036B (zh) 变更虚拟机监控器中的调度器的方法和装置
US9323547B2 (en) Virtual machine and/or multi-level scheduling support on systems with asymmetric processor cores
US10073711B2 (en) Virtual machine monitor configured to support latency sensitive virtual machines
US7181744B2 (en) System and method for transferring data between virtual machines or other computer entities
CN102077209B (zh) 受保护模式操作调度
KR101131852B1 (ko) 멀티-프로세서 애플리케이션 지원을 위한 시스템 및 방법
US9141422B2 (en) Plug-in task scheduler
EP2799990A2 (en) Dynamic virtual machine sizing
EP2864869B1 (en) Api redirection for limited capability operating systems
US20060230400A1 (en) Allocating entitled processor cycles for preempted virtual processors
US20050080962A1 (en) Hardware management of JAVA threads
EP1584031A2 (en) Affinitizing threads in a multiprocessor system
CN104838360A (zh) 基于配额的资源管理
JP2007512632A (ja) アクティビティ情報を用いての仮想マシンの管理
CN108369604A (zh) 一种多操作系统共享文件系统的方法、装置和电子设备
US20110219373A1 (en) Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform
US20140115308A1 (en) Control method, control device and computer system
US20040098722A1 (en) System, method, and computer program product for operating-system task management
CN106789308A (zh) 一种微服务架构可自动伸缩的gis服务装置及其控制方法
US9898343B2 (en) Application-level dispatcher control of application-level pseudo threads and operating system threads
CN113938527B (zh) Api网关的扩展处理方法、计算设备及存储介质
CN114138444A (zh) 一种任务调度方法、装置、设备、存储介质及程序产品
CN117234674A (zh) 用于执行任务调度的方法及其相关产品
CN117171764A (zh) Risc-v的可信执行环境实现方法、系统及相关设备
CN116991553A (zh) 一种基于api拦截转发的容器云环境下的虚拟gpu分配方法及系统

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160113

Termination date: 20171223

CF01 Termination of patent right due to non-payment of annual fee