等待时间敏感的软件中断和线程调度的制作方法

文档序号:8516038阅读:371来源:国知局
等待时间敏感的软件中断和线程调度的制作方法
【专利说明】
【背景技术】
[0001]现今,计算设备具有在许多级别上进行多任务的能力。例如,在从多个输入设备(键盘、触摸屏、鼠标等)键入输入时,计算设备的用户可以拥有同时运行的多个应用。随后,这些应用、输入设备等中的每一个竞争处理器时间。相关联的计算设备和/或处理器可以通过若干方式来管理多任务,比如通过在请求到该处理器的访问的那些任务之间按优先级排序(pr1ritize)和/或划分(split)时间。例如,计算设备可以对应用和/线程指派优先级(pr1rity)等级,以及根据该优先级等级来分配到该处理器的访问。这确保了请求到该处理器的访问的那些任务将最终接收在处理器上的时间分配。但有时,请求的任务具有更紧急或时间敏感的需要。在这些情况下,请求的应用和/或线程可以被设置为具有比当前运行的线程更高的优先级,这样导致当前运行的线程被先占。可替换地,设备通过诸如物理硬件中断或软件中断之类的中断机制来请求处理器时间。
[0002]当处理器接收到中断时,当前正被处理器所执行的任务通常被挂起(suspend)以便服务该中断。考虑一个简化的情况,其中应用有处理器的临时所有权来用图像更新显示,并且用户决定在该显示更新期间键入鼠标点击或触摸屏输入来作为优先放大该图像的手段。一般来说,鼠标点击生成到处理器的中断作为点击活动的通知。在接收到该中断时,该处理器临时挂起与该应用相关联的活动以便服务该中断,并且在完成中断服务例程后继续执行(resume)该被挂起的活动。时常,这种处理以对用户而言很少以至无法感知的区别而发生。但是,一些应用和/或任务对被挂起是更加时间敏感的。在这些情况下,如果该应用和/或任务未能以及时的方式继续执行,该用户可以注意到执行中的迟延,并且随后感知到该计算设备表现不佳或者发生故障。

【发明内容】

[0003]本
【发明内容】
被提供来以简化的方式引入概念的选择,这些概念将在下文在【具体实施方式】中被进一步描述。本
【发明内容】
不是旨在识别所要求保护的主题的关键特征或必要特征。
[0004]各种不同的实施例提供了至少部分基于一个或多个处理器核使用率度量(metric)来调度等待时间敏感的任务的能力。一些实施例搜集(gather)与一个或多个处理器核是否处在重负载状态相关联的信息。可替换地或附加地,一些实施例搜集识别等待时间敏感的任务的信息。在某些情况下,当已经确定被原始指派的处理器已经超过使用率阈值时,(多个)任务和/或中断可以被(重新)指派到不同的(多个)处理器核以供执行。
【附图说明】
[0005]【具体实施方式】是参考附图来进行描述的。在这些图中,附图标记最左边的(多个)数字识别该附图标记首次在其中出现的图。在说明书和图中的不同实例中使用相同的附图标记可以指示相似或相同的项目。
[0006]图1是根据一个或多个实施例的示例实现方式的图示。
[0007]图2a_d是根据一个或多个实施例的时序图的图示。
[0008]图3是根据一个或多个实施例的示例实现方式的图示。
[0009]图4是根据一个或多个实施例的时序图的图示。
[0010]图5图示了根据一个或多个实施例的流程图。
[0011]图6图示了根据一个或多个实施例的流程图。
[0012]图7图示了可以被使用来实现本文所描述的各种不同的实施例的示例计算设备。
【具体实施方式】
[0013]概沭
各种不同的实施例提供了至少部分基于处理器核使用率度量来调度等待时间敏感的任务的能力。与给定的系统相关联的一个或多个处理器核可以被配置来识别何时特定的处理器核使用率已经超过某一阈值、何时该处理器核忙于处理中断等。可替换地或附加地,这些度量可以被周期性地搜集和/或更新来识别给定的系统中的处理器核比其他核更加重负载的时间,和/或处理器核资源是相对空闲以供使用的时间。在将任务指派给处理器核之前,例如将软件中断指派和/或将等待时间敏感的线程调度给特定的处理器以便处理之前,这些度量可以被分析来确定哪个处理器核当前拥有更多资源可用于该任务。进而,该任务可以通过运行来高效地完成而不会被挂起。除了分析处理器核度量之外,一些实施例可以确定任务的特性,比如该任务是否是等待时间敏感的。可以结合处理器核度量一起和/或单独地来分析这些任务特性,以确定该任务是否将被(重新)指派给不同的(多个)处理器核以供执行。
[0014]在下面的讨论中,题为“示例操作环境”的章节被提供并且其描述其中可以使用一个或多个实施例的一个环境。接着这个章节,题为“调度等待时间敏感的任务”的章节描述了等待时间敏感的任务如何能够被指派和/或重新指派给系统中比其他(Sf)CPU更可用的(多个)处理器核。最后,题为“示例设备”的章节描述了可以被用来实现一个或多个实施例的示例设备。
[0015]已经提供了将要在下文被描述的各种不同实施例的概述,现在考虑一个或多个实施例可以在其中被实现的示例操作环境。
[0016]示例操作环培
图1是可操作来使用本文档所描述的技术的示例实现方式的图示。该图示的示例包括可能以多种方式进行配置的计算设备102。例如,计算设备102可以被配置为传统的计算机(例如,台式个人计算机、膝上型计算机等)、移动站、娱乐装置、被可通信地耦合到电视机上的机顶盒、无线电话、上网本、游戏控制台、手持设备等。因此,计算设备102的范围可以是从具有大量存储器和处理器资源的完全资源设备(例如,个人计算机、游戏控制台)到具有有限存储器和/或处理资源的低资源设备(例如传统的机顶盒、手持游戏控制台)。计算设备102也包括使得计算设备102执行如下所述的一个或多个操作的软件。
[0017]除了别的以外,计算设备102包括(多个)处理器核104。在这个特定的示例中,计算设备102包括“η”个处理器核,此处由符号104(0) — 104(n-l)所表示。每个处理器核104表示可以执行机器级别处理器指令(比如分支、跳转、相加、相减、移动数据等)的功能。可替换地或附加地,每个处理器核104被配置来和与计算设备102相关联的其他处理器核并行地执行处理器指令。尽管在图1中被图示为分开的模块,但是将会意识到单个硬件模块可以被配置来包括多个处理器核。例如,在一些实施例中,计算设备102可以包括双核处理器(例如,包括两个处理器核104的单个硬件处理器单元),四核处理器(例如,包括四个处理器核104的单个硬件处理器单元)等。可替换地或附加地,计算设备102可以包括多个硬件模块,它们中每一个都包含多个处理器核。因而,计算设备102可以包括以任何合适的硬件配置的多个处理器核104。
[0018]计算设备102也包括一个或多个计算机可读存储媒体106。作为示例而非限制,该计算机可读存储媒体可以包括通常与计算设备相关联的所有形式的易失性或非易失性存储器和/或存储媒体。这样的媒体可以包括ROM、RAM、闪存、硬盘、可移除的媒体等。除了别的之外,计算机可读存储媒体106包括一个或多个操作系统(OS)模块108、一个或多个应用110、处理器核加载模块112以及一个或多个数据结构114。
[0019]除了别的以外,(多个)操作系统(OS)模块108表示被配置来管理计算设备102的(多个)软件和/或硬件资源的功能。这可以通过任何合适的方式来完成,比如一个模块或若干模块共同工作。在一些实施例中,(多个)操作系统模块108包括关于处理和/或管理软件和/或硬件中断的生成和/或服务的功能。
[0020](多个)应用110表示包含可以被(多个)处理器核104(0)—(n-l)的任何组合执行的指令的一个或多个应用。(多个)应用110可以包括具有与计算设备102的用户交互的功能的(多个)高级别应用,可以包括与软件线程相关联的处理器核指令,和/或可以包括与(多个)低级别应用相关联的指令,该(多个)低级别应用与计算设备102的诸如驱动软件、中断服务例程等之类的低级别和/或基本方面进行交互。可替换地或附加地,(多个)应用110可以访问和/或使用操作系统108所提供的功能。因而,计算设备102可以包括范围广泛的(多个)
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1