基于工作负载的时间特征优化os调度决策的系统和方法

文档序号:6469766阅读:151来源:国知局
专利名称:基于工作负载的时间特征优化os调度决策的系统和方法
技术领域
本发明的实施例通常涉及多处理器或多内核计算系统,更具体地,涉 及基于被调度实体及系统的工作负载的时间特征,为节省功耗而优化操作
系统(os)的调度决策。
背景技术
多数现存的在多处理器平台上运行的操作系统使用优先级驱动、抢占 式调度器,其中最高优先级就绪线程在任何可用的处理器上运行(基于线程 的亲和性)。除非较高优先级的线程先占它,线程一般将运行一段时间片(在 相同优先级的另一个线程运行之前线程被允许运行的时间长度或时间片)。 一些线程为了等待另一个操作完成,会在它们的时间片结束之前自愿离开 运行状态。这种方案一般是要优化吞吐量。
操作系统选择线程来运行。基于线程已经运行了多久,可能出现各种 操作。在现存的系统中,线程运行了预定数量的时间之后,线程的优先级 可以被动态地减少。较高优先级的线程可以触发中断,引起其他线程被换 出而运行较高优先级的线程。
如果线程是长期运行的,也称为受处理器限制线程,若其为高速缓存 密集的,该线程被先占后可能被移到需要另一个高速缓存的另一个内核中。 该线程也可能被仅仅短暂运行的短期运行线程先占。对高速缓存密集的长 期运行的线程先占是不被希望的。


通过本发明的以下详细说明,本发明的特征和优点将变得明显,其中:
图1是示出发明的实施例可以在其上实现的示例性平台的框图2是示出根据发明的实施例,用于基于系统工作负载的时间特征调
整处理器对就绪线程选择的方法的流程图;以及
图3是示出用于基于线程的时间特征调整处理器对就绪线程选择的方 法的流程图。
具体实施例方式
现在的操作系统线程调度器不考虑系统工作负载的时间特征或就绪线 程的时间特征。这两者都提供了对系统整体上节省功耗改善的机会。合并 短期运行线程以及减少对长期运行线程工作负载的干扰的能力也可以提高 整体的系统性能。
本发明的实施例是关于为节省功耗用最少的性能损失来优化操作系统 调度决策的系统和方法。本文公开的一个实施例是基于系统工作负载的时 间特征调整处理器选择线程的方法。本文公开的另一个实施例描述了基于 线程的时间特征调整处理器选择线程的方法。
说明书中涉及的本发明的"一个实施例"或"某个实施例"意味着所 描述的与该实施例有关的特定特征、结构或特性包括在本发明的至少一个 实施例中。因此,出现在整个说明书的不同地方的短语"在一个实施例中" 的出现不必然都指的是同一个的实施例。
出于说明的目的,为了提供本发明的彻底的理解而阐明了具体的结构 和细节。然而,对本领域内的普通技术人员显而易见的是,在本文没有介 绍具体细节的情况下,可以实施本发明的实施例。此外,为了不使本发明 难于理解,可以省略或简化公知的特征。贯穿本说明书给出了各种的例子。 这些仅仅是对发明的具体实施例的说明。本发明的范围不局限于所给的例 子。
图1是示出本发明的实施例可以在其上实现的典型平台100的框图。 处理器110通过前端总线101与存储器控制中心(MCH) 114(也称为y/T熟通 信。处理器110包括多处理体系结构并可以具有多个处理器和/或多个内核 111 。 MCH 114通过存储器总线103与系统存储器112通信。MCH 114还可 以通过图形总线105与高级图形接口(AGP) 116通信。MCH 114通过外围部 件互连(PCI)总线107与I/O控制中心(ICH) 120(也称为廢熟通信。ICH 120 可以通过少针脚型(lowpin count, LPC)总线109耦合到一个或多个例如PCI 硬盘驱动器(未示出)、例如IDE 122、 USB 124、 LAN 126以及音频128的 传统部件和超级1/0(SIO)控制器156的部件。
处理器110可以是任何类型能够执行软件的处理器,例如微处理器、 数字信号处理器、微控制器,或者类似的。本发明的实施例是要在多处理 器体系结构上实施。因此,平台硬件100中的处理器110可以包括一个或 多个处理器, 一个或多个处理器可以包括多个线程、多个内核,或者类似 的。
存储器112可以是硬盘、软盘、随机存取存储器(RAM)、只读存储器 (ROM)、闪速存储器,或处理器110可读的任何其他类型的介质。存储器 112可以存储用于执行完成本发明的方法实施例的指令。
非易失性存储器,例如闪速存储器152可以通过少针脚型(LPC)总线109 耦合到I/0控制中心。BIOS固件154—般驻留在闪速存储器152中,且开 机弓I导将执行闪速存储器或固件中的指令。
在一些实施例中,平台100是能够完成服务器管理任务的服务器。该 平台的实施例可以具有通过LPC 109耦合到ICH 120的基板管理控制器 (BMC)150。
为短期运行线程而抢占长期运行的高速缓存密集的线程是不被希望 的。在一个实施例中,将短期运行线程调度到正在运行其他短期运行线程 的内核上的是有益的。因此需要能够监视并识别较长期运行的线程。这可 以通过维护并监视线程活动的历史来实现。防止历史上短期运行的线程被 先占是有益的,因为历史上那些线程总之不会长期运行,从而给其他线程 的运行让路。
一个实施例使用处理器吞吐量的时间特征以及与单独线程有关的历史 信息,通过处理器和内核来调度就绪线程。时间特征可以包括每次线程被 允许运行时运行了的时间长度,即,累积运行时间。例如,如果线程运行 了整个被允许的时间片,它可以被表征为长期运行线程特征。如果线程只 运行了被允许的时间片的0.01%,它可以被表征为短期运行线程。可以理解
的是,可以使用各种阈值来适应各种优先级方案和应用程序。在一些实施
例中,如果线程在时间片的小于100%的任何百分比内完成,该线程可以被
表征为短期运行的。可以跟踪的另一个特征是,历史上一个线程要全部完
成使用了多少时间片。在一个实施例中,至少对线程最后一次被允许运行 跟踪线程历史。在其他实施例中,跟踪线程的多次运行。历史数据可以由 保存历史的存储器区域的大小来限制。存在一些与所保留历史的数量有关 的系统开销。
在现存的系统中,可能存在一些所保留的关于运行给定线程所使用累 积时间的信息。本发明的实施例使用了附加的时间特征。本发明的实施例 中使用了用于识别线程是"长期运行"还是"短期运行"的机制,以便帮 助对线程进行调度。可能需要修改现存的操作系统以收集合适的计算方法。
在现存的系统中,可以基于线程的运行时间增加或减少时间片。然而, 总的来说,现在还没有基于线程和处理器的时间特征通过内核或处理器调 度线程的机制。现存的系统不使用计算数据来进行处理器或内核的选择。
在以下的讨论中,讨论处理器的C状态和P状态。c状态表示处理器
的空闲性。较深的c状态可以表示可能节省较多功耗。较浅的c状态意味
着处理器还没有空闲很长时间并且将不会处于高功耗节省状态。空闲性是 有多少工作线程在处理器上运行的因素。当没有线程在处理器上运行时,
处理器将处于深度C状态。P状态控制处理器运行的频率。如果处理器处
于较高的p状态,则它正以较高的频率运行,同样,如果处理器处于较低
的P状态,贝U它正以较低的频率运行。频率和电压状态确定处理器的P状
态,与节流相反,后者表示时钟速度的改变。
图2是示出基于系统工作负载的时间特征调整处理器选择就绪线程的 方法的流程图200。在一个实施例中,在方框201,确定在计算期间内的系 统工作负载的利用率。计算周期可以超过最后一次计时器时钟中断,或超 过多个计时器时钟中断。当系统利用率较高时, 一般,当前所有处理器被 过度使用(超出某些预设置的利用率百分比)。方框203中,确定系统工作负 载是否超过预先确定的阈值(MAX-LOAD。/。)。可以由平台管理员改变该阈 值。系统利用率一般指的是系统的整体负载。可能考察单独的封装 (package)(处理节点)的工作负载,但是系统负载一般不考虑单独的逻辑处理 器。在本公开的上下文中,逻辑处理器表示线程可以在其上运行的最低单 元。取决于系统体系结构,它可能是插槽中的网络处理器、多内核处理器 中的内核、线程单元或其他物理的处理单元。系统的整体利用率可以有助
于确定应当采用哪种策略来确定在哪个内核或处理器上调度就绪线程。
如果超过了阈值,方框205中,调度器可以使用性能调度策略来选择 将在哪个处理器上运行线程。性能调度策略确定运行就绪线程的处理器以 获得最佳性能(例如,在没有其他繁忙内核的封装上运行线程,或者在不与 繁忙内核共享高速缓存的处理器上运行线程)。可能考虑其他标准,例如, 高速缓存利用率、高速缓存共享、协作高速缓存共享、其他线程的总线利 用率等等。当调度时,也可以考虑存储器、磁盘、1/0等等的总线利用率。 为了获得更好的性能,可以调度共享资源的线程(例如,使用同一个存储器 的相同的线程)在同一个封装上运行或者使用同一个高速缓存。当考虑性能 时,较低优先级的线程可以是较不重要的。
当系统利用率低时,如方框203中确定的,由于低于阈值,所有处理 器当前一般未充分使用(低于某些预设的利用率百分比)。在这种情况下,方 框207中,调度器可以使用功耗节省调度策略来选择将在哪个处理器上运 行线程。在一个实施例中,结合图3进一步描述了使用运行线程的时间特 征的示例性功耗节省调度策略。功耗节省调度策略确定在哪个处理器上运 行以达到最佳的功耗节省。
在一个实施例中,功耗节省调度策略的一些可能的标准是l)在已具有 活动内核的封装上运行线程,2)在处于最浅度C状态的处理器上运行线程, 3)在处于最低P状态的处理器上运行线程,或4)在处于最低温度的处理器 上运行线程。 一旦选择了合适的处理器,方框209中,线程在选择的处理 器上排队来运行。
平台的当前电源策略和环境可以驱动将要使用哪个调度策略。例如, 如果平台使用电池运行,则会希望优化功耗节省而不是性能。如果系统利 用率足够低以至于线程将对性能不产生有害的影响,则通过在活动的内核 上运行线程以获取功耗节省可能是所希望的,而不管其为长期还是短期运 行的。可以在操作系统中设置功耗节省对于性能的最大化策略。如果平台 是企业数据中心中的多个之一,则可能希望将温度最小化。在现存的系统 中,存在典型的三种通常模式功耗节省模式;性能模式;以及平衡模式。 这些模式可以是用户可选的和物理环境模式的组合,即,当平台从AC电源 拔下时,它将运行在电池电源上——该平台环境的一个物理特征。
图3是举例说明基于线程的时间特征调整处理器选择就绪线程的方法 的流程图300。在一个实施例中,方框301中,通过一个或多个以前的计算 周期识别线程的利用率,即,通过先去的执行周期确定线程的时间特征。 可能需要修改现存的操作系统以收集下面的讨论中所需要的历史计算数 据。如果线程通过一贯地执行全部时间片显示出高利用率的历史,则该线 程将被分类为"受处理器限制线程"或"长期运行线程"。基于线程的利用 率对线程进行分类允许对部分空闲的系统中就绪线程的空闲处理器的选择 上进行新颖的调整,由此产生额外的能量节约。如果线程的利用率低于预 定的阈值,如方框303中所确定的,其被定义为不受处理器限制的线程, 则方框305中,处理器选择可能将运行不受处理器限制的工作负载的其他 处理器列为优先。如果线程是受处理器限制的,则处理器选择不需要将其 他运行不受处理器限制负载的处理器列为优先,如方框307中所示。 一旦 选择了合适的处理器,方框309中,线程在所选的处理器上排队来运行。
基于线程的时间特征的一些示例性策略包括l)可以将短期运行线程 (例如,周期性的系统线程)合并,在已经运行短期运行线程的处理器上运行, 这将允许可能处于深度C状态的空闲处理器停留在深度C状态下;2)减少 不受处理器限制的线程先占受处理器限制的线程的频率,从而减少受处理 器限制线程的迁移频率。由于线程迁移的减少,不但受处理器限制的线程 将增加性能,而且对空闲内核干扰的减少将增加具有单核或多核turbo模式 功能的系统上的"turbo"模式的机会;以及3)通过对受处理器限制的线程 使用性能调度策略和对不受处理器限制的线程使用功耗节省调度策略而提 高每瓦特的性能。可以使用"动态频率管理"来启用的turbo模式在某些处 理器上是可用的。可以在URL为cache-www"nte"com/cd/00/00/21/70/21703 3_217033.pdf的公共因特网上找到的英特尔公司的Matt Gillespie于2005年 4月发表的"Power Management in the Intel PXA27x Series Application Processors"(英特尔⑧PXA27x系列应用处理器中的电源管理)中找到更多关 于动态频率管理的信息,在该URL中用星号代替句点以避免文档中无意出 现超链接。在本公开的上下文中,turbo模式表示如果一些内核不忙或者空 闲,则一些内核可以在比保证的广告的高频率更高的频率下运行。
当就绪线程不存在历史数据时,例如,之前它从未运行过,则一个实施例假设就绪线程是长期运行线程。这样做以便减少该线程产生性能影响 的风险。
如果所有逻辑处理器都在运行线程,并且对于就绪线程没有一个是立 即可用的,则可以使用其他标准来确定在哪个处理器上运行线程。可以选
择由os定义的"理想"处理器。可以选择线程运行的最后的处理器,以便
利用可能仍然被占据的(温的)高速缓存,等等。如果需要,可能进行线程迁 移以便合并同一个逻辑处理器上的短期运行线程。由于所需的开销,可能 不希望迁移处理器密集的或长期运行的线程。例如,长期运行线程可能正 在使用当前它正在其上运行的逻辑处理器的本地高速缓存中的数据。在某 些情况下,为了减少高速缓存的争用,基于性能的原因将与另一个线程共 享高速缓存的长期运行线程迁移到不具有任何当前高速缓存活动的另一个 处理器上,实际上可能是有益的。
在一个实施例中,图2和3中所示的过程可以一起使用,以便优化在 其上运行就绪线程的逻辑处理器的选择。在该实施例中,在图2的方法中, 当选择了功耗节省策略时(方框207),可以执行图3中所示的方法。换句话 说,方框301中(图3),当因为利用率小于阈值而确定系统利用率应服从功 耗节省技术时,则可以确定线程的利用率。可以理解的是,依赖于系统管 理员制定的策略和/或基于平台上运行的用户应用程序,这些技术可以以不 同的方式进行组合。
在其他实施例中,基于平台策略,可以分别使用图2和3的方法。 本发明的实施例旨在增强操作系统调度就绪线程的能力,特别是基于 平台策略选择逻辑处理器来运行就绪线程。平台策略可以是以性能为中心 的、以功耗为中心的或两者的平衡。本发明的实施例在选择逻辑处理器过 程中使用系统利用率或工作负载的时间特征,和/或就绪线程的时间特征。 合并短期运行线程以及减少对受处理器限制工作负载干扰的能力可以提高 系统的整体性能。本发明的实施例可以提高部分空闲系统上的单位瓦特的 性能并且提高深度C状态的益处。实施例也可以减少线程的迁移并且提供 turbo机会。
本文描述的技术并不局限于任何特定的硬件或软件结构;在任何计算、 消费电子或处理环境中它们可以找到适用性。可以在硬件、软件或两者的
组合中实现该技术。
为了模拟,程序代码可以使用硬件描述语言或其他提供所设计的硬件 期望如何运行的模型的功能性描述语言来表示硬件。程序代码可以是汇编 或机器语言,或可以被编译和/或解释的数据。此外,以执行某个动作或引 起某个结果的形式来谈论软件是本领域内的公知常识。该表达仅仅是陈述 处理系统执行程序代码、使处理器执行一个动作或引起一个结果的简便方 式。
可以用高级的过程式的或面向对象的编程语言实现每个程序,来与处 理系统通信。然而,如果希望,可以用汇编或机器语言来实现程序。无论 何种情形,该语言可以被编译或解释。
程序指令可以用于使采用该指令编程的通用或专用处理系统执行本文 描述的操作。可替换地,可以由包含有执行操作的硬连线逻辑的特定的硬 件部件或由可编程的计算机部件和定制硬件部件的任意组合来执行操作。 本文描述的方法可以被提供为一种计算机程序产品,该产品可以包括具有 其上存储的指令的机器可访问介质,该指令可以用于对处理系统或其他电 子设备进行编程以执行所述方法。
程序代码或指令可以存储在,例如,易失性和/或非易失性存储器中, 例如存储设备和/或包括固态存储器、硬盘驱动器、软盘、光学存储器、磁
带、闪速存储器、记忆棒、数字视频盘、数字通用光盘(DVD)等等的相关联 的机器可读或机器可访问介质,以及例如机器可访问的生物状态保存存储 器的更奇特的介质。机器可读介质可以包括以机器可读的形式存储、传输 或接收信息的任何机制,介质可以包括有形的介质,通过该介质对程序代 码进行了编码的电、光、声音或其他形式的传播信号或载波可以通过例如 天线、光纤、通信接口等。程序代码可以以分组、串行数据、并行数据、 传播信号等等的形式来传输,并且可以以压縮或加密的格式来使用。
可以在可编程机器上执行的程序中实现程序代码,例如移动或固定计 算机、个人数字助理、机顶盒、移动电话和寻呼机、消费电子设备(包括DVD 播放器、个人录像机、个人视频播放器、卫星接收器、立体声接收机、有 线TV接收机)、以及其他电子设备,其每一个都包括处理器、处理器可读 的易失性和/或非易失性存储器、至少一个输入设备和/或一个或多个输出设
备。程序代码可以应用于使用输入设备输入的数据,来执行所描述的实施 例以及生成输出信息。输出信息可以应用于一个或多个输出设备。本领域 的技术人员可以理解,可以用各种计算机系统的结构,包括多处理器或多 内核处理器系统、小型计算机、大型计算机,以及实际上几乎可以嵌入到 任何设备中的普适的或微型的计算机或处理器,来实现所公开的主题的实 施例。也可以在分布式计算环境中实现所公开的主题的实施例,在该环境 下,可以通过经由通信网络连接的远程处理设备来执行任务或其一部分。
虽然操作可以被描述为顺序处理,但是一些操作实际上可以并行地、 并发地和/或在分布的环境下进行,且可以由单处理器或多处理器机器访问 的存储在本地和/或远程的程序代码来执行。另外,在一些实施例中,在不 脱离所公开的主题的精神的情况下可以重新安排操作的顺序。程序代码可 以由嵌入的控制装置使用或者与嵌入的控制装置结合使用。
虽然通过参考说明性实施例描述了本发明,但是本说明并不是要以限 制性意义进行解释。对本发明的说明性实施例以及其他实施例的各种修改, 对于本发明相关的本领域的技术人员来说是显而易见的,这些修改认为是 处于本发明的精神和范围之内。
权利要求
1、一种用于对就绪线程调度进行优化的系统,包括耦合到存储器的处理器,该处理器包括多个逻辑处理器;在处理器上执行的操作系统(OS),所述操作系统对就绪线程作出调度决策;用于进行监视并将系统利用率的历史时间特征存储在所述存储器中的逻辑;用于进行监视并将多个线程的历史时间特征存储在所述存储器中的逻辑,所述多个线程在所述系统的至少一个逻辑处理器上已经运行或者当前正在运行;以及用于选择所述多个逻辑处理器中的一个逻辑处理器来运行所述就绪线程的逻辑,该选择依赖于所述系统利用率的一个或多个历史时间特征或者所述多个线程的一个或多个历史时间特征以及平台策略标准。
2、 如权利要求1中所述的系统,其中多个线程的所述历史时间特征包 括线程是短期运行线程还是长期运行线程。
3、 如权利要求2中所述的系统,其中为短期运行线程所选择的逻辑处 理器正在执行其他短期运行线程。
4、 如权利要求2中所述的系统,其中当0f述系统利用率高于预定的阈 值时,从一组以性能为中心的策略中选择所述平台策略,而当所述系统利 用率低于所述预定的阈值时,从一组以功耗节省为中心的策略中选择所述 平台策略。
5、 如权利要求4中所述的系统,其中所选择的以性能为中心的策略驱 使从不具有其他繁忙内核的逻辑处理器、或不与繁忙内核共享高速缓存的 逻辑处理器其中之一来选择逻辑处理器。
6、 如权利要求5中所述的系统,其中对所述处理器的选择还依赖于高 速缓存利用率、高速缓存共享、协作高速缓存共享、以及所述多个逻辑处 理器上的其他线程的总线利用率。
7、 如权利要求4中所述的系统,其中所选择的以功耗节省为中心的策 略基于所述多个逻辑处理器中的活动内核、所述多个逻辑处理器的C状态、 所述多个逻辑处理器的P状态、和/或所述多个逻辑处理器的温度来驱使对 所述逻辑处理器的选择,其中逻辑处理器的选择,基于所述以功耗节省为 中心的策略,是具有一个或多个活动内核的逻辑处理器、具有浅度C状态 的逻辑处理器、具有较低P状态的逻辑处理器或具有较低温度的逻辑处理 器其中之一。
8、 如权利要求2中所述的系统,其中所述平台策略标准定义何时使用 以性能为中心的策略、以功耗节省为中心的策略或平衡策略其中之一,所 述标准利用所述系统利用率和在所述系统上运行的线程至少其中之一的时 间特征。
9、 一种用于对就绪线程调度进行优化的系统,包括耦合到存储器的处理器,该处理器包括多个逻辑处理器; 在处理器上执行的操作系统(OS),所述操作系统对就绪线程进行调度 决策;用于进行监视并将与系统利用率和多个线程的历史时间特征至少其中 之一相关的历史时间特征存储在所述存储器中的逻辑,所述多个线程在所 述系统的至少一个逻辑处理器上已经运行或者当前正在运行;以及用于选择所述多个逻辑处理器中的一个逻辑处理器来运行所述就绪线程的逻辑,该选择依赖于所述系统利用率的一个或多个历史时间特征或者所述多个线程的一个或多个历史时间特征以及平台策略标准,其中所述平台策略标准定义何时使用以性能为中心的策略、以功耗节省为中心的策略或平衡策略其中之一,该标准利用所述系统利用率和在所述系统上运行的 线程至少其中之一的时间特征。
10、 如权利要求9中所述的系统,其中多个线程的所述历史时间特征 包括线程是短期运行线程还是长期运行线程之一 。
11、 如权利要求io中所述的系统,其中当戶; 述系统利用率超过预定的 阈值时,从一组以性能为中心的策略中选择所述平台策略,而当所述系统 利用率低于所述预定的阈值时,从一组以功耗节省为中心的策略中选择所 述平台策略。
12、 一种用于对就绪线程调度进行优化的方法,包括识别预定的时间间隔内平台的系统工作负载利用率; 确定所述系统工作负载利用率是否超过了预定的阈值; 如果所述系统工作负载利用率超过了所述预定的阈值,则选择所述平台上多个逻辑处理器之一来运行就绪线程,该选择基于性能调度策略;如果所述系统工作负载利用率没有超过所述预定的阈值,则选择所述平台上多个逻辑处理器之一来运行就绪线程,该选择基于功耗节省调度策略;以及将所述就绪线程排队以在所选择的逻辑处理器上运行。
13、 如权利要求12中所述的方法,其中所述性能调度策略基于对所期望性能的判定来驱使对逻辑处理器的选择,其中该选择是在没有其他繁忙 内核的封装上运行就绪线程、或者在不与繁忙内核共享高速缓存的处理器 上运行所述就绪线程其中之一 。
14、 如权利要求12中所述的方法,其中所述性能调度策略在确定在哪个逻辑处理器上运行所述就绪线程时使用与高速缓存利用率、高速缓存共 享、协作高速缓存共享、线程之间的共享资源、线程优先级、以及其他线 程的总线利用率相关的信息。
15、 如权利要求12中所述的方法,其中当所述就绪线程的历史时间信 息不存在时,假定所述线程是长期运行线程。
16、 如权利要求12中所述的方法,进一步包括识别预定的时间间隔内平台上运行的线程的线程利用率,该识别包括 将运行的线程表征为短期运行线程或长期运行线程之一;当历史信息存在时,识别将要在所述平台上运行的就绪线程的线程利 用率;以及结合所述系统利用率特征,使用所述线程利用率特征来选择在调度所 述就绪线程的过程中使用的平台策略。
17、 一种用于对就绪线程调度进行优化的方法,包括识别预定的时间间隔内平台上运行的线程的线程利用率,该识别包括 将运行的线程表征为短期运行线程或长期运行线程之一;当历史信息存在时,识别将要在所述平台上运行的就绪线程的线程利 用率;确定所述就绪线程利用率是否超过了预定的阈值;如果所述就绪线程利用率没有超过所述预定的阈值,则将运行不受处 理器限制的线程的逻辑处理器作为逻辑处理器的优先选择,从而合并短期 运行线程;如果所述就绪线程利用率超过了所述预定的阈值,则选择所述平台上 多个逻辑处理器之一来运行所述就绪线程,而不基于运行不受处理器限制 的线程的逻辑处理器对该选择进行优先性安排;以及将所述就绪线程排队以在所选择的逻辑处理器上运行。
18、 如权利要求17中所述的方法,其中所述选择逻辑处理器来运行所 述就绪线程进一步包括利用基于特征和策略标准的平台策略以包括合并短期运行线程。
19、 如权利要求17中所述的方法,其中所述选择逻辑处理器来运行所 述就绪线程进一步包括 利用基于特征和策略标准的平台策略以包括降低短期运行线程的抢占频率。
20、 如权利要求17中所述的方法,其中所述选择逻辑处理器来运行所述就绪线程进一步包括禾拥基于特征和策略标准的平台策略以包括对受处理器限制的线程使用 性能调度策略。
21、 如权利要求17中所述的方法,其中所述选择逻辑处理器来运行所述就绪线程进一步包括利用基于特征和策略标准的平台策略以包括对不受处理器限制的线程 使用功耗节省调度策略。
22、 如权利要求17中所述的方法,进一步包括通过合并一个或多个逻辑处理器上的短期运行线程来将线程迁移减至 最少,并在一个或多个其他处理器上运行长期运行线程,所述其他处理器 不运行短期运行线程。
23、 一种具有用于对就绪线程调度进行优化的指令的机器可读存储介质,当在机器上执行所述指令时,使该机器识别预定的时间间隔内平台的系统工作负载利用率; 确定所述系统工作负载利用率是否超过了预定的阈值; 如果所述系统工作负载利用率超过了所述预定的阈值,则选择所述平台上多个逻辑处理器之一来运行就绪线程,该选择基于性能调度策略;如果所述系统工作负载利用率没有超过所述预定的阈值,则选择所述平台上多个逻辑处理器之一来运行所述就绪线程,该选择基于功耗节省调度策略;以及将所述就绪线程排队以在所选择的逻辑处理器上运行。
24、 如权利要求23中所述的介质,其中所述性能调度策略基于对所期 望性能的判断来驱使对逻辑处理器的选择,其中该选择是在没有其他繁忙 内核的封装上运行所述就绪线程、或者在不与繁忙内核共享高速缓存的处 理器上运行所述就绪线程其中之一。
25、 如权利要求23中所述的介质,其中所述性能调度策略在确定在哪 个逻辑处理器上运行所述就绪线程时使用与高速缓存利用率、高速缓存共 享、协作高速缓存共享、线程之间的共享资源、线程优先级、以及其他线 程的总线利用率至少其中之一相关的信息。
26、 如权利要求23中所述的介质,其中当所述就绪线程的历史时间信 息不存在时,进一步包括用来假设该线程是长期运行线程的指令。
27、 如权利要求23中所述的介质,进一步包括执行以下操作的指令 识别预定的时间间隔内平台上运行的线程的线程利用率,该识别包括将运行的线程表征为短期运行线程或长期运行线程之一;当历史信息存在时,识别将要在所述平台上运行的就绪线程的线程利 用率;以及结合所述系统利用率特征,使用所述线程利用率特征来选择在调度所 述就绪线程的过程中使用的平台策略。
28、 一种具有用于对就绪线程调度进行优化的指令的机器可读存储介 质,当在机器上执行所述指令时,使该机器识别预定的时间间隔内平台上运行的线程的线程利用率,该识别包括 将运行的线程表征为短期运行线程或长期运行线程之一;当历史信息存在时,识别将要在所述平台上运行的就绪线程的线程利 用率;确定所述就绪线程利用率是否超过了预定的阈值;如果所述就绪线程利用率没有超过所述预定的阈值,则将运行不受处 理器限制的线程的逻辑处理器作为逻辑处理器的优先选择,从而合并短期 运行线程;如果所述就绪线程利用率超过了所述预定的阈值,则选择所述平台上 多个逻辑处理器之一来运行所述就绪线程,而不基于运行不受处理器限制 的线程的逻辑处理器对该选择进行优先性安排;以及将所述就绪线程排队以在所选择的逻辑处理器上运行。
29、 如权利要求28中所述的介质,其中所述选择逻辑处理器来运行所 述就绪线程进一步包括执行以下操作的指令基于特征和策略标准,利用平台策略以包括合并短期运行线程。
30、 如权利要求28中所述的介质,其中所述i^择逻辑处理器来运行所 述就绪线程进一步包括执行以下操作的指令基于特征和策略标准,利用平台策略以包括降低短期运行线程的抢占 频率。
31、 如权利要求28中所述的介质,其中所述选择逻辑处理器来运行所 述就绪线程进一步包括执行以下操作的指令基于特征和策略标准,利用平台策略以包括对受处理器限制的线程使 用性能调度策略。
32、 如权利要求28中所述的介质,其中所述选择逻辑处理器来运行所 述就绪线程进一步包括执行以下操作的指令基于特征和策略标准,利用平台策略以包括对不受处理器限制的线程 使用功耗节省调度策略。
33、 如权利要求28中所述的介质,进一步包括执行以下操作的指令 通过合并一个或多个逻辑处理器上的短期运行线程来将线程迁移减至最少,并在一个或多个其他处理器上运行长期运行线程,所述其他处理器 不运行短期运行线程。
34、 一种用于对就绪线程调度进行优化的系统,包括 处理器,包括多个逻辑处理器,所述逻辑处理器是可以在其上运行线 程的最小单元,所述处理器耦合到存储器;在所述处理器上执行的操作系统(OS),所述操作系统对就绪线程作出 调度决策;用于监视正在所述多个逻辑处理器上运行的线程的逻辑,该监视用于 识别所述正在运行的线程的时间特征;以及用于从所述多个处理器中选择目标逻辑处理器来运行就绪线程的逻 辑,该选择利用所识别的所述正在运行线程的特征、以及基于性能的策略 和基于功耗节省的策略二者至少其中之一。
35、 如权利要求34中所述的系统,进一步包括用于进行监视并将与系 统利用率相关的历史时间特征存储在所述存储器中的逻辑,其中用于选择 目标逻辑处理器的逻辑进一步利用系统利用率的特征来确定将应用哪个策 略。
36、 如权利要求34中所述的系统,其中正在运行的线程的所述时间特 征包括将线程识别为短期运行线程或长期运行线程。
全文摘要
本发明提供了基于工作负载的时间特征优化OS调度决策的系统和方法。在一些实施例中,本发明涉及增强操作系统调度就绪线程能力的系统和方法,特别是基于平台策略选择运行就绪线程的逻辑处理器。平台策略可以是以性能为中心的、以功耗为中心的,或两者的平衡。本发明的实施例在选择逻辑处理器过程中使用系统利用率或工作负载的时间特征,和/或就绪线程的时间特征。还描述并要求保护其他实施例。
文档编号G06F1/32GK101354661SQ200810210379
公开日2009年1月28日 申请日期2008年6月27日 优先权日2007年6月28日
发明者L·K·普提耶代斯, R·J·芬格 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1