CN102193853B - 虚拟机监控器及其调度方法 - Google Patents

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

Info

Publication number
CN102193853B
CN102193853B CN201110058516.8A CN201110058516A CN102193853B CN 102193853 B CN102193853 B CN 102193853B CN 201110058516 A CN201110058516 A CN 201110058516A CN 102193853 B CN102193853 B CN 102193853B
Authority
CN
China
Prior art keywords
task
scheduler
monitor
virtual machine
operation queue
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
CN201110058516.8A
Other languages
English (en)
Other versions
CN102193853A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN102193853A publication Critical patent/CN102193853A/zh
Application granted granted Critical
Publication of CN102193853B publication Critical patent/CN102193853B/zh
Active 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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/45541Bare-metal, i.e. hypervisor runs directly on hardware
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)
  • Telephonic Communication Services (AREA)

Abstract

提供了一种虚拟机监控器及其调度方法。所述虚拟监控器可操作至少两个域。虚拟机监控器可包括至少一个运行队列以及多个调度器,所述多个调度器中的至少两个调度器包括不同的调度特性。虚拟机监控器可将从域接收的任务***到运行队列,并且根据事件类型可从所述多个调度器选择用于调度任务的调度器,其中,所述任务可被***到运行队列。

Description

虚拟机监控器及其调度方法
本申请要求于2010年3月12日提交到韩国知识产权局的第10-2010-0022495号韩国专利申请的权益,该申请的全部公开通过引用合并与此以用于任何目的。
技术领域
以下描述涉及用于同时操作多个操作***的虚拟化技术以及实现实时操作的调度技术。
背景技术
虚拟化是一种允许多个虚拟机使它们自身的操作***在单个主计算机中进行操作的技术。
根据虚拟化,主计算机运行虚拟机监控器,并且运行的虚拟监控器创建多个虚拟机。虚拟机(VM)是如物理机一样执行程序的机器(即,计算机)的实现方式。VM可以是软件或片上***(SOC,system-on-chip)。一个用途是同时支持实时操作***作为高级操作***(OS),例如,Linux或Windows。由主计算机创建的多个虚拟机可同时运行,并且每个虚拟机具有其自身的虚拟硬件资源。例如,每个虚拟机可具有一个或多个虚拟中央处理单元(VCPU),并且可占用主计算机的一部分存储器。
在VCPU单元中实现虚拟环境中的调度,同样地,仅基于分配给每个VCPU的时间量子(time quantum)(时限(time limit))实现传统的调度。因此,这引起对在***中支持实时功能的限制。虽然虚拟化已用于服务器技术,但是对于每个服务器应用,VM均等地使用***资源,同样,传统的技术无法用于具有实时处理需求的消费电子。
发明内容
在一总体方面,提供了一种用于操作至少两个域的虚拟机监控器,所述虚拟机监控器包括:运行队列;多个调度器,所述多个调度器中的至少两个调度器包括不同的调度特性;控制器,该控制器被配置为:将从域接收的任务***到运行队列,根据事件类型从所述多个调度器选择用于调度***到运行队列的任务的调度器。
所述虚拟机监控器还可包括:表存储器,该表存储器被配置为存储以下项目中的至少一项:权重表,该权重表被配置为根据事件类型记录任务的优先级权重;时间表,该时间表被配置为记录任务的运行时限;调度器列表,该调度器列表被配置为记录根据事件类型将被选择的调度器。
在所述虚拟机监控器中,控制器还可被配置为:将接收的任务***到运行队列;通过使用任务的属性和权重表确定任务的优先级的顺序。
在所述虚拟机监控器中,任务的属性可包括用于触发任务的事件源。
在所述虚拟机监控器中,优先级权重可根据调度器的类型而变化。
在所述虚拟机监控器中,控制器还可被配置为:将接收的任务***到运行队列;根据对接收的任务的紧急处理的需求或对接收的任务的实时处理的需求确定接收的任务的优先级的顺序。
在所述虚拟机监控器中,控制器还可被配置为:将接收的任务***到运行队列;产生或更新时间表。
在所述虚拟机监控器中,控制器还可被配置为调用选择的调度器,并且***到运行的队列的任务根据调用的调度器的特性被调度。
在所述虚拟机监控器中,可提供多个运行队列。
在所述虚拟机监控器中,所述多个运行队列可分别映射到由所述虚拟机监控器管理的多个物理资源。
在所述虚拟机监控器中,所述多个运行队列可分别映射到所述多个调度器。
在所述虚拟机监控器中:控制器还可被配置为根据接收的任务的属性确定将***该任务的运行队列。
在所述虚拟机监控器中:以具有行和列的矩阵的形式提供运行队列,并且控制器还可被配置为根据接收的任务的属性确定将***该任务的行和列。
在所述虚拟机监控器中:调度器可包括期限调度器,并且控制器还可被配置为响应于时间中断作为事件类型发生,调用期限调度器。
在另一总体方面,提供了一种用于操作至少两个域的虚拟机监控器的调度方法,所述调度方法包括如下步骤:将从域接收的任务***到运行队列;根据事件类型从包括在所述虚拟机监控器中的多个调度器中选择用于调度***到运行队列的任务的调度器。
在所述调度方法中,所述***任务的步骤可包括:使用任务的属性和权重表确定任务的优先级的顺序,其中,权重表记录任务的优先级权重。
在所述调度方法中,所述***任务的步骤可包括:产生或更新记录任务的运行时限的时间表。
在所述调度方法中,所述***任务的步骤可包括:根据接收的任务的属性确定将***该任务的运行队列。
所述调度方法还可包括步骤:调用选择的调度器,其中,根据调用的调度器的特性对***到运行队列的任务进行调度。
在另一总体方面,提供了一种包括程序的计算机可读信息存储介质,该程序用于指示计算机实现用于操作至少两个域的虚拟机监控器的调度方法,所述方法包括如下步骤:将从域接收的任务***到至少一个运行队列;根据事件类型从所述多个调度器选择用于调度任务的调度器,其中,所述任务被***到运行队列。
在另一总体方面,提供了一种用于提供在多个虚拟机中执行的实时任务的实时特性的方法,所述方法包括如下步骤:将实时任务包括到目标中以在虚拟机监控器(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同时工作。即,域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中的任务T1、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。另外,可以以二维(2D)矩阵(参见,例如,图8)的形式管理每个运行队列110。任务(例如,任务T1、T2和T3)的顺序不限于附图中所示出。
图8示出运行队列的示例。
如图8中所示,可以以二维矩阵的形式提供运行队列800。在运行队列800具有二维矩阵的示例中,具有不同属性的任务可存储在行或列之间。例如,具有属性A的任务1T1和任务2T2可存储在第一列801中,具有属性B的任务3T3、任务4T4和任务5T5可存储在第二列802中。
任务的属性可表示用于触发任务的需求。例如,任务1T1和任务2T2可以是由预定事件触发的任务,任务3T3、任务4T4和任务5T5可以是由预定中断触发的任务。任务的这些属性可包括事件,例如,资源、期限(deadline)和/或中断。这些是任务的非限制性示例。
再次参照图1,调度器121、122和123可确定存在于运行队列110的任务T1、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的任务的优先级权重。例如,即使任务1T1和任务2T2具有与事件对应的属性,如果任务1T1由事件类型E1触发并且任务2T2由事件类型E2触发,则控制器130可参照与权重表141中示出的触发需求相关的任务的属性A1、A2和A3,确定任务1T1和任务2T2的优先级顺序。
作为另一示例,如果任务1T1和任务2T2具有与事件对应的属性并且任务1T1和任务2T2二者由事件类型E1触发,则控制器130可基于对任务的紧急处理的需求或对任务的实时处理的需求,确定任务1T1和任务2T2的优先级顺序。例如,如果任务1T1具有五秒的期限并且任务2T2具有十秒的期限,则相比于任务2T2,可能需要更急于处理任务1T1,从而任务1T1具有比任务2T2高的优先级。
另外,控制器130可将任务104和105***到运行队列110,并且可产生或更新表存储器140的时间表142。时间表142可存储针对每个任务的时间相关限制,例如,每个任务的运行时限。例如,如果控制器130接收具有作为任务属性的时限的任务3T3,则控制器130可将任务3T3***到运行队列110并将任务3T3的运行时限记录到时间表142。
另外,控制器130可基于关于产生的事件的信息选择多个调度器121、122和123中的一个以对***到运行队列中的任务T1、T2和T3进行调度。术语“事件”表示可根据设置有虚拟机监控器的装置的操作而发生的各种类型的***相关的事件或中断。例如,在基于虚拟机监控器100的数据处理装置安装到移动电话的示例中,“事件”或事件类型可包括打电话和接电话、开启或关闭相机、设置于移动电话中的定时器的操作以及时间被设置的时刻。这些是非限制性示例。可基于表存储器140的调度器列表143选择根据事件类型而选择的调度器。例如,如果发生需要在预设期限内执行以获得实时特性的事件,则控制器130可在调度器121、122和123中选择期限优先调度器121。
另外,控制器130可调用选择的调度器121。调用的调度器121可根据其自身的调度方案对存在于运行队列110中的任务T1、T2和T3进行调度。
如上所述,虚拟机监控器100可通过使用多个调度器121、122和123中适合于预定状态或适合于每个任务的属性的调度器来允许运行队列110的任务T1、T2和T3被调度,其中,调度器121、122和123中的每一个具有不同的调度特性。
图2示出调度器列表的示例。
如图1和图2所示,调度器列表143可包括事件201和根据事件201将调用的调度器202。控制器130可通过参照调度器列表143允许适合于各个事件的调度器被调用。例如,在事件E1和事件E3发生的示例中,调度器S1可被调用。在事件E3发生的示例中,调度器S2可被调用。事件201可表示基于虚拟机监控器的***的各种类型的***事件。另外,调度器S1和调度器S2中的每一个可表示具有不同特性或不同调度策略的调度器。可由制造商预设调度器列表143并且以后可更新调度器列表143。
图3示出权重表的示例。
如图1和图3所示,权重表141可具有针对各个调度器S1和S2的依赖于每个任务属性301的权重302。任务属性301可表示用于触发任务的需求,并且可包括事件源,例如,呼叫发送/接收、期限和/或中断。可由控制器130通过与域101和102对应的操作***收集关于这些任务属性的信息。
响应于具有与事件对应的属性的任务T1、T2和T3***到运行队列110,控制器130可参照权重表141确定***到运行队列110的任务T1、T2和T3的优先级的顺序。例如,在接收到由事件E1触发的任务1T1以及由事件E2触发的任务2T2的示例中,控制器130可参照权重表141将比任务2T2高的优先级赋予任务1T1。在一示例中,可针对各个调度器S1和S2不同地应用权重。例如,如果事件E1和事件E2不显著地影响调度器S2的调度特性,则调度器S2可允许任务1T1和任务2T2具有相同权重。
同时,如果任务1T1和任务2T2具有与事件对应的属性A1、A2和A3并且任务1T1和任务2T2二者由事件类型E1触发,则任务1T1和任务2T2可基于权重表141具有相同优先级。在一示例中,控制器130可基于对任务的紧急处理的需求或对任务的实时处理的需求确定任务1T1和任务2T2的优先级的顺序。权重表141可有制造商预并且随后可被更新。
图4示出时间表的示例。
如图1和图4所示,时间表142可存储针对每个任务的时间相关的限制,例如,每个任务的运行时限。例如,控制器130可将任务***到运行队列110并周期地更新时间表142。
图5A和图5B示出虚拟机监控器的选择性调度操作的示例。
如图1、图5A和图5B所示,可假设三个任务T1、T2和T3被接收,并且任务T1、任务T2和任务T3分别由事件E1、E2和E3触发。另外,对于该示例可假设事件E3是时间中断以及调度器S1和调度器S2存在。
控制器130可考虑任务属性来确定任务T1、T2和T3的优先级的顺序,并可将任务T1、T2和T3***到运行队列130。控制器130可基于任务属性(例如,“事件”)来通过使用权重表141调整任务T1、T2和T3的优先级的顺序,并且可改变***到运行队列130的任务的排列顺序。
根据示例,权重表141示出优先级权重,该优先级权重可对于每个调度器而不同。因此,响应于控制器130确定任务的优先级的顺序,可根据使用的调度器来调整***到运行队列130的任务的优先级的顺序。例如,如果基于调度器S1确定优先级的顺序,则由事件E1触发的任务T1可具有最高的优先级,并且任务T1、T2和T3可以以任务1T1、任务2T2和任务3T3的顺序(参见,例如图5A)被***到运行队列130。另外,如果基于调度器S2确定优先级的顺序,则由事件E3触发的任务T3可具有最高的优先级,并且任务T1、T2和T3可以以T3、T2和T1的顺序(参见,例如图5B)被***到运行队列130。
当在任务T1、T2和T3***到运行队列110之后发生预定事件时,控制器130可从调度器S1和S2选择适合于所述预定事件的类型的调度器。
例如,如图2和图5A所示,如果事件E1发生,则控制器130可参照调度器列表143调用调度器S1。另外,如果事件E3发生,则控制器130可参照调度器列表143调用调度器S2。
在事件E3是时间中断并且调度器S2是期限调度器的示例中,控制器130可在将具有时间相关限制的任务***到运行队列130的同时更新时间表142,并且可在发生时间中断的同时激活期限调度器,从而具有时间相关限制的任务可被优先地调度,例如,具有时间相关限制的任务具有最高权重和/或优先级。另外,在时间中断不存在期间,控制器130可激活另一合适的调度器,从而任务可根据由激活的调度器确定的优先级的预定顺序而被调度。
图6A示出虚拟机监控器的另一示例。
如图6A所示,虚拟机监控器100可包括用于硬件平台103的各个CPU核(CPU#0、CPU#1和CPU#2)多个运行队列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和T3。即,虚拟机监控器100可根据事件类型从多个调度器121、122和123中选择调度器以确定在硬件平台中任务的执行顺序。例如,控制器130可参照存储在表存储器140中的调度器列表143选择对于当前状态或任务的属性最适合的调度器。
在操作703,虚拟机监控器100可调用选择的调度器。例如,控制器130可调用选择的调度器并且可允许调用的调度器根据调用的调度器的调度特性或调度策略来调度存在于运行队列110中的任务T1、T2和T3。
响应于存在多个运行队列110,虚拟机监控器100可使用从操作***传送的任务属性来选择适合于任务属性的运行队列,并将任务***到选择的运行队列。
如上所述,虚拟机监控器100可操作(作为示例)均具有不同调度特性的多个调度器121、122和123,并且可使用适合于事件状态或任务属性的调度器来调度任务。按这种方式,可适当地调度对用户的需求敏感的预定任务,例如,实时任务。
图9示出虚拟机监控器(VMM)的另一示例。
图9的示例包括与图1的元件相似的元件,但是更详细地进行示出。可提供在实时域(RT-DOMAIN)中的任务的创建(例如,接纳控制(admission control)、根据任务的特性的分组以及调度器之间的关系),从而当在VMM上运行多个实时域时,对于每个实时域的任务和多个实时域的任务,实时特性被确保。
实施例包括当在虚拟机监控器(VMM)中运行多个虚拟机(虚拟域)时任务提供实时特性。例如,实施例在实时域中以VMM的调度的单位管理实时任务、在多个实时域管理任务的优先级顺序、分组调度实体和调度。
当创建了RT-DOMAIN的任务时,该任务可通过VMM的调度框架(scheduleframework)/接纳控制单元绑定到VMM的调度实体并被***到运行队列(例如,图1的运行队列110或图9的多级运行队列)。当创建任务时,实时域的实时操作***(RTOS,Real TimeOperating System)可通过VMM提供的接口将信息(例如,期限、周期、事件源等)传送到接纳控制单元。VMM的接纳控制单元可基于所述信息将与图1的任务104相似的实时任务绑定到VMM的调度实体,并且可将该调度实体***到运行队列。
考虑调度实体的特性,接纳控制单元可维持多个运行队列并且当调度实体被***时可确定目标运行队列。运行队列可包括注重(即,具有最高的优先级的)任务的期限的运行队列以及注重任务的交互性的运行队列。
响应于调度实体***到运行队列,接纳控制单元能够基于从RTOS传送的任务的属性调整调度实体的优先级顺序。例如,对于由事件源触发的任务,可根据用于事件权重表(例如,图1的权重表141)的优先级顺序的调整值来调整调度实体的优先级。作为另一示例,对于具有关于时间的限制的任务,在接纳控制中可维持时间图表(time chart),从而可在时限内重新运行具有关于时间的限制的任务。
事件权重表可以是具有分配给每个物理事件源或逻辑事件源的优先级权重的表,其中,从***提供所述物理事件源或逻辑事件源。可在***被设计时静态地提供事件权重表或在运行时间期间事件权重表被动态地更新时。时间图表(例如,图1的时间图表142)可被提供以维持创建的调度实体的时隙。
可通过对于预定时间最适合的调度器(例如,图1的调度器121、122和123)来调度***到运行队列的调度实体。例如,每当发生定时器中断或需要设置定时器时,VMM可更新时间图表并且可运行期限调度器以调度具有时间限制的实时任务。另外,如果发生除定时器中断之外的另一类型的事件,则VMM可使用适合于该事件的调度器来对调度实体进行调度。通用域(GP-DOMAIN)任务可具有比实时任务(例如,RT-DOMAIN任务)低的优先级,其中,所述通用域任务可能不是实时任务。
图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中,可批准任务以进行处理。
实施例可包括在虚拟环境中能够提供实时特性以及能够允许更有效地运行各种类型的实时操作***和实时应用套件的方法和***。实施例可提供可使用相同硬件(例如,处理器或CPU)来处理多个域(例如,实时部分和通用部分)的虚拟化技术。实施例可提供这种虚拟化技术,即,所述虚拟化技术在期望多个实时VM操作的环境中提供实时任务处理。
调度器的类型和数量可由制造商预设置或者可更新和补充。VMM 100可以是逻辑结构。例如,当接收事件或中断时,任何调度器可被另一调度器中断。当完成在与中断调度器关联的特定队列中的任务时,VMM 100可基于对中断调度器的设置,可返回到用于原来被中断的调度器(例如,中断的调度器)的队列,或者可继续至不同的调度器队列。可存在一个或多个运行时间队列。紧急的任务或事件可改变队列中的任务的顺序。
如果在调度器中没有事件触发改变,则特定调度器可处理另一调度器的运行时间队列。例如,如果没有触发另一调度器的特性事件,则特定调度器可处理其部分自身队列,然后可跳转到另一调度器的队列。例如,如果不存在具有即将到来的期限的任务,则期限优先调度器(例如,调度器121)可处理用于其它调度器的队列。当然,这些是非限制性示例。
上述处理、功能、方法和/或软件可被记录、存储或固定到包括程序指令的一个或多个计算机可读存储介质中,所述程序指令将由计算机执行以使处理运行或执行程序指令。所述介质还可单独包括包括程序指令、数据文件、数据结构等或程序指令、数据文件、数据结构等的组合。介质和程序指令可被专门地设计或构造,或者介质和程序指令可以是对计算机软件领域的技术人员公知和可应的。计算机可读介质的示例包括磁介质(例如,硬盘、软盘和磁带)、光介质(例如,CD-ROM盘和DVD)、磁光介质(例如,光盘)和特别地配置为存储和执行程序指令的硬件装置(例如,只读存储器(ROM)、随机存取存储器(RAM)、闪速存储器等)。程序指令的示例包括(例如,由编译器产生的)机器代码和包含更高级代码的文件,其中,可由计算机使用注释器来执行所述更高级代码。为了执行上述的操作和方法,描述的硬件装置可被配置为用作一个或多个软件模块,反之亦然。另外,计算机可读存储介质可分布到通过网络连接的计算机***,并且可以以分布式方式存储和执行计算机可读代码或程序指令。
仅作为非穷举性示例,在此描述的装置可以整合到与在此公开的内容一致的移动装置和装置或移动装置和装置一起使用,其中,所述移动装置的示例包括蜂窝电话、个人数字助理(PDA)、数码相机、便携式游戏机和MP3播放器、便携式/个人多媒体播放器(PMP)、手持式电子书、便携式平板PC和/或膝上型PC、全球定位***(GPS)导航仪,所述装置的示例包括台式PC、高清晰度电视机(HDTV)、光盘播放器、设置和/或机顶盒等。
计算***或计算机可包括电性连接到总线、用户接口和存储器控制器的微处理器。计算***或计算机还可包括闪速存储器装置。闪速存储器装置可通过存储器控制器存储N比特数据。所述N比特数据被微处理器处理或将被微处理器处理,N可以是1或大于1的整数。当计算***或计算机为移动设备时,可另外地提供电池以提供计算***或计算机的操作电压。
本领域普通技术人员将理解的是,计算***或计算机还可包括应用芯片组、相机图像处理器(CIS)、移动动态随机访问存储器(DRAM)等。存储器控制器和闪速存储器装置可构成使用非易失性存储器来存储数据的固态驱动/盘(SSD)。
已描述了一些示例。然而,应该明白,可进行各种修改。例如,如果描述的技术以不同的顺序被执行和/或如果在描述的***、体系结构、装置或电路中的部件以不同的地方式组合和/或由其它部件或其等同物替换或补充,则可获得合适的结果。因此,其它实施方式在权利要求的范围内。

Claims (36)

1.一种用于操作至少两个域的虚拟机监控器,所述虚拟机监控器包括:
运行队列;
多个调度器,所述多个调度器中的至少两个调度器包括不同的调度特性;
表存储器,被配置为存储以下项目中的至少一项:
权重表,该权重表被配置为记录分配给多个任务中的每个任务以及所属多个调度器中的每个调度器的优先级权重,其中,针对每个调度器的优先级权重独立于其它调度器的优先级权重,所述多个调度器中的至少两个调度器在优先级权重方面相互不同;
时间表,该时间表被配置为记录具有运行时限的每个任务的运行时限;
调度器列表,该调度器列表被配置为记录根据事件类型将被选择的调度器;
控制器,该控制器被配置为:
将从实时域接收的所述多个任务中一个任务***到所述虚拟机监控器的运行队列并更新时间表;
根据事件类型的属性参照存储在表存储器中的调度器列表从所述多个调度器选择用于调度***到运行队列的任务的调度器;
根据任务的属性和权重表调整在运行队列中的任务的优先级的顺序,其中,任务的属性表示用于触发任务的需求;
使用任务的属性和权重表确定任务的优先级的顺序,
其中,基于确定的顺序来调度所述多个任务的执行。
2.如权利要求1所述的虚拟机监控器,其中,任务的属性包括用于触发任务的事件源。
3.如权利要求1所述的虚拟机监控器,其中,优先级权重根据调度器的类型而变化。
4.如权利要求1所述的虚拟机监控器,其中,控制器还被配置为:
根据任务是否需要紧急处理或任务是否是需要实时处理的任务,确定任务的优先级的顺序。
5.如权利要求1所述的虚拟机监控器,其中,控制器还被配置为:
产生时间表。
6.如权利要求1所述的虚拟机监控器,其中,
控制器还被配置为调用选择的调度器;
根据调用的调度器的特性对***到运行队列的任务进行调度。
7.如权利要求1所述的虚拟机监控器,其中,多个运行队列被提供。
8.如权利要求7所述的虚拟机监控器,其中,所述多个运行队列分别映射到由所述虚拟机监控器管理的多个物理资源。
9.如权利要求7所述的虚拟机监控器,其中,所述多个运行队列分别映射到所述多个调度器。
10.如权利要求7所述的虚拟机监控器,其中,控制器还被配置为根据接收的任务的属性确定将***该任务的运行队列。
11.如权利要求1所述的虚拟机监控器,其中:
以具有行和列的矩阵的形式提供运行队列;
控制器还被配置为根据接收的任务的属性确定该任务将被***的行和列。
12.如权利要求1所述的虚拟机监控器,其中:
调度器包括期限调度器;以及
控制器还被配置为响应于时间中断作为事件类型发生,调用期限调度器。
13.一种用于操作至少两个域的虚拟机监控器的调度方法,所述调度方法包括如下步骤:
将从实时域接收的多个任务中的任务***到运行队列,使用任务的属性和权重表来确定任务的优先级的顺序并更新时间表,其中,权重表记录有针对所述多个任务中的每个任务和多个调度器中的每个调度器的优先级权重,针对每个调度器的优先级权重独立于其它调度器的优先级权重,所述多个调度器中的至少两个调度器在优先级权重方面相互不同,时间表记录任务的运行时限;以及
根据事件类型的属性参照存储在表存储器中的调度器列表从包括在所述虚拟机监控器中的所述多个调度器中选择用于调度***到运行队列的任务的调度器;
根据任务的属性和权重表,调整在运行队列中的任务的优先级的顺序,其中,任务的属性表示用于触发任务的需求,
其中,基于确定的顺序来调度所述多个任务的执行。
14.如权利要求13所述的调度方法,其中,所述***任务的步骤包括:产生记录任务的运行时限的时间表。
15.如权利要求13所述的调度方法,其中,所述***任务的步骤包括:根据接收的任务的属性确定将***该任务的运行队列。
16.如权利要求13所述的调度方法,还包括步骤:
调用选择的调度器,
其中,根据调用的调度器的特性对***到运行队列的任务进行调度。
17.一种用于提供在多个虚拟机中执行的实时任务的实时特性的方法,所述方法包括如下步骤:
将实时任务包括到目标中以在虚拟机监控器VMM上进行调度;
使用任务的属性和权重表来确定任务的优先级的顺序并更新时间表,其中,权重表记录有针对任务中的每个任务和多个调度器中的每个调度器的优先级权重,针对每个调度器的优先级权重独立于其它调度器的优先级权重,所述多个调度器中的至少两个调度器在优先级权重方面相互不同,时间表记录任务的运行时限;
更新记录实时任务的运行时限的时间表;
维持多个运行队列,每个运行队列包括关于VMM的不同特性;
通过多个虚拟机的状态的指示参照存储在表存储器中的调度器列表调用调度器;
根据任务的属性和权重表,调整在运行队列中的任务的优先级的顺序,其中,任务的属性表示用于触发任务的需求。
18.如权利要求17所述的方法,还包括步骤:将调度实体、所述多个运行队列以及中央处理单元CPU进行对应来对实时任务进行调度。
19.如权利要求17所述的方法,还包括步骤:通过VMM的接纳控制来测试调度实时任务的可能性。
20.如权利要求17所述的方法,还包括步骤:基于事件权重表和时间图表中的至少一个调整实时任务的优先级顺序。
21.如权利要求17所述的方法,还包括步骤:通过对将被调度的目标分组来以优先方式调用并运行调度器。
22.一种用于操作至少两个域的虚拟机监控器,所述虚拟机监控器包括:表存储器,被配置为存储以下项目中的至少一项:
权重表,该权重表被配置为记录针对任务中的每个任务和多个调度器中的每个调度器的优先级权重,针对每个调度器的优先级权重独立于其它调度器的优先级权重,所述多个调度器中的至少两个调度器在优先级权重方面相互不同;
时间表,该时间表被配置为记录具有运行时限的每个任务的运行时限;
调度器列表,该调度器列表被配置为记录根据事件类型将被选择的调度器;
控制器,该控制器被配置为:
将从实时域接收的多个任务中的任务任务***到所述虚拟机监控器的运行队列并更新时间表;
根据事件类型参照存储在表存储器中的调度器列表从多个调度器中选择用于对所述任务进行调度的调度器,并根据任务的属性和权重表,调整在运行队列中的任务的优先级的顺序,其中,任务的属性表示用于触发任务的需求,其中,所述多个调度器中的至少两个调度器包括不同的调度特性;
使用任务的属性和权重表确定任务的优先级的顺序。
23.如权利要求22所述的虚拟机监控器,其中,任务的属性包括用于触发任务的事件源。
24.如权利要求22所述的虚拟机监控器,其中,优先级权重根据调度器的类型而变化。
25.如权利要求22所述的虚拟机监控器,其中,控制器还被配置为:
将接收的任务***到运行队列;
根据对接收的任务的紧急处理的需求或对接收的任务的实时处理的需求确定接收的任务的优先级的顺序。
26.如权利要求22所述的虚拟机监控器,其中,控制器还被配置为:
将接收的任务***到运行队列;以及
产生时间表。
27.如权利要求22所述的虚拟机监控器,其中:
控制器还被配置为调用选择的调度器;
根据调用的调度器的特性调度***到运行队列的任务。
28.如权利要求22所述的虚拟机监控器,其中:
以具有行和列的矩阵的形式提供运行队列;
控制器还被配置为根据接收的任务的属性确定将***该任务的行和列。
29.如权利要求22所述的虚拟机监控器,其中,
调度器包括期限调度器;以及
控制器还被配置为响应于时间中断作为事件类型发生,调用期限调度器。
30.如权利要求22所述的虚拟机监控器,还包括:多个运行队列,每个运行队列包括至少一个任务,每个运行队列分别与所述多个调度器中的一个调度器相关联。
31.如权利要求30所述的虚拟机监控器,其中,选择的调度器被配置为:当接收事件时该选择的调度器被所述多个调度器中的中断调度器中断。
32.如权利要求31所述的虚拟机监控器,其中,当完成在与中断调度器相关联的运行队列中的任务时,所述虚拟机监控器被配置为处理与中断的调度器相关联的运行队列。
33.如权利要求31所述的虚拟机监控器,其中,当完成在与中断调度器相关联的运行队列中的任务时,所述虚拟机监控器被配置为处理与除选择的调度器和中断调度器之外的调度器相关联的运行队列。
34.如权利要求22所述的虚拟机监控器,其中:
运行队列与选择的调度器相关联;
选择的调度器被配置为响应于没有事件触发调度器的改变,处理与所述多个调度器中的另一调度器对应的另一运行队列。
35.如权利要求33所述的虚拟机监控器,其中,选择的调度器还被配置为:
处理与选择的调度器相关联的运行队列的一部分;以及
然后处理与另一调度器对应的另一运行队列。
36.如权利要求22所述的虚拟机监控器,其中,紧急的任务或事件改变在运行队列中的多个任务的优先级顺序。
CN201110058516.8A 2010-03-12 2011-03-11 虚拟机监控器及其调度方法 Active CN102193853B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2010-0022495 2010-03-12
KR1020100022495A KR101658035B1 (ko) 2010-03-12 2010-03-12 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법

Publications (2)

Publication Number Publication Date
CN102193853A CN102193853A (zh) 2011-09-21
CN102193853B true CN102193853B (zh) 2017-04-05

Family

ID=44343244

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110058516.8A Active CN102193853B (zh) 2010-03-12 2011-03-11 虚拟机监控器及其调度方法

Country Status (5)

Country Link
US (1) US9417912B2 (zh)
EP (1) EP2372548B1 (zh)
JP (1) JP6383518B2 (zh)
KR (1) KR101658035B1 (zh)
CN (1) CN102193853B (zh)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8826271B2 (en) 2010-04-28 2014-09-02 Cavium, Inc. Method and apparatus for a virtual system on chip
JP5987315B2 (ja) * 2011-03-18 2016-09-07 株式会社リコー 表示制御装置およびプログラム
TWM432075U (en) * 2011-10-25 2012-06-21 Chunghwa Telecom Co Ltd Monitoring device and monitoring system applicable to cloud algorithm
CN103136045A (zh) * 2011-11-24 2013-06-05 中兴通讯股份有限公司 虚拟化操作***中的调度方法和装置
CN102541651B (zh) * 2011-12-12 2013-07-31 华中科技大学 一种嵌入式虚拟机的实时调度***
CN103186450A (zh) * 2011-12-28 2013-07-03 英业达集团(天津)电子技术有限公司 虚拟资源的使用消耗的监测方法及***
US9298504B1 (en) * 2012-06-11 2016-03-29 Amazon Technologies, Inc. Systems, devices, and techniques for preempting and reassigning tasks within a multiprocessor system
CN103577265A (zh) * 2012-07-25 2014-02-12 田文洪 一种云计算数据中心离线节能调度的方法与装置
US9110695B1 (en) * 2012-12-28 2015-08-18 Emc Corporation Request queues for interactive clients in a shared file system of a parallel computing system
CN104035818A (zh) * 2013-03-04 2014-09-10 腾讯科技(深圳)有限公司 多任务调度的方法及装置
KR102052964B1 (ko) * 2013-03-12 2019-12-06 삼성전자 주식회사 컴퓨팅 스케줄링 방법 및 시스템
US9268495B2 (en) * 2013-03-15 2016-02-23 Apple Inc. Managing I/O priorities
CN103677990B (zh) * 2013-12-13 2018-01-16 清华大学 虚拟机实时任务的调度方法、装置和虚拟机
CN104010028B (zh) * 2014-05-04 2017-11-07 华南理工大学 一种云平台下性能加权的虚拟资源动态管理策略方法
US9563366B2 (en) 2014-05-13 2017-02-07 International Business Machines Corporation Using queues corresponding to attribute values associated with units of work and sub-units of the unit of work to select the units of work and their sub-units to process
US9575800B2 (en) * 2014-05-13 2017-02-21 International Business Machines Corporation Using queues corresponding to attribute values and priorities associated with units of work and sub-units of the unit of work to select the units of work and their sub-units to process
US9921879B2 (en) * 2014-05-13 2018-03-20 International Business Machines Corporation Using queues corresponding to attribute values associated with units of work to select the units of work to process
US9772959B2 (en) 2014-05-30 2017-09-26 Apple Inc. I/O scheduling
CN104252401B (zh) * 2014-08-29 2017-02-15 北京阅联信息技术有限公司 一种基于权重的设备状态判断方法及其***
US9092376B1 (en) 2014-08-29 2015-07-28 Nimble Storage, Inc. Methods and systems for ordering virtual machine snapshots
US10268958B1 (en) * 2014-09-10 2019-04-23 Amazon Technologies, Inc. Recommended launch configuration
US9778990B2 (en) * 2014-10-08 2017-10-03 Hewlett Packard Enterprise Development Lp Methods and systems for concurrently taking snapshots of a plurality of virtual machines
US9727252B2 (en) 2014-11-13 2017-08-08 Hewlett Packard Enterprise Development Lp Methods and systems for optimal snapshot distribution within a protection schedule
US9552229B2 (en) * 2015-05-14 2017-01-24 Atlassian Pty Ltd Systems and methods for task scheduling
JP6501632B2 (ja) * 2015-06-05 2019-04-17 キヤノン株式会社 情報処理システム、およびその制御方法
CN104915256B (zh) * 2015-06-05 2019-03-26 惠州Tcl移动通信有限公司 一种任务的实时调度实现方法及其***
KR102371916B1 (ko) 2015-07-22 2022-03-07 삼성전자주식회사 가상 머신을 지원하는 스토리지 장치, 그것을 포함하는 스토리지 시스템 및 그것의 동작 방법
US9870266B2 (en) * 2015-07-30 2018-01-16 Nasdaq, Inc. Background job processing framework
CN105467873B (zh) * 2015-11-27 2018-04-17 北京友信宏科电子科技有限公司 一种车辆交流电机控制器的任务调度方法及装置
US20170177395A1 (en) * 2015-12-21 2017-06-22 Mingqiu Sun Embedded architecture based on process virtual machine
KR101707601B1 (ko) 2015-12-31 2017-02-16 숭실대학교산학협력단 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법
CN107085375B (zh) * 2016-02-16 2024-03-08 周锡卫 一种基于智能控制器的分布式智能家居***
US10235211B2 (en) * 2016-04-22 2019-03-19 Cavium, Llc Method and apparatus for dynamic virtual system on chip
US10353590B2 (en) 2016-05-19 2019-07-16 Hewlett Packard Enterprise Development Lp Methods and systems for pre-processing sensor measurements
CN106095545B (zh) * 2016-06-01 2019-06-25 东软集团股份有限公司 任务调度方法及装置
CN111831234B (zh) 2016-06-21 2024-04-23 伊姆西Ip控股有限责任公司 用于虚拟机的方法和装置
KR101872621B1 (ko) * 2016-12-16 2018-06-28 주식회사 한화 다기능 레이더를 탑재한 비행체의 가용 자원 관리 장치 및 그 방법
EP3343366B1 (en) * 2016-12-27 2020-12-30 OpenSynergy GmbH System and method for scheduling a plurality of guest systems and/or threads
KR101852608B1 (ko) 2017-02-10 2018-06-07 숭실대학교산학협력단 가상 머신 모니터, 가상 머신 모니터의 스케줄링 방법 및 이를 제공하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체
US20180232707A1 (en) * 2017-02-10 2018-08-16 Aerostrat Corporation Vehicle maintenance scheduling systems and methods
EP3399412A1 (en) * 2017-05-04 2018-11-07 Robert Bosch GmbH Method and apparatus for scheduling tasks to a cyclic schedule
CN109426562B (zh) * 2017-08-30 2023-10-13 北京忆恒创源科技股份有限公司 优先级加权轮转调度器
US10318301B2 (en) 2017-08-31 2019-06-11 Micron Technology, Inc. Managed multiple die memory QoS
CN107977268B (zh) * 2017-10-13 2021-07-20 北京百度网讯科技有限公司 人工智能的异构硬件的任务调度方法、装置及可读介质
WO2019202365A1 (en) * 2018-04-18 2019-10-24 Pratik Sharma Event based task scheduler for cloud
CN108595249A (zh) * 2018-05-02 2018-09-28 联想(北京)有限公司 一种虚拟机任务调度方法及电子设备
US10666575B2 (en) 2018-06-15 2020-05-26 Microsoft Technology Licensing, Llc Asymmetric co-operative queue management for messages
CN108984267B (zh) * 2018-07-09 2020-11-13 北京东土科技股份有限公司 工业服务器的微内核架构控制***及工业服务器
CN109445847B (zh) * 2018-07-09 2021-09-17 北京东土科技股份有限公司 工业服务器微内核架构实现方法
KR102641520B1 (ko) 2018-11-09 2024-02-28 삼성전자주식회사 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 태스크 스케줄링 방법
CN111338882A (zh) * 2018-12-18 2020-06-26 北京京东尚科信息技术有限公司 数据监控方法、装置、介质及电子设备
KR20200101682A (ko) * 2019-02-20 2020-08-28 삼성전자주식회사 전자 장치 및 그 제어 방법
CN110096353B (zh) * 2019-05-14 2021-11-30 厦门美图之家科技有限公司 任务调度方法及装置
CN110209488B (zh) * 2019-06-10 2021-12-07 北京达佳互联信息技术有限公司 任务执行方法、装置、设备、***及存储介质
US11294715B2 (en) 2019-08-28 2022-04-05 Marvell Asia Pte, Ltd. System and method for queuing work within a virtualized scheduler based on in-unit accounting of in-unit entries
US11409553B1 (en) 2019-09-26 2022-08-09 Marvell Asia Pte, Ltd. System and method for isolating work within a virtualized scheduler using tag-spaces
CN110737521B (zh) * 2019-10-14 2021-03-05 中国人民解放军32039部队 基于任务调度中心的容灾方法和装置
US11620053B2 (en) * 2019-10-24 2023-04-04 Micron Technology, Inc. Quality of service for the multiple functions in memory devices
US11687244B2 (en) 2019-10-24 2023-06-27 Micron Technology, Inc. Quality of service for memory devices using weighted memory access operation types
US11487874B1 (en) * 2019-12-05 2022-11-01 Marvell Asia Pte, Ltd. Prime and probe attack mitigation
KR20210082705A (ko) 2019-12-26 2021-07-06 삼성전자주식회사 미리 정의된 시간을 사용한 스토리지 장치의 작업 스케쥴링 방법 및 이를 이용한 스토리지 시스템의 구동 방법
US11570176B2 (en) 2021-01-28 2023-01-31 Bank Of America Corporation System and method for prioritization of text requests in a queue based on contextual and temporal vector analysis
CN113254164B (zh) * 2021-07-07 2021-10-08 北京航天驭星科技有限公司 卫星测控过程执行任务状态的监控方法及***、测控***
CN116501447B (zh) * 2023-06-20 2023-09-26 麒麟软件有限公司 基于Xen的硬实时实现***
CN116893893B (zh) * 2023-09-08 2024-03-22 北京翼辉信息技术有限公司 一种虚拟机调度方法、装置、电子设备及存储介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2636722B2 (ja) 1993-12-25 1997-07-30 日本電気株式会社 マルチタスク実行管理方式
US5826081A (en) * 1996-05-06 1998-10-20 Sun Microsystems, Inc. Real time thread dispatcher for multiprocessor applications
EP0838757B1 (en) 1996-10-25 2003-09-10 Fujitsu Services Limited Process scheduler
JP2000137621A (ja) 1998-10-30 2000-05-16 Toshiba Corp イベント管理装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2000347883A (ja) 1999-06-03 2000-12-15 Matsushita Electric Ind Co Ltd 仮想計算機装置
JP2001117786A (ja) 1999-10-19 2001-04-27 Nec Corp プロセススケジューリング装置およびプロセススケジューリング方法
US7356817B1 (en) 2000-03-31 2008-04-08 Intel Corporation Real-time scheduling of virtual machines
US7296271B1 (en) 2000-06-28 2007-11-13 Emc Corporation Replaceable scheduling algorithm in multitasking kernel
KR100349658B1 (ko) 2000-12-04 2002-08-24 한국전자통신연구원 분산 가상환경을 위한 실시간 상태관리 서버와 그의공유공간 상태정보 관리방법
US7191440B2 (en) 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7093250B1 (en) * 2001-10-11 2006-08-15 Ncr Corporation Priority scheduler for database access
JP4028444B2 (ja) 2003-06-27 2007-12-26 株式会社東芝 スケジューリング方法およびリアルタイム処理システム
US7424709B2 (en) 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
US7831973B2 (en) * 2003-12-26 2010-11-09 Panasonic Corporation Task scheduling apparatus, task scheduling method, task scheduling program, storage medium and transmission medium
CA2559603A1 (en) * 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
GB0519981D0 (en) * 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
KR100809294B1 (ko) 2006-03-10 2008-03-07 삼성전자주식회사 가상 머신에서 스레드 스케줄링을 수행하는 장치 및 그방법
EP1845444B1 (en) 2006-04-13 2010-05-19 Microsoft Corporation Virtual execution system for ressource-constrained devices
EP2109819B1 (en) * 2007-02-06 2017-08-02 MBA Sciences, Inc. A resource tracking method and apparatus
US8893130B2 (en) * 2007-03-26 2014-11-18 Raytheon Company Task scheduling method and system
US20080320274A1 (en) * 2007-06-19 2008-12-25 Raza Microelectronics, Inc. Age matrix for queue dispatch order
US20090037926A1 (en) * 2007-08-01 2009-02-05 Peter Dinda Methods and systems for time-sharing parallel applications with performance isolation and control through performance-targeted feedback-controlled real-time scheduling
JP2009223842A (ja) * 2008-03-19 2009-10-01 Fujitsu Ltd 仮想計算機制御プログラム及び仮想計算機システム
US8650570B2 (en) 2008-06-02 2014-02-11 Microsoft Corporation Method of assigning instructions in a process to a plurality of scheduler instances based on the instruction, in which each scheduler instance is allocated a set of negoitaited processor resources
US9367350B2 (en) * 2008-10-03 2016-06-14 Microsoft Technology Licensing, Llc Meta-scheduler with meta-contexts

Also Published As

Publication number Publication date
KR20110103257A (ko) 2011-09-20
JP2011192281A (ja) 2011-09-29
JP6383518B2 (ja) 2018-08-29
EP2372548A1 (en) 2011-10-05
US9417912B2 (en) 2016-08-16
CN102193853A (zh) 2011-09-21
US20110225583A1 (en) 2011-09-15
EP2372548B1 (en) 2020-05-06
KR101658035B1 (ko) 2016-10-04

Similar Documents

Publication Publication Date Title
CN102193853B (zh) 虚拟机监控器及其调度方法
CN106980492B (zh) 用于计算的装置、***、方法、机器可读存储介质和设备
Polo et al. Performance-driven task co-scheduling for mapreduce environments
US9277003B2 (en) Automated cloud workload management in a map-reduce environment
Tsai et al. A hyper-heuristic scheduling algorithm for cloud
CN103069390B (zh) 在混合计算环境中重新调度工作量的方法和***
US8473964B2 (en) Transparent user mode scheduling on traditional threading systems
US20200218579A1 (en) Selecting a cloud service provider
Amalarethinam et al. An Overview of the scheduling policies and algorithms in Grid Computing
US11734062B2 (en) Evolutionary modelling based non-disruptive scheduling and management of computation jobs
JP2011521354A (ja) スケジューラにおけるタスクの局所的集合
CN115543577B (zh) 基于协变量的Kubernetes资源调度优化方法、存储介质及设备
JP2014191594A (ja) 分散処理システム
US9367350B2 (en) Meta-scheduler with meta-contexts
JP2021520578A (ja) タスクスケジューリング
CN107515781A (zh) 一种多处理器***确定性调度和负载均衡方法
US8370842B2 (en) Portioning and routing of work in a multiple processor system
CN101971141A (zh) 用于管理混合计算环境的***和方法
AU2009255464A1 (en) Regaining control of a processing resource that executes an external execution context
Patil et al. Survey on task assignment techniques in Hadoop
US9378062B2 (en) Interface between a resource manager and a scheduler in a process
Panda Effcient scheduling heuristics for independent tasks in computational grids
Qiao et al. An online workflow scheduling algorithm considering license limitation in heterogeneous environment
CN111831411B (zh) 任务处理方法、装置、存储介质及电子设备
KR101395031B1 (ko) 가상화 교육환경 제공 시스템 및 가상화 교육환경 제공 서버

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant