CN102077209A - 受保护模式操作调度 - Google Patents
受保护模式操作调度 Download PDFInfo
- Publication number
- CN102077209A CN102077209A CN2009801248069A CN200980124806A CN102077209A CN 102077209 A CN102077209 A CN 102077209A CN 2009801248069 A CN2009801248069 A CN 2009801248069A CN 200980124806 A CN200980124806 A CN 200980124806A CN 102077209 A CN102077209 A CN 102077209A
- Authority
- CN
- China
- Prior art keywords
- mode
- protected mode
- user model
- protected
- supervisor
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 112
- 230000008569 process Effects 0.000 claims description 68
- 230000009471 action Effects 0.000 claims description 50
- 238000004422 calculation algorithm Methods 0.000 claims description 33
- 230000001360 synchronised effect Effects 0.000 claims description 15
- 230000002085 persistent effect Effects 0.000 claims description 10
- 238000011068 loading method Methods 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 8
- 240000007320 Pinus strobus Species 0.000 claims description 3
- 230000003760 hair shine Effects 0.000 claims 1
- 238000004590 computer program Methods 0.000 abstract description 3
- 230000005540 biological transmission Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 239000006185 dispersion Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005194 fractionation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Multi Processors (AREA)
- Devices For Executing Special Programs (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及用于受保护模式操作调度的方法、系统和计算机程序产品。受保护模式(例如,用户模式)调度能够方便开发通过使用工作负载专用执行抽象来更好地反映工作负载的要求的编程框架。另外,定义针对可用硬件资源和工作负载要求的特性来调整的调度策略的能力具有更好的系统伸缩特性的潜力。此外,受保护模式调度通过将很大一部分调度功能从管理程序模式(例如,内核模式)移至应用程序来分散调度责任。
Description
背景
1.背景和相关技术
计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已转变了人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、数据库管理和会计等)。最近,计算机系统彼此耦合并耦合到其他电子设备以形成计算机系统和其他电子设备可以在其上传输电子数据的有线和无线计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算组件上。
通常,当计算机系统开启或以其他方式“启动”时,从只读存储器(例如,闪存芯片)中执行基本输入/输出系统(“BIOS”)。BIOS执行活动序列以使得计算机系统准备好操作。该活动序列可包括(取决于是冷引导还是重引导)对CMOS设置检查自定义设置、加载中断处理程序和设备驱动程序、初始化寄存器和电源管理、测试计算机系统的各种硬件组件以保证它们适当地工作(上电自检“POST”)、以及激活其他卡(例如,SCSI和图形卡)上的BIOS芯片。根据CMOS设置,BIOS可标识可引导设备并启动自展序列以启动操作系统。
在计算机系统操作期间,BIOS还提供操作系统可用来与诸如例如键盘、鼠标、视频显示器、端口等不同的硬件设备接口的一组低级例程。由此,为了执行典型的计算任务,操作系统接收命令(或者来自应用程序或者来自用户)并将这些命令转发给适当的物理资源。这些物理资源进而实现较低级操作以执行计算任务。
操作系统通常包括两种不同的操作模式:管理程序模式(有时被称为“内核模式”)和受保护模式(有时被称为“用户模式”)。当以管理程序模式操作时,进程具有对所有资源的不受限访问,能够执行任何指令,并且能够引用任何存储器位置。另一方面,当以受保护模式操作时,限制资源访问,禁止某些指令的执行,并且禁止对某些存储器位置的引用。操作系统通常具有被信任以内核模式操作的中央组件或“内核”。操作系统的其他部分以及其他程序不被信任并且不被给予对特权资源和指令的直接访问。由此,以受保护模式操作的软件必须请求使用内核(例如,通过系统调用)来执行特权操作。
一般而言,操作系统管理硬件和软件资源,以使其所在的计算机系统以灵活但可预测的方式行动。在典型的计算机系统中,这些资源可包括处理器、存储器、盘空间等。操作系统还提供用于调用诸如例如应用程序等其他软件的一致应用。通常,在应用程序执行时,它创建用于执行各种计算任务的一个或多个进程。此外,大多数操作系统准许多个独立应用同时在一个计算机系统中运行。由此,在任何给定时刻,计算机系统可具有对应于同时运行的多个不同的应用的多个进程。
进程创建是需要应用程序调用内核来实现的特权操作。内核能够为进程分配存储器,从盘加载程序代码,以及开始运行进程。
所创建的多个进程中的每一个都可能需要处理器(CPU)、输入/输出、存储器和存储资源中的一个或多个来执行指定的计算任务。然而,某些资源只能一次为有限数量的且通常为一个的进程执行任务。例如,许多CPU被限于一次为一个进程执行指令。因此,许多操作系统使用多任务处理来使得看上去像同时执行多个计算任务。多任务处理是多个进程用来共享诸如例如CPU等公共处理资源的机制。
在某些操作系统中,进程可包括许多子进程,这些子进程有时被称为执行线程(或只被称为“线程”)或纤程。线程或纤程子进程,它是一个进程的代码中的分开的、独立的执行序列。线程和纤程提供供进程将其自身分叉(或拆分)成两个或更多同时(或伪同时)运行的任务的机制。线程和纤程和进程在各操作系统中有所不同。然而,一般而言,线程或纤程被包含在进程中并且相同进程中的不同线程或纤程共享某些资源,而不同的进程不共享资源。但线程和纤程能够在尚未具有访问权的情况下独立请求对特权资源的访问权。线程和纤程的不同之处通常在于线程使用抢先多任务处理,而纤程使用协作多任务处理。
通常,为了实现所需类型的多任务处理,操作系统内核包括被称为调度程序的软件片段,该调度程序确定每一个进程和/或线程(以及就更小范围而言的那些环境中的纤程)能够在执行上花费多少时间以及将要传递执行控制的次序。控制由内核传递给进程和/或线程,该控制准许进程/线程访问CPU和存储器。在稍后时刻,控制通过某种机制返回至内核以使得那些其他进程和/或线程能够访问CPU和存储器。存在能够在操作系统内核中实现以便对多个进程/线程/纤程多路复用CPU资源的各种各样的调度算法,诸如例如借用虚拟时间(“BVT”)调度、多级反馈队列调度、间隔调度、完全公平调度等。
在内核和进程/线程/纤程之间(以及相反)传递控制有时被称为上下文切换。上下文切换包括存储并还原CPU的状态(上下文)以使得多个进程可共享单个CPU资源。上下文切换通常在计算上是昂贵的。例如,在上下文切换期间,停止正在运行的进程并给予另一进程运行的机会。操作系统内核必须停止执行正在运行的进程,将硬件寄存器中的至复制出到其进程控制块(“PCB”),用来自新进程的PCB的值来更新硬件寄存器。取决于操作系统,PCB可包括各种不同的信息。然而,PCB通常包括进程标识符(PID)、包括进程的程序计数器的寄存器值、进程的地址空间、优先级、进程会计信息(例如,进程上一次何时运行、进程已经累积了多少CPU时间等)以及指向要运行的下一进程的PCB的指针。在每一次上下文切换时,对于当前进程必须卸载所有这些信息并且对于新进程加载这些信息。
因此,在大多数操作系统中,内核实质上担当运行系统级策略的线程中央储存库和授权机构。即,内核执行所有调度和上下文维护。由此,内核担当可能限制可伸缩性的瓶颈。性能也可能在大量线程活动时降级,这部分地由于上下文数据的大量加载和卸载。
此外,操作系统内核定义执行抽象(例如,线程、纤程等)以及内核将要使用的调度算法两者。因此,运行操作系统的所有应用基本上被迫使用所定义的执行抽象和调度算法。这不是最优的,因为某些应用可以更好地适于使用其他执行抽象和/或调度算法。例如,应用可以很好地适于使用待办事项(ToDo)(一种类型的执行抽象)和多级反馈队列调度。然而,如果内核用BVT调度来定义线程,则应用仍然被迫使用该组合。
由于许多应用具有不同的要求,因此导出对于所有应用都是最优的单个(或均码的)调度算法也是基本上不可能的。例如,文字处理程序、媒体播放程序和盘备份应用可以各自具有不同的最优调度算法。然而,可进行折衷以便跨一定范围的应用定义即使不是最优也至少起作用的调度算法。
简要概述
本发明涉及用于受保护模式操作调度的方法、系统和计算机程序产品。在某些实施例中,计算机系统将处理器资源的调度配置成以受保护(例如,用户)模式进行以便从管理(例如,内核)模式中分散调度责任。计算机系统创建以操作系统的受保护模式操作的受保护模式调度域。创建受保护模式调度域包括创建虚拟处理器。虚拟处理器映射物理处理器的至少一部分以供受保护模式调度域的执行对象使用。
虚拟处理器包括受保护模式虚拟处理器。受保护模式虚拟处理器被配置成处理管理程序模式通知并分派执行对象。虚拟处理器还包括管理程序模式虚拟处理器。管理程序模式虚拟处理器被配置成保留物理处理器的至少一部分以供受保护模式调度域的执行对象使用。
创建受保护模式调度域还包括加载与默认管理程序模式调度策略不同的至少一个受保护模式调度策略。该至少一个受保护模式调度策略用于在虚拟处理器上多路复用受保护模式调度域的执行对象。创建受保护模式调度域还包括创建被配置成存储受保护模式调度域的执行对象的状态的执行对象存储。该执行对象存储方便在受保护模式调度域中的不同执行对象之间切换上下文。
在其他实施例中,计算机系统以受保护模式调度处理器资源的消耗以便从管理程序模式中分散调度责任。计算机系统将物理处理器资源分配给受保护模式调度域中的受保护模式调度域的第一执行对象。物理处理器资源根据与默认管理程序模式调度策略不同的受保护模式调度策略来分配。计算机系统利用分配到的物理处理器资源来部分地完成第一执行对象中所指示的工作。
计算机系统根据受保护模式调度策略来确定物理处理器资源的分配要在完全完成第一执行对象中所指示的工作之前转换到受保护模式调度域中的第二执行对象。计算机系统将上下文从第一执行对象切换至受保护模式中的第二执行对象而不转换至管理程序模式。
切换上下文包括将第一执行对象的状态持久存储在驻留在受保护模式调度域中的执行对象存储中。切换上下文还包括从执行对象存储中加载第二执行对象的状态。计算机系统在将上下文切换至第二执行对象后将物理处理器资源分配给受保护模式调度域中的受保护模式调度域的第二执行对象。计算机系统利用分配到的物理处理器资源来部分地完成第二执行对象中所指示的工作。
提供本概述是为了以精简的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的其他特征和优点将在随后的描述中阐述,并且部分地将从本说明书中显而易见,或可以通过本发明的实施来获知。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书变得更加显而易见,或可通过对下文中所述的本发明的实践来领会。
附图简述
为了描述可以获得本发明的上文所列举的及其他优点和特征的方式,将通过参考附图中所示的本发明的各具体实施例来呈现上文简要描述的本发明的更具体的描述。可以理解,这些附图只描绘了本发明的各典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释本发明,在附图中:
图1A示出了方便将处理器资源的调度配置成以受保护模式进行以便从管理程序模式中分散调度责任的示例计算机体系结构的一部分。
图1B示出了以受保护模式调度处理器资源的消耗以便从管理程序模式中分散调度责任的示例计算机体系结构的一部分。
图1C示出了描绘虚拟处理器的其他组件的示例计算机体系结构的一部分。
图1D示出了描绘受保护模式调度域中的多个虚拟处理器的示例计算机体系结构的一部分。
图1E示出了描绘用于在受保护模式调度域之间进行同步的组件的示例计算机体系结构的一部分。
图2A和2B示出了向受保护模式调度域提供特征的示例管理程序模式基础结构。
图3示出了示例用户模式调度体系结构。
图4示出了用于将处理器资源的调度配置成以受保护模式进行的示例方法的流程图。
图5示出了用于以受保护模式调度处理器资源的示例方法的流程图。
详细描述
本发明涉及用于受保护模式操作调度的方法、系统和计算机程序产品。在某些实施例中,计算机系统将处理器资源的调度配置成以受保护(例如,用户)模式进行以便从管理(例如,内核)模式中分散调度责任。计算机系统创建以操作系统的受保护模式操作的受保护模式调度域。创建受保护模式调度域包括创建虚拟处理器。虚拟处理器映射物理处理器的至少一部分以供受保护模式调度域的执行对象使用。
虚拟处理器包括受保护模式虚拟处理器。受保护模式虚拟处理器被配置成处理管理程序模式通知并分派执行对象。虚拟处理器还包括管理程序模式虚拟处理器。管理程序模式虚拟处理器被配置成保留物理处理器的至少一部分以供受保护模式调度域的执行对象使用。
创建受保护模式调度域还包括加载与默认管理程序模式调度策略不同的至少一个受保护模式调度策略。该至少一个受保护模式调度策略用于在虚拟处理器上多路复用受保护模式调度域的执行对象。创建受保护模式调度域还包括创建被配置成存储受保护模式调度域的执行对象的状态的执行对象存储。该执行对象存储方便在受保护模式调度域中的不同执行对象之间切换上下文。
在其他实施例中,计算机系统以受保护模式调度处理器资源的消耗以便从管理程序模式中分散调度责任。计算机系统将物理处理器资源分配给受保护模式调度域中的受保护模式调度域的第一执行对象。物理处理器资源根据与默认管理程序模式调度策略不同的受保护模式调度策略来分配。计算机系统利用分配到的物理处理器资源来部分地完成第一执行对象中所指示的工作。
计算机系统根据受保护模式调度策略来确定物理处理器资源的分配要在完全完成第一执行对象中所指示的工作之前转换到受保护模式调度域中的第二执行对象。计算机系统将上下文从第一执行对象切换至受保护模式中的第二执行对象而不转换至管理程序模式。
切换上下文包括将第一执行对象的状态持久存储在驻留在受保护模式调度域中的执行对象存储中。切换上下文还包括从执行对象存储中加载第二执行对象的状态。计算机系统在将上下文切换至第二执行对象后将物理处理器资源分配给受保护模式调度域中的受保护模式调度域的第二执行对象。计算机系统利用分配到的物理处理器资源来部分地完成第二执行对象中所指示的工作。
本发明的各实施例可以包括或利用包含计算机硬件的专用或通用计算机,这将在下文中更详细地讨论。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种完全不同的计算机可读介质:物理存储介质和传输介质。
物理存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
对于本说明书和所附权利要求书,“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线、或硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的网络和/或数据链路。上面各项的组合也应该包括在计算机可读介质的范围内。
此外,应当理解,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动转移到物理存储介质(或者相反)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传送到计算机系统RAM和/或计算机系统处的较不易失的物理存储介质。由此,应当理解,物理存储介质可被包括在同样(或甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令包括例如使通用计算机、专用计算机或专用处理设备执行某一功能或一组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言等中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解的是,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可以在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实践。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备中。
在本说明书和以下权利要求书中,“执行对象”被定义为消耗资源并且在处理器上进行时间共享(多路复用)的工作负载抽象的实例。执行对象的示例包括:线程、琐事、纤程、承诺、待办事项等。
在本说明书和以下权利要求书中,“调度程序”、“调度算法”和“调度策略算法”被定义为用于在处理器上多路复用执行对象的组件集。调度程序、调度算法和调度策略算法能够实现各种不同类型的调度,包括:借用虚拟时间(“BVT”)调度、完全公平调度(“CFS”)、不同类型的循环调度、基于队列的调度(FIFO、多级等)、基于栈的调度(LIFO)、群调度、间隔调度、轮次分派等。
图1A示出了方便将处理器资源的调度配置成以受保护模式进行以便从管理程序模式中分散调度责任的计算机体系结构100的一部分。如图所示,计算机体系结构100包括处理器109(以及可能的一个或多个附加处理器)和操作系统101。操作系统101能够以受保护模式102(例如,用户模式)和管理程序模式103(例如,内核模式)执行应用。受保护模式102可限制程序访问物理处理器109的资源。另一方面,管理程序模式103具有对物理处理器109的资源的不受限访问。一个或多个功能选通对管理程序模式103的访问以准许受保护模式102中的程序转换至管理程序模式103以访问物理处理器109的资源。
由此,在操作系统101中执行的程序可以取决于程序指令来从受保护模式102转换至管理程序模式103以及从管理程序模式103转换至受保护模式102。管理程序模式103具有根据默认管理程序模式调度策略(例如,“BVT”调度)来在时间共享的基础上消耗物理处理器109的资源的默认管理程序模式执行对象格式(例如,线程)。
图4示出了用于将处理器资源的调度配置成以受保护模式进行的示例方法400的流程图。方法400将参考图1A所描绘的组件和数据来描述。
方法400包括创建以操作系统的受保护模式操作的受保护模式调度域的动作(动作401)。例如,操作系统101可以在受保护模式102中创建受保护模式调度域104。
创建受保护模式调度域包括创建虚拟处理器的动作,该虚拟处理器映射物理处理器的至少一部分以供受保护模式调度域的执行对象使用(动作402)。例如,操作系统101可创建虚拟处理器108。一般而言,虚拟处理器108从受保护模式调度域104中抽象出管理程序模式103的默认执行对象格式和调度程序。例如,虚拟处理器108映射资源分配112(物理处理器109的资源的一部分)以供受保护模式调度域104中的执行对象使用。
虚拟处理器108包括受保护模式虚拟处理器108P。受保护模式虚拟处理器108P被配置成处理来自管理程序模式103的管理程序模式通知并分派受保护模式调度域104中的执行对象。虚拟处理器108还包括管理程序模式虚拟处理器108S。管理程序模式虚拟处理器108S被配置成保留物理处理器109的至少一部分(例如,资源分配112)以供受保护模式调度域104的执行对象使用。
创建受保护模式调度域还包括加载与默认管理程序模式调度策略不同的至少一个受保护模式调度策略,该至少一个受保护模式调度策略用于在虚拟处理器上多路复用受保护模式调度域的执行对象(动作403)。例如,操作系统101可加载用于多路复用受保护模式调度域104中的执行对象的调度策略算法107。调度策略算法107实际上可以是与管理程序模式103的默认调度策略不同的任何调度策略,诸如例如调度、多级反馈队列调度、间隔调度、完全公平调度等。策略状态116可以是用于持久存储调度策略算法107的策略状态的数据结构。
创建受保护模式调度域还包括创建执行对象存储,该执行对象存储被配置成存储受保护模式调度域的执行对象的状态以便于在受保护模式调度域中的不同执行对象之间切换上下文(动作404)。例如,操作系统101可创建执行对象存储105,该执行对象存储105用于存储受保护模式调度域104的执行对象的状态以便于在受保护模式调度域104中的对象之间进行切换。受保护模式调度域104的执行对象(例如,待办事项)可以与管理程序模式103中所使用的执行对象(线程)不同。
在配置受保护模式调度域104后,物理处理器109的资源(例如,资源分配112)可以在受保护模式调度域104中的不同执行对象之间多路复用。图1B示出了以受保护模式调度处理器资源的消耗以便从管理程序模式中分散调度责任的示例计算机体系结构100的一部分。
如图1B所示,受保护模式调度域104还包括同步模块114。一般而言,受保护模式调度域104的组件准许诸如例如由于同步的阻塞/解除阻塞、产生或终止以及上下文切换等调度操作在进程中发生。同步模块114可被配置成用于指定类型的执行对象。在同步模块114和调度策略算法107之间可以存在固有关系,因为同步操作可以产生影响策略状态116的执行对象状态转换。同步模块114可以在创建保护模式调度域104期间或之后生成/加载,这至少部分地取决于要使用的执行对象的类型。
图5示出了用于以受保护模式调度处理器资源的示例方法500的流程图。方法500将参考图1B所描绘的组件和数据来描述。
方法500包括将物理处理器资源分配给受保护模式调度域中的受保护模式调度域的第一执行对象的动作,物理处理器资源根据与默认管理程序模式调度策略不同的受保护模式调度策略来分配(动作501)。例如,操作系统101可根据调度策略算法107来将资源分配112分配给执行对象131。方法500包括利用分配到的物理处理器资源来部分地完成第一执行对象中所指示的工作的动作(动作502)。例如,执行对象131可利用资源分配112来部分地完成执行对象131中所指示的工作。
方法500包括根据受保护模式调度策略来确定物理处理器资源的分配要在完全完成第一执行对象中所指示的工作之前转换到受保护模式调度域中的第二执行对象的动作(动作503)。例如,操作系统101可根据调度策略算法107来确定资源分配112要在完成执行对象131中所指示的工作之前转换到执行对象132。
方法500包括将上下文从第一执行对象切换至受保护模式中的第二执行对象而不转换至管理程序模式的动作(动作504)。例如,操作系统101可将上下文从执行对象131转换至受保护模式调度域104中的执行对象132而不切换至管理程序模式103。
切换上下文包括将第一执行对象的状态持久存储在执行对象存储中的动作,该执行对象存储驻留在受保护模式调度域中(动作505)。例如,在上下文切换时,执行对象131可具有执行对象(EO)状态133。同步模块114可将EO状态133持久存储在执行对象存储105中。切换上下文还包括从执行对象存储中加载第二执行对象的状态的动作(动作506)。例如,同步模块114可以从执行对象存储105中加载EO状态134。EO状态134可能先前已经在从执行对象132切换出上下文时持久存储。
方法500包括在将上下文切换至第二执行对象后将物理处理器资源分配给受保护模式调度域中的受保护模式调度域的第二执行对象的动作(动作507)。例如,操作系统101可以在将上下文切换至执行对象132后将资源分配112分配给受保护模式调度域104中的执行对象132。方法500包括利用分配到的物理处理器资源来部分地完成第二执行对象中所指示的工作的动作(动作508)。例如,可以利用资源分配112来部分地完成执行对象132中所指示的工作。
一般而言,受保护模式(例如,用户模式)调度从管理程序模式(例如,内核模式)中分散调度操作。该分散实质上产生减轻来自管理程序模式的很大一部分调度负担的两级调度基础结构。具有特权或涉及系统级资源的基本操作,诸如例如多路复用物理处理器以保留以及处理计时器中断等,在管理程序模式中提供(利用执行管理程序模式的对象格式/调度程序)。例如,管理程序虚拟处理器可以在管理程序模式中保留物理处理器资源。受保护模式调度域以受保护模式运行并且在虚拟处理器上多路复用执行对象。因此,以管理程序模式执行的大量调度操作改为以受保护模式执行。
此外,应用的工作可以使用不同于管理程序模式103的默认执行对象的执行对象和/或使用不同于管理程序模式130的默认调度程序的调度程序来执行。例如,受保护模式调度域可以配置有更好地适合指定应用的工作的调度程序和执行对象格式。
本发明的各实施例还包括在受保护调度域中使用管理程序模式的执行对象格式和/或管理程序模式的调度算法。例如,执行对象131和132可具有管理程序模式103中所使用的执行对象格式(例如,线程)以及可以在管理程序模式103中使用的调度策略算法107(例如,BVT)。即使在该环境中,分散的调度仍然减轻管理程序模式103的一部分调度负担。
图1C示出了描绘虚拟处理器的其他组件的示例计算机体系结构100的一部分。受保护模式虚拟处理器108P实质上模拟物理处理器109的行为。受保护模式虚拟处理器108可以对异步事件使用两种通知模型,即中断和完成端口范例。上下文切换在分派器126中进行而不涉及对管理程序模式103的任何调用。分派器126可将内容切换至例如在可运行队列的顶端的执行对象。
一般而言,通知句柄负责处理操作系统101生成的通知请求,诸如例如,计时器和受保护模式调度域104之外的同步。受保护模式调度域104可以为抢先或工作负载设置计时器。管理程序模式103在计时器期满时可以引发虚拟中断。计时器通知句柄123处理从期满的计时器产生的虚拟中断。受保护模式调度域104之外的同步事件也可引发虚拟中断。同步通知句柄124可处理从同步事件引发的虚拟中断。
非阻塞应用程序二进制接口(“ABI”)调用可导致虚拟处理器108停止等待操作完成。由此,可以在管理程序模式103中发出这些类型的调用,从而在完成时引发中断。回调通知句柄125可处理从非阻塞ABI调用产生的虚拟中断。
中断向量122存储用于计时器通知句柄123、同步通知句柄124和回调通知句柄125的存储器地址或对中断向量表(包含存储器地址)的索引。由此,在接收到虚拟中断时,控制器121可引用中断向量122以便响应于该虚拟中断来执行适当的处理程序。管理程序模式虚拟处理器108S可通过虚拟中断接口136向受保护模式虚拟处理器108P传递中断。
完成数据可通过完成端口接口128从管理程序模式虚拟处理器108S传递至受保护模式调度域104。在使用完成端口范例时,通知句柄用虚拟中断来通知分派器126。作为响应,停止当前执行对象的执行并且将控制传递至调度策略算法107。当异步事件被配置成传递至完成端口接口138时,在该事件完成时管理程序模式虚拟处理器108S可使该事件在其通知队列中排队。
调度策略算法107可以在出现下一个机会时处理队列中的待办的已完成事件。抢先可以不发生并且正在运行的执行对象的执行继续而不从已完成的事件中断。在初始化进程期间,调度策略算法107配置将在不同类型的事件中利用的通知机制。
由此,管理程序模式虚拟处理器108S可以在异步事件完成时调用K-VP是对于控制器121或者使事件在完成端口中入队。控制器121实际上在当前执行对象的栈中运行。调度策略算法107然后可以在发起通知后管理栈和上下文切换。调度策略算法107可以在处理通知或执行执行对象状态变更代码时禁用/启用虚拟中断。可以实现用于使故障翻两倍和三倍的类似模型以处理异常。
一般而言,保留物理处理器调度处理用于分配虚拟处理器的至少两种方式。进程可以保留物理处理器资源(例如,物理处理器109的资源)并且附加实现管理程序模式虚拟处理器(例如,108S)的受保护模式调度程序分支线。受保护模式调度程序分支线创建基于内核的执行对象(例如,线程)并将其作为虚拟处理器(例如,108)展示给进程。另外,受保护模式调度程序分支线生成虚拟中断以通知受保护模式虚拟处理器控制器(例如,121)。虚拟处理器消耗分配给所述保留的所有资源。由此,使用保留使用模式,由管理程序模式展示单个虚拟处理器。
在某些实施例中,不利用明确的保留并且改为向默认保留请求虚拟处理器。在这些实施例中,基于策略来为表示管理程序模式默认调度程序的管理程序模式执行对象(例如,内核线程)分配资源。例如,如果应用循环算法,则管理程序模式虚拟处理器可以在默认保留中与所有其他管理程序模式执行对象和在默认保留中操作的管理程序模式虚拟处理器同等地共享。管理程序模式调度程序策略可被扩展成结合受保护模式调度程序分支线功能,诸如例如向进程展示虚拟处理器以及生成虚拟中断。
受保护模式调度域可以封装多个虚拟处理器。根据应用的要求,虚拟处理器可以在相同处理器的不同物理处理器中分配。不同的虚拟处理器也可用不同的保留操作来分配。在某些实施例中,多个虚拟处理器使用群保留来分配。除了资源要求之外,保留指定并发因子。管理程序模式对多个物理处理器保留资源并且分配它们以使得虚拟处理器在所有进程中同时运行。然而,分配来自默认保留和明确保留的虚拟处理器的混合也是可能的。
图1D示出了描绘受保护模式调度域中的多个虚拟处理器的示例计算机体系结构100的一部分。如图所示,受保护模式调度域104包括受保护模式虚拟处理器108P和128P。受保护模式虚拟处理器108P和128P分别利用对应的调度策略算法107和127。调度策略算法107和127各自将执行对象状态持久存储在执行对象存储105中并将其自己对应的策略状态持久存储在策略状态116中。
可使用受保护模式调度域104的语义来组织执行对象存储105和策略存储116并且在调度策略算法107和127之间共享信息。例如,如果策略支持虚拟处理器之间的动作负载平衡,则可使用公共存储。然而,如果策略支持对执行对象的亲密化(affinitization),则可使用单独的存储。实际上,相同的调度程序可能在所有虚拟处理器上运行,或者专用调度程序可能在不同的虚拟处理器上运行,这取决于工作负载的要求。
图1E示出了描绘用于在受保护模式调度域之间进行同步的组件的示例计算机体系结构100的一部分。如图所示,进程181和进程182正以受保护模式102运行。进程181包括受保护模式调度域104和144、受保护模式虚拟处理器108P和148P以及同步层141。进程182包括受保护模式调度域154和受保护模式虚拟处理器158P。管理程序模式虚拟处理器108S、148S和158S以管理程序模式103运行并且分别对应于虚拟处理器108P、148P和158P。管理程序模式103还包括同步层142。
受保护模式调度域中的同步操作由受保护模式调度程序处理且不涉及管理程序模式。例如,受保护模式调度域104、144或154中的同步可以在不引用外部同步层的情况下处理。在某些实施例中,执行对象在受保护模式调度程序之间的同步也在不涉及管理程序模式的情况下执行。例如,受保护模式调度域104和144之间的同步可以在进程182中的同步层141处处理。
在其他实施例中,还执行执行对象在进程之间的同步。例如,受保护模式调度域104和144中的任一个和受保护模式调度域154之间的同步可以在管理程序模式103中的同步层142处处理。
可使用通道事件来方便同步。通道事件是来自特定的受保护模式调度域的两个执行对象参与的事件。例如,在进程181和进程182之间的通道中,来自受保护模式调度域144的执行对象和来自受保护模式调度域154的执行对象可参与支持进程间通信的通道事件。进程间通道事件可被实现为管理程序模式103中的同步层142。当用信号通知通道事件时,管理程序模式103通知管理程序模式虚拟处理器,该虚拟处理器又引发虚拟中断以便将该事件通知给受保护模式虚拟处理器(例如,148或158)。
类似地,相同的操作可能在相同进程中的受保护模式调度域之间发生。例如,受保护模式调度域104和144可能需要同步操作。通道事件可用于补偿在受保护模式调度域104和144之间使用的可能不同的执行对象格式。进程内通道事件可被实现为进程181中的同步层141。同步层141可以在虚拟处理器(例如,108或148)中创建将为新事件通知的虚拟中断。受保护模式调度程序可以在其自己的同步模型的上下文中应用通道事件。
管理程序模式调度基础结构能够以各种不同的方式灵活实现以便向受保护模式提供用于创建受保护模式调度域的适当特征。图2A和2B示出了向受保护模式调度域提供特征的示例管理程序模式基础结构200和250。
如图所示,管理程序模式基础结构200包括分派器201、默认调度策略202、管理程序模式虚拟处理器203、管理程序模式调度策略204、同步205、执行对象存储206和通道事件同步207。所描绘的组件中的每一个都以管理程序(例如,内核)模式231操作。管理程序模式232可使用默认执行对象(例如,线程)来执行操作。
管理程序模式基础结构200可使用专用的保留来处理管理程序模式执行对象(例如,内核线程)。管理程序模式执行对象存储206和同步205操作与明确的管理程序模式调度策略204相关联。另一方面,默认调度策略202用于分配虚拟处理器203(例如,作出资源保留)并且多路复用。由此,分派器201使用默认调度策略202来分配虚拟处理器203并且在它们之间多路复用,并且使用管理程序模式调度策略204来处理与管理程序模式执行对象存储206的通信和同步205。在管理程序模式基础结构200中,管理程序模式231和默认调度策略202可以针对各自的工作负载的特性来专门设计。
如图所示,管理程序模式基础结构250包括分派器201、默认调度策略202、管理程序模式虚拟处理器203、同步205、执行对象存储206和通道事件同步207。所描绘的组件中的每一个都以管理程序(例如,内核)模式231操作。管理程序模式基础结构250使用默认调度策略202来处理管理程序模式执行对象和分配给默认保留的虚拟处理器两者。
图3示出了示例用户模式调度体系结构300。用户模式调度体系结构300描绘可以如何组合计算机体系结构100中的各种组件以提供对执行对象的用户模式调度的示例。如图所示,用户模式调度程序304包括执行对象存储305、策略状态316、会计309、策略算法307和同步(域)308。用户模式调度程序304可将处理器资源分配给执行对象181或其他执行对象。同步(域)308可以协调用户模式调度程序304中的执行对象之间的状态转换。
用户虚拟处理器321U被配置成处理来自内核模式303的内核模式通知并分派用户模式调度程序304中的执行对象。用户虚拟处理器321U可模拟物理处理器109的行为。用户虚拟处理器321U可以对异步事件使用两种通知模型,即中断和完成端口范例中的任一种。上下文切换在用户模式分派器311中进行而不涉及对管理程序模式103的任何调用。分派器311可将内容切换至在可运行队列的顶端的执行对象(例如,待办事项)。
一般而言,通知句柄312负责处理操作系统生成的通知请求,诸如例如,计时器和用户模式调度程序304之外的同步。用户模式调度程序304可以为抢先或工作负载设置计时器。内核模式303在计时器期满时可以引发虚拟中断。用户模式调度程序304之外的同步事件也可引发虚拟中断,在内核模式303中发出非阻塞应用程序二进制接口(“ABI”)调用,从而在完成时引发中断。通知句柄312可处理这些类型的中断中的任一种。
中断向量314存储用于通知句柄312的存储器地址或对中断向量表(包含存储器地址)的索引。由此,在接收到虚拟中断时,虚拟处理器控制器313可引用中断向量314以便响应于该虚拟中断来执行适当的处理程序。
内核分派器323可根据默认调度策略或默认调度策略和内核调度策略324(例如,如在管理程序模式体系结构200和250中)的组合来在内核虚拟处理器321K和内核线程之间分派。
通道同步(进程内)318可以在用户模式调度程序304和具有与用户模式调度程序304的相同进程中的其他用户模式调度程序之间同步。通道同步(进程间)328可以在用户模式调度程序304和不同进程中的用户模式调度程序之间同步。
会计309和系统帐户322互操作以管理会计功能,诸如例如物理处理器资源使用情况。
因此,受保护模式(例如,用户模式)调度能够方便开发通过使用工作负载专用执行抽象来更好地反映工作负载的需求的编程框架。另外,定义针对可用硬件资源和工作负载要求的特性来调整的调度策略的能力具有更好的系统伸缩特性的潜力。此外,上述受保护模式调度通过将大部分调度功能从管理程序模式(例如,内核模式)移至应用来分散调度责任。
在不偏离本发明的精神或必要特征的情况下,本发明能以其他具体形式来实现。所描述的实施例在各个方面都只作为说明性的,而不是限制性的。因此,本发明的范围由所附权利要求书而不是由前面的描述指出。在权利要求的等效方案内的含义和范围内的所有更改都将包括在它们的范围内。
Claims (20)
1.一种计算机系统处的用于将处理器资源的调度配置成以受保护模式进行以便从管理程序模式中分散调度责任的方法,所述计算机系统包括物理处理器(109)和具有受保护模式(102)和管理程序模式(103)的操作系统(101),其中受保护模式(102)限制程序访问以受保护模式(102)运行的程序的物理处理器资源,管理程序模式(103)具有对物理处理器资源的不受限访问,一个或多个功能选通对管理程序模式(103)的访问以准许受保护模式(102)中的程序转换至管理程序模式(103)以访问物理处理器资源,其中在所述操作系统(101)中执行的程序能取决于程序指令来从受保护模式(102)转换至管理程序模式(103)以及从管理程序模式(103)转换至受保护模式(102),管理程序模式(103)具有根据默认管理程序模式调度策略来在时间共享的基础上消耗物理处理器资源的默认管理程序模式执行对象格式,所述方法包括:
创建以所述操作系统(101)的受保护模式(102)操作的受保护模式调度域(104)的动作,创建所述受保护模式调度域(104)包括:
创建虚拟处理器(108),所述虚拟处理器(10)映射物理处理器(1120)的至少一部分以供所述受保护模式调度域(104)的执行对象使用,所述虚拟处理器包括:
受保护模式虚拟处理器(108P),所述受保护模式虚拟处理器被配置成处理管理程序模式通知并分派执行对象;以及
管理程序模式虚拟处理器(108S),所述管理程序模式虚拟处理器被配置成保留所述物理处理器的至少一部分以供所述受保护模式调度域的执行对象使用;
加载与所述默认管理程序模式调度策略不同的至少一个受保护模式调度策略(107),所述至少一个受保护模式调度策略(107)用于在所述虚拟处理器上多路复用所述受保护模式调度域的执行对象;以及
创建执行对象存储(105),所述执行对象存储(105)被配置成存储所述受保护模式调度域(104)的执行对象的状态以便于在所述受保护模式调度域中的不同执行对象之间切换上下文。
2.如权利要求1所述的方法,其特征在于,受保护模式包括用户模式,管理程序模式包括内核模式。
3.如权利要求1所述的方法,其特征在于,所述创建受保护模式调度域的动作包括在所述操作系统的用户模式中创建用户模式调度域的动作。
4.如权利要求1所述的方法,其特征在于,所述创建虚拟处理器的动作包括创建映射物理处理器资源以供用户模式调度域中的执行对象使用的虚拟处理器的动作。
5.如权利要求2所述的方法,其特征在于,所述创建映射物理处理器资源以供用户模式调度域中的执行对象使用的虚拟处理器的动作包括创建映射物理处理器资源以供所述用户模式调度域中的待办事项使用的虚拟处理器的动作。
6.如权利要求1所述的方法,其特征在于,所述创建以所述操作系统的受保护模式操作的受保护模式调度域的动作包括在已经包括一个或多个其他受保护模式调度域的进程中创建受保护模式调度域的动作。
7.如权利要求6所述的方法,其特征在于,还包括:
将所述受保护模式调度域和所述一个或多个其他受保护模式调度域之间的通道事件配置成方便所述进程中的受保护模式调度域的进程内同步且不必转换至管理程序模式的动作。
8.如权利要求6所述的方法,其特征在于,所述加载与所述默认管理程序模式调度策略不同的至少一个受保护模式调度策略的动作包括加载与所述一个或多个其他受保护模式调度域不同的至少一个受保护模式调度策略。
9.如权利要求1所述的方法,其特征在于,还包括:
所述管理程序模式虚拟处理器根据管理程序模式默认调度策略来保留所述物理处理器的至少一部分的动作。
10.一种计算机系统处的用于在受保护模式中调度处理器资源的消耗以便从管理程序模式中分散调度责任的方法,所述计算机系统包括物理处理器(109)和具有受保护模式(102)和管理程序模式(103)的操作系统(101),其中受保护模式(102)限制程序访问以受保护模式(102)运行的程序的物理处理器资源,管理程序模式(103)具有对物理处理器资源的不受限访问,一个或多个功能选通对管理程序模式(103)的访问以准许受保护模式(102)中的程序转换至管理程序模式(103)以访问物理处理器资源,其中在所述操作系统(101)中执行的程序能取决于程序指令来从受保护模式(102)转换至管理程序模式(103)以及从管理程序模式(103)转换至受保护模式(102),管理程序模式(103)具有根据默认管理程序模式调度策略来在时间共享的基础上消耗物理处理器资源的默认管理程序模式执行对象格式,所述方法包括:
将物理处理器资源分配(112)给受保护模式调度域(104)中的受保护模式调度域的第一执行对象(131)的动作,物理处理器资源是根据与所述默认管理程序模式调度策略不同的受保护模式调度策略(107)来分配的;
利用分配到的物理处理器资源(112)来部分地完成所述第一执行对象(131)中所指示的工作的动作;
根据所述受保护模式调度策略(107)来确定物理处理器资源的分配(112)要在完全完成所述第一执行对象(131)中所指示的工作之前转换到所述受保护模式调度域中的第二执行对象(132)的动作;
将上下文从所述第一执行对象切换至受保护模式中的第二执行对象而不转换至管理程序模式的动作,包括:
将第一执行对象的状态(133)持久存储在执行对象存储(105)中的动作,所述执行对象存储(105)驻留在所述受保护模式调度域(104)中;以及
从所述执行对象存储(105)中加载所述第二执行对象的状态(134)的动作;
在将上下文切换至所述第二执行对象(132)后将物理处理器资源分配(112)给所述受保护模式调度域(104)中的受保护模式调度域的第二执行对象(132)的动作;以及
利用分配到的物理处理器资源(112)来部分地完成所述第二执行对象中所指示的工作的动作。
11.如权利要求10所述的方法,其特征在于,受保护模式包括用户模式,管理程序模式包括内核模式。
12.如权利要求11所述的方法,其特征在于,内核模式使用线程,所述受保护模式调度域是使用除了线程之外的执行对象格式的用户模式调度域。
13.如权利要求1所述的方法,其特征在于,所述将物理处理器资源分配给受保护模式调度域中的受保护模式调度域的第一执行对象的动作包括将物理处理器资源分配给所述操作系统的用户模式中的执行对象的动作。
14.如权利要求1所述的方法,其特征在于,将物理处理器资源分配给第一执行对象包括分配由内核模式虚拟处理器保留的物理处理器资源。
15.如权利要求1所述的方法,其特征在于,还包括:
使用所述受保护模式调度域和一个或多个其他受保护模式调度域之间的通道事件来方便进程中的受保护模式调度域的进程内同步且不必转换至管理程序模式的动作。
16.一种计算机系统,所述计算机系统包括:
一个或多个物理处理器;
系统存储器;
一种或多种其上存储有表示具有用户模式和内核模式的操作系统的计算机可执行指令的物理存储介质,所述指令当在所述处理器中的一个处执行时使得所述计算机系统执行以下操作:
创建以用户模式操作的用户模式调度域以便从内核模式中分散调度,创建所述用户模式调度域包括:
创建虚拟处理器,所述虚拟处理器映射所述一个或多个物理处理器的至少一部分以供所述用户模式调度域中的用户模式执行对象使用,所述虚拟处理器包括:
受保护模式虚拟处理器,所述受保护模式虚拟处理器被配置成处理内核模式通知并分派执行对象;以及
管理程序模式虚拟处理器,所述管理程序模式虚拟处理器被配置成保留所述一个或多个物理处理器的至少一部分以供所述用户模式执行对象使用;
加载用于在所述虚拟处理器上多路复用所述用户模式调度域中的执行对象的用户模式调度策略;以及
创建用户模式执行对象存储,所述用户模式执行对象存储被配置成存储用户模式执行对象的状态以便于在所述用户模式调度域中的不同用户模式执行对象之间切换上下文而不转换至内核模式,以使得内核模式不必存储关于用户模式执行对象的上下文信息;以及
在创建所述用户模式调度域后:
将由所述内核模式虚拟处理器保留的物理处理器资源分配给第一用户模式执行对象,所述物理处理器资源是根据所述用户模式调度策略来分配的;
利用分配到的物理处理器资源来部分地完成所述第一执行对象中所指示的工作;
根据所述用户模式调度策略来确定由所述内核模式虚拟处理器保留的物理处理器资源的分配要在完全完成所述第一用户模式执行对象中所指示的工作之前转换至第二用户模式执行对象;
将上下文从所述第一用户模式执行对象切换至所述用户模式中的第二用户模式执行对象而不转换至内核模式,包括:
将所述第一用户模式执行对象的状态持久存储在所述用户模式执行对象存储中的动作;以及
从所述用户模式执行对象存储中加载所述第二执行对象的状态的动作;
在将上下文切换至所述第二执行对象后将物理处理器资源分配给所述用户模式调度域中的第二用户模式执行对象;以及
利用分配到的物理处理器资源来部分地完成所述第二用户模式执行对象中所指示的工作。
17.如权利要求16所述的系统,其特征在于,用户模式调度算法与内核模式调度算法相同且用户模式执行对象是线程。
18.如权利要求16所述的系统,其特征在于,所述用户模式调度算法与内核模式调度算法不同。
19.如权利要求16所述的系统,其特征在于,所述内核模式执行对象是线程且所述用户模式执行对象是待办事项。
20.如权利要求16所述的系统,其特征在于,还包括:
在被执行时使所述计算机系统执行以下操作的计算机可执行指令:配置所述受保护模式调度域和与所述受保护模式调度域相同的进程中的一个或多个其他受保护模式调度域之间的通道事件,以方便所述进程中的受保护模式调度域的进程内同步且不必转换至管理程序模式;以及
在被执行时使所述计算机系统执行以下操作的计算机可执行指令:配置所述受保护模式调度域和其他进程中的另外的一个或多个其他受保护模式调度域之间的通道事件,以方便受保护模式调度域的进程间同步。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/163,726 US8276145B2 (en) | 2008-06-27 | 2008-06-27 | Protected mode scheduling of operations |
US12/163,726 | 2008-06-27 | ||
PCT/US2009/047275 WO2009158220A2 (en) | 2008-06-27 | 2009-06-12 | Protected mode scheduling of operations |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102077209A true CN102077209A (zh) | 2011-05-25 |
CN102077209B CN102077209B (zh) | 2013-11-20 |
Family
ID=41445221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801248069A Active CN102077209B (zh) | 2008-06-27 | 2009-06-12 | 受保护模式操作调度 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8276145B2 (zh) |
EP (1) | EP2316091B1 (zh) |
JP (1) | JP5367816B2 (zh) |
CN (1) | CN102077209B (zh) |
CA (1) | CA2724853C (zh) |
ES (1) | ES2659872T3 (zh) |
WO (1) | WO2009158220A2 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120017213A1 (en) * | 2010-07-13 | 2012-01-19 | Microsoft Corporation | Ultra-low cost sandboxing for application appliances |
CN103136468A (zh) * | 2011-12-12 | 2013-06-05 | 微软公司 | 协助用于硬件保护的应用程序的系统服务请求交互 |
CN103597894A (zh) * | 2011-06-04 | 2014-02-19 | 阿尔卡特朗讯 | 移动收发器、基站收发器、数据服务器以及相关装置、方法和计算机程序 |
CN106462508A (zh) * | 2014-04-28 | 2017-02-22 | 阿姆Ip有限公司 | 访问控制与代码调度 |
US9588803B2 (en) | 2009-05-11 | 2017-03-07 | Microsoft Technology Licensing, Llc | Executing native-code applications in a browser |
US10289435B2 (en) | 2011-05-16 | 2019-05-14 | Microsoft Technology Licensing, Llc | Instruction set emulation for guest operating systems |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8650396B2 (en) * | 2009-06-11 | 2014-02-11 | Hewlett-Packard Development Company, L.P. | Permission-based dynamically tunable operating system kernel |
US8799912B2 (en) * | 2009-07-22 | 2014-08-05 | Empire Technology Development Llc | Application selection of memory request scheduling |
US8839255B2 (en) * | 2009-07-23 | 2014-09-16 | Empire Technology Development Llc | Scheduling of threads by batch scheduling |
US10210008B2 (en) * | 2009-07-31 | 2019-02-19 | Nec Corporation | Control server, service providing system, and method of providing a virtual infrastructure |
US9268611B2 (en) * | 2010-09-25 | 2016-02-23 | Intel Corporation | Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores |
US9032146B2 (en) | 2010-11-30 | 2015-05-12 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Dynamic use of raid levels responsive to workload requirements |
US8565685B2 (en) * | 2011-01-28 | 2013-10-22 | Nokia Corporation | Utilization-based threshold for choosing dynamically between eager and lazy scheduling strategies in RF resource allocation |
US9413538B2 (en) | 2011-12-12 | 2016-08-09 | Microsoft Technology Licensing, Llc | Cryptographic certification of secure hosted execution environments |
JP5936041B2 (ja) * | 2012-03-07 | 2016-06-15 | 日本電気株式会社 | マルチプロセッサ装置、スケジューリング方法、および、スケジューリングプログラム |
FR2997773B1 (fr) * | 2012-11-06 | 2016-02-05 | Centre Nat Rech Scient | Procede d'ordonnancement avec contraintes d'echeance, en particulier sous linux, realise en espace utilisateur. |
GB2519080B (en) | 2013-10-08 | 2021-04-14 | Arm Ip Ltd | Scheduling function calls |
US9552223B2 (en) * | 2014-09-30 | 2017-01-24 | International Business Machines Corporation | Post-return asynchronous code execution |
US9367344B2 (en) * | 2014-10-08 | 2016-06-14 | Cisco Technology, Inc. | Optimized assignments and/or generation virtual machine for reducer tasks |
US9846589B2 (en) | 2015-06-04 | 2017-12-19 | Cisco Technology, Inc. | Virtual machine placement optimization with generalized organizational scenarios |
US10379904B2 (en) * | 2016-08-31 | 2019-08-13 | Intel Corporation | Controlling a performance state of a processor using a combination of package and thread hint information |
US11372649B2 (en) | 2019-06-24 | 2022-06-28 | Microsoft Technology Licensing, Llc | Flow control for multi-threaded access to contentious resource(s) |
US11029968B1 (en) * | 2019-07-31 | 2021-06-08 | Facebook Technologies, Llc | Operating system with a single kernel stack per processor |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020046230A1 (en) * | 1998-04-29 | 2002-04-18 | Daniel J. Dieterich | Method for scheduling thread execution on a limited number of operating system threads |
US20020073129A1 (en) * | 2000-12-04 | 2002-06-13 | Yu-Chung Wang | Integrated multi-component scheduler for operating systems |
US20040186876A1 (en) * | 2003-03-18 | 2004-09-23 | Hob Electronic Gmbh & Co. Kg | Processor system operable in a supervisor mode and a user mode |
CN1549964A (zh) * | 2002-01-04 | 2004-11-24 | 管理计算系统中协处理器的计算资源的方法和系统 | |
US7089557B2 (en) * | 2001-04-10 | 2006-08-08 | Rusty Shawn Lee | Data processing system and method for high-efficiency multitasking |
US7225446B2 (en) * | 2001-02-20 | 2007-05-29 | Pts Corporation | Context preservation |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5179702A (en) | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
US5522075A (en) * | 1991-06-28 | 1996-05-28 | Digital Equipment Corporation | Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces |
JPH0954699A (ja) | 1995-08-11 | 1997-02-25 | Fujitsu Ltd | 計算機のプロセススケジューラ |
US6766515B1 (en) | 1997-02-18 | 2004-07-20 | Silicon Graphics, Inc. | Distributed scheduling of parallel jobs with no kernel-to-kernel communication |
US6076174A (en) | 1998-02-19 | 2000-06-13 | United States Of America | Scheduling framework for a heterogeneous computer network |
US7065762B1 (en) | 1999-03-22 | 2006-06-20 | Cisco Technology, Inc. | Method, apparatus and computer program product for borrowed-virtual-time scheduling |
JP2001117786A (ja) | 1999-10-19 | 2001-04-27 | Nec Corp | プロセススケジューリング装置およびプロセススケジューリング方法 |
US7222218B2 (en) | 2002-10-22 | 2007-05-22 | Sun Microsystems, Inc. | System and method for goal-based scheduling of blocks of code for concurrent execution |
US7346902B2 (en) | 2002-10-22 | 2008-03-18 | Sun Microsystems, Inc. | System and method for block-based concurrentization of software code |
US20040244003A1 (en) | 2003-05-30 | 2004-12-02 | Vidiator Enterprises Inc. | Apparatus and method for task scheduling for media processing |
US8205200B2 (en) | 2005-11-29 | 2012-06-19 | Intel Corporation | Compiler-based scheduling optimization hints for user-level threads |
-
2008
- 2008-06-27 US US12/163,726 patent/US8276145B2/en active Active
-
2009
- 2009-06-12 EP EP09770754.1A patent/EP2316091B1/en active Active
- 2009-06-12 WO PCT/US2009/047275 patent/WO2009158220A2/en active Application Filing
- 2009-06-12 CN CN2009801248069A patent/CN102077209B/zh active Active
- 2009-06-12 ES ES09770754.1T patent/ES2659872T3/es active Active
- 2009-06-12 CA CA2724853A patent/CA2724853C/en active Active
- 2009-06-12 JP JP2011516435A patent/JP5367816B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020046230A1 (en) * | 1998-04-29 | 2002-04-18 | Daniel J. Dieterich | Method for scheduling thread execution on a limited number of operating system threads |
US20020073129A1 (en) * | 2000-12-04 | 2002-06-13 | Yu-Chung Wang | Integrated multi-component scheduler for operating systems |
US7225446B2 (en) * | 2001-02-20 | 2007-05-29 | Pts Corporation | Context preservation |
US7089557B2 (en) * | 2001-04-10 | 2006-08-08 | Rusty Shawn Lee | Data processing system and method for high-efficiency multitasking |
CN1549964A (zh) * | 2002-01-04 | 2004-11-24 | 管理计算系统中协处理器的计算资源的方法和系统 | |
US20040186876A1 (en) * | 2003-03-18 | 2004-09-23 | Hob Electronic Gmbh & Co. Kg | Processor system operable in a supervisor mode and a user mode |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9588803B2 (en) | 2009-05-11 | 2017-03-07 | Microsoft Technology Licensing, Llc | Executing native-code applications in a browser |
US10824716B2 (en) | 2009-05-11 | 2020-11-03 | Microsoft Technology Licensing, Llc | Executing native-code applications in a browser |
US20120017213A1 (en) * | 2010-07-13 | 2012-01-19 | Microsoft Corporation | Ultra-low cost sandboxing for application appliances |
US9323921B2 (en) * | 2010-07-13 | 2016-04-26 | Microsoft Technology Licensing, Llc | Ultra-low cost sandboxing for application appliances |
US10289435B2 (en) | 2011-05-16 | 2019-05-14 | Microsoft Technology Licensing, Llc | Instruction set emulation for guest operating systems |
CN103597894A (zh) * | 2011-06-04 | 2014-02-19 | 阿尔卡特朗讯 | 移动收发器、基站收发器、数据服务器以及相关装置、方法和计算机程序 |
CN103597894B (zh) * | 2011-06-04 | 2018-10-16 | 阿尔卡特朗讯 | 移动收发器、基站收发器、数据服务器以及相关装置、方法 |
CN103136468A (zh) * | 2011-12-12 | 2013-06-05 | 微软公司 | 协助用于硬件保护的应用程序的系统服务请求交互 |
CN103136468B (zh) * | 2011-12-12 | 2016-08-03 | 微软技术许可有限责任公司 | 协助用于硬件保护的应用程序的系统服务请求交互 |
CN106462508A (zh) * | 2014-04-28 | 2017-02-22 | 阿姆Ip有限公司 | 访问控制与代码调度 |
CN106462508B (zh) * | 2014-04-28 | 2020-07-07 | 阿姆Ip有限公司 | 访问控制与代码调度 |
US10891146B2 (en) | 2014-04-28 | 2021-01-12 | Arm Ip Limited | Access control and code scheduling |
Also Published As
Publication number | Publication date |
---|---|
WO2009158220A2 (en) | 2009-12-30 |
EP2316091A4 (en) | 2014-08-27 |
CA2724853A1 (en) | 2009-12-30 |
ES2659872T3 (es) | 2018-03-19 |
EP2316091A2 (en) | 2011-05-04 |
US20090328058A1 (en) | 2009-12-31 |
WO2009158220A3 (en) | 2010-04-15 |
JP5367816B2 (ja) | 2013-12-11 |
CN102077209B (zh) | 2013-11-20 |
US8276145B2 (en) | 2012-09-25 |
CA2724853C (en) | 2016-05-24 |
JP2011526040A (ja) | 2011-09-29 |
EP2316091B1 (en) | 2017-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102077209B (zh) | 受保护模式操作调度 | |
US6732138B1 (en) | Method and system for accessing system resources of a data processing system utilizing a kernel-only thread within a user process | |
US9189291B2 (en) | Sharing a kernel of an operating system among logical partitions | |
Bode et al. | The portable batch scheduler and the maui scheduler on linux clusters | |
US7496915B2 (en) | Dynamic switching of multithreaded processor between single threaded and simultaneous multithreaded modes | |
CN100410882C (zh) | 用于虚拟机中的集中式软件管理的系统和方法 | |
US9201689B2 (en) | Software emulation of massive hardware threading for tolerating remote memory references | |
CN100570564C (zh) | 将用户模式线程配置为接近禁止中断优先级的方法和系统 | |
US20070288941A1 (en) | Sharing kernel services among kernels | |
CN102193833A (zh) | 资源管理器中空闲资源的高效利用 | |
CN102375761A (zh) | 业务管理方法和装置、以及设备 | |
EP1927049A1 (en) | Real-time threading service for partitioned multiprocessor systems | |
WO2003019360A2 (en) | System for yielding to a processor | |
CN101132329A (zh) | 移动虚拟环境系统 | |
CN103793255A (zh) | 可配置的多主模式多os内核实时操作系统架构与启动方法 | |
US9367350B2 (en) | Meta-scheduler with meta-contexts | |
CN101971141A (zh) | 用于管理混合计算环境的系统和方法 | |
Vaidehi et al. | Multicore applications in real time systems | |
Kim et al. | SPIRIT-/spl mu/Kernel for strongly partitioned real-time systems | |
Suzuki et al. | Gloop: An event-driven runtime for consolidating gpgpu applications | |
CN101889265B (zh) | 内核处理器分组 | |
KR101334842B1 (ko) | 가상화 지원 단말 플랫폼을 위한 가상머신 관리장치 및 방법 | |
Kim et al. | Software architecture supporting integrated real-time systems | |
KR100676671B1 (ko) | 유저 쓰레드 관리 장치 및 그 방법 | |
Rosenkrantz et al. | Requirements of the Cornell Theory Center for resource management and process scheduling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150512 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150512 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |