CN110235085A - 确定多处理系统的处理器使用率 - Google Patents

确定多处理系统的处理器使用率 Download PDF

Info

Publication number
CN110235085A
CN110235085A CN201780082843.2A CN201780082843A CN110235085A CN 110235085 A CN110235085 A CN 110235085A CN 201780082843 A CN201780082843 A CN 201780082843A CN 110235085 A CN110235085 A CN 110235085A
Authority
CN
China
Prior art keywords
utilization rate
rate index
processor core
estimation
hardware thread
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.)
Pending
Application number
CN201780082843.2A
Other languages
English (en)
Inventor
周经森
朱婉怡
李成栋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of CN110235085A publication Critical patent/CN110235085A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3231Monitoring the presence, absence or movement of users
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

这里描述的技术提供了用于确定多处理处理器核的CPU使用率的解决方案。确定处理器核的多个逻辑处理器的CPU使用率。基于多个逻辑处理器中的更高使用率指标来估计处理器核的CPU使用率。多个逻辑处理器中的最低CPU使用率指标不会用于估计处理器核的CPU使用率。

Description

确定多处理系统的处理器使用率
技术领域
本申请涉及计算机技术领域,特别涉及一种确定多处理系统的处理器使用率的解决方案。
背景技术
多处理是指在单个计算系统内和/或系统的容量使用多个处理组件以支持多个处理和/或线程,并在多个处理组件之间分配处理和/或线程。多核处理器是具有多个(通常偶数个)独立物理处理器核的单个计算组件。多个核或者制造在单个集成电路裸片(称为芯片多处理器或CMP)上,或者制造在单个芯片封装中的多个裸片上。多线程是一种处理器设计/能力,其中多核处理器的单个处理器或单个处理器核同时执行多个线程。在多线程中,多个线程共享单个处理器核的资源,例如计算单元、高速缓存和转换后备缓冲器(TLB)。从系统设计的角度来看,具有执行多个程序线程容量的处理器核称为多线程处理器核,与在“硬件线程”中执行的实际程序线程相比,每个这样的容量称为逻辑处理器或硬件线程。
从操作系统(OS)获得的CPU使用率是用于诸如产品大小调整、计算机容量规划、作业调度等许多目的的常用度量指标。然而,随着包括多处理系统的计算机体系结构设计的进步,尤其是超线程,操作系统报告的CPU使用率可能不可靠。
发明内容
一种用于分配计算系统的计算资源的计算机实现的系统,该系统包括:一个或更多个处理器;和,与所述一个或更多个处理器可通信的连接的计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被执行时使所述计算机实现的系统执行以下操作:识别计算系统的处理器核的多个硬件线程;确定所述多个硬件线程中每个硬件线程的使用率指标;基于所述多个硬件线程的使用率指标来估计处理器核的使用率指标;以及,输出处理器核的估计的使用率指标,作为分配计算系统的计算资源的基础。
一种分配计算系统的计算资源的方法,包括:识别计算系统的处理器核的多个硬件线程;确定所述多个硬件线程中的每个硬件线程的使用率指标;基于所述多个硬件线程的使用率指标来估计处理器核的使用率指标;和,输出处理器核的估计的使用率指标,作为分配计算系统的计算资源的基础。
一种存储有计算机可执行指令的计算机可读存储介质,当由计算机执行时,使计算机执行包括以下操作的动作:识别计算系统的处理器核的多个硬件线程;确定多个硬件线程中的每个硬件线程的使用率指标;基于多个硬件线程的使用率指标来估计处理器核的使用率指标;以及,输出处理器核的估计的使用率指标,作为分配计算系统的计算资源的基础。
附图说明
为了更清楚地描述本发明实施例中的技术方案,在此简要描述附图。这里描述的附图仅代表本公开的一些实施例,并且本领域普通技术人员可以进一步从这些附图中得出其他附图而无需做出任何创造性的努力。在不同图中使用相同的附图标记表示相似或相同的项目。
图1示出了示例性多处理系统。
图2示出了用于确定处理器使用率和分配计算资源的示例系统。
图3示出了图2的示例系统的示例操作环境。
图4示出了用于确定处理器使用率和分配计算资源的示例操作过程。
图5示出了示例计算机架构图,其示出了用于计算系统的说明性计算机硬件和软件架构,该计算系统能够实现本文给出的技术和技术的各方面。
图6示出了图示能够实现本文呈现的技术和技术的各方面的示例分布式计算环境的图。
图7示出了图示用于计算设备的示例计算设备架构的计算机架构图,该计算设备能够实现本文给出的技术和技术的各方面。
具体实施方式
本公开提供了一种用于确定多处理系统的处理器使用率并基于所确定的处理器使用率来分配计算资源的解决方案。在以下详细描述中,参考形成其一部分的附图,并且其中通过图示的具体配置或示例示出,其中相同的附图标记在若干附图中表示相同的元件。
图1示出了包括示例性对称多核处理单元105(“处理单元105”)的示例性多处理系统100,所述多核处理单元105包括多个(这里例如是四个)处理器核110,每个处理器核110具有它们自己的高速缓存“L1高速缓存”。处理器核110还共享高速缓存“L2高速缓存”130。每个处理器核110包括通过多个(这里用于说明性示例,两个)硬件线程140的多线程容量。在本文的描述中,处理单元105和组件以及其操作用作举例说明当前用于确定处理器使用率的技术方案。应当理解,本公开的范围不应限于多处理系统100和/或处理单元105的特定架构或任何其他特定的多处理系统架构。例如,处理器核110可以是较低级别的处理器或CPU。在本公开中,术语“处理器”和“CPU”可互换使用,并且在定义和解释上没有任何变化。此外,多处理系统100可以包括多层多处理单元105,使得每个处理器核110本身可以是较低级多处理单元105和/或每个多处理单元105可以是更高级多处理单元105的处理器核110。例如,多处理系统100可以包括分层聚类结构,其具有集群内的多处理组件(例如,处理单元105和/或处理器核110)的紧密耦合。在另一示例中,多处理系统100和/或处理单元105可以是能够进行虚拟对称多处理的虚拟机。在另一示例中,多处理系统100是对称多处理系统,其包括多层处理单元105和处理器核110。所有现在和将来开发的多处理系统和架构都可以与当前公开一起使用以确定处理器使用率并分配计算资源。并且所有都包括在公开内容中。
在本文的描述中,“处理器核”指的是具有多线程容量和/或多线程处理的任何计算组件,并且“处理单元”指的是具有多个处理器核的多处理计算组件。术语“处理器使用/使用率”和“CPU使用率/使用率”可互换使用,并且都指代指示在特定时间段内使用处理器的时间量的指标,通常表示为百分比。
1、系统和环境示例
图2示出了系统图,其示出了本文公开的用于确定处理器使用率和分配计算资源的一个说明性示例系统的各方面。如图2所示,处理器使用率确定系统200(下文中称为“系统200”)可包括多处理系统映射单元210,线程CPU使用率确定单元220,处理器核CPU使用率确定单元230,处理单元CPU使用率确定单元240以及计算资源分配单元250。多处理系统映射单元210还可以包括控制器212。线程CPU使用率确定单元220还可以包括采样间隔确定单元222。系统200还可以包括用户接口260和其他组件。
应当理解,系统200的单元可以驻留在单个计算设备(例如,PC)中,或者驻留在分布式计算环境/系统中的多个计算设备中,并且所有都包括在本公开中。计算设备或分布式计算环境的细节将在本公开中进一步描述。
在操作中,多处理系统映射单元210被配置为识别处理单元105所驻留的计算系统的处理器核110的多个硬件线程140。由于硬件线程140可以被操作系统以不同方式分配以执行软件线程,因此硬件线程140如何在操作中共享处理器核110的映射可以被执行,以便于确定处理器使用率。例如,多线程容量的处理器核110可以或可以不参与多线程操作。对于不同的操作系统,可以使用各种方法来识别处理器核110的硬件线程140。例如,在Linux系统的情况下,命令/proc/cpuinfo可以用于查找硬件线程140和处理器核110如何由硬件线程140共享。应当理解,任何现在存在的和未来开发的方法可以用于识别处理器核110的硬件线程140,并且所有这些都包括在本公开中。
线程CPU使用率确定单元120被配置为确定处理器核110的多个硬件线程140中的每一个的使用率指标。线程CPU使用率确定单元120可以使用指示硬件线程的处理器使用的任何指标,并且所有都包括在本公开内容中。例如,线程CPU使用率确定单元120可以询问操作系统的线程状态计数器以确定硬件线程140的线程状态。在另一个示例中,线程CPU使用率确定单元120可以与操作系统的性能监控工具通信,例如,性能监控单元(PMU)和/或性能监控计数器(PMC),以确定硬件线程140的CPU使用。另一个例子,通过“GetProcessTimes”函数获得的“KernelTime”和“UserTime”可以用于确定硬件线程140的CPU使用率。
当多个硬件线程140共享处理器核110时,在一个硬件线程140中执行的程序线程可以迁移到共享相同处理器核100的另一个硬件线程140。多个硬件线程140之间/之中的程序线程的这种迁移可以使得多个硬件线程140中的每一个的CPU使用的确定变得复杂。为了解决该问题,采样间隔确定单元222被配置为确定小于一阈值时间间隔的的采样间隔,在所述阈值时间间隔中,程序线程可以从一个硬件线程140迁移到与其共享处理器核110的多个硬件线程140的另一个硬件线程140。采样间隔和/或阈值时间间隔可以使用实验数据预先确定和/或可以基本实时的动态确定/调整。此外,在确定采样间隔和/或阈值时间间隔时,还可以考虑在硬件线程140中执行的程序线程/处理的类型。
处理器核CPU使用率确定单元230被配置为基于处理器核110的多个硬件线程140中的更高使用率指标来估计处理器核110的使用率指标。这里,处理器核CPU使用率确定单元230可以仅使用更高的CPU使用率指标,而不使用为处理器核110的多个硬件线程140确定的较低的CPU使用率指标。更高的CPU使用率指标是由相对于较低的CPU使用率指标来定义,并且不指示任何绝对CPU使用率用率指标值。例如,在两个硬件线程140共享处理器核110的情况下,确定的CPU使用率指标分别为70%和30%。CPU使用率指标70%高于30%,并且处理器核CPU使用率确定单元230可以仅使用更高的70%CPU使用率指标来估计处理器核110的CPU使用率指标。存在各种方法在多个硬件线程140中识别更高的CPU使用率指标,这些方法全部包括在本公开中。例如,在硬件线程140的多个确定的CPU使用率指标的场景中,处理器核CPU使用率确定单元230可以将除最低CPU使用率指标之外的所有指标标识为更高的CPU使用率指标。处理器核CPU使用率确定单元230还可以仅识别最高确定的CPU使用率指标作为要在估计处理器核110的CPU使用率指标的多个硬件线程140中的更高CPU使用率指标。在多个硬件线程140中所有确定的CPU使用率指标是相同的极端情况下,处理器核CPU使用率确定单元230可以使用相同的CPU使用率指标作为更高的一个。
处理器核CPU使用率确定单元230可以采用各种方法来使用所识别的硬件线程140中的更高CPU使用率指标来估计处理器核110的CPU使用率指标,并且所有这些都包括在本公开中。在示例中,处理器核CPU使用率确定单元230可以基于多个硬件线程140中的最高使用率指标来估计处理器核110的使用率指标。例如,多个硬件线程140中的最高CPU使用率指标可以作为处理器核110的CPU使用率指标。在另一个示例中,处理器核CPU使用率确定单元230可以基于对多个硬件线程140中的多个更高使用率指标进行平均来估计处理器核110的使用率指标。作为说明性的,可以用作处理器核110的CPU使用率指标。例如,处理器核110可以包括四个硬件线程140,其具有分别为80%,70%,50%和0的确定的CPU使用率指标。处理器核CPU使用率确定单元230可以将80%和70%CPU使用率指标标识为四个硬件线程140中的更高CPU使用率指标,并且使用80%和70%之间的平均值,即75%,作为估计的CPU处理器核110的使用率指标。
处理单元CPU使用率确定单元240被配置为基于多个处理器核110的估计的使用率指标来确定处理单元105的使用率指标。在示例中,处理单元CPU使用率确定单元240可以使用通过对处理单元105的多个处理器核110的估计的使用率指标进行平均来确定处理单元105的指标。在另一个示例中,处理单元CPU使用率确定单元240可以基于多个处理器110中的更高的估计的使用率度量来确定处理单元105的使用率指标。与处理器核CPU使用率确定单元230类似,处理单元CPU使用率确定单元240可以基于多个处理器核110中的最高使用率指标来确定处理单元105的处理器使用率。在另外的示例中,处理单元CPU使用率确定单元240可以基于在多个处理器核110中多个使用率指标的平均在确定处理单元105的使用率指标。
计算资源分配单元250被配置为基于处理器核110的估计的使用率指标来分配处理器核110所驻留的计算系统的计算资源。该分配可以直接基于处理器核110的估计的使用率指标和/或者可以通过确定的包含处理器核110的处理单元105的使用来间接地基于处理器核110的估计的使用率指标。在一个示例中,计算资源分配单元250可以在计算资源的分配中应用规则。规则可以提供在不同应用中分配计算资源的各种方式。例如,在数据中心应用的情况下,计算资源分配单元250可以应用规则来更保守地分配计算资源。还可以在相关操作中向处理器核CPU使用率确定单元230和/或处理单元CPU使用率确定单元240提供规则。例如,在数据中心应用的情况下,规则可以规定处理器核CPU使用率确定单元230基于多个硬件线程140中的最高使用率指标来估计处理器核110的使用,以便处理器核CPU使用率估计是以更保守的方式。
图3示出了系统200的操作环境300。系统200被配置为通过网络320与计算系统310通信。每个计算系统310包括一个或更多个包括处理单元105的多处理系统100。多处理系统310可以包括不同的多处理架构和所有这些都包括在本公开中。系统200或其任何组件可以物理地驻留在计算系统310中的一个或更多个中,或者可以驻留在单独的计算系统中。环境300还可以包括资源330,系统200可以在其操作中利用该资源。例如,资源330可以为系统200提供基于云的数据存储,并且可以在系统200的操作中提供规则,例如,在计算资源分配单元250的操作中使用的规则。在操作中,系统200被配置为确定计算系统310的多处理系统100的处理单元/处理器核的CPU使用率,并基于所确定的CPU使用来分配计算系统310的计算资源。
2、示例性操作环境
现在参考图4,其示出了系统200的示例操作的过程400的示例流程图。在示例操作410中,多处理系统映射单元210可以映射多处理系统100以识别处理单元105、处理器核110和硬件线程140的体系结构。具体地,在示例子操作412中,多处理系统映射单元210可以识别处理单元105驻留其中的计算系统310的处理器核110的多个硬件线程140。应当理解,任何现在存在的和未来开发的方法可以用于识别处理器核110的硬件线程140,并且所有方法都包括在本公开中。例如,可以从线程控制器接收信息以识别处理器核110的硬件线程140。在示例中,识别处理器核110的多个硬件线程140的标准包括确定硬件线程140共享硬件资源,例如,处理器核110的L1高速缓存120。
在示例操作420中,线程CPU使用率确定单元220可以确定处理器核110的多个硬件线程140中的每一个的使用率指标。线程CPU使用率确定单元220可以使用指示硬件线程140的处理器使用的任何指标并且所有都包括在本公开中。具体地,在子操作422中,采样间隔确定单元222可以确定小于阈值时间间隔的采样间隔,在该阈值时间间隔期间,程序(软件)线程可以从一个硬件线程迁移到多个硬件线程140的另一个硬件线程。可以使用实验数据预先确定采样间隔和/或阈值时间间隔,和/或可以基本上实时地动态确定/调整采样间隔和/或阈值时间间隔。此外,在确定采样间隔和/或阈值时间间隔时,还可以考虑在硬件线程140中执行的程序线程/进程的类型。采样间隔确定单元222还可以从资源330接收阈值时间间隔。可以在确定的采样间隔下确定硬件线程140的CPU使用。
在示例操作430中,处理器核CPU使用率确定单元230可以基于处理器核110的多个硬件线程140中的更高使用率指标来估计处理器核110的使用率指标。处理器核CPU使用率确定单元230仅使用更高的CPU使用率指标,但不使用为处理器核110的多个硬件线程140确定的较低CPU使用率指标。更高的CPU使用率指标仅相对于较低的CPU使用率指标并且不表示任何绝对CPU使用率指标值。存在用于在多个硬件线程140之间识别更高CPU使用率指标的各种方法,并且所有方法都包括在本公开中。例如,在硬件线程140的多个确定的CPU使用率指标的场景中,处理器核CPU使用率确定单元230可以将除最低CPU使用率指标之外的所有指标标识为更高CPU使用度指标。处理器核CPU使用率确定单元230还可以仅识别多个硬件线程140中最高确定的CPU使用率指标,作为用于估计处理器核110的CPU使用率指标的更高CPU使用率指标。在所有确定的CPU的极端情况下多个硬件线程140之间的使用率指标是相同的,处理器核CPU使用率确定单元230可以使用与更高的一个相同的CPU使用率指标。
处理器核CPU使用率确定单元230可以采用各种方法来使用所识别的硬件线程140的更高CPU使用率指标来估计处理器核110的CPU使用率指标,并且所有方法都包括在本公开中。在一个示例中,处理器核CPU使用率确定单元230可以基于多个硬件线程140中的最高使用率指标来估计处理器核110的使用。例如,可以采用多个硬件线程140的最高CPU使用率指标。在另一个示例中,处理器核CPU使用率确定单元230可以基于对多个硬件线程140中的多个更高使用率指标进行平均来估计处理器核110的使用率指标。
在一个示例中,处理器核CPU使用率确定单元230可以从计算资源分配单元250接收规则,以识别硬件线程140中的更高使用率指标和/或估计处理器核110的CPU使用率。所接收的规则可以取决于在相关计算系统310中执行的应用/过程。例如,在执行数据中心应用的计算系统310的场景中,规则可以规定:处理器核CPU使用率确定单元230识别共享处理器核110的多个硬件线程140中的最高使用率指标作为更高使用率指标并且用作处理器核110的估计的使用率指标。
在示例操作440中,处理单元CPU使用率确定单元240可以基于处理单元105的多个处理器核110的估计的使用率指标来确定处理单元105的使用率指标。在示例中,处理单元CPU使用率确定单元240可以通过平均多个处理器核110的估计的使用率指标来确定处理单元105的使用率指标。在另一个示例中,处理单元CPU使用率确定单元240可以基于多个处理器核110之中的更高估计的使用率指标。估计的使用率指标来确定处理单元105的使用率指标。与处理器核CPU使用率确定单元230类似,处理单元CPU使用率确定单元240可以基于多个处理器核110中的最高使用率指标来确定处理单元105的处理器使用。在另一示例中,处理单元CPU使用率确定单元240可以基于在多个处理器核110中多个更高使用率指标的平均来确定处理单元105的使用率指标。
在示例操作450中,多处理系统映射单元210的控制器212可以基于多处理系统100的映射来确定是否存在更高级别的处理单元105。如果没有更高级别的处理单元105,即,当前处理单元105是多处理系统100的最高级别,则操作流程移动到示例操作460。如果存在更高级别的处理单元105,则操作流程返回到示例操作440,其中处理单元CPU使用率确定单元240可以基于多个较低级别处理单元105的使用率指标来确定更高级别处理单元105的使用率指标。如本文所述,关于多处理系统100中的更高级别处理单元105,较低级别处理单元105可以被类似地处理为在示例操作440中的处理器核110。
在示例操作460中,计算资源分配单元250被配置为基于处理器核110的估计的使用率指标来分配处理器核110所驻留的计算系统310的计算资源。该分配可以直接基于估计的使用处理器核110的指标和/或可以间接地基于通过包含处理器核110的处理单元105的使用率指标确定的处理器核110的估计的使用率指标。在一个示例中,计算资源分配单元250可以在分配中应用规则计算资源。规则可以提供在不同应用中分配计算资源的各种方式。例如,在数据中心的应用中,计算资源分配单元250可以应用规则来更保守地分配计算资源。
应当理解,本文公开的方法的操作不一定以任何特定顺序呈现,并且以可替换顺序执行一些或所有操作是可能的,也是可预期的。为了便于描述和说明,已经以示出的顺序呈现了操作。在不脱离所附权利要求的范围的情况下,可以添加、省略和/或同时执行操作。
还应当理解,所示方法可以在任何时间结束,并且不需要完整地执行。可以通过执行包括在计算机存储介质上的计算机可读指令来执行方法的一些或所有操作和/或基本等同的操作,如下面所定义的。如在说明书和权利要求中使用的术语“计算机可读指令”及其变体在本文中被广泛使用,以包括例程、应用程序、应用程序模块、程序模块、程序、组件、数据结构、算法等。计算机可读指令可以在各种系统配置上实现,包括单处理器或多处理器系统、小型计算机、大型计算机,个人计算机、手持计算设备、基于微处理器、可编程消费电子产品、其组合等。
因此,应当理解,这里描述的逻辑操作被执行(1)作为在计算系统上运行的计算机实现的动作或程序模块的序列和/或(2)作为计算系统内部的互连机器逻辑电路或电路模块。执行是一个取决于计算系统的性能和其他要求的选择问题。因此,这里描述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑及其任何组合来执行。
如本文所述,结合图2和图3,示例过程400的操作在本文中被描述为至少部分地由应用、组件和/或电路执行。尽管所描述的图示涉及图1、2和3的组件,但是可以理解,过程400的操作也可以以许多其他方式实现。例如,过程400可以至少部分地由计算机处理器或单独计算机的处理器实现。另外,过程400的一个或更多个操作可以替代地或附加地至少部分地由单独工作的计算机或者与诸如服务器模块的其他软件模块一起工作来实现。
3、示例性系统组件
图2的系统200的任何一个或更多个单元所位于的计算设备可以是个人计算机、可穿戴计算设备、移动电话或具有用于处理和传输数据的组件的任何其他设备的形式。例如,计算设备可以是具有一个或更多个用户机器接口的平板电脑,例如显示器接口和/或输入设备。显示器接口可以包括监视器、投影表面、触摸屏和/或能够显示的任何其他接口设备。另外,输入设备可以包括相机、麦克风、键盘或任何其他输入设备,能够向计算设备输入数据。
计算设备还可以包括能够存储、传输和处理输入数据、输出数据和其他数据的本地存储器。本地存储器还可以包括程序模块,该程序模块被配置为管理本文描述的技术,包括图2的系统200的一个或多更个单元。
图5示出了用于计算机的示例计算机体系结构500的附加细节,其上可以安装有图2的系统200的一个或更多个单元,并且其能够执行包括这里描述的系统200的单元的程序组件。因此,图5中所示的计算机体系结构500示出了用于服务器计算机、移动电话、PDA、智能电话、台式计算机、上网本计算机、平板计算机和/或膝上型计算机的体系结构。计算机体系结构500可用于执行本文呈现的软件组件的任何方面。
图5中所示的计算机体系结构500包括中央处理单元502(“CPU”)、系统存储器504、包括随机存取存储器506(“RAM”)和只读存储器(“ROM”)508以及将存储器504耦合到CPU502的系统总线510。包含有助于在计算机体系结构500内的元件之间传送信息的基本例程的基本输入/输出系统,例如在启动期间,存储在ROM中。计算机体系结构500还包括大容量存储设备512,所述大容量存储设备512用于存储操作系统507、诸如输出数据509的数据、以及一个或更多个应用程序。
大容量存储设备512通过连接到总线510的大容量存储控制器(未示出)连接到CPU502。大容量存储设备512及其相关的计算机可读介质为计算机体系结构500提供非易失性存储。虽然这里包含的计算机可读介质的描述是指大容量存储设备,例如固态驱动器,硬盘或CD-ROM驱动器,但是本领域技术人员应该理解计算机可读介质,可以是计算机体系结构500可以访问的任何可用的计算机存储介质或通信介质。
通信介质包括计算机可读指令、数据结构、程序模块或调制数据信号中的其他数据,例如载波或其他传输机制,并且包括任何传送介质。术语“调制数据信号”表示包括一个或更多个的特征被改变或被设置为编码信息的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、RF、红外和其他无线介质的无线介质。上述任何组合也应包括在计算机可读介质的范围内。
作为示例而非限制,计算机存储介质可以包括以任何方法或技术实现用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的易失性和非易失性、可移动和不可移动介质。例如,计算机介质包括但不限于RAM、ROM、EPROM、EEPROM、闪存或其他固态存储器技术、CD-ROM、数字通用盘(“DVD”)、HD-DVD、BLU-RAY,或其他光学存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备,或可用于存储所需信息并且可由计算机体系结构500访问的任何其他介质。出于权利要求的目的,短语“计算机存储介质”,“计算机可读存储介质”及其变体本身不包括波、信号和/或其他暂时和/或无形通信介质。
根据各种配置,计算机体系结构500可以在通过网络756和/或另一网络(未示出)逻辑连接到远程计算机的联网环境中操作。计算机体系结构500可以通过连接到总线510的网络接口单元514连接到网络756。应当理解,网络接口单元514也可以用于连接到其他类型的网络和远程计算机系统。计算机体系结构500还可以包括输入/输出控制器516,用于接收和处理来自多个其他设备的输入,所述多个其它设备包括键盘、鼠标或电子笔(图5中未示出)。类似地,输入/输出控制器516可以向显示屏、打印机或其他类型的输出设备(也未在图5中示出)提供输出。
应当理解,这里描述的系统200的软件组件在被加载到CPU 502中并且被执行时,可以将CPU 502和整个计算机体系结构500从通用计算系统变换为专用计算机,以促进此处呈现的功能。CPU 502可以由任何数量的晶体管或其他分立电路元件构成,其可以单独地或共同地呈现任何数量的状态。更具体地,响应于包含在本文公开的软件模块内的可执行指令,CPU 502可以作为有限状态机操作。这些计算机可执行指令可以通过指定CPU 502如何在状态之间转换来变换CPU 502,从而变换构成CPU 502的晶体管或其他分立硬件元件。
对在此呈现的软件模块进行编码还可以变换在此呈现的计算机可读介质的物理结构。在本说明书的不同实施方式中,物理结构的特定变换可能取决于各种因素。这些因素的示例可以包括但不限于用于实现计算机可读介质的技术,计算机可读介质是否被表征为主存储器或辅助存储器等。例如,如果计算机可读介质被实现为基于半导体的存储器,则可以通过变换半导体存储器的物理状态将本文公开的软件编码在计算机可读介质上。例如,软件可以变换构成半导体存储器的晶体管、电容器或其他分立电路元件的状态。该软件还可以转换这些组件的物理状态,以便在其上存储数据。
作为另一示例,本文公开的计算机可读介质可以使用磁或光技术来实现。在这样的实现中,当在其中编码软件时,本文呈现的软件可以变换磁性或光学介质的物理状态。这些变换可以包括改变给定磁介质内的特定位置的磁特性。这些变换还可以包括改变给定光学介质内的特定位置的物理特征或特性,以改变那些位置的光学特性。在不脱离本说明书的范围和精神的情况下,物理介质的其他变换是可能的,前述示例仅用于促进该讨论。
鉴于以上所述,应当理解,在计算机体系结构500中发生许多类型的物理变换,以便存储和执行本文给出的软件组件。还应当理解,计算机体系结构500可以包括其他类型的计算设备,包括手持式计算机、嵌入式计算机系统、个人数字助理以及本领域技术人员已知的其他类型的计算设备。还预期计算机体系结构500可以不包括图5中所示的所有组件,可以包括未在图5中明确示出的其他组件,或者可以使用与图5中所示的完全不同的体系结构。
图6描绘了能够执行本文描述的系统200的软件组件以确定多处理系统100的处理器使用率的说明性分布式计算环境600。因此,图6中所示的分布式计算环境600可用于执行本文提供的软件组件的任何方面。例如,分布式计算环境600可用于执行web浏览器510,系统200和/或其任何单元和/或本文描述的其他软件组件的各方面。
根据各种实施方式,分布式计算环境600包括在网络604上操作、与网络604通信或作为网络604的一部分的计算环境602。网络604可以是或可以包括网络756,如上参考图5所述。网络604还可以包括各种接入网络。一个或更多个客户端设备606A-606N(下文统称和/或统称为“客户端606”)可以经由网络604和/或其他连接(图6中未示出)与计算环境602通信。在一个示出的配置中,客户端设备606包括计算设备606A,诸如膝上型计算机、台式计算机或其他计算设备;平板或平板计算设备(“平板计算设备”)606B;移动计算设备606C,例如移动电话,智能电话或其他移动计算设备;服务器计算机606D;和/或其他设备606N。应当理解,任何数量的客户端606可以与计算环境602通信。这里参考图5和7示出和描述了用于客户端设备606的两个示例计算架构。应当理解,所示客户端606和这里示出和描述的计算体系结构是说明性的,不应被解释为以任何方式受到限制。
在所示配置中,计算环境602包括应用服务器608、数据存储610和一个或更多个网络接口612。根据各种实现,应用服务器608的功能可以由一个或更多个作为网络604的一部分或与网络604通信的服务器计算机提供。应用服务器608可以托管各种服务、虚拟机、门户和/或其他资源。在所示配置中,应用服务器608托管一个或更多个虚拟机614,所述虚拟机614用于托管应用程序或其他功能。根据各种实施方式,虚拟机614托管一个或更多个应用程序和/或软件模块,用于提供数据可视化的智能配置。应该理解,该配置是说明性的,不应被解释为以任何方式进行限制。应用服务器608还托管或提供对一个或更多个门户、链接页面、网站和/或其他信息(“Web门户”)616的访问。
根据各种实施方式,应用服务器608还包括一个或更多个邮箱服务618和一个或更多个消息传递服务620。邮箱服务618可以包括电子邮件(“电子邮件”)服务。邮箱服务618还可以包括各种个人信息管理(“PIM”)服务,包括但不限于日历服务、联系人管理服务、协作服务和/或其他服务。消息传递服务620可以包括但不限于即时消息传递服务、聊天服务、论坛服务和/或其他通信服务。
应用服务器608还可以包括一个或更多个社交网络服务622。社交网络服务622可以包括各种社交网络服务,包括但不限于用于共享或发布状态更新的服务、即时消息、链接、照片、视频和/或其他信息;用于评论或显示对文章、产品、博客或其他资源的兴趣的服务;和/或其他服务。
社交网络服务622还可以包括评论、博客和/或微博客服务。例如,社交网络应用、邮件客户端、消息客户端或在电话上运行的浏览器或任何其他可以与网络服务622通信并且促进所述功能(甚至部分地)的客户端606,如上面参考图2、3和4所描述的。
如图6所示,应用服务器608还可以托管其他服务、应用、门户和/或其他资源(“其他资源”)624。其他资源624可以包括但不限于文档共享、渲染或任何其他功能。因此可以理解,计算环境602可以提供本文提供的概念和技术与各种邮箱、消息传递、社交网络和/或其他服务或资源的集成。
如上所述,计算环境602可以包括数据存储器610。根据各种实现,数据存储器610的功能由在网络604上操作或与网络604通信的一个或更多个数据库提供。也可以由配置成为计算环境602托管数据的一个或更多个服务器计算机提供数据存储器610的功能。数据存储器610可以包括,托管或提供一个或更多个真实或虚拟数据存储626A-626N(以下共同地和/或统称为“数据存储626”)。数据存储626被配置为托管由应用服务器608使用或创建的数据和/或其他数据。尽管未在图6中示出,但是数据存储626还可以托管或存储网页文档、文字文档、演示文档、数据结构,由推荐引擎执行的算法,和/或由任何应用程序或另一模块使用的其他数据,例如内容管理器105、数据存储626的各方面可以与用于存储文件的服务相关联。
计算环境602可以与网络接口612通信或者由网络接口612访问。网络接口612可以包括用于支持两个或更多个计算设备之间的通信的各种类型的网络硬件和软件,包括但不限于,客户端606和应用服务器608。应当理解,网络接口612也可以用于连接到其他类型的网络和/或计算机系统。
应当理解,本文描述的分布式计算环境600可以提供本文描述的软件元素的任何方面,其具有可以被配置为执行本公开的软件组件的任何方面的任何数量的虚拟计算资源和/或其他分布式计算功能。根据本文公开的概念和技术的各种实现,分布式计算环境600将本文描述的软件功能提供为客户端606的服务。应当理解,客户端606可以包括真实或虚拟机,包括但不限于服务器计算机、网络服务器、个人计算机、移动计算设备,智能电话和/或其他设备。这样,本文公开的概念和技术的各种配置使得配置成访问分布式计算环境600的任何设备能够利用本文描述的功能来提供数据可视化的智能配置,以及其他方面。在一个特定示例中,如上所述,本文描述的技术可以至少部分地由图5的web浏览器应用程序510实现,其与图6的应用程序服务器608一起工作。
现在转到图7,用于计算设备的说明性计算设备架构700,其能够执行本文描述的用于提供系统200的各种软件组件。计算设备结构700适用于计算设备,这些设备在某种程度上由于外形因素、无线连接和/或电池供电操作而有助于移动计算。在示例配置中,计算设备包括但不限于移动电话、平板设备、平板设备、便携式视频游戏设备等。计算设备架构700适用于图6中所示的任何客户端设备606。此外,计算设备架构700的各方面可适用于传统台式计算机、便携式计算机(例如,膝上型计算机、笔记本电脑、超便携式计算机和上网本)、服务器计算机和其他计算机系统。例如本文中参考图5描述的。例如,下文中公开的单触摸和多触摸方面可以应用于利用触摸屏或一些其他触摸的台式计算机,例如启用触控的触控板或启用触控的鼠标。
图7中所示的计算设备架构700包括处理器702、存储器组件704、网络连接组件706、传感器组件708、输入/输出组件710和电源组件712。在所示配置中,处理器702与存储器组件704、网络连接组件706、传感器组件708、输入/输出(“I/O”)组件710和电源组件712通信。尽管在在图7中图示的各个组件之间未示出连接,组件可以相互作用以执行设备功能。在一些配置中,组件被布置为经由一个或更多个总线(未示出)进行通信。
处理器702包括中央处理单元(“CPU”),其被配置为处理数据,执行一个或更多个应用程序的计算机可执行指令,以及与计算设备架构700的其他组件通信以便执行这里描述的各种功能。处理器702可以用于执行本文呈现的软件组件的各方面,并且特别是,至少部分地利用触摸使能输入的那些方面。
在示例配置中,处理器702包括图形处理单元(“GPU”),其被配置为加速由CPU执行的操作,包括但不限于通过执行通用科学和/或工程计算应用程序执行的操作。以及图形密集型计算应用程序,例如高分辨率视频(例如,720P,1080P和更高分辨率)、视频游戏、三维(“3D”)建模应用程序等。在一些配置中,处理器702被配置为与独立GPU(未示出)通信。在任何情况下,CPU和GPU可以根据协处理CPU/GPU计算模型来配置,其中应用的顺序部分在CPU上执行并且计算密集型部分由GPU加速。
在示例配置中,处理器702与下面描述的一个或更多个其他组件一起为或包括在片上系统(“SoC”)中。例如,SoC可以包括处理器702、GPU、网络连接组件706中的一个或更多个、以及传感器组件708中的一个或更多个。在一些配置中,处理器702部分地利用堆叠式(“PoP”)集成电路封装技术封装制造。处理器702可以是单核或多核处理器。
处理器702可以根据ARM架构来创建,该架构可从英国剑桥的ARM HOLDINGS获得许可。或者,处理器702可以根据x86架构来创建,例如可以从加利福尼亚州山景城的INTEL公司和其他公司获得。
存储器组件704包括随机存取存储器(“RAM”)714、只读存储器(“ROM”)716、集成存储存储器(“集成存储器”)718和可移动存储存储器(可移动存储)720。在一些配置中,RAM714或其一部分、ROM 716或其一部分、和/或RAM 714和ROM 716的某种组合集成在处理器702中。在一些配置中,ROM 716被配置为存储固件、操作系统或其一部分(例如,操作系统内核)和/或引导加载程序以从集成存储器718和/或可移动存储器720加载操作系统内核。
集成存储器718可以包括固态存储器、硬盘或固态存储器和硬盘的组合。集成存储器718可以焊接或以其他方式连接到逻辑板,处理器702和本文描述的其他组件也可以连接在逻辑板上。这样,集成存储器718集成在计算设备中。集成存储器718被配置为存储操作系统或其部分,应用程序、数据和本文描述的其他软件组件。
可移动存储器720可以包括固态存储器、硬盘或固态存储器和硬盘的组合。在一些配置中,提供可移动存储器720来代替集成存储器718。在其他配置中,可移动存储器720被提供为附加的可选存储。在一些配置中,可移动存储器720在逻辑上与集成存储器718组合,使得总可用存储可用作总组合存储容量。在一些配置中,向用户示出了集成存储器718和可移动存储器720的总组合容量,而不是集成存储器718和可移动存储器720的单独存储容量。
可移动存储器720被配置为插入可移动存储存储器插槽(未示出)或其他机构,通过该机制插入并固定可移动存储装置720以便于可移动存储器720可与其他组件通信的连接。可移动存储器720可以体现为各种存储卡格式,包括但不限于PC卡、CompactFlash卡、记忆棒、安全数字(“SD”)、miniSD、microSD、通用集成电路卡(“UICC”)(例如,用户识别模块(“SIM”)或通用SIM(“USIM”))、专有格式等。
可以理解,存储器组件704中的一个或更多个可以存储操作系统。根据各种配置,操作系统包括但不限于来自华盛顿州雷蒙德市的微软公司的WINDOWS MOBILE OS、来自微软公司的WINDOWS PHONE OS、来自微软公司的WINDOWS、来自加利福尼亚州帕洛阿尔托的Hewlett-Packard公司的PALM WEBOS、来自加拿大安大略省滑铁卢的Research In MotionLimited的BLACKBERRY OS、加利福尼亚州Cupertino的Apple Inc.的IOS,以及加利福尼亚州山景城的Google Inc.的ANDROID OS。其他操作系统是可预期的。
网络连接组件706包括无线广域网组件(“WWAN组件”)722、无线局域网组件(“WLAN组件”)724和无线个域网组件(“WPAN组件”)726。网络连接组件706便于与网络756或另一网络的通信,该网络可以是WWAN、WLAN或WPAN。尽管仅示出了网络756,但是网络连接组件706可以促进与多个网络的同时通信,包括图7的网络604。例如,网络连接组件706可以促进经由WWAN、WLAN或WPAN中的一个或更多个网络与多个网络的同时通信。
网络756可以是或可以包括WWAN,例如利用一种或多种移动电信技术的移动电信网络,以通过WWAN组件722利用计算设备架构700向计算设备提供语音和/或数据服务。移动电信技术可包括但不限于全球移动通信系统(“GSM”)、码分多址(“CDMA”)ONE、CDMA7000、通用移动电信系统(“UMTS”)、长期演进(“LTE”)和全球微波接入互操作性(“WiMAX”)。此外,网络756可以利用各种信道接入方法(可以由前述标准使用或不使用),包括但不限于时分多址(“TDMA”)、频分多址(“FDMA”)、CDMA、宽带CDMA(“W-CDMA”),正交频分复用(“OFDM”)、空分多址(“SDMA”)等。可以使用通用分组无线电服务(“GPRS”)、全球演进的增强数据速率(“EDGE”)、包括高速下行链路分组接入的高速分组接入(“HSPA”)协议族来提供数据通信(“HSDPA“)、增强型上行链路(”EUL“)或以其他方式称为高速上行链路分组接入(”HSUPA“)、演进的HSPA(”HSPA+“)、LTE以及各种其他当前和未来的无线数据接入标准。网络756可以被配置为利用上述技术的任何组合来提供语音和/或数据通信。网络756可以被配置为或适于根据下一代技术提供语音和/或数据通信。
在示例配置中,WWAN组件722被配置为向网络756提供双模多模连接。例如,WWAN组件722可以被配置为提供到网络756的连接,其中网络756通过GSM和UMTS技术,或通过其他一些技术组合提供服务。或者,可以利用多个WWAN组件722来执行这样的功能,和/或提供附加功能以支持其他不兼容的技术(即,不能由单个WWAN组件支持)。WWAN组件722可以促进与多个网络(例如,UMTS网络和LTE网络)的类似连接。
网络756可以是根据一个或更多个电气和电子工程师协会(“IEEE”)802.11标准操作的WLAN,例如IEEE 802.11a、802.11b、802.11g、802.11n和/或未来802.11标准(在此统称为WI-FI)。还考虑了草案802.11标准。在一些配置中,利用一个或更多个无线WI-FI接入点来实现WLAN。在一些配置中,无线WI-FI接入点中的一个或更多个是具有到WWAN的连接的另一计算设备,其充当WI-FI热点。WLAN组件724被配置为经由WI-FI接入点连接到网络756。可以通过各种加密技术来保护这种连接,包括但不限于WI-FI保护访问(“WPA”)、WPA2、线等效保密(“WEP”)等。
网络756可以是根据红外数据协会(“IrDA”)、蓝牙、无线通用串行总线(“USB”)、Z-Wave、ZIGBEE或一些其他短程无线技术操作的WPAN。在一些配置中,WPAN组件726被配置为便利经由WPAN与诸如外围设备、计算机或其他计算设备的其他设备的通信。
传感器组件708包括磁力计728、环境光传感器730、接近传感器732、加速计734、陀螺仪736和全球定位系统传感器(“GPS传感器”)738。可以预期的是,其他传感器,例如但不限于罗盘、温度传感器或冲击检测传感器,也可以包含在计算设备架构700中。
磁力计728配置成测量磁场的强度和方向。在一些配置中,磁力计728向存储在存储器组件704内之一的罗盘应用程序提供测量,以便向用户提供包括基本方向(北,南,东和西)的参考系中的准确方向。可以向包括罗盘组件的导航应用程序提供类似的测量。由磁力计728获得的测量的其他用途是可预期的。
环境光传感器730配置为测量环境光。在一些配置中,环境光传感器730向存储在一个存储器组件704内的应用程序提供测量,以便自动调整显示器的亮度(下面描述)以补偿低光和高光环境。由环境光传感器730获得的测量的其他用途是可预期的。
接近传感器732被配置为在没有直接接触的情况下检测接近计算设备的物体或物体的存在。在一些配置中,接近传感器732检测用户身体(例如,用户的面部)的存在,并将该信息提供给存储在存储器组件704之一内的应用程序,该应用程序利用接近信息来启用或禁用计算设备的某些功能。例如,电话应用程序可以响应于接收到接近信息而自动禁用触摸屏(下面描述),使得用户的面部在呼叫期间不会无意中结束呼叫或启用/禁用电话应用程序内的其他功能。可以预期由接近传感器732检测到的接近的其他用途。
加速度计734被配置为测量适当的加速度。在一些配置中,来自加速计734的输出被应用程序用作输入机制以控制应用程序的一些功能。例如,应用程序可以是视频游戏,其中响应于经由加速度计734接收的输入移动或以其他方式操纵角色其一部分或对象。在一些配置中,来自加速度计734的输出被提供给用于在横向和纵向模式之间切换、计算坐标加速度或检测跌倒的应用程序。可以预期加速度计734的其他用途。
陀螺仪736配置成测量和保持定向。在一些配置中,来自陀螺仪736的输出被应用程序用作输入机制以控制应用程序的一些功能。例如,陀螺仪736可用于准确识别视频游戏应用程序或一些其他应用程序的3D环境内的移动。在一些配置中,应用程序利用来自陀螺仪736和加速计734的输出来增强对应用程序的一些功能的控制。可以预期陀螺仪736的其他用途。
GPS传感器738被配置为从GPS卫星接收信号以用于计算位置。由GPS传感器738计算的位置可以由需要或受益于位置信息的任何应用程序使用。例如,由GPS传感器738计算的位置可以与导航应用程序一起使用,以提供从该位置到目的地的方向或从目的地到该位置的方向。此外,GPS传感器738可用于向基于外部位置的服务(例如E911服务)提供位置信息。GPS传感器738可以利用网络连接组件706中的一个或更多个来获得经由WI-FI、WIMAX和/或蜂窝三角测量技术生成的位置信息,以帮助GPS传感器738获得定位。GPS传感器738还可以用在辅助GPS(“A-GPS”)系统中。
如应理解的,一个或更多个传感器可用于检测用户的上下文信息,如图2和3中所述。
I/O组件710包括显示器740、触摸屏742、数据I/O接口组件(“数据I/O”)744、音频I/O接口组件(“音频I/O”)746、视频I/O接口组件(“视频I/O”)748和相机750。在一些配置中,组合显示器740和触摸屏742是组合的。在一些配置中,数据I/O组件744、音频I/O组件746和视频I/O组件748中的两个或更多个是组合的。I/O组件710可以包括被配置为支持下面描述的各种接口的离散处理器,或者可以包括内置于处理器702的处理功能。
显示器740是被配置为以视觉形式呈现信息的输出设备。特别地,显示器740可以呈现图形用户界面(“GUI”)元素、文本、图像、视频、通知、虚拟按钮、虚拟键盘、消息递送数据、因特网内容、设备状态、时间、日期、日历数据、偏好、地图信息、位置信息以及能够以视觉形式呈现的任何其他信息。在一些配置中,显示器740是利用任何有源或无源矩阵技术和任何背光技术(如果使用的话)的液晶显示器(“LCD”)。在一些配置中,显示器740是有机发光二极管(“OLED”)显示器。可以预期其他显示类型。
触摸屏742(在此也称为“触摸屏幕”)是被配置为检测触摸的存在和位置的输入设备。触摸屏742可以是电阻式触摸屏、电容式触摸屏、表面声波触摸屏、红外触摸屏、光学成像触摸屏、色散信号触摸屏、声脉冲识别触摸屏,或者可以利用任何其他触摸屏技术。在一些配置中,触摸屏742被结合在显示器740的顶部作为透明层,以使用户能够使用一个或更多个触摸来与在显示器740上呈现的对象或其他信息交互。在其他配置中,触摸屏742是结合在计算设备的不包括显示器740的表面上的触摸板。例如,计算设备可以具有结合在显示器740顶部的触摸屏和与显示器740相对的表面上的触摸板。
在示例配置中,触摸屏742是单点触摸屏。在其他配置中,触摸屏742是多点触摸屏。在一些配置中,触摸屏742被配置为检测离散触摸、单触摸手势和/或多触摸手势。为方便起见,这些在本文中统称为手势。现在将描述几个手势。应该理解,这些姿势是说明性的,并不旨在限制所附权利要求的范围。此外,所描述的手势,附加手势和/或替代手势可以用软件实现以与触摸屏742一起使用。这样,开发者可以创建特定于特定应用程序的手势。
在示例配置中,触摸屏742支持轻击手势,其中用户在显示器740上呈现的项目上轻敲触摸屏742一次。轻击手势可以出于各种原因使用,包括但不限于打开或启动用户点击的任何内容。在一些配置中,触摸屏742支持双击手势,其中用户在显示器740上呈现的项目上轻敲触摸屏742两次。双击手势可以出于各种原因使用,包括但不限于放大或逐步缩小。在一些配置中,触摸屏742支持轻击并保持手势,其中用户轻敲触摸屏742并保持接触至少预定义的时间。可以出于各种原因使用轻击和保持手势,包括但不限于打开特定于上下文的菜单。
在示例配置中,触摸屏742支持平移手势,其中用户将手指放在触摸屏742上并在触摸屏742上移动手指的同时保持与触摸屏742的接触。可以出于各种原因使用平移手势,包括但不限于以受控速率移动屏幕、图像或菜单。还考虑了多个手指平移手势。在示例配置中,触摸屏742支持轻弹手势,其中用户在用户想要屏幕移动的方向上滑动手指。轻弹手势可以出于各种原因使用,包括但不限于通过菜单或页面水平或垂直滚动。在一些配置中,触摸屏742支持收缩和伸展手势,其中用户利用触摸屏742上的两个手指(例如,拇指和食指)进行捏动动作或者将两个手指分开。可以出于各种原因使用收缩和伸展手势,包括但不限于逐渐放大或缩小网站、地图或图片。
尽管已经参考使用一个或更多个手指来执行上述手势来执行手势,但是诸如脚趾之类的其他附属物或诸如指示笔之类的物体可以用于与触摸屏742交互。因此,上述手势应该理解为说明性的,不应该被解释为以任何方式进行限制。
数据I/O接口组件744被配置为便于向计算设备输入数据和从计算设备输出数据。在一些配置中,数据I/O接口组件744包括连接器,该连接器被配置为在计算设备和计算机系统之间提供有线连接,例如,用于同步操作目的。连接器可以是专用连接器或标准化连接器,例如USB、微型USB、迷你USB等。在一些配置中,连接器是用于将计算设备与诸如扩展坞、音频设备(例如,数字音乐播放器)或视频设备之类的另一设备对接的对接连接器。
音频I/O接口组件746被配置为向计算设备提供音频输入和/或输出能力。在一些配置中,音频I/O接口组件746包括被配置为收集音频信号的麦克风。在一些配置中,音频I/O接口组件746包括耳机插孔,该耳机插孔被配置为为耳机或其他外部扬声器提供连接。在一些配置中,音频I/O接口组件746包括用于输出音频信号的扬声器。在一些配置中,音频I/O接口组件746包括光学音频电缆输出。
视频I/O接口组件748被配置为向计算设备提供视频输入和/或输出能力。在一些配置中,视频I/O接口组件748包括视频连接器,其被配置为从另一设备(例如,诸如DVD或BLURAY播放器的视频媒体播放器)接收视频作为输入,或者将视频作为输出发送到另一设备(例如,显示器、电视或其他一些外部显示器)。在一些配置中,视频I/O接口组件748包括高清晰度多媒体接口(“HDMI”)、迷你HDMI、微型HDMI、DisplayPort或用于输入/输出视频内容的专有连接器。在一些配置中,视频I/O接口组件748或其部分与音频I/O接口组件746或其部分组合。
相机750可以被配置为捕获静止图像和/或视频。相机750可以利用电荷耦合器件(“CCD”)或互补金属氧化物半导体(“CMOS”)图像传感器来捕获图像。在一些配置中,相机750包括闪光灯以帮助在低光环境下拍摄照片。相机750的设置可以实现为硬件或软件按钮。
尽管未示出,但是一个或更多个硬件按钮也可以包括在计算设备架构700中。硬件按钮可以用于控制计算设备的一些操作方面。硬件按钮可以是专用按钮或多用途按钮。硬件按钮可以是机械的或基于传感器的。
所示的电源组件712包括一个或更多个电池752,其可以连接到电池量表754。电池752可以是可充电的或一次性的。可再充电电池类型包括但不限于锂聚合物、锂离子、镍镉和镍金属氢化物。每个电池752可以由一个或更多个电池制成。
电池量表754可以配置为测量电池参数,例如电流、电压和温度。在一些配置中,电池量表754被配置为测量电池的放电速率、温度、年龄和其他因素的影响,以预测在一定百分比的误差内的剩余寿命。在一些配置中,电池量表754向应用程序提供测量,该应用程序被配置为利用测量值向用户呈现有用的电源管理数据。电源管理数据可以包括所使用的电池百分比、电池剩余百分比、电池状况、剩余时间、剩余容量(例如,以瓦时为单位)、电流消耗和电压中的一个或更多个。
电源组件712还可以包括电源连接器,其可以与前述I/O组件710中的一个或更多个组合。电源组件712可以通过I/O组件与外部电源系统或充电设备连接。
鉴于以下实施方案,可以考虑本文提供的公开内容。
条款1:一种用于分配计算系统的计算资源的计算机实现的系统,包括:一个或更多个处理器;与所述一个或更多个处理器可通信连接的计算机可读存储介质,所述计算机可读存储介质上存储有计算机可执行指令,所述计算机可执行指令在被执行时使所述计算机实现的系统执行以下操作:识别所述计算系统的处理器核的多个硬件线程;确定所述多个硬件线程中每个硬件线程的使用率指标;基于所述多个硬件线程的使用率指标来估计所述处理器核的使用率指标;并输出所述处理器核的估计的使用率指标,作为分配计算系统的计算资源的基础。
条款2:根据条款1的计算机实现的系统,其中基于多个硬件线程中的最高使用率指标来估计所述处理器核的使用率。
条款3:根据条款1所述的计算机实现的系统,其中基于对多个硬件线程中的多个更高使用率指标的平均来估计所述处理器核的使用率指标。
条款4:根据条款1的计算机实现的系统,其中确定多个硬件线程中的每个硬件线程的使用率指标包括以小于阈值时间间隔的采样间隔确定使用率指标,在所述采样间隔期间,软件线程能够从多个硬件线程中的一个硬件线程迁移到另一个硬件线程。
条款5:根据条款1的计算机实现的系统,其中识别处理器核的多个硬件线程包括确定多个硬件线程共享处理器核的硬件资源。
条款6:根据条款1的计算机实现的系统,其中估计处理器核的使用率指标包括应用规则。
条款7:一种分配计算系统的计算资源的方法,包括:识别计算系统的处理器核的多个硬件线程;确定多个硬件线程中的每个线程的使用率指标;基于多个硬件线程的使用率指标来估计处理器核的使用率指标;并输出处理器核的估计的使用率指标,作为分配计算系统的计算资源的基础。
条款8:根据条款7所述的方法,还包括:估计所述计算系统的处理单元的多个处理器核的使用率指标;基于多个处理器核的估计的使用率指标确定处理单元的使用率指标;并输出处理单元的使用率指标,作为分配计算系统的计算资源的基础。
条款9:根据条款8所述的方法,其中确定处理单元的使用率指标包括对多个处理器核的估计的使用率指标进行平均。
条款10:根据条款8所述的方法,其中基于多个处理器核之间的更高估计的使用率指标确定处理单元的使用率指标。
条款11:根据条款7所述的方法,其中基于多个硬件线程中的最高使用率指标估计处理器核的使用率。
条款12:根据条款7所述的方法,其中基于对多个硬件线程中的多个更高使用率指标进行平均来估计处理器核的使用率指标。
条款13:根据条款7所述的方法,其中确定多个硬件线程中的每个硬件线程的使用率指标包括以小于阈值时间间隔的采样间隔确定使用率指标,在所述采样间隔期间,程序线程可以从多个硬件线程的一个硬件线程迁移到另一个硬件线程。
条款14:根据条款7所述的方法,其中识别处理器核的多个硬件线程包括确定多个硬件线程共享处理器核的硬件资源。
条款15:根据条款7所述的方法,其中计算系统包括对称多处理系统,所述对称多处理系统包括多层处理单元和处理器核。
条款16:一种计算机可读存储介质,其上存储有计算机可执行指令,当由计算机执行时,使计算机执行包括以下操作的动作:识别计算系统的处理器核的多个硬件线程;确定多个硬件线程中的每个线程的使用率指标;基于多个硬件线程的使用率指标来估计处理器核的使用率指标;并输出处理器核的估计的使用率指标,作为分配计算系统的计算资源的基础。
条款17:根据条款16的计算机可读存储介质,还包括:估计计算系统的处理单元的多个处理器核的使用率指标;并且基于所述多个处理器核的估计的使用率指标来确定所述处理单元的使用率指标。
条款18:根据条款17的计算机可读存储介质,其中确定处理单元的使用率指标包括对多个处理器核的估计的使用率指标进行平均。
条款19:根据条款16的计算机可读存储介质,其中基于多个硬件线程中的最高使用率指标来估计处理器核的使用率。
条款20:根据条款16的计算机可读存储介质,其中基于对多个硬件线程中的多个更高使用率指标进行平均来估计处理器核的使用率指标。
条款21:一种用于分配计算系统的计算资源的计算机实现的系统,包括:一个或更多个处理器;与所述一个或更多个处理器可通信的连接的计算机可读存储介质,所述计算机可读存储介质上存储有计算机可执行指令,所述计算机可执行指令在被执行时使所述计算机实现的系统执行以下操作:识别所述计算系统的处理器核的多个硬件线程;确定所述多个硬件线程中每个硬件线程的使用率指标;基于所述多个硬件线程中的更高使用率指标来估计所述处理器核的使用率指标;并输出所述处理器核的估计的使用率指标,作为分配计算系统的计算资源的基础。
条款22:一种分配计算系统的计算资源的方法,包括:识别计算系统的处理器核的多个硬件线程;确定所述多个硬件线程中的每个硬件线程的使用率指标;基于所述多个硬件线程中的更高使用率指标来估计处理器核的使用率指标;并输出所述处理器核的估计的使用率指标,作为分配计算系统的计算资源的基础。
条款23:计算机可读存储介质,其上存储有计算机可执行指令,当由计算机执行时,使计算机执行包括以下操作的动作:识别计算系统的处理器核的多个硬件线程;确定多个硬件线程中的每个线程的使用率指标;基于多个硬件线程中的更高使用率指标来估计处理器核的使用率指标;并输出处理器核的估计的使用率指标,作为分配计算系统的计算资源的基础。

Claims (20)

1.一种用于分配计算系统的计算资源的计算机实现的系统,该系统包括:
一个或更多个处理器;和
与所述一个或更多个处理器可通信的连接的计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被执行时使所述计算机实现的系统执行以下操作:
识别计算系统的处理器核的多个硬件线程;
确定所述多个硬件线程中每个硬件线程的使用率指标;
基于所述多个硬件线程的使用率指标来估计处理器核的使用率指标;以及
输出处理器核的估计的使用率指标,作为分配计算系统的计算资源的基础。
2.如权利要求1所述的计算机实现的系统,其中,基于所述多个硬件线程中的最高使用率指标来估计所述处理器核的使用率。
3.如权利要求1所述的计算机实现的系统,其中,基于对所述多个硬件线程中的多个更高的使用率指标进行平均来估计所述处理器核的使用率指标。
4.如权利要求1所述的计算机实现的系统,其中,确定所述多个硬件线程中的每个硬件线程的使用率指标包括以小于阈值时间间隔的采样间隔确定所述使用率指标,在所述采样间隔期间,软件线程能够从所述多个硬件线程中的一个硬件线程迁移到另一个硬件线程。
5.如权利要求1所述的计算机实现的系统,其中,识别处理器核的多个硬件线程包括确定多个硬件线程共享处理器核的硬件资源。
6.如权利要求1所述的计算机实现的系统,其中,估计处理器核的使用率指标包括应用规则。
7.一种分配计算系统的计算资源的方法,包括:
识别计算系统的处理器核的多个硬件线程;
确定所述多个硬件线程中的每个硬件线程的使用率指标;
基于所述多个硬件线程的使用率指标来估计处理器核的使用率指标;和
输出处理器核的估计的使用率指标,作为分配计算系统的计算资源的基础。
8.如权利要求7所述的方法,该方法还包括:
估计计算系统的处理单元的多个处理器核的使用率指标;
基于所述多个处理器核的估计的使用率指标来确定处理单元的使用率指标;以及
输出处理单元的使用率指标,作为分配计算系统的计算资源的基础。
9.如权利要求8所述的方法,其中,确定处理单元的使用率指标包括对所述多个处理器核的估计的使用率指标进行平均。
10.如权利要求8所述的方法,其中,基于所述多个处理器核之间的更高估计的使用率指标来确定处理单元的使用率指标。
11.如权利要求7所述的方法,其中,基于所述多个硬件线程中的最高的使用率指标来估计处理器核的使用率。
12.如权利要求7所述的方法,其中,基于对所述多个硬件线程中的多个更高使用率指标进行平均来估计处理器核的使用率指标。
13.如权利要求7所述的方法,其中,确定所述多个硬件线程中的每个线程的使用率指标包括:以小于阈值时间间隔的采样间隔确定所述使用率指标,在所述采样间隔期间,软件线程能够从多个硬件线程中的一个硬件线程迁移到另一个硬件线程。
14.根据权利要求7所述的方法,其中,识别所述处理器核的所述多个硬件线程包括:确定所述多个硬件线程共享所述处理器核的硬件资源。
15.如权利要求7所述的方法,其中,所述计算系统包括对称多处理系统,所述对称多处理系统包括多层处理单元和处理器核。
16.一种存储有计算机可执行指令的计算机可读存储介质,当由计算机执行时,使计算机执行包括以下操作的动作:
识别计算系统的处理器核的多个硬件线程;
确定多个硬件线程中的每个硬件线程的使用率指标;
基于多个硬件线程的使用率指标来估计处理器核的使用率指标;以及
输出处理器核的估计的使用率指标,作为分配计算系统的计算资源的基础。
17.如权利要求16所述的计算机可读存储介质,还包括:
估计计算系统的处理单元的多个处理器核的使用率指标;以及
基于多个处理器核的估计的使用率指标来确定处理单元的使用率指标。
18.如权利要求17所述的计算机可读存储介质,其中,确定处理单元的使用率指标包括对多个处理器核的估计的使用率指标进行平均。
19.如权利要求16所述的计算机可读存储介质,其中,基于所述多个硬件线程中的最高使用率指标来估计所述处理器核的使用率。
20.如权利要求16所述的计算机可读存储介质,其中,基于对所述多个硬件线程中的多个更高使用率指标进行平均来估计所述处理器核的使用率指标。
CN201780082843.2A 2017-01-13 2017-01-13 确定多处理系统的处理器使用率 Pending CN110235085A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/071099 WO2018129708A1 (en) 2017-01-13 2017-01-13 Determining processor utilization of multiprocessing system

Publications (1)

Publication Number Publication Date
CN110235085A true CN110235085A (zh) 2019-09-13

Family

ID=62839222

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780082843.2A Pending CN110235085A (zh) 2017-01-13 2017-01-13 确定多处理系统的处理器使用率

Country Status (2)

Country Link
CN (1) CN110235085A (zh)
WO (1) WO2018129708A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11214666B2 (en) 2020-04-15 2022-01-04 Prc-Desoto International, Inc. Controlling cure rate with wetted filler

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1495585A (zh) * 2002-09-20 2004-05-12 ض� 确定cpu使用率的与操作系统无关的方法和系统
US20120185709A1 (en) * 2011-12-15 2012-07-19 Eliezer Weissmann Method, apparatus, and system for energy efficiency and energy conservation including thread consolidation
CN103999016A (zh) * 2011-12-15 2014-08-20 英特尔公司 基于处理器使用率动态地修正功率/性能权衡

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954977B2 (en) * 2008-12-09 2015-02-10 Intel Corporation Software-based thread remapping for power savings
US9069598B2 (en) * 2012-01-06 2015-06-30 International Business Machines Corporation Providing logical partions with hardware-thread specific information reflective of exclusive use of a processor core

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1495585A (zh) * 2002-09-20 2004-05-12 ض� 确定cpu使用率的与操作系统无关的方法和系统
US20120185709A1 (en) * 2011-12-15 2012-07-19 Eliezer Weissmann Method, apparatus, and system for energy efficiency and energy conservation including thread consolidation
CN103999016A (zh) * 2011-12-15 2014-08-20 英特尔公司 基于处理器使用率动态地修正功率/性能权衡

Also Published As

Publication number Publication date
WO2018129708A1 (en) 2018-07-19

Similar Documents

Publication Publication Date Title
CN105934756B (zh) 索引电子表格结构属性以供搜索
CN106575360B (zh) 图表数据的增强识别
CN104541271B (zh) 从电子表格数据生成场景和游览
US10037626B2 (en) Interaction with virtual objects based on determined restrictions
CN107567610A (zh) 附连控制元素的混合环境显示
CN105378630B (zh) 用于范围过滤器的包含/排除用户界面控件
CN104067215B (zh) 呈现数据驱动表单
CN105593803B (zh) 自动滚动区域
CN109074550A (zh) 上下文感知调度特例
CN109313505A (zh) 经由控制点改变渲染对象的属性
US9972134B2 (en) Adaptive smoothing based on user focus on a target object
CN109074393A (zh) 对于日历事件的上下文感知洞察
US9697627B2 (en) Data point calculations on a chart
CN108141702A (zh) 上下文知晓的位置共享服务
CN109074531A (zh) 工作流事件的自动化
CN106537382B (zh) 查询建议
CN105393222B (zh) 网络应用与本地应用之间的渲染委托
US10782800B2 (en) Dynamic interaction adaptation of a digital inking device
US11314408B2 (en) Computationally efficient human-computer interface for collaborative modification of content
US20180025731A1 (en) Cascading Specialized Recognition Engines Based on a Recognition Policy
CN110168588A (zh) 基于位置、使用模式以及内容来识别文档
WO2021101699A1 (en) Enhanced views and notifications of location and calendar information
EP3701684A1 (en) Geographically-driven group communications
CN108885640A (zh) 生成服务应用
CN107810489A (zh) 应用与设备之间的无缝转换

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20190913

RJ01 Rejection of invention patent application after publication