CN107850931A - 后台任务管理 - Google Patents

后台任务管理 Download PDF

Info

Publication number
CN107850931A
CN107850931A CN201680041342.5A CN201680041342A CN107850931A CN 107850931 A CN107850931 A CN 107850931A CN 201680041342 A CN201680041342 A CN 201680041342A CN 107850931 A CN107850931 A CN 107850931A
Authority
CN
China
Prior art keywords
manager
background
wait
background task
event
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.)
Withdrawn
Application number
CN201680041342.5A
Other languages
English (en)
Inventor
A·U·基什安
P·M·塞凯拉德贾斯托泰塞拉
A·艾哈迈德
A·吉弗伦特
J·小施瓦茨
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN107850931A publication Critical patent/CN107850931A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • 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
    • 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/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Telephone Function (AREA)

Abstract

提供了一种用于后台任务管理的一种或多种系统和/或技术。后台管理器可从后台任务接收该后台任务正在等待事件的通知(104),并且也可从后台任务接收可等待对象(106),其中该可等待对象被该后台任务用于等待该事件。响应于在一段时间内可等待对象未被触发,该后台管理器可实现功率管理策略以供计算设备托管该后台任务(108)。

Description

后台任务管理
背景
诸如台式计算机、膝上型计算机、智能电话、和平板之类的许多计算设备都是围绕节约功耗和/或延长电池寿命而开发的。在一个示例中,移动设备可被转换到经连接的待机状态。当处于经连接的待机状态时,移动设备的屏幕连同低优先级功能一起被关闭(例如,视频游戏、计算器应用、和相机应用可被置于睡眠状态)。其他更高优先级的功能可以保持可操作(例如,输入消息通知服务可被置于较低功率操作状态以便检测输入消息,使得移动设备可被唤醒到关于新消息和/或其他数据的最新状态)。
概述
提供本概述以便以简化的形式介绍将在以下的详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键因素或必要特征,也不旨在用于限定所要求保护的主题的范围。
除此之外,本文提供了用于后台任务管理的一种或多种系统和/或技术。在用于后台任务管理的系统的一个示例中,后台管理器被配置为从后台任务接收该后台任务正在等待事件的通知。后台管理器被配置成从后台任务接收可等待对象,该可等待对象被该后台任务用于等待该事件。响应于在一段时间内可等待对象未被触发,后台管理器被配置为实现功率管理策略以供计算设备托管后台任务。
在用于后台任务管理的方法的示例中,创建被后台任务用于等待事件的可等待对象。可等待对象被传递给IO管理器。IO请求通过IO管理器被发出到被配置为触发事件的IO组件。可等待对象被发送到后台管理器,并然后向后台管理器发送后台任务正在等待事件的通知。响应于在一段时间内可等待对象未被触发,通知触发后台管理器以实现功率管理策略以供计算设备托管后台任务。
在用于后台任务管理的方法的一个示例中,从后台任务接收该后台任务正在等待事件的通知。接收到与该事件相关联的可等待对象。可等待对象被后台任务用于等待事件。响应于在一段时间内可等待对象未被触发,实现功率管理策略以供计算设备托管后台任务。
为了实现上述内容和相关目的,以下描述和附图阐述了某些说明性方面和实现。这些方面和实现仅指示可以使用一个或多个方面的各种方式中的一些。结合附图阅读以下详细描述,则本公开的其他方面、优点、以及新颖特征将变得显而易见。
附图简述
图1是例示出用于计算设备的节能的后台任务管理的示例性方法的流程图。
图2是例示后台任务管理的示例性方法的流程图。
图3是后台任务管理的示例的图示。
图4A是例示用于后台任务管理的示例性系统的组件框图,其中后台任务创建可等待对象。
图4B是例示用于后台任务管理的示例性系统的组件框图,其中后台任务发出IO请求。
图4C是例示用于后台任务管理的示例性系统的组件框图,其中后台任务向后台管理器发送通知和可等待对象。
图4D是例示用于后台任务管理的示例性系统的组件框图,其中后台任务被挂起并且片上系统被转换到较低功率状态。
图4E是例示用于后台任务管理的示例性系统的组件框图,其中后台任务被恢复以处理与事件相关联的数据。
图5是示例性计算机可读介质的图示,其中可包括被配置成实现此处所阐述的原理中的一个或多个的处理器可执行指令。
图6示出其中可实现本文中所阐述的措施中的一个或多个的示例性计算环境。
详细描述
现在参考附图来描述所要求保护的主题,所有附图中一般使用相同的附图标记来指代相同的元素。在以下描述中,为解释起见,阐明了众多具体细节以提供对所要求保护的主题的理解。但是显而易见的是,没有这些具体细节也可实践所要求保护的主题。在其他实例中,以框图形式示出了各个结构和设备以便于描述所要求保护的主题。
本文提供了用于计算设备的节能的后台管理的一个或多个系统和/或技术。许多用户可能更喜欢具有相对长的持续电池寿命的计算设备,诸如移动设备(例如,智能电话、平板等)。一些计算设备可提供和/或被配置为在较低功率状态下操作以节约功耗并提高电池寿命(例如,诸如片上系统之类的计算设备内的电路可被转换到较低功率状态以便减少此类电路的功耗)。当处于较低功率状态时,后台任务可以被终止(例如,从存储器中移除)。不幸的是,当将计算设备转换回到操作状态时,大量的资源和/或开销可能会被浪费在创建新的后台任务来从被终止的后台任务离开的地方接管,这种浪费在进入事件的频率相对较高的情况下可能会被加剧。如本文所提供的,后台任务可以以功率高效的方式来管理以便在允许长期运行的后台任务的同时仍然允许计算设备转换到较低功率状态。即,在后台任务通知后台管理器该后台任务正在等待事件的情况下使用协作模型,以使后台管理器在后台任务正在运行时可更积极地对计算设备进行功率管理,和/或附加地允许长期运行的后台任务模型,而不会遭受频繁的短期运行的后台任务的开销和/或成本。例如,后台任务可通知后台管理器后台任务正在等待事件(例如,来自诸如相机或加速度计之类的传感器的数据的可用性;通过网卡/套接字对电子邮件的接收等)。在等待事件的同时,后台任务可被挂起(例如,被保留在存储器中而不是被终止,以便于快速且高效的恢复),并且诸如片上系统之类的计算设备可被转换到较低功率状态以节能。在事件发生之际,计算设备可被转换到通电或较高功率状态,并且后台任务可被恢复以处理与该事件相关联的数据。以此方式,计算设备的功耗可被节约和/或更高效地发生。例如,与终止后台任务并创建新的后台任务和/或使计算设备在后台任务的生命周期中保持在较高功率状态相比,挂起后台任务并恢复后台任务消耗更少的功率(例如,计算设备在后台任务的整个生命周期中不需要处于较高功率状态)。
通过图1的示例性方法100例示了用于计算设备的节能的后台任务管理的实施例。在102,该方法开始。计算设备(例如,平板、智能电话、可穿戴设备、膝上型计算机等)可通过后台任务托管可执行各种功能的一个或多个应用(例如,可穿戴设备,被配置为接收和评估来自指示可穿戴设备的用户的心率的可穿戴设备的心跳监视器的心跳信号)。在处理过程中,后台任务可能会到达该后台任务正在等待事件发生的地点。例如,心率评估后台任务可被阻止进行进一步的处理,直到新的心跳信号被接收以供处理。在另一示例中,事件可包括与传感器事件(例如,接收自诸如相机、扬声器、加速度计、GPS设备等传感器的信息),设备驱动器,由IO管理器(例如,网卡)管理的IO组件的IO硬件事件,和/或数据事件的可用性(例如,对网络数据分组的接收)相关联的外部事件。在104,可(例如,由后台管理器)从后台任务接收该后台任务正在等待事件的通知。例如,后台管理器可公开API,后台任务可经由该API向后台管理器传递通知和/或其他信息(例如,可等待对象)。通知可指定后台任务同意被挂起直到事件发生为止。
在106,可接收到与该事件相关联的可等待对象。可等待对象可被后台任务用于等待事件。例如,可从后台任务接收可等待对象(例如,后台管理器可接收该可等待对象的句柄)。在一个示例中,可等待对象可能已经被后台任务暴露或提供给了IO管理器(例如,IO管理器可能已经代表后台任务打开了到要针对事件进行监视的IO组件的连接并且可能已经从后台任务向IO组件传递了可等待对象和IO请求),设备驱动器或可向后台任务提供与事件的发生相关联的数据的任何其他组件。可等待对象可包括诸如同步对象(例如,事件对象)之类的操作系统对象,该操作系统对象可基于事件的发生而被信号化/触发(例如,IO组件和/或IO管理器可在发生事件之际触发可等待对象)。在一个示例中,可等待对象可被标识为处于重置状态,指示后台任务已经重置了可等待对象并且后台任务将通过IO管理器向IO组件发出IO请求。IO请求可对应于对与该事件相关联的数据的请求。
在108,可响应于在(例如,预定义、事件驱动、依照情况等的)时间段内可等待对象未被触发(这指示事件并未发生)而实现功率管理策略,并且其中该时间段可以是包括立即或零时间的非常短的持续时间(例如,以便在积极地管理功率消耗的同时还保持性能要求)。即,例如,后台任务正在等待(例如外部)事件。后台任务向后台管理器传递可等待对象,其中此类由后台任务向后台管理器传递可等待对象向后台管理器提供了该后台管理器可更积极地对计算设备进行功率管理的指示,诸如通过将计算设备置于较低功率状态直到可等待对象被触发为止,其中可等待对象的此类触发是事件发生的指示。在实现功率管理策略的示例中,后台任务可(例如,由后台管理器)转换到低优先级状态(例如,挂起状态、较低调度优先级等)。在一个示例中,后台任务在处于挂起状态时可被保留在存储器中,使得该后台任务可在稍后的时间点快速且高效地恢复(例如,否则,终止该后台任务可能会导致在创建新的后台任务从经终止的后台任务离开的地方接管时显著的处理开销。在确定是否要挂起后台任务的示例中,计算设备的资源可被评估以标识资源可用性度量(例如,存储器可用性)。响应于超过资源阈值的资源可用性度量,后台任务可被挂起。否则,后台任务可能被终止而不是被挂起(例如,由于缺乏资源可用性)。
在实现功率管理策略的另一个示例中,为了节约计算设备的功率,片上系统(例如,计算设备的电路)可被转换到较低功率状态直到事件发生,这可以显著地降低计算设备的功耗,并且很可能延长电池寿命。例如,IO组件和/或IO管理器可基于事件的发生(例如,正接收到心跳信号)来触发可等待对象。响应于事件发生(例如,可等待对象由IO管理器触发),片上系统可被转换到较高功率或通电状态(例如,使得后台任务可被恢复以处理与该事件相关联的数据)。在实现功率管理策略的另一示例中,计算设备可基于功率管理策略被转换到较低功率状态、计算设备的一个或多个组件可被断电、线程调度策略可被实现、和/或其他功率管理功能可被实现。以此方式,在后台任务正在等待事件的同时,可以节约能源。在114,该方法结束。
后台任务管理的实施例由图2的示例性方法200图示。在202,该方法开始。在204,由后台任务用来等待事件发生的可等待对象可诸如由后台任务创建。在206,可基于事件的发生诸如由后台任务将可等待对象传递给IO管理器(例如,诸如管理IO硬件的驱动器,诸如传感器、外围设备、通信设备、网卡、GPS设备等硬件和/或软件),设备驱动器或向后台任务提供数据的任何其他组件。在208,IO请求可通过IO管理器被发出到被配置为促进事件的IO组件(例如,心跳传感器)。在一个示例中,可等待对象可在IO请求被发送之前诸如由后台任务来重置。
在210,可等待对象(例如可等待对象的句柄)可诸如由后台任务发送到后台管理器(例如,使得后台管理器可评估可等待对象的状态(例如,经触发的状态或未触发状态)以便确定事件是否已经发生)。在212,通知可诸如由后台任务发送给后台管理器,该后台任务正在使用可等待对象来等待事件。响应于在(例如,预定义、事件驱动、依照情况等的)时间段内可等待对象未被触发,通知可触发后台管理器以实现功率管理策略以供计算设备托管后台任务。在实现功率管理策略的示例中,后台任务可基于可等待对象处于未触发状态而被转换到低优先级状态(例如,挂起状态、较低调度优先级等)。在一个示例中,后台任务可在处于挂起状态时被保留在存储器中。在另一示例中,为了节约计算设备的功率,托管后台任务的计算设备的片上系统(例如,电路或其他硬件)可基于可等待对象处于未触发状态而被转换到较低功率状态。在另一示例中,计算设备可基于功率管理策略被转换到较低功率状态、计算设备的一个或多个组件可被断电、线程调度策略可被实现、和/或其他功率管理功能可被实现。
在一个示例中,后台任务可基于可等待对象正在被触发(例如心跳信号正在被接收)而被恢复到操作状态。响应于被恢复到操作状态,该后台任务可处理来自IO组件的,与该事件相关联的数据。在一个示例中,片上系统可基于事件发生而被转换到更高功率或通电状态以供操作。在218,该方法结束。
图3例示了后台任务管理的示例300。后台任务302(例如,安全应用的移动检测后台任务)可基于后台任务302请求来自IO组件308(例如相机)的信息而向管理IO组件308的IO管理器306发送312连接请求和可等待对象(例如,移动检测后台任务可能正在等待由托管安全应用的计算设备检测到的移动而触发的照片捕捉事件)。IO管理器306可打开314到IO组件308的连接,并且可将可等待对象传递到IO组件308。后台任务302可向IO管理器306发出316IO请求(例如,当照片变得可从相机获取时获得照片的请求)。IO管理器306可用IO组件308发起318IO请求。
因为在计算设备检测到移动并因此调用相机来捕捉照片之前照片可能不是可用的,所以通过将片上系统310(例如,计算设备的硬件)转换到较低功率状态直到捕捉事件发生可降低计算设备的功耗。因此,后台任务302可将通知和可等待对象发送320到后台管理器304。该通知可指定后台任务302同意被挂起直到捕捉事件发生为止,并且因此可触发后台管理器(例如,立即、在一段持续时间之后等等)实现功率管理策略。以此方式,后台管理器304可挂起322后台任务302。在一个示例中,后台任务302可在被挂起时被保留在存储器中。为了节约计算设备的功率,后台管理器304可将片上系统310(例如,立即、在一段持续时间之后等等)转换324到较低功率状态直到捕捉事件发生。
在捕捉事件发生(例如,计算设备可检测到移动和相机可捕捉到照片)之际,片上系统310可唤醒326,并且IO组件308可向IO管理器306通知328该捕捉事件的发生。IO组件308可触发330可等待对象。响应于可等待对象被触发,后台管理器304可恢复332后台任务302的操作以处理照片。
图4A-4E例示了用于后台任务管理的系统401的示例。图4A例示了计算设备的示例400,该计算设备的示例包括:片上系统410(例如,计算设备的硬件)、IO组件408(例如,诸如触摸显示器或鼠标之类的输入设备,诸如相机之类的传感器,网卡等)、IO管理器404(例如,用作与IO组件408对接的抽象层的硬件和/或软件)、后台管理器406、和/或后台任务402。在一个示例中,后台任务402可包括数据迁移后台任务,该数据迁移后台任务被配置为将数据体从第一数据服务器迁移到第二数据服务器。后台任务402可将连接请求和可等待对象发送412到IO管理器404。可等待对象可与后台任务正在等待的将被网卡IO组件接收到的诸如体迁移状态通知(例如成功或失败的通知)之类的事件相对应,(例如,后台任务402可被阻止执行进一步处理直到接收到迁移状态通知)。IO管理器404可打开414与诸如网卡IO组件之类的IO组件408的连接,并可将可等待对象传递到IO组件408。
图4B例示了发出422IO请求(例如,对与可由网卡IO组件接收到的迁移状态通知相对应的数据分组的请求)的后台任务402的示例420。IO管理器404可用IO组件408发起424IO请求。因为体迁移可能会花费大量时间(例如,几分钟、几小时、几天等),所以在后台任务402正在等待事件的发生(例如,网卡IO组件接收到数据分组)时将诸如片上系统410之类的计算设备转换为较低功率状态以节约功率可能是有利的。
图4C例示了后台任务402将通知和可等待对象发送432到后台管理器406的示例430。通知可指定后台任务402正在等待事件,并且该后台任务同意被挂起直到事件发生为止。图4D例示了后台管理器406的示例440,该后台管理器406响应于在(例如,预定义、事件驱动、依照情况等的)时间段内可等待对象未被触发(例如基于可等待对象处于未被触发的状态中)而实现功率管理策略(诸如将该后台任务402挂起到挂起状态)(例如,IO组件408和/或IO管理器404可触发可等待对象发信号通知事件已经发生,诸如网卡IO组件正在接收包括后台任务402正在等待的迁移状态通知的数据分组之类的事件)。在一个示例中,后台管理器406可在后台任务402被挂起时将该后台任务402保留在存储器中。在实现功率管理策略的示例中,为了节约计算设备的功率,后台管理器406可将片上系统410转换444到较低功率状态直到事件发生。
图4E例示了事件发生的示例450。例如,IO组件408(例如,网卡IO组件)可接收包括迁移状态通知的数据分组。IO组件408可通知454IO管理器404事件发生。IO组件408可触发456可等待对象,其可被后台管理器406检测到。基于由于事件发生而被触发的可等待对象,片上系统410可被通电452到较高功率状态,并且后台任务可被恢复458到操作状态。IO管理器404可将包括后台任务402正在等待的迁移状态通知的数据分组460提供给后台任务402以供处理。
根据本公开的一个方面,提供了一种用于后台任务管理的系统。该系统包括后台管理器。该后台管理器被配置为从后台任务接收所述后台任务正在等待事件的通知。后台管理器被配置成从后台任务接收可等待对象,其中该可等待对象被该后台任务用于等待该事件。响应于在一段时间内可等待对象未被触发,该后台管理器被配置成实现功率管理策略以供计算设备托管该后台任务。
根据本公开的一个方面,提供了一种用于后台任务管理的方法。该方法包括创建被后台任务用于等待事件的可等待对象。该方法包括将所述可等待对象传递给IO管理器。该方法包括通过所述IO管理器将IO请求发出到被配置为触发所述事件的IO组件。该方法包括将所述可等待对象发送给后台管理器。该方法包括向所述后台管理器发送通知,所述后台任务正在使用所述可等待对象来等待所述事件,其中响应于在一段时间内可等待对象未被触发,通知触发后台管理器以实现功率管理策略以供计算设备托管后台任务。
根据本公开的一个方面,提供了一种用于后台任务管理的方法。该方法包括从后台任务接收所述后台任务正在等待事件的通知。该方法包括接收与所述事件相关联的可等待对象,其中所述可等待对象被所述后台任务用于等待所述事件。该方法包括响应于在一段时间内所述可等待对象未被触发,实现功率管理策略以供计算设备托管所述后台任务。
根据本公开的一个方面,提供了一种用于后台任务管理的装置。通过用于后台任务管理的装置从后台任务接收所述后台任务正在等待事件的通知。通过用于后台任务管理的装置从后台任务接收可等待对象,其中该可等待对象被该后台任务用于等待该事件。响应于在一段时间内所述可等待对象未被触发,通过用于后台任务管理的装置实现功率管理策略以供计算设备托管所述后台任务。
根据本公开的一个方面,提供了一种用于后台任务管理的装置。由后台任务用来等待事件的可等待对象通过用于后台任务管理的装置被创建。可等待对象通过用于后台任务管理的装置被传递给IO管理器。通过用于后台任务管理的装置,IO请求通过IO管理器被发出到被配置为触发事件的IO组件。可等待对象通过用于后台任务管理的装置被发送给后台管理器。通过用于后台任务管理的装置向所述后台管理器发送所述后台任务正在使用所述可等待对象来等待所述事件的通知,其中响应于在一段时间内可等待对象未被触发,通知触发后台管理器以实现功率管理策略以供计算设备托管后台任务。
根据本公开的一个方面,提供了一种用于后台任务管理的装置。通过用于后台任务管理的装置从后台任务接收所述后台任务正在等待事件的通知。通过用于后台任务管理的装置,接收与该事件相关联的可等待对象,其中该可等待对象被该后台任务用于等待该事件。响应于在一段时间内所述可等待对象未被触发,通过用于后台任务管理的装置实现功率管理策略以供计算设备托管所述后台任务。
又一实施例涉及包括被配置成实现此处所呈现的技术中的一种或多种的处理器可执行指令的计算机可读介质。计算机可读介质或计算机可读设备的一个示例实施例在图5中示出,其中实现500包括计算机可读介质508,诸如CD-R、DVD-R、闪存驱动器、硬盘驱动器的盘片等,其上编码有计算机可读数据506。该计算机可读数据506(诸如包括0或1中的至少一者的二进制数据)进而包括被配置成根据此次阐述的原理中的一个或多个来操作的一组计算机指令504。在一些实施例中,该组计算机指令504被配置成执行方法502,诸如例如,图1的示例性方法100的至少一些和/或图2的示例性方法200的至少一些。在一些实施例中,该组计算机指令504被配置成实现系统,诸如例如,图4A-4E的示例性系统401的至少一些。本领域普通技术人员可设想被配置成根据此处所呈现的技术来操作的许多此类计算机可读介质。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。实际上,上述具体特征和动作是作为实现权利要求书中的至少一些的示例形式公开的。
如在本申请中所使用的,术语“组件”、“模块”、“系统”、“接口”等一般旨在表示计算机相关的实体,该实体可以是硬件、硬件和软件的组合、软件、或者执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行件、执行的线程、程序、和/或计算机。作为说明,运行在控制器上的应用程序和控制器都可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,并且组件可位于一个计算机上和/或分布在两个或更多的计算机之间。
此外,所要求保护的主题事项可使用标准变成和/或工程设计技术实现为方法、装置或制造作品,以制造软件、固件、硬件或其任意组合来控制计算机以实现所公开的主题事项。如此处所使用的术语“制品”旨在涵盖可从任何计算机可读设备、载体、或介质进行访问的计算机程序。当然,不背离所要求保护的主题的范围或精神的情况下可对该配置作出许多修改。
图6和以下讨论提供了对实现本文所阐述的一个或多个原理的实施例的合适计算环境的简要、概括描述。图6的操作环境只是合适的操作环境的一个示例,而不旨在对该操作环境的使用范围或功能暗示任何限制。示例计算设备包括但不限于,个人计算机、服务器计算机、手持式或膝上型设备、移动设备(诸如移动电话、个人数字助理(PDA)、媒体播放器等)、多处理器系统、消费电子产品、小型计算机、大型计算机、包括任何以上系统或设备中的任一个的分布式计算环境等。
虽然并非必需,但是实施例在由一个或多个计算设备执行的“计算机可读指令”的一般上下文中进行描述。计算机可读指令可经由计算机可读介质来分发(在下文中讨论)。计算机可读指令可被实现为执行特定任务或实现特定抽象数据类型的程序模块,诸如函数、对象、应用程序编程接口(API)、数据结构等。通常,计算机可读指令的功能可按需在各种环境中组合或分布。
图6示出包括被配置成实现此处所提供的一个或多个实施例的计算设备612的系统600的示例。在一种配置中,计算设备612包括至少一个处理单元616和存储器618。取决于计算设备的确切配置和类型,存储器618可以是易失性的(例如诸如RAM)、非易失性的(例如诸如ROM、闪存等)、或两者的一些组合。该配置在图6中由虚线614示出。
在其他实施例中,设备612可包括附加特征和/或功能。例如,设备612还可以包括附加存储(例如,可移动和/或不可移动的),其中包括但不限于磁存储、光存储等等。此类附加存储在图6中由存储620示出。在一个实施例中,实现此处所提供的一个或多个实施例的计算机可读指令可位于存储620中。存储620还可储存实现操作系统、应用程序等的其他计算机可读指令。可将计算机可读指令加载到存储器618中,以供例如处理单元616执行。
如此处所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令或其他数据之类的信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。存储器618和存储620是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或者可用于存储所需信息且可由设备612访问的任何其他介质。然而,计算机存储介质不包括被传播的信号。相反,计算机存储介质排除被传播的信号。任何这样的计算机存储介质都可以是设备612的一部分。
设备612还可包括允许该设备612与其他设备进行通信的通信连接626。通信连接626可包括但不限于,调制解调器、网络接口卡(NIC)、集成网络接口、射频发射机/接收机、红外线端口、USB连接、或用于将计算设备612连接到其他计算设备的其他接口。通信连接626可包括有线连接或无线连接。通信连接626可发送和/或接收通信媒体。
术语“计算机可读介质”可包括通信介质。通信介质通常以诸如载波或其他传输机制之类的“已调制数据信号”来体现计算机可读指令或其他数据,并且包括任何信息传送介质。术语“已调制数据信号”可包括以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。
设备612可包括输入设备624,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外相机、视频输入设备、和/或任何其他输入设备。在设备612中还可包括输出设备622,诸如一个或多个显示器、扬声器、打印机、和/或任何其他输出设备。输入设备624和输出设备622可经由有线连接、无线连接、或其任何组合连接到设备612。在一个实施例中,来自另一计算设备的输入设备或输出设备可用作计算设备612的输入设备624或输出设备622。
计算设备612的组件可通过多种互连来连接,诸如总线。这样的互连可以包括诸如PCI Express之类的外围部件互连(PCI)、通用串行总线(USB)、火线(IEEE 1394)、光学总线结构等等。在另一实施例中,计算设备612的组件可通过网络来互连。例如,存储器618可包括位于通过网络互连的不同物理位置的多个物理存储器单元。
本领域技术人员应当认识到,用于存储计算机可读指令的存储设备可分布在网络上。例如,可以通过网络628访问的计算设备630可以储存实现此处所提供的一个或多个实施例的计算机可读指令。计算设备612可访问计算设备630,并且下载部分或全部计算机可读指令以供执行。替换地,计算设备612可按需下载计算机可读指令的片断,或者一些指令可在计算设备612处执行,而一些指令则可在计算设备630处执行。
本文提供了各实施例的各种操作。在一个实施例中,所描述的操作中的一个或多个可以组成存储在一个或多个计算机可读介质上的计算机可读指令,这些指令如果由计算设备执行则使得计算设备执行所描述的操作。所描述的一些或所有操作的顺序不应该被解释为暗示这些操作一定是依赖于顺序的。从本说明书获益的本领域技术人员将认识到替换顺序。此外,应该理解,并非所有的操作都一定存在于本文所提供的每一个实施例中。此外,将理解,在一些实施例中并非所有的操作都是必须的。
此外,除非特指,否则“第一”、“第二”和/或类似的不旨在暗示时间方面、空间方面、次序等。相反,这样的术语仅仅被用作特征、元素、项等的标识、名称等。例如,第一对象和第二对象通常对应于对象A和对象B或两个不同或两个相同对象或同一对象。
此外,本文中所使用的词语“示例性”意指用作示例、实例或说明等,并不需要作为优选。如在此使用的,“或”意指包括性“或”而非互斥性“或”。另外,本申请中所使用的“一”和“一个”一般可被解释为意指“一个或多个”,除非另有指定或从上下文中清晰可见是指单数形式。同样,A和B和/或等中至少一个通常是指A、或B、和/或A和B二者。此外,就在详细说明书或权利要求书中使用术语“包含”、“具有”、“含有”和“带有”及其变体而言,此类术语旨在以与术语“包括”相似的方式为包含性的。
同样,虽然参考一个或多个实现示出并描述了本公开,但本领域技术人员基于对本说明书和附图阅读和理解,可以想到各种等效更改和修改。本发明包括所有这样的修改和更改,并且仅由所附权利要求的范围来限定。具体来说,对于由上述组件(例如,元素、资源等等)执行的各种功能,除非另外指明,否则用于描述这些组件的术语旨在对应于执行所描述的组件的指定功能(例如,功能上等效)的任何组件,即使这些组件在结构上不等效于所公开的结构。此外,尽管可相对于若干实现中的仅一个实现来公开本公开的一个特定特征,但这一特征可以如对任何给定或特定应用所需且有利地与其他实现的一个或多个其他特征相组合。

Claims (15)

1.一种用于后台任务管理的系统,包括:
后台管理器,所述后台管理器被配置成:
从后台任务接收所述后台任务正在等待事件的通知;
从所述后台任务接收可等待对象,所述可等待对象被所述后台任务用于等待所述事件;以及
响应于在一段时间内所述可等待对象未被触发,实现功率管理策略以供计算设备托管所述后台任务。
2.如权利要求1所述的系统,其特征在于,所述后台管理器被配置成:
基于所述功率管理策略将所述后台任务转换到低优先级状态。
3.如权利要求1所述的系统,其特征在于,所述后台管理器被配置成:
基于所述功率管理策略将所述计算设备的片上系统转换到较低功率状态。
4.如权利要求2所述的系统,所述低优先级状态包括挂起状态,并且所述后台管理器被配置成:
所述后台任务可在处于所述挂起状态时被保留在存储器中。
5.如权利要求2所述的系统,所述可等待对象被所述后台任务暴露给IO管理器,并且所述后台管理器被配置成:
响应于所述可等待对象基于所述事件的发生而被所述IO管理器触发,将所述后台任务从所述低优先级状态转换到操作状态以处理与所述事件相关联的数据。
6.如权利要求3所述的系统,所述可等待对象被所述后台任务暴露给IO管理器,并且所述后台管理器被配置成:
响应于所述可等待对象基于所述事件的发生而被所述IO管理器触发,将所述片上系统从所述较低功率状态转换到操作功率状态。
7.如权利要求1所述的系统,所述事件包括与传感器事件、通信设备事件、由IO管理器管理的IO组件的IO硬件事件、或数据事件的可用性中的至少一个相关联的外部事件。
8.如权利要求1所述的系统,其特征在于,所述后台管理器被配置成:
评估托管所述后台任务的所述计算设备的资源以标识资源可用性度量;以及
响应于所述资源可用性度量不超过资源阈值,基于所述功率管理策略来终止所述后台任务。
9.如权利要求1所述的系统,其特征在于,包括:
IO管理器,所述IO管理器被配置成:
从所述后台任务接收打开连接请求和所述可等待对象;
打开到与所述打开连接请求相关联的IO组件的连接;以及
通过所述连接将所述可等待对象传递给所述IO组件。
10.如权利要求1所述的系统,所述可等待对象被所述后台任务暴露给IO管理器,并且所述后台管理器被配置成:
确定所述后台任务将所述可等待对象重置为重置状态,所述重置状态指示所述后台任务将通过所述IO管理器向IO组件发出IO请求,所述IO请求对应于对与所述事件相关联的数据的请求。
11.如权利要求1所述的系统,其特征在于,所述后台管理器被配置成以下各项中的至少一者:
将所述计算设备转换到较低功率状态、关闭设备、或基于所述功率管理策略来修改线程调度策略。
12.如权利要求1所述的系统,其特征在于,所述后台管理器被配置成:
基于所述功率管理策略为所述后台任务分配较低调度优先级。
13.一种用于后台任务管理的方法,包括:
创建被后台任务用于等待事件的可等待对象;
将所述可等待对象传递给IO管理器;
通过所述IO管理器将IO请求发出到被配置为触发所述事件的IO组件;
将所述可等待对象发送给后台管理器;以及
向所述后台管理器发送所述后台任务正在使用所述可等待对象来等待所述事件的通知,响应于在一段时间内所述可等待对象未被触发,所述通知触发所述后台管理器以实现功率管理策略以供计算设备托管所述后台任务。
14.如权利要求13所述的方法,其特征在于,包括:
基于所述功率管理策略将所述后台任务转换到低优先级状态。
15.如权利要求14所述的方法,所述低优先级状态包括挂起状态。
CN201680041342.5A 2015-07-22 2016-06-27 后台任务管理 Withdrawn CN107850931A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/805,931 US20170024243A1 (en) 2015-07-22 2015-07-22 Background task management
US14/805,931 2015-07-22
PCT/US2016/039518 WO2017014919A1 (en) 2015-07-22 2016-06-27 Background task management

Publications (1)

Publication Number Publication Date
CN107850931A true CN107850931A (zh) 2018-03-27

Family

ID=56409201

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680041342.5A Withdrawn CN107850931A (zh) 2015-07-22 2016-06-27 后台任务管理

Country Status (4)

Country Link
US (1) US20170024243A1 (zh)
EP (1) EP3308246A1 (zh)
CN (1) CN107850931A (zh)
WO (1) WO2017014919A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170068934A1 (en) * 2015-09-04 2017-03-09 Blackberry Limited Method of automatic scheduling, related devices and communication system
US11036568B1 (en) * 2019-12-12 2021-06-15 Salesforce.Com, Inc. Enabling execution of program instructions in the background
US11422616B2 (en) * 2020-03-26 2022-08-23 Intel Corporation System, apparatus and method for dynamically adjusting platform power and performance based on task characteristics
US11307805B2 (en) * 2020-05-29 2022-04-19 Seagate Technology Llc Disk drive controller incorporating task manager for reducing performance spikes
US11921558B1 (en) 2022-11-30 2024-03-05 Intel Corporation Using network traffic metadata to control a processor

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621494B2 (en) * 2011-09-12 2013-12-31 Microsoft Corporation Managing processes within suspend states and execution states
JP2014075122A (ja) * 2012-09-12 2014-04-24 Toshiba Corp 処理装置およびその方法
US10117600B2 (en) * 2014-04-15 2018-11-06 Apple Inc. Pacing activity data of a user

Also Published As

Publication number Publication date
EP3308246A1 (en) 2018-04-18
US20170024243A1 (en) 2017-01-26
WO2017014919A1 (en) 2017-01-26

Similar Documents

Publication Publication Date Title
CN107850931A (zh) 后台任务管理
CN103765342B (zh) 用于连接待机的进程的挂起和/或节制
CN102789305B (zh) 推迟挂起
CN102902582B (zh) 挂起状态和执行状态中的管理进程
US8904525B1 (en) Techniques for detecting malware on a mobile device
CN102902583B (zh) 在挂起状态和执行状态下管理进程
TWI493331B (zh) 經由虛擬化機會之電力最佳化
US9733697B2 (en) Managing access to data on a client device during low-power state
CN103718133B (zh) 用于连接待机的进程的挂起和/或节制
CN103809967A (zh) 应用和数据去除系统
CN103049339A (zh) 恢复应用和/或使应用免于中止
CN102866903A (zh) 将后台工作和前台工作解耦合
CN103765343A (zh) 用于连接待机的进程的挂起和/或节制
CN102999384B (zh) 在挂起状态和执行状态下管理进程
CN101859252A (zh) 使用信息处理系统中的资源的系统和方法
US9596235B2 (en) Power efficient storage management
US20220391188A1 (en) Systems and methods for context-aware firmware update
US20150156132A1 (en) Determining Available User Interface Functionality Based on Backend Server Load
KR20170031131A (ko) 가상 스트림 및 처리 에이전트를 이용한 스트림 기반 이벤트 처리 기법
US20230222012A1 (en) Method for scaling up microservices based on api call tracing history
US11669469B2 (en) Platform framework standby operation
US10402357B1 (en) Systems and methods for group manager based peer communication
US11099622B2 (en) Response time for mobile IHS bag removal
CN103870225B (zh) 一种响应方法及电子设备
CN117370084A (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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20180327