CN105051690B - 使用具有客操作系统及虚拟处理器的超管理器的系统及方法 - Google Patents
使用具有客操作系统及虚拟处理器的超管理器的系统及方法 Download PDFInfo
- Publication number
- CN105051690B CN105051690B CN201480013671.XA CN201480013671A CN105051690B CN 105051690 B CN105051690 B CN 105051690B CN 201480013671 A CN201480013671 A CN 201480013671A CN 105051690 B CN105051690 B CN 105051690B
- Authority
- CN
- China
- Prior art keywords
- operating system
- task
- objective operating
- priority
- virtual processor
- 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
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/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
-
- 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/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- 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/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
Abstract
本发明提供一种设备,其包含处理器及客操作系统。响应于接收创建任务的请求,所述客操作系统请求超管理器创建虚拟处理器以执行所述所请求的任务。所述虚拟处理器可于所述处理器上调度。
Description
相关申请案的交叉参考
本申请案主张2013年3月14日申请的共同拥有的第13/828,183号美国非临时专利申请案的优先权,所述申请案的内容全文以引用的方式明确地并入本文中。
技术领域
本发明大体上涉及使用超管理器虚拟化操作系统。
背景技术
技术的进步已产生较小且较强大的计算装置。举例来说,当前存在多种便携式个人计算装置,包含无线计算装置,例如,便携式无线电话、个人数字助理(PDA)、平板计算机及传呼装置,其体积小、重量轻且易于由用户携带。许多此些计算装置包含并入其中的其它装置。举例来说,无线电话还可包含数字静态相机、数字视频相机、数字记录器及音频文件播放器。而且,此些计算装置可处理可执行指令,包含软件应用程序,例如可用于存取因特网的网页浏览器应用程序,及利用静态或视频相机并提供多媒体播放功能性的多媒体应用程序。
为支持此高级功能性,计算装置可包含操作系统。操作系统可提供可用硬件资源的抽象化。举例来说,操作系统可多路复用各种软件任务中的系统资源(例如,处理器、存储器等)。操作系统还可调度用于执行的任务,且执行存储器管理。另外,操作系统可处置事件的封锁及解除封锁。
在某些情况下,在单一计算装置处执行多个操作系统,或同一操作系统的多个实例可为有利的。超管理器(还称为虚拟机监视器)可将可用硬件资源的抽象化提供到操作系统。因此,超管理器可充当用于多个操作系统(或同一操作系统的多个实例)的操作系统。当使用超管理器时,超管理器可包含用以确定授予哪个操作系统及其任务在特定时间处存取特定硬件资源的调度程序。因此,可在系统内执行调度的多个层级:第一层级可包含每一个别操作系统的调度程序,且第二层级可包含超管理器的调度程序。
执行调度的多个层级将额外开销引入系统中(例如,归因于由超管理器所执行的上下文切换)。当操作系统中的一或多者为需要能够保证某些时延的实时操作系统时,此额外开销可为不可接受的。为将实时操作系统包含于多个操作系统环境中,实时操作系统通常给定有“特殊”优先级。举例来说,实时操作系统可具有最高可用优先级。然而,此情况可为低效的,这是因为每一操作系统内的任务优先级信息可能不可由超管理器存取。举例来说,如果实时操作系统正执行不重要的任务但另一操作系统正执行重要任务,那么超管理器可仍首先调度相对不重要的实时操作系统任务。
发明内容
揭示使得操作系统(例如,实时操作系统)能够在时延减少的情况下,在超管理器控制的计算环境中执行的系统及方法。代替(或除)具有内建式调度程序的常规客操作系统以外,所述所描述的技术利用包含受限的调度功能或并无调度功能,且代替地依赖于超管理器以用于调度的“精简型”客操作系统。还可由所述超管理器而非由个别操作系统处置封锁及解除封锁。另外,所述超管理器可以存取关于所述个别操作系统中的每一者的任务的优先级的信息。
每次在“精简型”操作系统处创建新任务,所述“精简型”操作系统可请求所述超管理器创建用于所述任务的“虚拟处理器”。所述超管理器可调度所述虚拟处理器以在底层物理硬件(例如,硬件处理器)上执行,且只要对应任务存在,那么可维持虚拟处理器。举例来说,每一任务可与虚拟处理器相关联,且可由所述超管理器的调度程序处置所有调度。此外,所述超管理器的所述调度程序可以存取个别任务/虚拟处理器的所述优先级,所述优先级可用于横跨所有客操作系统执行较有效的虚拟处理器调度。因此,所述所描述的系统及方法可简化个别操作系统,并减少所述超管理器控制的计算环境中的总时延,借此使得能够在所述超管理器控制的计算环境中使用一或多个实时操作系统及其它操作系统。
在特定实施例中,一种设备包含处理器及超管理器。所述超管理器经配置以调度虚拟处理器以由所述处理器执行。所述虚拟处理器中的每一者具有可由所述超管理器存取且对应于对应任务的任务优先级的优先级。所述任务优先级是由客操作系统指派。
在另一特定实施例中,一种方法包含在计算装置的超管理器处,接收来自客操作系统的创建虚拟处理器以执行任务的请求。所述方法还包含创建所述虚拟处理器,及调度所述虚拟处理器以在所述计算装置的硬件处理器上执行。所述虚拟处理器具有由所述客操作系统所指派的优先级,其中所述优先级对应于所述任务的任务优先级。
在另一特定实施例中,一种设备包含用于处理的装置,及可由用于处理的所述装置执行的用于调度的装置。用于调度的所述装置经配置以调度虚拟处理器以由用于处理的所述装置执行。所述虚拟处理器中的每一者具有可由用于调度的所述装置存取且对应于对应任务的任务优先级的优先级。所述任务优先级是由第一客操作系统指派。
在另一特定实施例中,一种非暂时性计算机可读媒体包含在由计算机执行时导致所述计算机进行以下操作的指令:在超管理器处,接收来自客操作系统的创建虚拟处理器以执行任务的请求。所述指令在由所述计算机执行时还导致所述计算机创建所述虚拟处理器且调度所述虚拟处理器以用于执行。所述虚拟处理器具有对应于所述任务的任务优先级的优先级。所述任务优先级是由所述客操作系统指派。
在另一特定实施例中,一种设备包含处理器及客操作系统。响应于接收创建任务的请求,所述客操作系统请求超管理器创建虚拟处理器以执行所述任务。所述虚拟处理器可于所述处理器上调度。
在另一特定实施例中,一种方法包含在执行于包括超管理器及至少一处理器的计算装置处的客操作系统处,接收创建任务的请求。所述方法还包含响应于创建所述任务的所述请求,请求所述超管理器创建虚拟处理器以执行所述所请求的任务。所述虚拟处理器可于所述至少一处理器上调度。
在另一特定实施例中,一种设备包含处理器及客操作系统。所述客操作系统包含用于响应于接收创建任务的请求而请求超管理器创建虚拟处理器以执行所述任务的装置。所述虚拟处理器可于所述处理器上调度。
在另一特定实施例中,一种非暂时性计算机可读媒体包含在由计算机执行时导致所述计算机进行以下操作的指令:在客操作系统处,接收创建任务的请求。所述指令在由所述计算机执行时还导致所述计算机响应于创建所述任务的所述请求,请求超管理器创建虚拟处理器以执行所述所请求的任务。所述虚拟处理器可于硬件处理器上调度。
在另一特定实施例中,一种电子装置包含处理器、超管理器、第一客操作系统及第二客操作系统。所述第一客操作系统的至少一任务是通过由所述第一客操作系统向所述超管理器请求的第一虚拟处理器来执行。所述第二客操作系统的至少一任务是通过由所述第二客操作系统向所述超管理器请求的第二虚拟处理器来执行。所述第一虚拟处理器及所述第二虚拟处理器是通过所述处理器执行。
由所揭示的实施例中的至少一者所提供的一特定优势为对来自具有减少的时延的多个客操作系统的任务,执行经优先排序的调度的能力。由所揭示的实施例中的至少一者所提供的另一特定优势为在超管理器控制的计算环境内使用实时操作系统的能力。本发明的其它方面、优势及特征将在审阅包含以下部分的完整申请案之后变得显而易见:图式简单说明、实施方式及权利要求书。
附图说明
图1为可操作以使用具有客操作系统及虚拟处理器的超管理器的系统的说明性实施例的框图;
图2为可操作以使用具有客操作系统及虚拟处理器的超管理器的系统的另一说明性实施例的框图;
图3为在图1的超管理器处操作的方法的说明性实施例的流程图;
图4为在图1的客操作系统中的一者处操作的方法的说明性实施例的流程图;
图5为包含可操作以支持使用具有客操作系统及虚拟处理器的超管理器的组件的无线装置的框图;及
图6为可操作以执行优先级继承的系统的说明性实施例的框图。
具体实施方式
图1为可操作以使用具有客操作系统及虚拟处理器的超管理器的系统100的说明性实施例的框图。系统100包含一或多个硬件资源,例如一或多个处理器110。系统还包含可由处理器110执行的超管理器120。超管理器120可仲裁由一或多个客操作系统(例如,说明性第一客操作系统130及说明性第二客操作系统140)对一或多个处理器110的存取。如本文中进一步所描述,客操作系统130、140中的一或多者可为实时操作系统(RTOS)。
超管理器120可包含各种逻辑及/或功能模块。在特定实施例中,使用可由处理器110执行的软件指令实施每一此模块。替代性地,可使用硬件装置实施超管理器120的所选定功能性,例如控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)装置或一些其它装置。在图1的实施例中,超管理器120包含优先级感知调度程序121、虚拟处理器创建/删除模块122及虚拟处理器封锁/解除封锁模块123。然而,应注意,模块121到123仅是出于说明目的。在替代性实施例中,可使用较多或较少模块进行参考超管理器120所描述的功能。
虚拟处理器创建/删除模块122可经配置以接收来自客操作系统130、140中的任一者的请求。举例来说,可经由操作系统超管理器通信机制(例如,应用编程接口(API)或共享存储器区)接收请求。响应于所述请求,虚拟处理器创建/删除模块122可创建虚拟处理器。举例来说,第一客操作系统130与四个任务151、152、153及154相关联。任务151、152、153及154中的每一者分别与对应虚拟处理器131、132、133及134相关联。类似地,第二客操作系统140与四个任务161、162、163及164相关联。任务161、162、163及164中的每一者分别与对应虚拟处理器141、142、143及144相关联。任务151到154及161到164可与用户模式(例如,应用程序层级)或客模式(例如,客操作系统层级)例程或子例程相关联。任务151到154及161到164可对应于存储于存储器中且可由处理器110执行的指令集(例如,程序代码)。举例来说,特定应用程序可与“主要”任务及由“主要任务”(例如,一或多个图形用户接口(GUI)任务、一或多个数据处理任务等)所产生的一或多个额外任务相关联。
在图1的系统100中,只要对应客操作系统维持对应任务,那么可维持虚拟处理器。当任务结束时,虚拟处理器创建/删除模块122可删除及/或解除布置用于所述任务的虚拟处理器。虚拟处理器创建/删除模块122可基于处理器110处的离开或返回命令,或响应于来自客操作系统的通知,检测到任务已结束。在特定实施例中,创建虚拟处理器可包含将硬件及/或软件资源布置于虚拟处理器,且删除虚拟处理器可包含解除布置虚拟处理器的硬件及/或软件资源。
应注意,从超管理器120的透视图,虚拟处理器131到134及141到144中的每一者为可调度实体。相反地,从客操作系统130及140的透视图,虚拟处理器131到134及141到144中的每一者可为硬件资源抽象化。任务151到154及161到164中的每一者可对应于由客操作系统130及140,或客操作系统130及140处所执行的应用程序所起始的一或多个线程或软件例程/子例程。
优先级感知调度程序121可经配置以调度虚拟处理器131到134及141到144以用于执行。可认为调度程序121为“优先级感知”的,这是因为调度程序121可以存取个别虚拟处理器的优先级信息。举例来说,在图1的实施例中,每一虚拟处理器具有从1到3的虚拟处理器优先级。优先级1可为最高的优先级,且优先级3可为最低的优先级。在替代性实施例中,可使用较多或较少的优先级指定。虚拟处理器的优先级可等于、反映或可以其它方式基于对应于虚拟处理器的任务的任务优先级。举例来说,虚拟处理器134具有任务优先级2,其等于对应任务154的任务优先级。可由客操作系统130在任务创建期间指派任务154的任务优先级,如本文中进一步所描述。因此,凭借可以存取虚拟处理器优先级信息,优先级感知调度程序121可以存取任务优先级信息。优先级信息可直接地(例如,通过读取操作系统存储器、共享存储器或寄存器中的某些数据结构)或间接地(例如,经由API)由优先级感知调度程序121存取。
在特定实施例中,优先级感知调度程序121可基于对应于第一任务的第一虚拟处理器的第一优先级,与对应于第二任务的第二虚拟处理器的第二优先级的比较,确定是否调度第一任务或第二任务。另外,优先级感知调度程序121可在对应于不同操作系统的任务的虚拟处理器的优先级之间作出此些比较。因此,优先级感知调度程序121可执行特定任务优先排序,而非优于另一客操作系统的所有任务,自动优先排序特定客操作系统(例如,实时操作系统(RTOS))的所有任务,此情况可降低系统100的总时延(例如,测量为任务创建与执行之间的平均时间、开始与完成任务执行之间的平均时间等)。RTOS可将最高可用优先级指派到低时延(例如,使命临界)任务,使得由优先级感知调度程序121优先排序此些任务,但可将较低优先级指派到较不重要RTOS任务,使得其它客操作系统的重要任务并非必须等待调度较不重要RTOS任务。
在图1的实施例中,客操作系统两者皆支持从“1”到“3”的任务优先级。然而,此些优先级仅出于说明目的。在替代性实施例中,客操作系统可支持优先级的非重叠或部分重叠集合。举例来说,第一客操作系统130可为支持“1”到“3”的任务优先级的实时操作系统,且第二客操作系统140可为支持“2”到“4”的任务优先级的非实时操作系统。因此,实时操作系统(及其任务)可存取非实时操作系统(及其任务)不可用的至少一提高的任务优先级层级(例如,任务优先级“1”)。
超管理器120还可包含虚拟处理器封锁/解除封锁模块123。虚拟处理器封锁/解除封锁模块123可经配置以封锁及解除封锁虚拟处理器131到134及141到144。将了解,因为系统100中的任务与虚拟处理器之间存在一对一映射,所以“精简型”客操作系统130及140可依赖于超管理器120以用于封锁及解除封锁虚拟处理器,而非在客操作系统130及140内实施任务封锁及解除封锁逻辑。此方法简化客操作系统130及140的设计及实施。封锁/解除封锁情况的实例可包含(但不限于)当任务睡眠直到同步对象(例如,互斥或旗语)变得可用、直到数据可用或某些处理操作完成(例如,由另一任务),或直到满足一些其它解除封锁条件时。
客操作系统130及140可各自为包含极少或并无调度逻辑的“精简型”操作系统。实情为,客操作系统130及140依赖于超管理器120,以用于调度功能。客操作系统130及140还可依赖于超管理器120,以用于任务的封锁及解除封锁。应注意,尽管图1中展示两个客操作系统,但此情况仅为实例。在替代性实施例中,可由超管理器120支持较多或较少的客操作系统。此外,超管理器120可同时支持一或多个“精简型”操作系统,及包含调度及封锁/解除封锁逻辑的一或多个常规操作系统。举例来说,超管理器120可为“精简型”操作系统,但并非全部操作系统(例如,包含其自身的调度程序的操作系统)执行优先级感知调度及封锁/解除封锁。举例来说,图2说明超管理器控制的计算环境200,其中“精简型”操作系统130与包含单一虚拟处理器241及“原生”操作系统调度程序242的常规操作系统240共存。图2的其它组件可如参考图1的对应组件所描述地起作用。
操作期间,客操作系统130及140及/或客操作系统130及140处执行的应用程序可创建任务(例如,响应于由应用程序所发出的任务创建请求)。响应于任务创建请求,客操作系统130及140可请求超管理器120创建虚拟处理器,以执行所请求任务。举例来说,响应于来自第一客操作系统130的与任务154相关联的请求,虚拟处理器创建/删除模块122可创建虚拟处理器134。虚拟处理器创建/删除模块122可为所创建虚拟处理器134指派优先级“2”,从而反映任务154的任务优先级。优先级感知调度程序121可调度虚拟处理器134。举例来说,调度虚拟处理器以用于执行可包含将虚拟处理器置放于硬件处理器110的执行队列中、布置处理器110对虚拟处理器的执行周期或时间片等。响应于来自第一客操作系统130的封锁及解除封锁任务154的请求,虚拟处理器封锁/解除封锁模块123可封锁及解除封锁虚拟处理器134。在完成任务154之后,虚拟处理器创建/删除模块122可随即删除虚拟处理器134。
在特定实施例中,客操作系统130及140中的一或多者可为RTOS。举例来说,系统100可集成到无线电话中,且客操作系统130或140中的一者可为提供某些时延保证的无线电话中的调制解调器的操作系统。举例来说,调制解调器操作系统可保证调度时延低于20微秒(μs),以满足实时期限。如果操作系统中的一者为实时操作系统,那么可具有数量级为毫秒的时延的常规超管理器可并不提供充分的响应性。然而,本文中所描述的技术可使得图1的超管理器120能够支持调制解调器操作系统或其它RTOS可接受的减少的时延。因此,图1的系统100可用于无线电话及其它无线通信装置(例如,膝上型计算机或平板计算装置)中。
在特定实施例中,系统100可并入包含一或多个多线程及/或多核心处理器的电子装置中。举例来说,系统100可用于实施实时多线程计算。多线程处理器可经由具有并行地执行的多个硬件执行上下文(hardware execution context)的处理器来实施,或实施为具有单一硬件执行上下文(例如,对称多处理(SMP)群集)的多个处理器。
所描述的技术可适用于各种电子装置中。举例来说,移动电子装置(例如,无线电话)通常包含调制解调器软件、调制解调器固件及音频处理,所述装置中的每一者可利用不同的操作系统或操作系统图像(例如,归因于不同的时延要求)。图1的系统100可使得调制解调器固件及调制解调器软件能够共享同一DSP(例如,同一操作系统的多个复本可为客操作系统),同时满足时延要求。在特定实施例中,无线电话可包含用于调制解调器操作的客RTOS,及用于应用程序(例如,用以支持将无线电话用于Wi-Fi连接性的膝上型计算机的网页服务器)的另一操作系统,其中操作系统两者皆运行于同一DSP上而非不同处理器上(例如,包含DSP及单独应用处理器的装置)。将了解,使得装置的多个(或所有)操作系统能够运行于同一处理器或处理器的集合上可降低与所述装置相关联的生产/制造成本。
因此,图1的系统100可提供并无过度上下文切换(例如,不同可调度实体之间的切换)的超管理器控制的计算环境,这是因为每任务指派一虚拟处理器。可由超管理器120调度并由处理器110执行的不同虚拟处理器执行操作系统的每一任务。此外,从实施单一调度层降低的额外开销可提供降低的时延,使得能够在系统100中使用多个实时操作系统。图1的系统100可表示操作系统设计中的范例改变。常规地,操作系统经设计以运行于“金属上”(即,鉴于硬件实施细节),且超管理器经设计以支持所述操作系统。相反地,图1的系统100反映操作系统/超管理器“共同设计”范例,其中特定地实施操作系统及超管理器,以依赖于彼此进行某些功能,此情况可减少冗余(例如,一调度程序而非多个调度程序)并降低时延。
图3为说明超管理器处的操作的特定方法300的流程图。在说明性实施例中,可由图1到2的超管理器120执行方法300。
方法300可包含在302处,在超管理器处,接收来自客操作系统的创建虚拟处理器以执行任务的请求,其中所述任务具有由所述客操作系统指派的任务优先级。举例来说,在图1中,超管理器120可从第二客操作系统140接收创建虚拟处理器的请求,以执行任务163,其中任务163具有由第二客操作系统140所指派的任务优先级“1”。
方法300还可包含在304处,创建所述虚拟处理器,其中所述虚拟处理器具有对应于所述任务优先级的优先级。举例来说,在图1中,超管理器120可创建虚拟处理器143以执行任务,其中虚拟处理器143具有对应于任务163的任务优先级的优先级“1”。
方法300可进一步包含在306处,调度所述虚拟处理器以用于执行,及在308处,基于来自所述客操作系统的请求而封锁或解除封锁所述虚拟处理器。举例来说,在图1中,超管理器120可调度虚拟处理器143以用于执行,并基于来自第二客操作系统140的请求,封锁/解除封锁虚拟处理器143。在任务163完成之后,超管理器还可随即删除或解除布置虚拟处理器143。
因此,图3的方法300可使得超管理器能够创建并执行对应于操作系统任务的虚拟处理器的调度(例如,优先级感知调度)。举例来说,通过执行优先级感知调度,超管理器可使得实时操作系统能够满足时延要求,而并不使实时操作系统支配硬件资源并负面地影响非实时操作系统的性能。图3的方法300还可使得超管理器能够执行封锁及解除封锁。并不包含调度及封锁/解除封锁逻辑的“精简型”操作系统可依赖于超管理器,以用于调度及封锁/解除封锁功能性,此情况可减少计算系统中的冗余及时延。
可由数字信号处理器(DSP)、处理单元(例如,中央处理单元(CPU))、控制器、现场可编程门阵列(FPGA)装置、专用集成电路(ASIC)、另一硬件装置、固件装置,或其任何组合来实施图3的方法300。作为实例,可由执行指令的处理器(如关于图5所描述)执行图3的方法300。
图4为说明操作系统(例如,超管理器控制的计算环境中的客操作系统)处的操作的特定方法400的流程图。在说明性实施例中,可由图1到2的第一客操作系统130,或图1的第二客操作系统140执行方法400。
方法400可包含在402处,在客操作系统处,接收创建任务的请求。在特定实施例中,客操作系统可为实时操作系统。举例来说,在图1中,第一客操作系统130可为从执行于第一客操作系统130上的应用程序,接收创建任务(例如,任务151)的请求的实时操作系统。
方法400还可包含在404处,响应于创建所述任务的所述请求,请求超管理器创建虚拟处理器以执行所述所请求的任务。举例来说,在图1中,第一客操作系统130可请求超管理器120创建虚拟处理器(例如,虚拟处理器131),以执行所请求的任务。
方法400可进一步包含在406处,将任务优先级指派到所述任务,其中所述虚拟处理器的优先级对应于所述任务优先级且可由所述超管理器存取。举例来说,在图1中,第一客操作系统可将任务优先级“1”指派到任务151,且虚拟处理器131可具有对应于任务151的任务优先级的优先级“1”。
因此,图4的方法400可使得操作系统能够使用对应于操作系统任务的虚拟处理器的优先级感知超管理器调度。并不包含调度及封锁/解除封锁逻辑的“精简型”操作系统可依赖于超管理器,以用于调度及封锁/解除封锁功能性,此情况可减少计算系统中的冗余及时延。
可由数字信号处理器(DSP)、处理单元(例如,中央处理单元(CPU))、控制器、现场可编程门阵列(FPGA)装置、专用集成电路(ASIC)、另一硬件装置、固件装置,或其任何组合来实施图4的方法400。作为实例,可由执行指令的处理器(如关于图5所描述)执行图4的方法400。
参看图5,展示电子装置500的框图。电子装置500包含耦合到存储器532的处理器510,例如数字信号处理器(DSP)。在特定实施例中,电子装置500或其组件可包含于机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、通信装置、个人数字助理(PDA)、固定位置数据单元、计算装置或其任何组合中。
图5还展示耦合到处理器510及显示器528的显示器控制器526。译码器/解码器(编解码器)534还可耦合到处理器510。扬声器536及麦克风538可耦合到编解码器534。图5还指示无线控制器540可耦合到处理器510及天线542(例如,经由射频(RF)接口)。
存储器532可为包含可执行指令556的有形非暂时性计算机可读或处理器可读存储媒体。可由处理器执行指令556,例如,用以执行各种功能及方法(包含图3到4的方法300、400)的处理器510。存储器还可存储对应于超管理器570(例如,图1到2的超管理器120)、第一客操作系统572(例如,图1到2的第一客操作系统130)、第二客操作系统574(例如,图1的第二客操作系统140)的指令。还可包含额外的操作系统(例如,图2的第三客操作系统240)。
在特定实施例中,处理器510、显示器控制器526、存储器532、编解码器534及无线控制器540包含于系统级封装或系统单芯片装置522中。在特定实施例中,输入装置530及电力供应器544耦合到系统单芯片装置522。此外,在特定实施例中,如图5中所说明,显示器528、输入装置530、扬声器536、麦克风538、天线542及电力供应器544在系统单芯片装置522外部。然而,显示器528、输入装置530、扬声器536、麦克风538、天线542及电力供应器544中的每一者可耦合到系统单芯片装置522的组件,例如接口或控制器。
所描述的技术使得能够使用多个客操作系统,其包含依赖于超管理器以用于调度及封锁/解除封锁功能性的一或多个“精简型”实时操作系统。在特定实施例中,客操作系统(及其任务)可彼此通信且可共享同步基元。举例来说,一客操作系统可与无线通信装置(例如,蜂窝式电话)的调制解调器相关联,且另一客操作系统可与音频处理(例如,话语编码/解码)相关联。
在客操作系统能够通信的实施例中,可将安全测量安置于适当的位置。安全测量可经设计,使得维持服务质量(QoS)保证(例如,实时操作系统的时延要求)。
通信机制(例如,同步基元)可用于封锁/解除封锁任务/虚拟处理器(例如,由图1的虚拟处理器封锁/解除封锁模块123)。在特定实施例中,存储器中的单一位或多位数据值可用于同步基元。一或多个规则可控管同步基元的使用。举例来说,第一规则可指示如果同步基元未锁定(例如,设定为零),那么可由线程(例如,客操作系统的任务或对应虚拟处理器)锁定同步基元(例如,设定为一)。在由线程(也被称作“保持”同步基元的线程)锁定同步基元之后,可由线程写入由同步基元所保护的数据。第二规则可指示如果锁定同步基元,那么寻求获得同步基元的线程应进行封锁直到未锁定同步基元为止。在替代性实施例中,同步基元可为表示超过两个状态的多位值。举例来说,可由第一值表示未锁定状态、可由第二值表示并无等待线程的锁定状态,且可由第三值表示具有至少一等待线程的锁定。在特定实施例中,同步基元可存储于多个客操作系统之间所共享的存储器的用户模式地址处(例如,同步基元可存储于用户空间中)。
将了解,在具有多个客操作系统的超管理器控制的环境中,一客操作系统中的任务可取决于另一客操作系统中的任务。举例来说,当因为第二客操作系统的第二任务保持同步基元,所以第一客操作系统的第一任务进行封锁时,可不能够进行第一客操作系统的第一任务,直到第二客操作系统的第二任务释放同步基元为止。经封锁第一任务可以只读方式存取同步基元,但第二任务可以读取-写入方式存取同步基元。
在特定实施例中,执行于客操作系统中的任务可用的封锁功能呼叫可包含两个自变量:同步基元的指标及同步基元的预期值。超管理器可检查地址处由指标所指示的同步基元的值是否等于预期值。如果所述值相等,那么封锁为成功的。如果所述值并不相等,那么超管理器在不进行封锁的情况下返回。唤醒功能可包含两个自变量:同步基元的指标,及取决于同步基元的值,可唤醒的线程的最大数目。
在特定实施例中,可针对封锁实施超时。举例来说,如果并未在特定时间量内(例如,响应于超时周期到期)释放同步基元,那么可自动唤醒在同步基元上封锁的任务。
在特定实施例中,优先级的全局集合可用于超管理器控制的计算环境中的操作系统。在一些状况下,实时操作系统可以存取全局集合的优先级中的一或多个较高优先级,非实时操作系统不可以存取所述较高优先级。当来自不同客操作系统的不同任务可具有全局集合的优先级中的不同优先级时,可发生优先级反转。举例来说,当不同优先级的线程竞争同步基元时,可发生优先级反转。优先级反转可导致操作无效率及潜在的死锁。举例来说,(例如,实时操作系统的)较高优先级线程可等待正由(例如,非实时操作系统的)较低优先级线程所使用的同步基元。可由中等优先级线程先占较低优先级线程(且扩展开来,等待的较高优先级线程)。归因于先占,较低优先级线程可不能够完整地执行以释放同步基元,使得较高优先级线程可获得同步基元并继续执行。由于中等优先级线程有效地先占较高优先级线程,因此中等优先级线程及较高优先级线程的优先级可称为经“反转”。
优先级继承为可用于避免优先级反转的技术。在优先级继承中,当较高优先级线程(例如,优先级=1)在较低优先级线程(例如,优先级=3)上封锁时,较低优先级线程“继承”封锁的较高优先级线程的优先级(例如,较低优先级线程继承优先级(=1))。此继承使得中等优先级线程(例如,优先级=2)不会带来优先级反转。在包含多个客操作系统的计算环境中,关于单一客操作系统的任务或关于多个客操作系统的任务,可发生优先级反转。
图6说明可操作以执行优先级反转的系统600的实施例。系统600包含超管理器120,及一或多个多线程处理器660(例如,图1的处理器110)。多线程处理器可经由具有并行地执行的多个硬件执行上下文的处理器来实施,或实施为具有单一硬件执行上下文(例如,对称多处理(SMP)群集)的多个处理器。在特定实施例中,超管理器120可实施优先级反转避免方案。根据所述方案,每一客操作系统具有当客操作系统由超管理器120加载时所创建的最大允许优先级。每一客操作系统可将其自身任务/线程(且扩展开来,虚拟处理器)提高到其最大允许优先级。然而,禁止客操作系统提高其最大允许优先级。实情为,仅较高优先级客操作系统可经由优先级继承系统来提高另一较低优先级客操作系统的较低优先级任务。此情况使得较高优先级任务及客操作系统环境确实能够在使用同步基元时,确定是否应调整任务优先级。
在特定实施例中,超管理器120可实施“缓慢式”优先级继承。超管理器120可维持指示任务/虚拟处理器的优先级(“Prio”)、临时优先级(“Tprio”)及状态(例如,“正在运行”、“封锁”、“就绪”等)的控制块620。当优先级感知调度程序121确定通过第二较低优先级任务封锁执行第一任务时,第二任务可继承等于第一任务的优先级的临时优先级。可无需修改调度数据结构的内容而设定临时优先级。
举例来说,调度数据结构可包含就绪列表630及运行列表640,如所展示。就绪列表630可指示准备好执行(例如,并不封锁于任何同步基元上)的任务(或对应虚拟处理器)。运行列表640可指示经调度以用于执行及/或正执行的任务(或对应虚拟处理器)。在所说明的实施例中,就绪列表630及运行列表640包含用于系统600中可用的四个优先级中的每一者的一“时隙”。然而,此情况仅出于说明目的。在替代性实施例中,就绪列表630及运行列表640可以不同方式组织。
在未发生优先级反转的正常操作期间,“缓慢式”优先级反转可为低成本的,这是因为仅临时优先级(在图6中指定为“Tprio”)是由超管理器120设定,且调度数据并未受影响。然而,如果另一任务先占第二任务,那么可使用临时优先级重新调度第二任务(或对应虚拟处理器)以用于执行。第二任务可以较高的临时优先级执行,使得系统能够朝向执行第一任务前进。
结合所描述的实施例,揭示包含用于处理的装置的设备。举例来说,用于处理的所述装置可包含硬件处理器(例如,图1到2的一或多个处理器110,或图5的处理器510)、用以处理数据的一或多个其它装置或电路,或其任何组合。所述设备还包含可由用于处理的所述装置执行的用于调度的装置。用于调度的所述装置经配置以调度虚拟处理器以由用于处理的所述装置执行,所述虚拟处理器中的每一者具有可由用于调度的所述装置存取且对应于对应任务的任务优先级的优先级,所述任务优先级由第一客操作系统指派。举例来说,用于调度的所述装置可为图1到2的优先级感知调度程序121、图5的超管理器570、用以调度虚拟处理器以用于执行的一或多个其它装置、电路、模块或指令,或其任何组合。
在特定实施例中,设备包含处理器及客操作系统。所述客操作系统包含用于响应于接收创建任务的请求而请求超管理器创建虚拟处理器以执行所述任务的装置。可在处理器上调度虚拟处理器。举例来说,用于请求的所述装置可为图1到2的客操作系统130的组件(例如,操作系统-超管理器通信机制,例如API或共享存储器区)、图1的客操作系统140的组件、用以请求超管理器创建虚拟处理器的一或多个其它装置、电路、模块或指令,或其任何组合。
所属领域的技术人员将进一步了解,结合本文中所揭示的实施例所描述的逻辑块、配置、模块、电路及算法步骤可实施为电子硬件、由处理器执行的计算机软件或两者的组合。上文已大体在功能性方面描述了各种说明性组件、块、配置、模块、电路及步骤。此功能性是实施为硬件还是处理器可执行指令取决于特定应用及强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以变化的方式实施所描述的功能性,但不应将此些实施决策解释为导致脱离本发明的范围。多线程处理器可经由具有并行地执行的多个硬件执行上下文的处理器来实施,或实施为具有单一硬件执行上下文(例如,对称多处理(SMP)群集)的多个处理器。
结合本文中所揭示的实施例而描述的方法或算法的步骤可直接体现于硬件中、由处理器执行的软件模块中,或两者的组合中。软件模块可驻留于随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可装卸式磁盘、光盘只读存储器(CD-ROM),或所属领域中已知的任何其它形式的非暂时性存储媒体中。例示性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息及将信息写入到所述存储媒体。在替代例中,存储媒体可集成到处理器。处理器及存储媒体可驻留于专用集成电路(ASIC)中。ASIC可驻留于计算装置或用户终端机中。在替代例中,处理器及存储媒体可作为离散组件驻留于计算装置或用户终端机中。
提供所揭示的实施例的先前描述以使所属领域的技术人员能够制作或使用所揭示的实施例。对于所属领域的技术人员来说,此些实施例的各种修改将易于显见,且本文中所定义的原理可在不脱离本发明的范围的情况下应用于其它实施例。因此,本发明并非意欲限于本文中所展示的实施例,而应符合可能与如以下权利要求书所定义的原理及新颖特征相一致的最广范围。
Claims (71)
1.一种用于调度任务的设备,其包括:
处理器;及
超管理器,
其中所述超管理器经配置以调度虚拟处理器以由所述处理器执行,所述虚拟处理器中的每一者具有可由所述超管理器存取且对应于对应任务的任务优先级的优先级,所述任务优先级由客操作系统指派,所述客操作系统包括第一客操作系统及第二客操作系统,所述超管理器经配置以通过将系统资源分别分配给第一及第二虚拟处理器而创建用于所述第一客操作系统的至少所述第一及第二虚拟处理器。
2.根据权利要求1所述的设备,其中所述系统资源包括硬件资源及软件资源中的一或多者,其中所述超管理器可以存取与所述第一客操作系统的任务及所述第二客操作系统的任务相关联的优先级信息。
3.根据权利要求1所述的设备,所述第一及第二虚拟处理器具有相应的第一及第二优先级,所述第一及第二虚拟处理器分别对应于所述第一客操作系统的第一及第二任务,所述第一客操作系统的所述第一及第二任务具有相应的第一及第二优先级,其中所述超管理器经配置以至少部分地基于对应于所述第一任务的所述第一虚拟处理器的所述第一优先级与对应于第三任务的第三虚拟处理器的第三优先级的比较而确定是否调度所述第一客操作系统的所述第一任务或所述第二客操作系统的所述第三任务。
4.根据权利要求1所述的设备,其中所述第一客操作系统及所述第二客操作系统中的至少一者为实时操作系统。
5.根据权利要求4所述的设备,其中所述实时操作系统可以存取非实时操作系统不可用的至少一提高的任务优先级层级。
6.根据权利要求1所述的设备,其中所述超管理器经配置以基于来自所述第一客操作系统的第一任务的请求而封锁或解除封锁所述第一虚拟处理器。
7.根据权利要求1所述的设备,其中所述第一客操作系统的第一任务及所述第二客操作系统的第二任务各自经配置以存取对所述第一客操作系统及对所述第二客操作系统是共同的同步基元。
8.根据权利要求7所述的设备,其中所述同步基元包括存储于由所述第一客操作系统及所述第二客操作系统共享的存储器中的数据值,其中所述数据值存储于所述存储器的用户模式地址中。
9.根据权利要求7所述的设备,其中当特定客操作系统的任务保持所述同步基元时,所述特定客操作系统的所述任务可以读取-写入方式存取所述同步基元,且封锁于所述同步基元上的另一客操作系统的至少一任务可以只读方式存取所述同步基元。
10.根据权利要求9所述的设备,其中当所述同步基元在超时周期期间未被释放时,在所述超时周期到期之后随即解除封锁所述另一客操作系统的所述至少一任务。
11.根据权利要求1所述的设备,其中所述第一客操作系统的任务的优先级及所述第二客操作系统的任务的优先级是选自优先级的共同集合。
12.根据权利要求11所述的设备,其中所述第一客操作系统具有所述第一客操作系统可指派到所述第一客操作系统的任务的第一最大优先级,且其中所述第二客操作系统具有所述第二客操作系统可指派到所述第二客操作系统的任务的第二最大优先级。
13.根据权利要求12所述的设备,其中所述第一最大优先级不同于所述第二最大优先级。
14.根据权利要求1所述的设备,其中所述超管理器经配置以在所述第一客操作系统及所述第二客操作系统中的一者的任务封锁时,暂时提高所述第一客操作系统及所述第二客操作系统中的另一者的任务的优先级。
15.一种用于调度任务的方法,其包括:
在计算装置的超管理器处,创建用于第一客操作系统的至少第一及第二虚拟处理器,所述第一及第二虚拟处理器通过将系统资源分别分配给所述第一及第二虚拟处理器而创建;及
为了在所述计算装置的硬件处理器上执行,调度所述第一及第二虚拟处理器及针对第二客操作系统创建的至少第三虚拟处理器,其中所述第一、第二及第三虚拟处理器中的每一者具有对应于对应任务的任务优先级的优先级,每一对应任务的所述任务优先级由所述第一客操作系统或所述第二客操作系统指派。
16.根据权利要求15所述的方法,其进一步包括:
在所述计算装置的所述超管理器处从所述第一客操作系统接收第一请求以创建所述第一虚拟处理器以执行所述第一客操作系统的第一任务;及
基于来自所述第一客操作系统的所述第一任务的第二请求而封锁或解除封锁所述第一虚拟处理器。
17.根据权利要求15所述的方法,其中所述第一及第二虚拟处理器对应于所述第一客操作系统的第一及第二任务,所述方法进一步包括确定将所述第一虚拟处理器调度在与所述第二客操作系统的第三任务相关联的所述第三虚拟处理器之前。
18.根据权利要求17所述的方法,其中确定将所述第一虚拟处理器调度在所述第三虚拟处理器之前包括确定所述第一虚拟处理器的所述优先级高于所述第三虚拟处理器的所述优先级。
19.根据权利要求15所述的方法,其中所述第一客操作系统的第一任务及所述第二客操作系统的第二任务各自经配置以存取对所述第一客操作系统及对所述第二客操作系统是共同的同步基元。
20.根据权利要求19所述的方法,其中所述同步基元包括存储于由所述第一客操作系统及所述第二客操作系统共享的存储器中的数据值,其中所述数据值存储于所述存储器的用户模式地址中。
21.根据权利要求19所述的方法,其中当特定客操作系统的任务保持所述同步基元时,所述特定客操作系统的所述任务可以读取-写入方式存取所述同步基元,且封锁于所述同步基元上的另一客操作系统的至少一任务可以只读方式存取所述同步基元。
22.根据权利要求21所述的方法,其中当所述同步基元在超时周期期间未被释放时,在所述超时周期到期之后随即解除封锁所述另一客操作系统的所述至少一任务。
23.根据权利要求15所述的方法,其中所述系统资源包括硬件资源及软件资源中的一或多者,其中所述第一客操作系统的任务的优先级及所述第二客操作系统的任务的优先级是选自优先级的共同集合。
24.根据权利要求15所述的方法,其中所述第一客操作系统具有所述第一客操作系统可指派到所述第一客操作系统的任务的第一最大优先级,且其中所述第二客操作系统具有所述第二客操作系统可指派到所述第二客操作系统的任务的第二最大优先级。
25.根据权利要求24所述的方法,其中所述第一最大优先级不同于所述第二最大优先级。
26.根据权利要求15所述的方法,其中所述超管理器经配置以在所述第一客操作系统及所述第二客操作系统中的一者的任务封锁时,暂时提高所述第一客操作系统及所述第二客操作系统中的另一者的任务的优先级。
27.一种用于调度任务的设备,其包括:
用于处理的装置;及
可由所述用于处理的装置执行的用于调度的装置,
其中所述用于调度的装置经配置以调度虚拟处理器以由所述用于处理的装置执行,所述虚拟处理器中的每一者具有可由所述用于调度的装置存取且对应于对应任务的任务优先级的优先级,每一任务优先级由至少第一客操作系统及第二客操作系统中的一者指派,所述用于调度的装置经配置以通过将系统资源分别分配给第一及第二虚拟处理器而创建用于所述第一客操作系统的至少所述第一及第二虚拟处理器。
28.根据权利要求27所述的设备,其中所述用于调度的装置集成到超管理器中,所述第一及第二虚拟处理器对应于所述第一客操作系统的第一及第二任务,且所述系统资源包括硬件资源及软件资源中的一或多者。
29.一种计算机可读媒体,其包括在由计算机执行时导致所述计算机进行以下操作的指令:
在超管理器处,创建用于第一客操作系统的至少第一及第二虚拟处理器,所述第一及第二虚拟处理器通过将系统资源分别分配给所述第一及第二虚拟处理器而创建;及
调度所述第一及第二虚拟处理器及针对第二客操作系统创建的至少第三虚拟处理器以用于执行,其中所述第一、第二及第三虚拟处理器中的每一者具有对应于对应任务的任务优先级的优先级,所述对应任务中的每一者的所述任务优先级由所述第一客操作系统或所述第二客操作系统指派。
30.根据权利要求29所述的计算机可读媒体,其进一步包括在由所述计算机执行时导致所述计算机:
在所述超管理器处从所述第一客操作系统接收第一请求以创建所述第一虚拟处理器以执行所述第一客操作系统的第一任务;及
基于来自所述第一客操作系统的所述第一任务的第二请求封锁或解除封锁所述第一虚拟处理器。
31.根据权利要求29所述的计算机可读媒体,其中所述第一虚拟处理器及所述第二虚拟处理器对应于所述第一客操作系统的第一任务及第二任务,且其中所述系统资源包括硬件资源及软件资源中的一者或多者。
32.一种用于调度任务的设备,其包括:
处理器;
第一客操作系统,及
第二客操作系统,
其中所述第一客操作系统请求超管理器创建第一虚拟处理器以执行第一任务,
其中所述第二客操作系统请求所述超管理器创建第二虚拟处理器以执行第二任务,
其中所述超管理器创建所述第一虚拟处理器及第二虚拟处理器;以及
其中所述第一虚拟处理器和所述第二虚拟处理器在所述处理器上可调度且其中所述第一虚拟处理器具有第一优先级,所述第一优先级对应于所述第一任务的第一任务优先级,其中所述第二虚拟处理器具有第二优先级,所述第二优先级对应于所述第二任务的第二任务优先级,其中由所述第一客操作系统将所述第一任务优先级指派给所述第一任务且由所述第二客操作系统将所述第二任务优先级指派给所述第二任务,其中所述超管理器访问与包括所述第一任务的所述第一客操作系统的任务和包括所述第二任务的所述第二客操作系统的任务相关联的优先权信息,且其中所述超管理器基于与所述第一任务和所述第二任务相关联的优先权信息而将优先权指派至所述第一虚拟处理器和所述第二虚拟处理器。
33.根据权利要求32所述的设备,其中所述第一客操作系统和所述第二客操作系统依赖于所述超管理器,以通过调度对应于用于执行的任务的虚拟处理器而调度用于执行的所述任务。
34.根据权利要求32所述的设备,其中所述第一客操作系统和所述第二客操作系统为实时操作系统。
35.根据权利要求32所述的设备,其中所述第二客操作系统的每一任务是由所述第二客操作系统所请求的对应虚拟处理器来执行。
36.根据权利要求32所述的设备,其中所述第一客操作系统的所述第一任务及所述第二客操作系统的所述第二任务各自经配置以存取对所述第一客操作系统及对所述第二客操作系统是共同的同步基元。
37.根据权利要求36所述的设备,其中所述同步基元包括存储于由所述第一客操作系统及所述第二客操作系统共享的存储器中的数据值,其中所述数据值存储于所述存储器的用户模式地址中。
38.根据权利要求36所述的设备,其中当特定客操作系统的任务保持所述同步基元时,所述特定客操作系统的所述任务可以读取-写入方式存取所述同步基元,且封锁于所述同步基元上的另一客操作系统的至少一任务可以只读方式存取所述同步基元。
39.根据权利要求38所述的设备,其中当所述同步基元在超时周期期间未被释放时,在所述超时周期到期之后随即解除封锁所述另一客操作系统的所述至少一任务。
40.根据权利要求32所述的设备,其中所述第一客操作系统的任务的优先级及所述第二客操作系统的任务的优先级是选自优先级的共同集合。
41.根据权利要求32所述的设备,其中所述第一客操作系统具有所述第一客操作系统可指派到所述第一客操作系统的任务的第一最大优先级,且其中所述第二客操作系统具有所述第二客操作系统可指派到所述第二客操作系统的任务的第二最大优先级。
42.根据权利要求41所述的设备,其中所述第一最大优先级不同于所述第二最大优先级。
43.根据权利要求32所述的设备,其中所述超管理器经配置以在所述第一客操作系统及所述第二客操作系统中的一者的任务封锁时,暂时提高所述第一客操作系统及所述第二客操作系统中的另一者的任务的优先级。
44.一种用于调度任务的方法,其包括:
在执行于包括超管理器及至少一处理器的计算装置处的第一客操作系统处,接收创建第一任务的请求;及
由所述第一客操作系统请求所述超管理器创建第一虚拟处理器以执行所述第一任务,所述第一虚拟处理器是针对所述第一客操作系统而创建的,其中针对第二客操作系统创建的所述第一虚拟处理器和第二虚拟处理器可于所述至少一处理器上调度;以及
由所述第一客操作系统将任务优先级指派给所述第一任务,其中所述第一虚拟处理器的优先级对应于所述任务优先级,其中包括所述第一任务的所述第一客操作系统的任务优先权信息可由所述超管理器访问,且其中所述超管理器基于与所述第一任务相关联的任务优先级信息将优先级指派给所述第一虚拟处理器。
45.根据权利要求44所述的方法,其中所述第一客操作系统为实时操作系统。
46.根据权利要求45所述的方法,其中所述实时操作系统可以存取非实时操作系统不可用的至少一提高的任务优先级层级。
47.根据权利要求44所述的方法,其中所述第一客操作系统的所述第一任务及所述第二客操作系统的第二任务各自经配置以存取对所述第一客操作系统及对所述第二客操作系统是共同的同步基元。
48.根据权利要求47所述的方法,其中所述同步基元包括存储于由所述第一客操作系统及所述第二客操作系统共享的存储器中的数据值,其中所述数据值存储于所述存储器的用户模式地址中。
49.根据权利要求47所述的方法,其中当特定客操作系统的任务保持所述同步基元时,所述特定客操作系统的所述任务可以读取-写入方式存取所述同步基元,且封锁于所述同步基元上的另一客操作系统的至少一任务可以只读方式存取所述同步基元。
50.根据权利要求49所述的方法,其中当所述同步基元在超时周期期间未被释放时,在所述超时周期到期之后随即解除封锁所述另一客操作系统的所述至少一任务。
51.根据权利要求44所述的方法,其中所述第一客操作系统的任务的优先级及所述第二客操作系统的任务的优先级是选自优先级的共同集合。
52.根据权利要求44所述的方法,其中所述第一客操作系统具有所述第一客操作系统可指派到所述第一客操作系统的任务的第一最大优先级,且其中所述第二客操作系统具有所述第二客操作系统可指派到所述第二客操作系统的任务的第二最大优先级。
53.根据权利要求52所述的方法,其中所述第一最大优先级不同于所述第二最大优先级。
54.根据权利要求44所述的方法,其中所述超管理器经配置以在所述第一客操作系统及所述第二客操作系统中的一者的任务封锁时,暂时提高所述第一客操作系统及所述第二客操作系统中的另一者的任务的优先级。
55.一种用于调度任务的设备,其包括:
处理器;
第一客操作系统,及
第二客操作系统,其中所述第一客操作系统包括用于响应于接收创建第一任务的请求而请求超管理器创建第一虚拟处理器以执行所述第一任务的装置,所述第一虚拟处理器是针对所述第一客操作系统而创建的,其中针对所述第二客操作系统创建的所述第一虚拟处理器和第二虚拟处理器可于所述处理器上调度,
其中所述第一虚拟处理器具有第一优先级,所述第一优先级对应于所对应的第一任务的第一任务优先级,其中所述第二虚拟处理器具有第二优先级,所述第二优先级对应于所对应的第二任务的第二任务优先级,其中由所述第一客操作系统将所述第一任务优先级指派给所述第一任务且由所述第二客操作系统将所述第二任务优先级指派给所述第二任务,其中所述超管理器访问与包括所述第一任务的所述第一客操作系统的任务和包括所述第二任务的所述第二客操作系统的任务相关联的优先权信息,且其中所述超管理器基于与所述第一任务和所述第二任务相关联的优先权信息而将优先权指派至所述第一虚拟处理器和所述第二虚拟处理器。
56.根据权利要求55所述的设备,其中所述第一客操作系统和所述第二客操作系统为实时操作系统。
57.一种计算机可读媒体,其包括在由计算机执行时导致所述计算机进行以下操作的指令:
在第一客操作系统处,接收创建第一任务的请求;及
请求超管理器创建第一虚拟处理器以执行所述第一任务,所述第一虚拟处理器是针对所述第一客操作系统而创建的,其中针对第二客操作系统创建的所述第一虚拟处理器和第二虚拟处理器可于硬件处理器上调度,
其中所述第一虚拟处理器具有第一优先级,所述第一优先级对应于所述第一任务的第一任务优先级,其中所述第二虚拟处理器具有第二优先级,所述第二优先级对应于第二任务的第二任务优先级,其中由所述第一客操作系统将所述第一任务优先级指派给所述第一任务且由所述第二客操作系统将所述第二任务优先级指派给所述第二任务,其中所述超管理器访问与包括所述第一任务的所述第一客操作系统的任务和包括所述第二任务的所述第二客操作系统的任务相关联的优先权信息,且其中所述超管理器基于与所述第一任务和所述第二任务相关联的优先权信息而将优先权指派至所述第一虚拟处理器和所述第二虚拟处理器。
58.根据权利要求57所述的计算机可读媒体,其中所述第一客操作系统和所述第二客操作系统为实时操作系统。
59.根据权利要求57所述的计算机可读媒体,其中所述第一客操作系统为可以存取非实时操作系统不可用的至少一提高的任务优先级层级的实时操作系统。
60.一种电子装置,其包括:
处理器;
超管理器;
第一客操作系统;及
第二客操作系统,
其中所述第一客操作系统的第一任务是通过由所述第一客操作系统向所述超管理器请求的第一虚拟处理器来执行,所述第一虚拟处理器通过将系统资源分配给所述第一虚拟处理器而创建,所述第一虚拟处理器由所述处理器执行,
其中所述第一客操作系统的至少第二任务是通过由所述第一客操作系统向所述超管理器请求的第二虚拟处理器来执行,所述第二虚拟处理器通过将系统资源分配给所述第二虚拟处理器而创建,由所述处理器执行所述第二虚拟处理器,且
其中所述第二客操作系统的至少第三任务是通过由所述第二客操作系统向所述超管理器请求的第三虚拟处理器来执行,由所述处理器执行所述第三虚拟处理器,其中所述第一虚拟处理器具有第一优先级,所述第一优先级对应于所述第一任务的第一任务优先级,所述第二虚拟处理器具有第二优先级,所述第二优先级对应于所述第二任务的第二任务优先级,以及所述第三虚拟处理器具有第三优先级,所述第三优先级对应于所述第三任务的第三任务优先级,其中由所述第一客操作系统将所述第一任务优先级指派给所述第一任务,由所述第一客操作系统将所述第二任务优先级指派给所述第二任务,且由所述第二客操作系统将所述第三任务优先级指派给所述第三任务,其中所述超管理器访问与包括所述第一任务和所述第二任务的所述第一客操作系统的任务和包括所述第三任务的所述第二客操作系统的任务相关联的优先权信息,且其中所述超管理器基于与所述第一任务、所述第二任务和所述第三任务相关联的优先权信息而将优先权指派至所述第一虚拟处理器、所述第二虚拟处理器和所述第三虚拟处理器。
61.根据权利要求60所述的电子装置,其中所述第一客操作系统包括实时操作系统,其中所述第二客操作系统包括非实时操作系统,且其中所述第一客操作系统的所述第一任务可以存取所述第二客操作系统的所述第三任务不可用的至少一提高的任务优先级层级。
62.根据权利要求60所述的电子装置,所述第一虚拟处理器、所述第二虚拟处理器及所述第三虚拟处理器可于所述处理器上调度。
63.根据权利要求60所述的电子装置,其中所述第一客操作系统的所述第一任务及所述第二客操作系统的所述第三任务各自经配置以存取对所述第一客操作系统及对所述第二客操作系统是共同的同步基元,其中所述同步基元包括存储于由所述第一客操作系统及所述第二客操作系统共享的存储器中的数据值,其中所述数据值存储于所述存储器的用户模式地址中。
64.根据权利要求60所述的电子装置,其中所述第一客操作系统的所述第一任务及所述第二客操作系统的所述第三任务各自经配置以存取对所述第一客操作系统及对所述第二客操作系统是共同的同步基元,其中当特定客操作系统的任务保持所述同步基元时,所述特定客操作系统的所述任务可以读取-写入方式存取所述同步基元,且封锁于所述同步基元上的另一客操作系统的至少一任务可以只读方式存取所述同步基元。
65.根据权利要求64所述的电子装置,其中当所述同步基元在超时周期期间未被释放时,在所述超时周期到期之后随即解除封锁所述另一客操作系统的所述至少一任务。
66.根据权利要求60所述的电子装置,其中所述第一客操作系统的任务的优先级及所述第二客操作系统的任务的优先级是选自优先级的共同集合。
67.根据权利要求60所述的电子装置,其中所述第一客操作系统具有所述第一客操作系统可指派到所述第一客操作系统的任务的第一最大优先级,且其中所述第二客操作系统具有所述第二客操作系统可指派到所述第二客操作系统的任务的第二最大优先级。
68.根据权利要求67所述的电子装置,其中所述第一最大优先级不同于所述第二最大优先级。
69.根据权利要求60所述的电子装置,其中所述超管理器经配置以在所述第一客操作系统及所述第二客操作系统中的一者的任务封锁时,暂时提高所述第一客操作系统及所述第二客操作系统中的另一者的任务的优先级。
70.根据权利要求60所述的电子装置,其中所述处理器包括集成到选自以下各者的装置的数字信号处理器:娱乐单元、固定位置数据单元及计算装置。
71.根据权利要求60所述的电子装置,其中所述处理器包括集成到选自以下各者的装置的数字信号处理器:机顶盒、音乐播放器、视频播放器、导航装置、通信装置、个人数字助理PDA。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/828,183 | 2013-03-14 | ||
US13/828,183 US9396012B2 (en) | 2013-03-14 | 2013-03-14 | Systems and methods of using a hypervisor with guest operating systems and virtual processors |
PCT/US2014/023708 WO2014159444A1 (en) | 2013-03-14 | 2014-03-11 | Systems and methods of using a hypervisor with guest operating systems and virtual processors |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105051690A CN105051690A (zh) | 2015-11-11 |
CN105051690B true CN105051690B (zh) | 2018-12-07 |
Family
ID=50513451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480013671.XA Expired - Fee Related CN105051690B (zh) | 2013-03-14 | 2014-03-11 | 使用具有客操作系统及虚拟处理器的超管理器的系统及方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9396012B2 (zh) |
EP (1) | EP2972851A1 (zh) |
JP (2) | JP6199477B2 (zh) |
KR (1) | KR20150132218A (zh) |
CN (1) | CN105051690B (zh) |
TW (1) | TWI552076B (zh) |
WO (1) | WO2014159444A1 (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10437591B2 (en) | 2013-02-26 | 2019-10-08 | Qualcomm Incorporated | Executing an operating system on processors having different instruction set architectures |
US10114756B2 (en) | 2013-03-14 | 2018-10-30 | Qualcomm Incorporated | Externally programmable memory management unit |
US9396012B2 (en) | 2013-03-14 | 2016-07-19 | Qualcomm Incorporated | Systems and methods of using a hypervisor with guest operating systems and virtual processors |
US9606818B2 (en) | 2013-03-14 | 2017-03-28 | Qualcomm Incorporated | Systems and methods of executing multiple hypervisors using multiple sets of processors |
US9262192B2 (en) * | 2013-12-16 | 2016-02-16 | Vmware, Inc. | Virtual machine data store queue allocation |
US10248463B2 (en) * | 2015-02-13 | 2019-04-02 | Honeywell International Inc. | Apparatus and method for managing a plurality of threads in an operating system |
US9792139B2 (en) | 2015-02-25 | 2017-10-17 | Red Hat Israel, Ltd. | Service driven virtual machine scheduling |
US9367345B1 (en) * | 2015-02-26 | 2016-06-14 | Red Hat Israel, Ltd. | Power efficient cross-VCPU notification by VM function |
US9830187B1 (en) | 2015-06-05 | 2017-11-28 | Apple Inc. | Scheduler and CPU performance controller cooperation |
KR20160144688A (ko) * | 2015-06-09 | 2016-12-19 | 한국전자통신연구원 | 큐를 이용한 smp 가상 머신 이벤트 라우터 및 방법 |
WO2017099772A1 (en) * | 2015-12-10 | 2017-06-15 | Siemens Aktiengesellschaft | Distributed embedded data and knowledge management system integrated with plc historian |
US20170177395A1 (en) * | 2015-12-21 | 2017-06-22 | Mingqiu Sun | Embedded architecture based on process virtual machine |
JP6971016B2 (ja) | 2016-04-07 | 2021-11-24 | オムロン株式会社 | 制御装置、制御方法およびプログラム |
US11157517B2 (en) | 2016-04-18 | 2021-10-26 | Amazon Technologies, Inc. | Versioned hierarchical data structures in a distributed data store |
US11099894B2 (en) | 2016-09-28 | 2021-08-24 | Amazon Technologies, Inc. | Intermediate host integrated circuit between virtual machine instance and customer programmable logic |
US10338135B2 (en) | 2016-09-28 | 2019-07-02 | Amazon Technologies, Inc. | Extracting debug information from FPGAs in multi-tenant environments |
US10162921B2 (en) | 2016-09-29 | 2018-12-25 | Amazon Technologies, Inc. | Logic repository service |
US10282330B2 (en) * | 2016-09-29 | 2019-05-07 | Amazon Technologies, Inc. | Configurable logic platform with multiple reconfigurable regions |
US10250572B2 (en) | 2016-09-29 | 2019-04-02 | Amazon Technologies, Inc. | Logic repository service using encrypted configuration data |
US10642492B2 (en) | 2016-09-30 | 2020-05-05 | Amazon Technologies, Inc. | Controlling access to previously-stored logic in a reconfigurable logic device |
US10069949B2 (en) | 2016-10-14 | 2018-09-04 | Honeywell International Inc. | System and method for enabling detection of messages having previously transited network devices in support of loop detection |
US11115293B2 (en) | 2016-11-17 | 2021-09-07 | Amazon Technologies, Inc. | Networked programmable logic service provider |
CN108182104B (zh) * | 2016-12-08 | 2021-07-09 | 中国移动通信有限公司研究院 | 一种分配虚拟处理器的方法、设备及系统 |
EP3343366B1 (en) | 2016-12-27 | 2020-12-30 | OpenSynergy GmbH | System and method for scheduling a plurality of guest systems and/or threads |
US10423342B1 (en) | 2017-03-30 | 2019-09-24 | Amazon Technologies, Inc. | Scaling events for hosting hierarchical data structures |
US10671639B1 (en) | 2017-03-30 | 2020-06-02 | Amazon Technologies, Inc. | Selectively replicating changes to hierarchial data structures |
US10860550B1 (en) | 2017-03-30 | 2020-12-08 | Amazon Technologies, Inc. | Versioning schemas for hierarchical data structures |
US10956193B2 (en) * | 2017-03-31 | 2021-03-23 | Microsoft Technology Licensing, Llc | Hypervisor virtual processor execution with extra-hypervisor scheduling |
US10579417B2 (en) * | 2017-04-26 | 2020-03-03 | Microsoft Technology Licensing, Llc | Boosting user thread priorities to resolve priority inversions |
US10956220B2 (en) | 2017-06-04 | 2021-03-23 | Apple Inc. | Scheduler for amp architecture using a closed loop performance and thermal controller |
CN109656674B (zh) * | 2017-10-11 | 2023-09-12 | 阿里巴巴集团控股有限公司 | 一种计算机设备、虚拟化芯片及数据传输方法 |
US10810086B2 (en) | 2017-10-19 | 2020-10-20 | Honeywell International Inc. | System and method for emulation of enhanced application module redundancy (EAM-R) |
US10783026B2 (en) | 2018-02-15 | 2020-09-22 | Honeywell International Inc. | Apparatus and method for detecting network problems on redundant token bus control network using traffic sensor |
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 |
CN112965812A (zh) * | 2021-02-09 | 2021-06-15 | 中国铁建重工集团股份有限公司 | 一种基于边缘计算的故障诊断方法、系统和终端 |
WO2023128013A1 (ko) * | 2021-12-30 | 2023-07-06 | (주)페르세우스 | 하이퍼바이저 시스템의 운영체제 성능 간섭 방지 장치 |
CN115562794B (zh) * | 2022-12-07 | 2023-03-10 | 天津卓朗昆仑云软件技术有限公司 | 虚拟桌面系统及虚拟桌面的实现方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1975677A (zh) * | 2005-12-01 | 2007-06-06 | 国际商业机器公司 | 用于提供无上下文切换属性的方法和系统 |
JP2009176139A (ja) * | 2008-01-25 | 2009-08-06 | Mitsubishi Electric Corp | Os優先度変更装置及びos優先度変更プログラム |
CN101946235A (zh) * | 2008-02-27 | 2011-01-12 | 国际商业机器公司 | 用于在共享处理器分区环境中移动线程的方法及装置 |
Family Cites Families (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0814795B2 (ja) * | 1986-01-14 | 1996-02-14 | 株式会社日立製作所 | マルチプロセッサ仮想計算機システム |
JPH0193830A (ja) * | 1987-10-05 | 1989-04-12 | Nec Corp | 仮想計算機システムにおける割り込み制御方式 |
JPH0877025A (ja) * | 1994-09-01 | 1996-03-22 | Kokusai Electric Co Ltd | タスクの優先度制御方法、タスクの優先度制御装置 |
US6026427A (en) | 1997-11-21 | 2000-02-15 | Nishihara; Kazunori | Condition variable to synchronize high level communication between processing threads |
US6286092B1 (en) | 1999-05-12 | 2001-09-04 | Ati International Srl | Paged based memory address translation table update method and apparatus |
US6516373B1 (en) | 1999-06-18 | 2003-02-04 | Samsung Electronics Co., Ltd. | Common motherboard interface for processor modules of multiple architectures |
US6526462B1 (en) | 1999-11-19 | 2003-02-25 | Hammam Elabd | Programmable multi-tasking memory management system |
US6904483B2 (en) * | 2001-03-20 | 2005-06-07 | Wind River Systems, Inc. | System and method for priority inheritance |
GB2378277B (en) | 2001-07-31 | 2003-06-25 | Sun Microsystems Inc | Multiple address translations |
JP2003099272A (ja) | 2001-09-20 | 2003-04-04 | Ricoh Co Ltd | タスク切替システムと方法およびdspとモデム |
US7620678B1 (en) | 2002-06-12 | 2009-11-17 | Nvidia Corporation | Method and system for reducing the time-to-market concerns for embedded system design |
US7117481B1 (en) | 2002-11-06 | 2006-10-03 | Vmware, Inc. | Composite lock for computer systems with multiple domains |
US6981072B2 (en) | 2003-06-05 | 2005-12-27 | International Business Machines Corporation | Memory management in multiprocessor system |
JP3922576B2 (ja) * | 2003-06-27 | 2007-05-30 | 株式会社日立製作所 | 命令プロセッサ割り当てスケジューリング方法、該命令プロセッサ割り当てスケジューリング方法を実現する計算機システムおよびそのためのプログラム |
US7134007B2 (en) | 2003-06-30 | 2006-11-07 | Intel Corporation | Method for sharing firmware across heterogeneous processor architectures |
US7424709B2 (en) | 2003-09-15 | 2008-09-09 | Intel Corporation | Use of multiple virtual machine monitors to handle privileged events |
US20050251806A1 (en) * | 2004-05-10 | 2005-11-10 | Auslander Marc A | Enhancement of real-time operating system functionality using a hypervisor |
US7937700B1 (en) | 2004-05-11 | 2011-05-03 | Advanced Micro Devices, Inc. | System, processor, and method for incremental state save/restore on world switch in a virtual machine environment |
US8271976B2 (en) * | 2004-06-30 | 2012-09-18 | Microsoft Corporation | Systems and methods for initializing multiple virtual processors within a single virtual machine |
JP4006428B2 (ja) * | 2004-09-28 | 2007-11-14 | 株式会社東芝 | 計算機システム |
US7299337B2 (en) | 2005-05-12 | 2007-11-20 | Traut Eric P | Enhanced shadow page table algorithms |
US7739476B2 (en) | 2005-11-04 | 2010-06-15 | Apple Inc. | R and C bit update handling |
US7945913B2 (en) * | 2006-01-19 | 2011-05-17 | International Business Machines Corporation | Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system |
US20070283336A1 (en) | 2006-06-01 | 2007-12-06 | Michael Karl Gschwind | System and method for just-in-time compilation in a heterogeneous processing environment |
US7899994B2 (en) * | 2006-08-14 | 2011-03-01 | Intel Corporation | Providing quality of service (QoS) for cache architectures using priority information |
US8082551B2 (en) | 2006-10-30 | 2011-12-20 | Hewlett-Packard Development Company, L.P. | System and method for sharing a trusted platform module |
US7685409B2 (en) * | 2007-02-21 | 2010-03-23 | Qualcomm Incorporated | On-demand multi-thread multimedia processor |
US8789063B2 (en) | 2007-03-30 | 2014-07-22 | Microsoft Corporation | Master and subordinate operating system kernels for heterogeneous multiprocessor systems |
US8250254B2 (en) | 2007-07-31 | 2012-08-21 | Intel Corporation | Offloading input/output (I/O) virtualization operations to a processor |
CN101499021A (zh) * | 2008-01-31 | 2009-08-05 | 国际商业机器公司 | 在多个虚拟机上动态分配资源的方法和装置 |
US20090282198A1 (en) | 2008-05-08 | 2009-11-12 | Texas Instruments Incorporated | Systems and methods for optimizing buffer sharing between cache-incoherent cores |
US8135921B2 (en) | 2008-06-06 | 2012-03-13 | International Business Machines Corporation | Automated paging device management in a shared memory partition data processing system |
US8464011B2 (en) | 2008-10-27 | 2013-06-11 | Advanced Micro Devices, Inc. | Method and apparatus for providing secure register access |
US8301863B2 (en) | 2008-11-17 | 2012-10-30 | International Business Machines Corporation | Recursive logical partition real memory map |
US8291414B2 (en) | 2008-12-11 | 2012-10-16 | International Business Machines Corporation | Shared resource service provisioning using a virtual machine manager |
US20100242014A1 (en) | 2009-03-17 | 2010-09-23 | Xiaohan Zhu | Symmetric multi-processor operating system for asymmetric multi-processor architecture |
US8156275B2 (en) * | 2009-05-13 | 2012-04-10 | Apple Inc. | Power managed lock optimization |
US9152200B2 (en) | 2009-06-23 | 2015-10-06 | Hewlett-Packard Development Company, L.P. | Resource and power management using nested heterogeneous hypervisors |
US8479196B2 (en) | 2009-09-22 | 2013-07-02 | International Business Machines Corporation | Nested virtualization performance in a computer system |
EP2323035B1 (en) * | 2009-11-16 | 2019-04-17 | Red Bend Software | Scheduling system |
US8650426B2 (en) | 2009-12-16 | 2014-02-11 | Qualcomm Incorporated | System and method for controlling central processing unit power in a virtualized system |
JP5336423B2 (ja) * | 2010-05-14 | 2013-11-06 | パナソニック株式会社 | 計算機システム |
JP5770721B2 (ja) * | 2010-05-24 | 2015-08-26 | パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America | 情報処理システム |
US8443376B2 (en) | 2010-06-01 | 2013-05-14 | Microsoft Corporation | Hypervisor scheduler |
US20110320766A1 (en) | 2010-06-29 | 2011-12-29 | Youfeng Wu | Apparatus, method, and system for improving power, performance efficiency by coupling a first core type with a second core type |
US20120072638A1 (en) | 2010-09-16 | 2012-03-22 | Unisys Corp. | Single step processing of memory mapped accesses in a hypervisor |
US8307169B2 (en) | 2011-03-10 | 2012-11-06 | Safenet, Inc. | Protecting guest virtual machine memory |
JP5648544B2 (ja) | 2011-03-15 | 2015-01-07 | 富士通株式会社 | スケジューリングプログラム、および情報処理装置 |
US8984330B2 (en) | 2011-03-28 | 2015-03-17 | Siemens Corporation | Fault-tolerant replication architecture |
US9043562B2 (en) | 2011-04-20 | 2015-05-26 | Microsoft Technology Licensing, Llc | Virtual machine trigger |
US8677360B2 (en) * | 2011-05-12 | 2014-03-18 | Microsoft Corporation | Thread-related actions based on historical thread behaviors |
US20130013889A1 (en) | 2011-07-06 | 2013-01-10 | Jaikumar Devaraj | Memory management unit using stream identifiers |
US9250969B2 (en) | 2011-08-30 | 2016-02-02 | At&T Intellectual Property I, L.P. | Tagging a copy of memory of a virtual machine with information for fetching of relevant portions of the memory |
US8910158B2 (en) * | 2011-12-14 | 2014-12-09 | Intel Corporation | Virtualizing interrupt priority and delivery |
US20140053272A1 (en) | 2012-08-20 | 2014-02-20 | Sandor Lukacs | Multilevel Introspection of Nested Virtual Machines |
US9292318B2 (en) * | 2012-11-26 | 2016-03-22 | International Business Machines Corporation | Initiating software applications requiring different processor architectures in respective isolated execution environment of an operating system |
US9075789B2 (en) * | 2012-12-11 | 2015-07-07 | General Dynamics C4 Systems, Inc. | Methods and apparatus for interleaving priorities of a plurality of virtual processors |
US9052932B2 (en) * | 2012-12-17 | 2015-06-09 | International Business Machines Corporation | Hybrid virtual machine configuration management |
US10437591B2 (en) | 2013-02-26 | 2019-10-08 | Qualcomm Incorporated | Executing an operating system on processors having different instruction set architectures |
US9396011B2 (en) | 2013-03-12 | 2016-07-19 | Qualcomm Incorporated | Algorithm and apparatus to deploy virtual machine monitor on demand |
WO2014165040A1 (en) * | 2013-03-13 | 2014-10-09 | Veriscape, Inc. | Dynamic memory management for a virtual supercomputer |
US10114756B2 (en) | 2013-03-14 | 2018-10-30 | Qualcomm Incorporated | Externally programmable memory management unit |
US9396012B2 (en) | 2013-03-14 | 2016-07-19 | Qualcomm Incorporated | Systems and methods of using a hypervisor with guest operating systems and virtual processors |
US9606818B2 (en) | 2013-03-14 | 2017-03-28 | Qualcomm Incorporated | Systems and methods of executing multiple hypervisors using multiple sets of processors |
-
2013
- 2013-03-14 US US13/828,183 patent/US9396012B2/en active Active
-
2014
- 2014-03-11 WO PCT/US2014/023708 patent/WO2014159444A1/en active Application Filing
- 2014-03-11 JP JP2016501323A patent/JP6199477B2/ja not_active Expired - Fee Related
- 2014-03-11 KR KR1020157027145A patent/KR20150132218A/ko not_active Application Discontinuation
- 2014-03-11 EP EP14718236.4A patent/EP2972851A1/en not_active Ceased
- 2014-03-11 CN CN201480013671.XA patent/CN105051690B/zh not_active Expired - Fee Related
- 2014-03-14 TW TW103109243A patent/TWI552076B/zh active
-
2016
- 2016-06-21 US US15/188,487 patent/US10133598B2/en not_active Expired - Fee Related
-
2017
- 2017-08-23 JP JP2017160075A patent/JP2017204307A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1975677A (zh) * | 2005-12-01 | 2007-06-06 | 国际商业机器公司 | 用于提供无上下文切换属性的方法和系统 |
JP2009176139A (ja) * | 2008-01-25 | 2009-08-06 | Mitsubishi Electric Corp | Os優先度変更装置及びos優先度変更プログラム |
CN101946235A (zh) * | 2008-02-27 | 2011-01-12 | 国际商业机器公司 | 用于在共享处理器分区环境中移动线程的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2972851A1 (en) | 2016-01-20 |
US9396012B2 (en) | 2016-07-19 |
JP6199477B2 (ja) | 2017-09-20 |
TWI552076B (zh) | 2016-10-01 |
US20140282507A1 (en) | 2014-09-18 |
TW201447766A (zh) | 2014-12-16 |
US10133598B2 (en) | 2018-11-20 |
WO2014159444A1 (en) | 2014-10-02 |
US20160299780A1 (en) | 2016-10-13 |
CN105051690A (zh) | 2015-11-11 |
JP2016511489A (ja) | 2016-04-14 |
JP2017204307A (ja) | 2017-11-16 |
KR20150132218A (ko) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105051690B (zh) | 使用具有客操作系统及虚拟处理器的超管理器的系统及方法 | |
US10606653B2 (en) | Efficient priority-aware thread scheduling | |
US9201693B2 (en) | Quota-based resource management | |
US9021490B2 (en) | Optimizing allocation of computer resources by tracking job status and resource availability profiles | |
US8839260B2 (en) | Automated cloud workload management in a map-reduce environment | |
US8443373B2 (en) | Efficient utilization of idle resources in a resource manager | |
US20100153957A1 (en) | System and method for managing thread use in a thread pool | |
US20120124591A1 (en) | scheduler and resource manager for coprocessor-based heterogeneous clusters | |
US20160162337A1 (en) | Multiple core real-time task execution | |
US9973512B2 (en) | Determining variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time | |
KR102052964B1 (ko) | 컴퓨팅 스케줄링 방법 및 시스템 | |
CN113010309B (zh) | 集群资源调度方法、装置、存储介质、设备和程序产品 | |
AU2007261611A2 (en) | Computer micro-jobs | |
JP2008225641A (ja) | コンピュータシステム、割り込み制御方法及びプログラム | |
CN114489978A (zh) | 资源调度方法、装置、设备及存储介质 | |
CN114138427A (zh) | Slo保障方法、装置、节点及存储介质 | |
WO2016067339A1 (ja) | ストレージシステム、及び、記憶制御方法 | |
CN116185634A (zh) | 资源调度方法和系统 | |
CN113760524A (zh) | 任务执行方法和装置 | |
CN105474175B (zh) | 分配和调度用于多个队列的计算机、制造品和方法 | |
CN115509713A (zh) | 一种任务处理方法、系统、装置、电子设备及存储介质 | |
CN115983586A (zh) | 酒店布草配送方法、装置、电子设备和介质 | |
CN117667420A (zh) | 资源调度方法、设备及存储介质 | |
CN105474175A (zh) | 分配和调度用于多个优先化队列的线程 | |
US20130042247A1 (en) | Starvationless Kernel-Aware Distributed Scheduling of Software Licenses |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181207 Termination date: 20210311 |