虚拟机监控器及其调度方法

文档序号:6355835阅读:273来源:国知局
专利名称:虚拟机监控器及其调度方法
技术领域
以下描述涉及用于同时操作多个操作系统的虚拟化技术以及实现实时操作的调度技术。
背景技术
虚拟化是一种允许多个虚拟机使它们自身的操作系统在单个主计算机中进行操作的技术。根据虚拟化,主计算机运行虚拟机监控器,并且运行的虚拟监控器创建多个虚拟机。虚拟机(VM)是如物理机一样执行程序的机器(即,计算机)的实现方式。VM可以是软件或片上系统(SOC,system-on-chip)。一个用途是同时支持实时操作系统作为高级操作系统(OS),例如,Linux或Windows。由主计算机创建的多个虚拟机可同时运行,并且每个虚拟机具有其自身的虚拟硬件资源。例如,每个虚拟机可具有一个或多个虚拟中央处理单元(VCPU),并且可占用主计算机的一部分存储器。在VCPU单元中实现虚拟环境中的调度,同样地,仅基于分配给每个VCPU的时间量子(time quantum)(时限(time limit))实现传统的调度。因此,这引起对在系统中支持实时功能的限制。虽然虚拟化已用于服务器技术,但是对于每个服务器应用,VM均等地使用系统资源,同样,传统的技术无法用于具有实时处理需求的消费电子。

发明内容
在一总体方面,提供了一种用于操作至少两个域的虚拟机监控器,所述虚拟机监控器包括运行队列;多个调度器,所述多个调度器中的至少两个调度器包括不同的调度特性;控制器,该控制器被配置为将从域接收的任务插入到运行队列,根据事件类型从所述多个调度器选择用于调度插入到运行队列的任务的调度器。所述虚拟机监控器还可包括表存储器,该表存储器被配置为存储以下项目中的至少一项权重表,该权重表被配置为根据事件类型记录任务的优先级权重;时间表,该时间表被配置为记录任务的运行时限;调度器列表,该调度器列表被配置为记录根据事件类型将被选择的调度器。在所述虚拟机监控器中,控制器还可被配置为将接收的任务插入到运行队列; 通过使用任务的属性和权重表确定任务的优先级的顺序。在所述虚拟机监控器中,任务的属性可包括用于触发任务的事件源。在所述虚拟机监控器中,优先级权重可根据调度器的类型而变化。在所述虚拟机监控器中,控制器还可被配置为将接收的任务插入到运行队列; 根据对接收的任务的紧急处理的需求或对接收的任务的实时处理的需求确定接收的任务
5的优先级的顺序。在所述虚拟机监控器中,控制器还可被配置为将接收的任务插入到运行队列; 产生或更新时间表。在所述虚拟机监控器中,控制器还可被配置为调用选择的调度器,并且插入到运行的队列的任务根据调用的调度器的特性被调度。在所述虚拟机监控器中,可提供多个运行队列。在所述虚拟机监控器中,所述多个运行队列可分别映射到由所述虚拟机监控器管理的多个物理资源。在所述虚拟机监控器中,所述多个运行队列可分别映射到所述多个调度器。在所述虚拟机监控器中控制器还可被配置为根据接收的任务的属性确定将插入该任务的运行队列。在所述虚拟机监控器中以具有行和列的矩阵的形式提供运行队列,并且控制器还可被配置为根据接收的任务的属性确定将插入该任务的行和列。在所述虚拟机监控器中调度器可包括期限调度器,并且控制器还可被配置为响应于时间中断作为事件类型发生,调用期限调度器。在另一总体方面,提供了一种用于操作至少两个域的虚拟机监控器的调度方法, 所述调度方法包括如下步骤将从域接收的任务插入到运行队列;根据事件类型从包括在所述虚拟机监控器中的多个调度器中选择用于调度插入到运行队列的任务的调度器。在所述调度方法中,所述插入任务的步骤可包括使用任务的属性和权重表确定任务的优先级的顺序,其中,权重表记录任务的优先级权重。在所述调度方法中,所述插入任务的步骤可包括产生或更新记录任务的运行时限的时间表。在所述调度方法中,所述插入任务的步骤可包括根据接收的任务的属性确定将插入该任务的运行队列。所述调度方法还可包括步骤调用选择的调度器,其中,根据调用的调度器的特性对插入到运行队列的任务进行调度。在另一总体方面,提供了一种包括程序的计算机可读信息存储介质,该程序用于指示计算机实现用于操作至少两个域的虚拟机监控器的调度方法,所述方法包括如下步骤将从域接收的任务插入到至少一个运行队列;根据事件类型从所述多个调度器选择用于调度任务的调度器,其中,所述任务被插入到运行队列。在另一总体方面,提供了一种用于提供在多个虚拟机中执行的实时任务的实时特性的方法,所述方法包括如下步骤将实时任务包括到目标中以在虚拟机监控器(VMM)上进行调度;维持多个运行队列,其中,每个运行队列包括关于(VMM)的不同特性;通过多个虚拟机的状态的指示调用虚拟机。所述方法还可包括步骤将调度实体、所述多个运行队列以及中央处理单元 (CPU)进行对应来对实时任务进行调度。所述方法还可包括步骤通过VMM的接纳控制来测试调度实时任务的可能性。所述方法还可包括步骤基于事件权重表和时间图表中的至少一个调整实时任务的优先级顺序。
所述方法还可包括步骤通过对将被调度的目标分组来以优先方式调用并运行调度器。在另一总体方面,提供了一种用于操作至少两个域的虚拟机监控器,所述虚拟机监控器包括控制器,该控制器被配置为将从域接收的任务插入到运行队列;根据事件类型从多个调度器中选择用于对所述任务进行调度的调度器,其中,所述多个调度器中的至少两个调度器包括不同的调度特性。所述虚拟机监控器还可包括表存储器,该表存储器被配置为存储以下项目中的至少一项权重表,该权重表被配置为根据事件类型记录任务的优先级权重;时间表,该时间表被配置为记录任务的运行时限;调度器列表,该调度器列表被配置为记录根据事件类型将被选择的调度器。在所述虚拟机监控器中,控制器还可被配置为将接收的任务插入到运行队列; 使用任务的属性和权重表确定任务的优先级的顺序。在所述虚拟机监控器中,任务的属性可包括用于触发任务的事件源。在所的虚拟机监控器中,优先级权重可根据调度器的类型而变化。在所述虚拟机监控器中,控制器还可被配置为将接收的任务插入到运行队列; 根据对接收的任务的紧急处理的需求或对接收的任务的实时处理的需求确定接收的任务的优先级的顺序。在所述虚拟机监控器中,控制器还可被配置为将任务插入到运行队列;产生或更新时间表。在所述虚拟机监控器中控制器还可被配置为调用选择的调度器,插入到运行队列的任务根据调用的调度器的特性被调度。在所述虚拟机监控器中以具有行和列的矩阵的形式提供运行队列;控制器还可被配置为根据接收的任务的属性确定将插入该任务的行和列。在所述虚拟机监控器中调度器可包括期限调度器;控制器还可被配置为响应于时间中断作为事件类型发生,调用期限调度器。在所述虚拟机监控器还可包括多个运行队列,每个运行队列包括至少一个任务, 每个运行队列分别与所述多个调度器中的一个调度器相关联。在所的虚拟机监控器中,选择的调度器可被配置为当接收事件时,该选择的调度器被所述多个调度器中的中断调度器中断。在所述虚拟机监控器中,当完成在与中断调度器相关联的运行队列中的任务时, 所述虚拟机监控器可被配置为处理与中断的调度器相关联的运行队列。所述虚拟机监控器中,当完成在与中断调度器相关联的运行队列中的任务时,所述虚拟机监控器可被配置为处理与除选择的调度器和中断调度器之外的调度器相关联的运行队列。在所述虚拟机监控器中运行队列可与选择的调度器相关联;选择的调度器可被配置为响应于没有事件触发调度器的改变,该选择的调度器处理与所述多个调度器中的另一调度器对应的另一运行队列。在所述虚拟机监控器中,选择的调度器还可被配置为处理与选择的调度器相关联的运行队列的一部分;然后处理与另一调度器对应的另一运行队列。
在所述虚拟机监控器中,紧急的任务或事件可改变在运行队列中的多个任务的优先级顺序。一种计算机可读信息介质可包括用于指示计算机实现上述方法的程序。从以下详细描述、附图以及权利要求,其它特征和方面会是清楚的。


图1示出虚拟机监控器的示例。图2示出调度器列表的示例。图3示出权重表的示例。图4示出时间表的示例。图5A示出虚拟机监控器的操作的示例。图5B示出虚拟机监控器的操作的另一示例。图6A示出虚拟机监控器的另一示例。图6B示出虚拟机监控器的另一示例。图7示出虚拟机监控器的调度方法的示例。图8示出运行队列的示例。图9示出虚拟机监控器的另一示例。图10示出控制虚拟机监控器的逻辑的方法的示例。贯穿附图和详细描述,除非另有说明,相同附图标号应理解为指示相同元件、特性和结构。为了清楚、例证和方便,可以夸大这些元件的相对大小和描述。
具体实施例方式提供以下的详细描述以助于读者获得在此描述的方法、设备和/或系统的完整理解。因此,在此描述的系统、设备和/或方法的各种改变、修改和等同物将被提供给本领域普通技术人员。描述的连续的处理步骤和/或操作是示例,然而,除了必需按特定顺序发生的步骤和/或操作之外,步骤和/或操作的顺序不限于在此的阐述并且可以以本领域中已知的方式变化。此外,为了更加清楚和简明,可省略公知的功能和结构的描述。图1示出虚拟机监控器(VMM)的示例。如图1所示,虚拟机监控器100可在多个域101和102与硬件平台103之间存在。 域101和102中的每一个可以是操作系统或应用程序。硬件平台103可以是物理装置,例如,中央处理单元(CPU)、存储器和输入/输出端口。虚拟机监控器100可通过对硬件平台103虚拟化来允许多个域101和102同时工作。S卩,域101和102中的每一个可通过虚拟机监控器100进行的虚拟化将单个物理系统资源用作多个虚拟化系统资源。可将域101和102分类为可以直接访问到硬件平台103的主域(host domain) 101 和可在主域101的协助下使用硬件平台103的来宾域(guest domain) 102。各个域101和 102可分别包括多种类型的任务104和105。虚拟机监控器100可包括至少一个运行队列110、多个调度器121、122和123、控制器130和表存储器140。
运行队列110可存储从域101和102接收的任务104和105,或关于任务104和 105的信息。根据该示例,任务104和105可以以调度实体(schedule entity)的形式存储在运行队列110中,其中,所述调度实体可用于调度的单位。存储在运行队列110中的任务Tl、T2和T3可用作将由调度器121、122和123进行调度的对象。根据该示例,虚拟机监控器100可包括单个运行队列110或多个运行队列 110。在虚拟机监控器100包括多个运行队列110(参见,例如,图6A和图6B)的示例中,运行队列100可分别被绑定到CPU核(例如,在图6A和图6B中的CPU#0、CPU#1、CPU#2),或可分别被绑定到调度器121、122和123。另外,可以以二维QD)矩阵(参见,例如,图8)的形式管理每个运行队列110。任务(例如,任务T1、T2和T3)的顺序不限于附图中所示出。
图8示出运行队列的示例。如图8中所示,可以以二维矩阵的形式提供运行队列800。在运行队列800具有二维矩阵的示例中,具有不同属性的任务可存储在行或列之间。例如,具有属性A的任务ITl 和任务2Τ2可存储在第一列801中,具有属性B的任务3Τ3、任务4Τ4和任务5Τ5可存储在第二列802中。任务的属性可表示用于触发任务的需求。例如,任务ITl和任务2Τ2可以是由预定事件触发的任务,任务3Τ3、任务4Τ4和任务5Τ5可以是由预定中断触发的任务。任务的这些属性可包括事件,例如,资源、期限(deadline)和/或中断。这些是任务的非限制性示例。再次参照图1,调度器121、122和123可确定存在于运行队列110的任务Tl、T2 和T3的执行顺序。调度器121、122和123可分别具有不同的调度特性。例如,第一调度器 121可以是期限优先调度器,第二调度器122可以是循环(round-robin)调度器,第三调度器123可以是事件优先调度器。然而,调度器的类型不限于此,可以以各种形式提供调度器的类型。至少两个调度器可具有不同的调度特性。存在于运行队列110的任务T1、T2和T3可被调度器121、122和123中的一个(例如,第一调度器121,其中,第一调度器121是最适合于在预定时间获得实时性能的)调度。控制器130可从域101和102分别接收任务104和105,并将接收的任务104和 105插入到运行队列110。根据一示例,任务104和105可以以调度实体的形式插入到运行队列110,其中,所述调度实体可用作用于调度的单位。控制器130可将任务104和105插入到运行队列110,从而任务104和105可基于属性被划分。例如,如图8所示,可以以矩阵的形式管理运行队列800,任务可被插入到运行队列800,使得任务的属性可在行或列之间不同。任务的属性可表示用于触发该任务的需求,并可包括事件源,例如,呼叫发送/接收、期限和/或中断。可通过与域101和102对应的操作系统(OS)收集关于任务的属性的信息。另外,响应于控制器130插入任务104和105,控制器130可基于任务的优先级的顺序调整运行队列110。如果任务的属性对应于事件,则任务的优先级的顺序可基于权重表 141确定。另外,如果任务的属性对应于事件,则可不使用权重表141确定任务的优先级的顺序,而是根据对任务的紧急处理的需求或对任务的实时处理的需求来确定任务的优先级的顺序。可基于任务的期限确定对紧急处理的需求或对实时处理的需求。作为一示例,控制器130可基于由操作系统提供的信息学习哪个任务将由哪种事件类型触发。权重表141可根据事件的类型存储对于各个调度器121、122和123的任务的优先级权重。例如,即使任务ITl和任务2T2具有与事件对应的属性,如果任务ITl由事件类型El触发并且任务2T2由事件类型E2触发,则控制器130可参照与权重表141中示出的触发需求相关的任务的属性Al、A2和A3,确定任务ITl和任务2T2的优先级顺序。作为另一示例,如果任务ITl和任务2T2具有与事件对应的属性并且任务ITl和任务2T2 二者由事件类型El触发,则控制器130可基于对任务的紧急处理的需求或对任务的实时处理的需求,确定任务ITl和任务2T2的优先级顺序。例如,如果任务ITl具有五秒的期限并且任务2T2具有十秒的期限,则相比于任务2T2,可能需要更急于处理任务1T1,从而任务ITl具有比任务2T2高的优先级。另外,控制器130可将任务104和105插入到运行队列110,并且可产生或更新表存储器140的时间表142。时间表142可存储针对每个任务的时间相关限制,例如,每个任务的运行时限。例如,如果控制器130接收具有作为任务属性的时限的任务3T3,则控制器 130可将任务3T3插入到运行队列110并将任务3T3的运行时限记录到时间表142。另外,控制器130可基于关于产生的事件的信息选择多个调度器121、122和123 中的一个以对插入到运行队列中的任务Tl、T2和T3进行调度。术语“事件”表示可根据设置有虚拟机监控器的装置的操作而发生的各种类型的系统相关的事件或中断。例如,在基于虚拟机监控器100的数据处理装置安装到移动电话的示例中,“事件”或事件类型可包括打电话和接电话、开启或关闭相机、设置于移动电话中的定时器的操作以及时间被设置的时刻。这些是非限制性示例。可基于表存储器140的调度器列表143选择根据事件类型而选择的调度器。例如,如果发生需要在预设期限内执行以获得实时特性的事件,则控制器 130可在调度器121、122和123中选择期限优先调度器121。另外,控制器130可调用选择的调度器121。调用的调度器121可根据其自身的调度方案对存在于运行队列110中的任务Tl、T2和T3进行调度。如上所述,虚拟机监控器100可通过使用多个调度器121、122和123中适合于预定状态或适合于每个任务的属性的调度器来允许运行队列Iio的任务T1、T2和Τ3被调度, 其中,调度器121、122和123中的每一个具有不同的调度特性。图2示出调度器列表的示例。如图1和图2所示,调度器列表143可包括事件201和根据事件201将调用的调度器202。控制器130可通过参照调度器列表143允许适合于各个事件的调度器被调用。例如,在事件El和事件Ε3发生的示例中,调度器Sl可被调用。在事件Ε3发生的示例中,调度器S2可被调用。事件201可表示基于虚拟机监控器的系统的各种类型的系统事件。另外,调度器Sl和调度器S2中的每一个可表示具有不同特性或不同调度策略的调度器。可由制造商预设调度器列表143并且以后可更新调度器列表143。图3示出权重表的示例。如图1和图3所示,权重表141可具有针对各个调度器Sl和S2的依赖于每个任务属性301的权重302。任务属性301可表示用于触发任务的需求,并且可包括事件源,例如,呼叫发送/接收、期限和/或中断。可由控制器130通过与域101和102对应的操作系统收集关于这些任务属性的信息。响应于具有与事件对应的属性的任务Tl、Τ2和Τ3插入到运行队列110,控制器
10130可参照权重表141确定插入到运行队列110的任务Tl、T2和T3的优先级的顺序。例如,在接收到由事件El触发的任务ITl以及由事件E2触发的任务2T2的示例中,控制器 130可参照权重表141将比任务2T2高的优先级赋予任务ITl。在一示例中,可针对各个调度器Sl和S2不同地应用权重。例如,如果事件El和事件E2不显著地影响调度器S2的调度特性,则调度器S2可允许任务ITl和任务2T2具有相同权重。同时,如果任务ITl和任务2T2具有与事件对应的属性A1、A2和A3并且任务ITl 和任务2T2 二者由事件类型El触发,则任务ITl和任务2T2可基于权重表141具有相同优先级。在一示例中,控制器130可基于对任务的紧急处理的需求或对任务的实时处理的需求确定任务ITl和任务2T2的优先级的顺序。权重表141可有制造商预并且随后可被更新。图4示出时间表的示例。如图1和图4所示,时间表142可存储针对每个任务的时间相关的限制,例如,每个任务的运行时限。例如,控制器130可将任务插入到运行队列110并周期地更新时间表 142。图5A和图5B示出虚拟机监控器的选择性调度操作的示例。如图1、图5A和图5B所示,可假设三个任务Tl、T2和T3被接收,并且任务Tl、任务T2和任务T3分别由事件El、E2和E3触发。另外,对于该示例可假设事件E3是时间中断以及调度器Sl和调度器S2存在。控制器130可考虑任务属性来确定任务T1、T2和Τ3的优先级的顺序,并可将任务 Τ1、Τ2和Τ3插入到运行队列130。控制器130可基于任务属性(例如,“事件”)来通过使用权重表141调整任务Τ1、Τ2和Τ3的优先级的顺序,并且可改变插入到运行队列130的任务的排列顺序。根据示例,权重表141示出优先级权重,该优先级权重可对于每个调度器而不同。 因此,响应于控制器130确定任务的优先级的顺序,可根据使用的调度器来调整插入到运行队列130的任务的优先级的顺序。例如,如果基于调度器Sl确定优先级的顺序,则由事件El触发的任务Tl可具有最高的优先级,并且任务Τ1、Τ2和Τ3可以以任务1Τ1、任务2Τ2 和任务3Τ3的顺序(参见,例如图5Α)被插入到运行队列130。另外,如果基于调度器S2确定优先级的顺序,则由事件Ε3触发的任务Τ3可具有最高的优先级,并且任务Tl、Τ2和Τ3 可以以Τ3、Τ2和Tl的顺序(参见,例如图5Β)被插入到运行队列130。当在任务Τ1、Τ2和Τ3插入到运行队列110之后发生预定事件时,控制器130可从调度器Sl和S2选择适合于所述预定事件的类型的调度器。例如,如图2和图5Α所示,如果事件El发生,则控制器130可参照调度器列表143 调用调度器Si。另外,如果事件Ε3发生,则控制器130可参照调度器列表143调用调度器 S2。在事件Ε3是时间中断并且调度器S2是期限调度器的示例中,控制器130可在将具有时间相关限制的任务插入到运行队列130的同时更新时间表142,并且可在发生时间中断的同时激活期限调度器,从而具有时间相关限制的任务可被优先地调度,例如,具有时间相关限制的任务具有最高权重和/或优先级。另外,在时间中断不存在期间,控制器130 可激活另一合适的调度器,从而任务可根据由激活的调度器确定的优先级的预定顺序而被调度。
11
图6A示出虚拟机监控器的另一示例。如图6A所示,虚拟机监控器100可包括用于硬件平台103的各个CPU核(CPU#0、 CPU#1和CPU#2)多个运行队歹|J 110-1、110-2和110-3。在图6A中,三个运行队列110-1、 110-2和110-3可分别映射到硬件平台103的三个CPU核(CPU#0、CPU#1和CPU#2)。响应于任务104和105被接收,控制器130可使用从操作系统接收的任务属性来确定将插入接收的任务104和105的合适的运行队列。图6B示出虚拟机监控器的另一示例。如图6B所示,虚拟机监控器100可包括用于不同任务属性的多个运行队列110-1、 110-2和110-3。在图6B中,运行队列110_1、110_2和110-3可最适合于各个任务属性,并且可被分别映射到调度器121、122和123。响应于任务104和105被接收,控制器130可使用从操作系统接收的任务属性来确定将插入接收的任务104和105的合适的运行队列。图7示出虚拟机监控器的调度方法的示例。调度方法的示例可被应用到图1中示出的系统。如图1和图7所示,在操作701,虚拟机监控器100可将从各个域101和102接收的任务插入到至少一个运行队列110。作为一示例,接收的任务可根据任务的优先级的顺序而被插入到运行队列110,其中,所述任务的优先级的顺序可基于权重表141或对任务的紧急处理的需求来确定。另外,当任务被插入到运行队列110时,可产生或更新记录任务的运行时限的时间表142。另外,在操作702,虚拟机监控器100可选择调度器以调度插入到运行队列110的任务T1、T2和Τ3。S卩,虚拟机监控器100可根据事件类型从多个调度器121、122和123中选择调度器以确定在硬件平台中任务的执行顺序。例如,控制器130可参照存储在表存储器140中的调度器列表143选择对于当前状态或任务的属性最适合的调度器。在操作703,虚拟机监控器100可调用选择的调度器。例如,控制器130可调用选择的调度器并且可允许调用的调度器根据调用的调度器的调度特性或调度策略来调度存在于运行队列Iio中的任务Tl、Τ2和Τ3。响应于存在多个运行队列110,虚拟机监控器100可使用从操作系统传送的任务属性来选择适合于任务属性的运行队列,并将任务插入到选择的运行队列。如上所述,虚拟机监控器100可操作(作为示例)均具有不同调度特性的多个调度器121、122和123,并且可使用适合于事件状态或任务属性的调度器来调度任务。按这种方式,可适当地调度对用户的需求敏感的预定任务,例如,实时任务。图9示出虚拟机监控器(VMM)的另一示例。图9的示例包括与图1的元件相似的元件,但是更详细地进行示出。可提供在实时域(RT-D0MAIN)中的任务的创建(例如,接纳控制(admission control)、根据任务的特性的分组以及调度器之间的关系),从而当在VMM上运行多个实时域时,对于每个实时域的任务和多个实时域的任务,实时特性被确保。实施例包括当在虚拟机监控器(VMM)中运行多个虚拟机(虚拟域)时任务提供实时特性。例如,实施例在实时域中以VMM的调度的单位管理实时任务、在多个实时域管理任务的优先级顺序、分组调度实体和调度。当创建了 RT-D0MAIN的任务时,该任务可通过VMM的调度框架(scheduleframework) /接纳控制单元绑定到VMM的调度实体并被插入到运行队列(例如,图1的运行队列110或图9的多级运行队列)。当创建任务时,实时域的实时操作系统(RTOS,Real Time Operating System)可通过VMM提供的接口将信息(例如,期限、周期、事件源等)传送到接纳控制单元。VMM的接纳控制单元可基于所述信息将与图1的任务104相似的实时任务绑定到VMM的调度实体,并且可将该调度实体插入到运行队列。考虑调度实体的特性,接纳控制单元可维持多个运行队列并且当调度实体被插入时可确定目标运行队列。运行队列可包括注重(即,具有最高的优先级的)任务的期限的运行队列以及注重任务的交互性的运行队列。响应于调度实体插入到运行队列,接纳控制单元能够基于从RTOS传送的任务的属性调整调度实体的优先级顺序。例如,对于由事件源触发的任务,可根据用于事件权重表 (例如,图1的权重表141)的优先级顺序的调整值来调整调度实体的优先级。作为另一示例,对于具有关于时间的限制的任务,在接纳控制中可维持时间图表(time chart),从而可在时限内重新运行具有关于时间的限制的任务。事件权重表可以是具有分配给每个物理事件源或逻辑事件源的优先级权重的表, 其中,从系统提供所述物理事件源或逻辑事件源。可在系统被设计时静态地提供事件权重表或在运行时间期间事件权重表被动态地更新时。时间图表(例如,图1的时间图表142) 可被提供以维持创建的调度实体的时隙。可通过对于预定时间最适合的调度器(例如,图1的调度器121、122和12 来调度插入到运行队列的调度实体。例如,每当发生定时器中断或需要设置定时器时,VMM可更新时间图表并且可运行期限调度器以调度具有时间限制的实时任务。另外,如果发生除定时器中断之外的另一类型的事件,则VMM可使用适合于该事件的调度器来对调度实体进行调度。通用域(GP-D0MAIN)任务可具有比实时任务(例如,RT-D0MAIN任务)低的优先级, 其中,所述通用域任务可能不是实时任务。图10示出控制用于虚拟机监控器的逻辑的方法的示例。在方法1000中,在操作1010,可接收用于处理任务的请求。在操作1020,可进行关于已接收到哪种类型的任务的决定。如果该任务是周期性任务(例如,可在任何可应用的时间执行该任务),则在操作1030可进行关于是否存在可用的空时隙(empty time slot) 的确定。如果找到空时隙,则在操作1050,获得空时隙。在操作1055,可设置周期定时器。 在操作1060中,可批准任务以进行处理。如果在操作1030没有找到空时隙,则在操作1070, 可拒绝任务。如果在操作1020确定接收的任务是期限任务(即,具有用于完成的规定时间或期限的任务),则在操作1040,可进行关于是否存在可用的空时隙的确认。如果找到空时隙, 则在操作1090,可获得空时隙。在操作1095,可设置快照定时器(snapshot timer)。如果在操作1040没有找到空时隙,则在操作1080,可进行关于接收的任务是否具有比已存在于时隙中的任务高的优先级的确认,其中,所述时隙对应于与任务相关联的期限。如果否(“否” 分支),则在操作1070,任务可被拒绝。如果接收的任务具有更高的优先级(“是”分支), 则在操作1085,期望的时隙可被划分,并在操作1095,快照定时器可被设置。在操作1060 中,可批准任务以进行处理。实施例可包括在虚拟环境中能够提供实时特性以及能够允许更有效地运行各种
13类型的实时操作系统和实时应用套件的方法和系统。实施例可提供可使用相同硬件(例如,处理器或CPU)来处理多个域(例如,实时部分和通用部分)的虚拟化技术。实施例可提供这种虚拟化技术,即,所述虚拟化技术在期望多个实时VM操作的环境中提供实时任务处理。调度器的类型和数量可由制造商预设置或者可更新和补充。VMM 100可以是逻辑结构。例如,当接收事件或中断时,任何调度器可被另一调度器中断。当完成在与中断调度器关联的特定队列中的任务时,VMM 100可基于对中断调度器的设置,可返回到用于原来被中断的调度器(例如,中断的调度器)的队列,或者可继续至不同的调度器队列。可存在一个或多个运行时间队列。紧急的任务或事件可改变队列中的任务的顺序。如果在调度器中没有事件触发改变,则特定调度器可处理另一调度器的运行时间队列。例如,如果没有触发另一调度器的特性事件,则特定调度器可处理其部分自身队列, 然后可跳转到另一调度器的队列。例如,如果不存在具有即将到来的期限的任务,则期限优先调度器(例如,调度器121)可处理用于其它调度器的队列。当然,这些是非限制性示例。上述处理、功能、方法和/或软件可被记录、存储或固定到包括程序指令的一个或多个计算机可读存储介质中,所述程序指令将由计算机执行以使处理运行或执行程序指令。所述介质还可单独包括包括程序指令、数据文件、数据结构等或程序指令、数据文件、数据结构等的组合。介质和程序指令可被专门地设计或构造,或者介质和程序指令可以是对计算机软件领域的技术人员公知和可应的。计算机可读介质的示例包括磁介质(例如,硬盘、软盘和磁带)、光介质(例如,⑶-ROM盘和DVD)、磁光介质(例如,光盘)和特别地配置为存储和执行程序指令的硬件装置(例如,只读存储器(ROM)、随机存取存储器(RAM)、闪速存储器等)。程序指令的示例包括(例如,由编译器产生的)机器代码和包含更高级代码的文件,其中,可由计算机使用注释器来执行所述更高级代码。为了执行上述的操作和方法, 描述的硬件装置可被配置为用作一个或多个软件模块,反之亦然。另外,计算机可读存储介质可分布到通过网络连接的计算机系统,并且可以以分布式方式存储和执行计算机可读代码或程序指令。仅作为非穷举性示例,在此描述的装置可以整合到与在此公开的内容一致的移动装置和装置或移动装置和装置一起使用,其中,所述移动装置的示例包括蜂窝电话、个人数字助理(PDA)、数码相机、便携式游戏机和MP3播放器、便携式/个人多媒体播放器(PMP)、 手持式电子书、便携式平板PC和/或膝上型PC、全球定位系统(GPQ导航仪,所述装置的示例包括台式PC、高清晰度电视机(HDTV)、光盘播放器、设置和/或机顶盒等。计算系统或计算机可包括电性连接到总线、用户接口和存储器控制器的微处理器。计算系统或计算机还可包括闪速存储器装置。闪速存储器装置可通过存储器控制器存储N比特数据。所述N比特数据被微处理器处理或将被微处理器处理,N可以是1或大于1 的整数。当计算系统或计算机为移动设备时,可另外地提供电池以提供计算系统或计算机的操作电压。本领域普通技术人员将理解的是,计算系统或计算机还可包括应用芯片组、相机图像处理器(CIS)、移动动态随机访问存储器(DRAM)等。存储器控制器和闪速存储器装置可构成使用非易失性存储器来存储数据的固态驱动/盘(SSD)。已描述了一些示例。然而,应该明白,可进行各种修改。例如,如果描述的技术以
14不同的顺序被执行和/或如果在描述的系统、体系结构、装置或电路中的部件以不同的地方式组合和/或由其它部件或其等同物替换或补充,则可获得合适的结果。因此,其它实施方式在权利要求的范围内。
权利要求
1.一种用于操作至少两个域的虚拟机监控器,所述虚拟机监控器包括 运行队列;多个调度器,所述多个调度器中的至少两个调度器包括不同的调度特性; 控制器,该控制器被配置为 将从域接收的任务插入到运行队列;根据事件类型从所述多个调度器选择用于调度插入到运行队列的任务的调度器。
2.如权利要求1所述的虚拟机监控器,还包括表存储器,该表存储器被配置为存储以下项目中的至少一项权重表,该权重表被配置为根据事件类型记录任务的优先级权重; 时间表,该时间表被配置为记录任务的运行时限;调度器列表,该调度器列表被配置为记录根据事件类型将被选择的调度器。
3.如权利要求2所述的虚拟机监控器,其中,控制器还被配置为 将接收的任务插入到运行队列;通过使用任务的属性和权重表确定任务的优先级的顺序。
4.如权利要求3所述的虚拟机监控器,其中,任务的属性包括用于触发任务的事件源。
5.如权利要求3所述的虚拟机监控器,其中,优先级权重根据调度器的类型而变化。
6.如权利要求2所述的虚拟机监控器,其中,控制器还被配置为 将接收的任务插入到运行队列;根据对接收的任务的紧急处理的需求或对接收的任务的实时处理的需求,确定接收的任务的优先级的顺序。
7.如权利要求2所述的虚拟机监控器,其中,控制器还被配置为 将接收的任务插入到运行队列;产生或更新时间表。
8.如权利要求1所述的虚拟机监控器,其中, 控制器还被配置为调用选择的调度器;根据调用的调度器的特性对插入到运行队列的任务进行调度。
9.如权利要求1所述的虚拟机监控器,其中,多个运行队列被提供。
10.如权利要求9所述的虚拟机监控器,其中,所述多个运行队列分别映射到由所述虚拟机监控器管理的多个物理资源。
11.如权利要求9所述的虚拟机监控器,其中,所述多个运行队列分别映射到所述多个调度器。
12.如权利要求9所述的虚拟机监控器,其中,控制器还被配置为根据接收的任务的属性确定将插入该任务的运行队列。
13.如权利要求1所述的虚拟机监控器,其中 以具有行和列的矩阵的形式提供运行队列;控制器还被配置为根据接收的任务的属性确定将插入该任务的行和列。
14.如权利要求1所述的虚拟机监控器,其中 调度器包括期限调度器;以及控制器还被配置为响应于时间中断作为事件类型发生,调用期限调度器。
15.一种用于操作至少两个域的虚拟机监控器的调度方法,所述调度方法包括如下步骤将从域接收的任务插入到运行队列;以及根据事件类型从包括在所述虚拟机监控器中的多个调度器中选择用于调度插入到运行队列的任务的调度器。
16.如权利要求15所述的调度方法,其中,所述插入任务的步骤包括使用任务的属性和权重表确定任务的优先级的顺序,其中,权重表记录任务的优先级权重。
17.如权利要求15所述的调度方法,其中,所述插入任务的步骤包括产生或更新记录任务的运行时限的时间表。
18.如权利要求15所述的调度方法,其中,所述插入任务的步骤包括根据接收的任务的属性确定将插入该任务的运行队列。
19.如权利要求15所述的调度方法,还包括步骤 调用选择的调度器,其中,根据调用的调度器的特性对插入到运行队列的任务进行调度。
20.一种用于提供在多个虚拟机中执行的实时任务的实时特性的方法,所述方法包括如下步骤将实时任务包括到目标中以在虚拟机监控器VMM上进行调度; 维持多个运行队列,每个运行队列包括关于VMM的不同特性; 通过多个虚拟机的状态的指示调用调度器。
21.如权利要求20所述的方法,还包括步骤将调度实体、所述多个运行队列以及中央处理单元CPU进行对应来对实时任务进行调度。
22.如权利要求20所述的方法,还包括步骤通过VMM的接纳控制来测试调度实时任务的可能性。
23.如权利要求20所述的方法,还包括步骤基于事件权重表和时间图表中的至少一个调整实时任务的优先级顺序。
24.如权利要求20所述的方法,还包括步骤通过对将被调度的目标分组来以优先方式调用并运行调度器。
25.一种用于操作至少两个域的虚拟机监控器,所述虚拟机监控器包括 控制器,该控制器被配置为将从域接收的任务插入到运行队列;根据事件类型从多个调度器中选择用于对所述任务进行调度的调度器,其中,所述多个调度器中的至少两个调度器包括不同的调度特性。
26.如权利要求25所述的虚拟机监控器,还包括表存储器,该表存储器被配置为存储以下项目中的至少一项权重表,该权重表被配置为根据事件类型记录任务的优先级权重; 时间表,该时间表被配置为记录任务的运行时限;调度器列表,该调度器列表被配置为记录根据事件类型将被选择的调度器。
27.如权利要求沈所述的虚拟机监控器,其中,控制器还被配置为 将接收的任务插入到运行队列;使用任务的属性和权重表确定任务的优先级的顺序。
28.如权利要求27所述的虚拟机监控器,其中,任务的属性包括用于触发任务的事件源。
29.如权利要求27所述的虚拟机监控器,其中,优先级权重根据调度器的类型而变化。
30.如权利要求沈所述的虚拟机监控器,其中,控制器还被配置为 将接收的任务插入到运行队列;根据对接收的任务的紧急处理的需求或对接收的任务的实时处理的需求确定接收的任务的优先级的顺序。
31.如权利要求沈所述的虚拟机监控器,其中,控制器还被配置为 将接收的任务插入到运行队列;以及产生或更新时间表。
32.如权利要求25所述的虚拟机监控器,其中 控制器还被配置为调用选择的调度器;根据调用的调度器的特性调度插入到运行队列的任务。
33.如权利要求25所述的虚拟机监控器,其中 以具有行和列的矩阵的形式提供运行队列;控制器还被配置为根据接收的任务的属性确定将插入该任务的行和列。
34.如权利要求25所述的虚拟机监控器,其中, 调度器包括期限调度器;以及控制器还被配置为响应于时间中断作为事件类型发生,调用期限调度器。
35.如权利要求25所述的虚拟机监控器,还包括多个运行队列,每个运行队列包括至少一个任务,每个运行队列分别与所述多个调度器中的一个调度器相关联。
36.如权利要求35所述的虚拟机监控器,其中,选择的调度器被配置为当接收事件时该选择的调度器被所述多个调度器中的中断调度器中断。
37.如权利要求36所述的虚拟机监控器,其中,当完成在与中断调度器相关联的运行队列中的任务时,所述虚拟机监控器被配置为处理与中断的调度器相关联的运行队列。
38.如权利要求36所述的虚拟机监控器,其中,当完成在与中断调度器相关联的运行队列中的任务时,所述虚拟机监控器被配置为处理与除选择的调度器和中断调度器之外的调度器相关联的运行队列。
39.如权利要求25所述的虚拟机监控器,其中 运行队列与选择的调度器相关联;选择的调度器被配置为响应于没有事件触发调度器的改变,处理与所述多个调度器中的另一调度器对应的另一运行队列。
40.如权利要求39所述的虚拟机监控器,其中,选择的调度器还被配置为 处理与选择的调度器相关联的运行队列的一部分;以及然后处理与另一调度器对应的另一运行队列。
41.如权利要求25所述的虚拟机监控器,其中,紧急的任务或事件改变在运行队列中的多个任务的优先级顺序。
全文摘要
提供了一种虚拟机监控器及其调度方法。所述虚拟监控器可操作至少两个域。虚拟机监控器可包括至少一个运行队列以及多个调度器,所述多个调度器中的至少两个调度器包括不同的调度特性。虚拟机监控器可将从域接收的任务插入到运行队列,并且根据事件类型可从所述多个调度器选择用于调度任务的调度器,其中,所述任务可被插入到运行队列。
文档编号G06F11/30GK102193853SQ20111005851
公开日2011年9月21日 申请日期2011年3月11日 优先权日2010年3月12日
发明者徐尚范, 柳在敏 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1