CN105190555B - 集中式任务调度 - Google Patents
集中式任务调度 Download PDFInfo
- Publication number
- CN105190555B CN105190555B CN201480008817.1A CN201480008817A CN105190555B CN 105190555 B CN105190555 B CN 105190555B CN 201480008817 A CN201480008817 A CN 201480008817A CN 105190555 B CN105190555 B CN 105190555B
- Authority
- CN
- China
- Prior art keywords
- task
- background task
- equipment
- execution
- background
- 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.)
- Active
Links
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
-
- 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
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Mobile Radio Communication Systems (AREA)
- Power Sources (AREA)
Abstract
本发明描述了调度和管理设备的后台任务的方法和装置。在示例性实施例中,设备注册后台任务,其中注册包括存储后台任务的执行标准。该执行标准指示用于基于设备的部件状态来启动后台任务和执行标准的标准。设备还针对执行标准的出现来监测设备的运行状态。如果执行标准出现,则设备确定设备的可用余量以便执行后台任务,并且在后台任务重要性大于可用设备余量的情况下启动后台任务,其中后台任务重要性为运行后台任务对于设备的重要程度的度量。
Description
相关专利申请
申请人要求于2013年2月15日提交的先前的共同未决的临时专利申请序列号No.61/765,628的优先权,该专利申请全文以引用方式并入。
技术领域
本发明通常涉及进程管理,并且更具体地涉及基于系统状况来调度任务。
背景技术
后台任务为在后台中运行并且没有用户干预的设备的进程。这些后台任务可用于进程,该进程执行不需要用户干预的动作。例如,后台任务可用于登录、系统监测、设备维护、软件升级、媒体和/或应用下载、或不需要用户干预的其他动作。
因为后台任务不需要用户干预,所以设备可根据需要运行该任务或者可进行调度以在某将来时间执行该后台任务。在以后执行该任务的一种方法是调度该任务以在以后的预定固定时间点执行该任务。这可用于将被执行一次的后台任务或者以固定时间调度以周期性地执行的再现任务。
后台任务执行的固定调度的问题在于设备工作状况可能不适合后台任务动作。例如,从服务器周期性地检查下载可用性的后台任务将需要与该服务器的网络连接性,以便后台任务成功运行。通过调度该任务以在固定时间点运行,在设备运行后台任务时不知道后台任务是否具有适合的系统状况。此外,后台任务在不适合的时间运行可使得其他运行进程以及与设备的用户交互降级。
发明内容
本发明描述了调度和管理设备的后台任务的方法和装置。在示例性实施例中,设备注册后台任务,其中注册包括存储后台任务的执行标准。执行标准指示用于基于设备的部件状态来启动后台任务和执行标准的标准。设备还针对执行标准的出现来监测设备的运行状态。如果执行标准出现,则设备确定设备的可用余量以便执行后台任务,并且在后台任务重要性大于可用设备余量的情况下启动后台任务,其中后台任务重要性为运行后台任务对于设备的重要程度的度量。
在其他实施例中,设备确定用于所述后台任务的时间相关的任务重要性,其中该时间相关的任务重要性基于自后台任务最初可用于运行以来已经过的时间。设备还确定设备的可用余量,以便运行后台任务并且将该系统成本与时间相关任务重要性进行比较。如果时间相关任务重要性大于可用设备余量,则设备运行后台任务。
还描述了其他方法和装置。
附图说明
本发明以举例的方式进行说明,并且不仅限于各个附图的图形,在附图中类似的标号指示类似的元件。
图1为具有后台任务调度器的设备的一个实施例的框图。
图2为任务重要性曲线的一个实施例的图示。
图3为调度和管理任务的进程的一个实施例的流程图。
图4为任务的不同状态的状态图的一个实施例的图示。
图5为将任务重要性与可用设备余量进行比较的进程的一个实施例的流程图。
图6为调度和管理任务的后台任务调度器的一个实施例的框图。
图7为将任务重要性与可用设备余量进行比较的任务重要性模块的一个实施例的框图。
图8示出了可与本文所述的实施例一起使用的典型计算机系统的一个实例。
图9示出了可与本发明的一个实施例一起使用的数据处理系统的实例。
具体实施方式
本发明描述了调度和管理设备的后台任务的方法和装置。在以下描述中示出了许多具体细节,以提供对本发明实施例的彻底解释。然而,对于本领域的技术人员将显而易见的是,本发明的实施例可在不具有这些具体细节的情况下实施。在其他情况下,未详细示出熟知的部件、结构和技术,以免模糊对该描述的理解。
本说明书中提到的“一个实施例”(“one embodiment”或“an embodiment”)是指结合实施例所描述的特定特征、结构或特性可包括在本发明的至少一个实施例中。在本说明书中的不同位置出现短语“在一个实施例中”不一定都是指同一个实施例。
在以下描述和权利要求中,可使用术语“耦接”和“连接”及其派生词。应当理解,这些术语并非旨在彼此同义。“耦接”被用于指示可能或不可能彼此直接物理接触或电接触的两个或更多个元件彼此合作或交互。“连接”被用于指示彼此耦接的两个或更多元件之间的通信的建立。
下图中示出的过程通过处理逻辑部件来执行,该处理逻辑部件包括硬件(例如,电路系统、专用逻辑部件等)、软件(例如在通用计算机系统或专用机上运行的软件)、或它们两者的组合。虽然下文按照一些顺序操作来描述该过程,但应当理解,所描述的一些操作可以不同的顺序来执行。此外,一些操作也可并行地执行而并非按顺序执行。
术语“服务器”、“客户端”和“设备”旨在泛指数据处理系统而不是具体指代服务器、客户端和/或设备的特定形状因数。
描述了调度和管理设备的后台任务的方法和装置。在一个实施例中,设备注册后台任务以在稍晚时间点运行,其中该任务包括用于确定何时为设备运行该任务的适合时间的一个或多个标准。在一个实施例中,每个标准可基于部件状态、诸如设备电源状态、中央处理单元状态、显示状态、存储系统状态或网络连接性。例如并且在一个实施例中,标准可为电源状态(例如,设备是否在电池供电下运行或者插入交流(AC)电源中)、系统负载(例如,中央处理单元(CPU)是否空闲、忙碌或在某百分比的负载下)和/或其他高级标准(例如,网络连接性(一般来说,或者连接到特定服务器或服务)、设备的屏幕是否处于睡眠状态、存储活动(例如,硬盘驱动器(HDD)转动)、需要特定电源状态(例如,仅A/C;某阈值处、之上、之下的电池供电等))。
在一个实施例中,如果在设备操作期间的一个时间点满足这些标准,则设备确定是否将运行后台任务。设备确定可用设备余量并且将该可用设备余量与任务重要性进行比较。在一个实施例中,可用设备余量为可用于运行该任务的设备资源的量。如果可用设备余量大于或等于任务重要性,则设备运行该任务。相反,如果可用设备余量小于任务重要性,则设备等待稍后时间来运行该任务。在此稍后时间,该设备重新评估设备状况以确定是否仍满足任务标准。如果仍满足任务标准,则设备执行可用设备余量和任务重要性的比较。在一个实施例中,任务重要性取决于自最初满足任务标准以来所经过的时间而变化。当最初满足任务标准时,任务重要性为低的。随着时间流逝,任务重要性增大直到任务的宽限期截止。在该任务的宽限期截止时,任务重要性增大,使得更有可能运行该任务。在一个实施例中,设备通过向与该任务对应的应用发送该任务准备运行的通知以运行该任务。在一个实施例中,任务为较大应用的一部分(例如,对于电子邮件应用,任务可检查新的电子邮件)。
一旦设备运行该任务,则设备监测任务标准以确定在执行任务期间是否满足该任务标准。如果在执行任务期间不满足任务标准,则设备确定是否继续执行该任务。如果该任务将被延期,则设备暂停该任务。在一个实施例中,设备通过与该任务的任务暂停执行对应的应用来暂停该任务。在稍后时间点,如果随后再次满足任务标准,则设备可重启该任务的执行。在任务完成时,设备确定该任务是否为再现任务,在再现任务的情况下,设备调度该任务的另一实例。
图1为具有后台任务调度器108的设备100的一个实施例的框图。在一个实施例中,设备100可为个人计算机、膝上型电脑、服务器、移动设备(例如,智能电话、膝上型电脑、个人数字助理、音乐播放设备、游戏设备等)、网络元件(例如,路由器、交换机、网关等)、和/或能够执行多个进程并具有睡眠模式的任何设备。在一个实施例中,设备可为物理或虚拟设备。在图1中,设备100包括操作系统102,该操作系统102为用于管理设备的硬件资源的软件集并且提供用于运行设备的其他程序诸如应用程序的公共服务。在一个实施例中,操作系统102在设备100的处理器执行每个运行进程时通过时间调度来管理不同的运行进程。在一个实施例中,进程为正执行的计算机程序的实例。在该实施例中,进程可为由于用户输入而执行的用户应用104。用户进程的实例为网络浏览、文字处理、电子邮件、社交媒体、媒体处理等。进程的另一实例为向用户应用、其他进程等提供一个或多个服务的系统进程106。在一个实施例中,系统进程为执行系统维护或其他类型的单个或再现任务的守护进程。
在一个实施例中,操作系统102包括启动守护进程112以启动进程。在该实施例中,启动守护进程包括调度和管理后台任务的后台任务调度器108。此外,操作系统102包括一个或多个调度任务110。在一个实施例中,后台任务为在后台中运行并且没有用户干预的任务。后台任务可为单一目的任务(例如,远程下载)、在用户动作或远程触发之后发起的可延期的长期运行活动(例如,优化磁盘数据库的存储(在用户触发的数据库更新之后发起)、对例如统一资源定位符(URL)黑名单和/或白名单更新的服务器发起的(推送的)下载、比利用系统通过默认(由用户首次使用低品质资产而触发)运送的媒体资产(图像/电影/语音)品质更高的下载,等),或者可为再现任务,该再现任务周期性地执行某一动作(例如,备份、系统维护、检查软件更新、邮件获取、日历刷新、系统下载和/或第三方应用更新(还检查服务器上此类更新的出现)、与服务器的对用户文档和/或设置的同步、将有关设备和/或设备上的应用的诊断信息上传到服务器,等)。在一个实施例中,后台任务调度器108在系统状况适合于调度任务运行时调度该任务以运行。在一个实施例中,后台任务调度器108从与该任务对应的应用接收该任务将被调度以运行的消息。在一个实施例中,任务为较大应用的一部分(例如,对于电子邮件应用,任务可检查新的电子邮件)。例如并且在一个实施例中,软件更新守护进程向后台任务调度器108注册检查更新任务,其中检查更新任务为检查来看是否存在可用于下载并安装到设备100上的更新的任务。作为另一实例并且在另一实施例中,备份服务应用向后台任务调度器108注册备份维护任务。
在一个实施例中,通过基于系统状况来运行任务,该后台任务调度器108可改善电池寿命、设备响应,削减由于不满足要求而立即退出的启动服务的成本,并且利用后台任务调度器108对用于设备100的使电源管理任务唤醒/睡眠的逻辑部件进行集中化处理。在该实施例中,后台任务调度器108基于来自另一进程诸如用户进程104或系统进程106的请求来注册任务。在一个实施例中,任务可为重复或非重复的。任务可通过应用动态注册,或者基于系统进程106的配置静态注册。在一个实施例中,每个任务具有词典,该词典描述任务执行标准(例如,在决定是否运行任务时系统要顾及的各种考虑)、当前执行状态(正在运行与否)和在任务状态变化时调用的处理程序。
在一个实施例中,应用向用于与后台任务调度器108通信的应用插件注册任务。此外,一旦满足任务标准并且是适合任务执行的时间,则后台任务调度器108使用进程间通信消息(例如,进程间通信(IPC)消息、马赫消息、信号、写入文件描述符、“信号量”文件的创建等)向应用发送任务可运行的通知。在一个实施例中,后台任务调度器108响应于已注册的任务发送唤醒睡眠应用的通知。该实施例允许处于睡眠模式的应用自动唤醒以对已注册的任务进行响应。此外,该实施例还允许响应于已注册的任务根据需要来启动一个或多个系统进程106(例如,守护进程)。在另一实施例中,守护进程参与空闲退出并且在任务等待运行时成功空闲退出。在该实施例中,守护进程将响应于任务变得可运行而自动重新启动。
在一个实施例中,一旦注册任务,后台任务调度器108基于可能标准的数量来运行该任务。在一个实施例中,不同标准可为:可重复性、延迟、宽限期和优先级。在一个实施例中,可重复性为在任务完成时是否自动重新调度该任务。延迟为开始该任务之前等待的时间段。在一个实施例中,该任务为该任务的执行标准中的一个执行标准。在该实施例中,如果不满足该延迟,则将不检查其他执行标准是否得到满足。宽限期为一个时间段,在该时间段之后,任务到期并且系统试图更积极地调度该任务。另外,后台任务调度器108可使用不同优先级标准来运行该任务。在一个实施例中,不同优先级可用于维护任务和实用性任务,该维护任务可用于用户不可见任务并且避免在任务到期之前在电池供电下运行,该实用性任务可用于用户可见任务并且可在电池供电下运行。在一个实施例中,后台任务可在减小电力消耗模式下运行。
通过使用不同准则和优先级,后台任务调度器108评估每个任务准则以确定该任务是否有资格运行。在一个实施例中,后台任务调度器108将倾向于在A/C电源供电而非电池供电时执行任务并且倾向于在电源休眠而非唤醒时执行任务,以及倾向于在系统处于空闲而非忙碌时执行任务。在一个实施例中,电源休眠为允许设备100安静地执行任务诸如媒体同步和搜索索引的睡眠模式。在该实施例中,在电池供电时执行低能耗任务,而借助A/C电源来执行较高能耗任务。电源休眠可应用于设备或应用于一个或多个单独的应用。
在一个实施例中,不同类型的任务可具有任务可用于执行时的不同类型的标准。例如并且在一个实施例中,在名义上的时间段期间,维护合格任务可在A/C电源休眠以及A/C空闲期间运行,并且在任务到期的情况下,可在A/C电源休眠、A/C空闲、A/C忙碌、电池电源休眠、电池空闲和电池忙碌期间运行。在该实施例中,忙碌和空闲指代系统负载,电池和A/C指代是设备100正使用设备100电池供电还是插入A/C电源中并使用A/C电源。电源休眠指代设备100处于电源休眠睡眠模式。在另一实例以及一个实施例中,在名义上的时间段期间,实用任务可在A/C电源休眠、A/C空闲和电池空闲期间运行,并且在任务到期的情况下,可在A/C电源休眠、A/C空闲、A/C忙碌、电池电源休眠、电池电源休眠、电池空闲和电池忙碌期间运行。
在另一实施例中,除了上述的标准之外,后台任务调度器108还可使用高级标准来确定是否运行已注册的任务。在一个实施例中,这些高级标准可用于自身,或者可另外用于上述的一般睡眠模式、电源和系统负载标准。在一个实施例中,高级标准为:网络标准,仅A/C,屏幕睡眠、电池水平、硬盘驱动器(HDD)转动、电源休眠资格、处于漫游状态的联网类型(无线(WiFi或蜂窝)、有线等)、可用的蜂窝语音呼叫等。在一个实施例中,网络标准用于可能要求对特定主机的连接性或一般网络连接性以具备资格的任务。在启动此类任务之前将尝试所请求的连接。所建立的连接可从该任务获取(例如,通信处理可存储在任务词典中)。仅A/C标准可用于甚至在到期时也需要A/C电源的任务。屏幕睡眠标准可用于可要求屏幕睡眠的任务。电池水平标准用于可要求最小电池水平(%)的任务。例如并且在一个实施例中,下载任务可要求高电池百分比水平(例如,>90%)而状态检查可要求较小电池百分比水平(例如,>25%)。在一个实施例中,HDD转动标准可用于需要HDD转动的任务。
在一个实施例中,一旦满足已注册的任务的标准,则后台任务调度器108将已注册的任务的重要性与设备的可用余量进行比较。在一个实施例中,可用设备余量为可用于运行该任务的设备资源的量。在该实施例中,可用设备余量基于测量负载类型或使用设备正经历的一个或多个不同因数来确定。例如并且在一个实施例中,可用设备余量可基于设备温度、CPU百分比利用率、设备是否在电池上或AC上运行、电池容量、存储器使用、用户活动(例如,用户最近如何主动与设备进行交互)、测量当前设备容量或负载的其他类型的因数,和/或它们的组合。在一个实施例中,设备余量基于一个或多个因数的函数。例如并且在一个实施例中,如果因数中的一个因数位于用于该因数的阈值之上,则可用设备余量小。在另一实例中,用于因数的一个或多个因数的值的多项式可用于确定可用设备余量(例如,因数平方和的平方根,其中每个因数归一化在0和1之间)。
在一个实施例中,每个已注册的任务具有以下状态:登记、等待、运行、延期、继续、结束。在一个实施例中,登记状态为由守护进程用于检查后台任务调度器108的可选状态。在一个实施例中,还未满足标准的任务处于等待状态。该状态用于在运行任务之前等待满足系统标准的任务。在一个实施例中,一旦满足任务标准,则后台任务调度器108将任务转换为运行状态并且调用该任务的处理程序。在运行的过程期间,应用可测试是否仍满足任务的标准。应用随后可任选地最早从处理程序返回并且通过将任务置于延期状态中来将工作延期至更合适的时间。例如并且在一个实施例中,后台任务调度器108观测实际执行任务对系统负载的影响并且将该信息在有关是否再次运行该任务的未来决定中或者甚至在是否停止当前运行的任务并将其延期的过程中考虑在内。例如,在背包中的膝上型电脑上,在电源休眠时运行任务的热影响可能太高,因此可能需要过早停止,但是如果该同样睡眠的膝上型电脑在桌子上时,则在电源休眠时的同一任务可能刚刚好。
后台任务调度器108可在再次满足该任务的标准时再次调用处理程序。另选地,应用可通过将状态设置为连续状态来请求继续与处理程序异步地工作,在连续状态的情况下,后台任务调度器108必须在稍后时间将状态更新到延期或者结束。最后,应用可指示该任务结束。一旦任务结束,非重复任务将向后台任务调度器108取消注册,并且重复任务向后台任务调度器108重新注册,使得该任务可在调度时间重复。
如下所述,一旦已满足用于任务的任务标准,则设备100使用任务重要性曲线来确定是否运行该任务。图2为一个任务的任务重要性曲线206的一个实施例的图示。在一个实施例中,任务重要性曲线代表一个任务并且其他任务可具有不同目标的任务(例如,较短或较长宽限期、非线性曲线或具有在初始调度点与宽限期截止的点之间的较大或较小斜率的线性曲线等)。在一个实施例中,任务重要性曲线206为针对向后台任务调度器108注册的一个任务的所需设备余量202与时间204的所绘制的曲线。在一个实施例中,如果设备余量在给定时间点低于或等于任务重要性曲线206,则后台任务调度器108延期运行该任务。如果所需的设备余量在特定时间点位于或高于任务重要性曲线206,则后台任务调度器108运行该任务。在一个实施例中,在用于时间204的时间增加时,任务重要性曲线206减小所需的设备余量202。因此,任务重要性为时间相关的,这是因为任务重要性的值随时间变化,该时间包括宽限期截止之前的时间。在该实施例中,任务重要性曲线206在任务可初始被调度以用于运行时位于最高点210。通过位于高点,这意味着如果可用设备余量高,则该任务可运行。在一个实施例中,随着自初始点210以来的时间增加,任务重要性在时间增加时在任务重要性曲线206上降低。在该实施例中,随着自任务可运行的初始点以来的时间增加,后台任务调度器108可允许任务以较小可用设备余量运行。在任务的宽限期208结束时,成本阈值的这种逐步减小结束。在一个实施例中,每个任务具有宽限期。在该宽限期期间,在更适合任务运行的状况下,任务可运行。在一个实施例中,一旦宽限期截止,较低的所需设备余量便可针对要运行的任务而出现。这允许该任务以更多种类的场景运行。例如并且在一个实施例中,在高系统利用率期间运行的任务将被延期直到该任务的重要性已增大到任务可运行的点的时间。在一个实施例中,在宽限期结束之后,该任务保持在“紧急状态”中,直到任务可运行的此类时间。在该实施例中,任务可不运行,因为该设备非常忙碌并且没有余量来运行该任务。在一个实施例中,在宽限期之后,用于该任务的所需的设备余量可为非零或零的常数值。如果为非零,这意味着任务不运行的状况可能存在(例如,如果设备温度高,则任务不运行)。在另一实施例中,任务重要性曲线206的一部分为非恒定的(例如,渐进地趋向于零)。
如上所述,设备100的后台任务调度器108调度任务、确定何时运行任务、并且管理任务的运行。图3为调度和管理任务的进程300的一个实施例的流程图。在一个实施例中,由调度和管理任务的后台任务调度器,诸如上述所述的图1的后台任务调度器108执行进程300。在图3中,进程300通过在框302处接收将被调度的任务而开始。在一个实施例中,进程300经由静态配置文件(例如,根据要求启动的任务)等从用户进程、系统进程接收将被调度的任务。例如并且在一个实施例中,用户进程可为使用任务来确定是否存在针对用户下载的可用媒体的媒体管理应用、可使用任务来获取邮件的邮件应用、刷新日历的日历应用等。作为另一实例,系统进程可为使用任务来更新搜索索引的搜索系统、使用任务来执行备份维护工作的备份应用、使用任务来更新文件高速缓存的文件查看应用、使用任务来检查可用更新器的软件更新程序、可使用任务来确定是否存在应用下载和/或更新的应用存储应用等。进程300在框304处调度该任务。在一个实施例中,进程300使用任务可运行时的一个或多个标准来调度该任务。在一个实施例中,这些执行标准存储在用于调度任务的词典中。例如并且在一个实施例中,维护型任务可被调度以在运行该任务的系统具有A/C电源以及在系统处于空闲或者电源休眠时可能在该任务的宽限期结束之前运行。在该实施例中,在宽限期结束之后,维护型任务可在系统为A/C电源供电或电池供电时运行。在该实施例中,在满足A/C电源休眠、A/C空闲、A/C忙碌、电池电源休眠、电池电源休眠、电池空闲和电池忙碌的标准时,维护型任务在宽限期截止之后运行。在一个实施例中,宽限期为一个时间段,在该时间段之后,任务到期并且系统试图更积极调地度该任务。
在框306处,进程300监测系统以确定是否已满足用于调度任务的标准。在一个实施例中,进程300监测系统的电源状态(例如,A/C电源或电池)和/或系统负载(例如,空闲、忙碌或电源休眠中)。此外,进程300可监测高级标准状况,诸如网络标准、仅A/C、屏幕睡眠、电池水平、硬盘驱动器(HDD)转动等。进程300在框308处确定是否已满足任务标准。在一个实施例中,进程300通过针对每个当前注册的任务的执行标准下的整个状况集设置系统变化通知,以及在所监测的标准中的一个标准的基本系统状况下的系统通知进程300发生变化时,评估执行标准的每个任务集来确定任务的执行标准是否得到满足。在一个实施例中,还未满足标准的任务处于等待状态。该状态用于在运行任务之前等待将被满足的系统标准的任务。
如果未满足任务标准,则执行前进至上面的框306。如果已满足任务标准,则进程300在框310处确定可用设备余量。在一个实施例中,进程300通过评估如上参考图1所述的设备的一个或多个因数来确定可用设备余量。在框312处,进程300确定该任务的任务重要性是否小于(或等于)用于该任务的系统成本。在一个实施例中,进程300基于任务重要性曲线和自首次满足该任务的标准以来所经过的时间来计算任务重要性。在下面图5中进一步描述确定任务重要性是否小于(或等于)可用设备余量。如果任务重要性不小于可用设备余量,则执行前进至上面的框306。
如果任务重要性小于(或等于)可用设备余量,则进程300在框314处执行任务。在一个实施例中,进程300通知与该任务对应的应用该任务准备好执行。在一个实施例中,一旦满足任务标准,进程300便将任务转换为运行状态并且调用该任务的处理程序。例如并且在一个实施例中,如果满足用于媒体管理应用的媒体下载检查任务的标准并且该任务准备好运行,则进程300将该任务准备好运行的通知发送至应用。在该实施例中,进程300并未直接调用处理程序或“运行任务”。进程300向注册任务来触发任务的处理程序执行的应用或守护进程发送消息。对于根据要求可启动或者空闲退出守护进程,该消息将首先启动正讨论的守护进程。
在框316处,该任务的应用或守护进程确定是否要延期该任务。在一个实施例中,在任务正运行时,运行该任务的应用可测试是否仍满足该任务的标准。应用随后可最早从处理程序返回并且将工作延期到更合适的时间。如果任务将被延期,在框326处,用于该任务的应用或守护进程延期该任务的运行并且将该任务置于延期状态。在一个实施例中,在该状态下,任务被暂停在其当前状态。在框328处,过程300确定任务执行是否重新开始。如果任务执行应重新开始,则执行前进至上面的框314。在一个实施例中,进程300可通知该任务的应用或守护进程当再次满足用于该任务的标准时可重新调用处理程序。另选地,应用可请求继续与处理程序异步地工作,在这种情况下,该任务的应用或守护进程在稍后时间将任务的状态更新为延期或者结束。如果不重新开始任务执行,则执行前进至上面的框326。
如果在上面框316处未延期任务执行,则该任务的应用或守护进程在框318处确定该任务是否完成。在框320处,进程300将任务标记为完成。在一个实施例中,如果任务完成,则进程300将任务置于结束状态。在框322处,进程300确定该任务是否为再现任务。在一个实施例中,再现任务为周期性地执行以执行重复的调度服务器的任务。例如并且在一个实施例中,再现任务可为周期性地检查从服务器下载(例如,邮件获取、日历刷新、媒体下载服务、应用下载等)的任务。在该实施例中,一旦完成下载任务,则进程300将调度该任务的另一实例以用于以后执行。如果该任务为再现任务,则执行前进至框304,其中进程300调度该任务的下一实例。如果该任务不是再现任务,则在框324处,进程300将该任务的执行标记为结束。
图4为任务的不同状态的状态图400的一个实施例的图示。在一个实施例中,后台任务调度器108和/或处理该任务的应用根据该状态图400来更新该任务的状态。状态图400示出了所支持的状态转换。在一个实施例中,实线指示在从处理程序返回时由系统作出的状态提升。应用对状态的手动提升是可选的并且适用于延期、连续和结束状态。粗虚线适用于重复任务。细线条指示应用的可选状态提升“适用于延期、继续和登记状态”。
在一个实施例中,每个已注册的任务在由应用或守护进程或者基于静态配置文件由调度器创建时开始。在一个实施例中,每个已注册的任务具有以下状态:创建/开始402、登记404、等待406、运行408、延期410、连续412和结束414。在一个实施例中,登记状态404为可选状态,由守护进程用于利用后台任务调度器108来进行登记。在一个实施例中,登记状态由根据需要启动的守护进程用于获得并可能修改静态配置文件中指定的合格标准。在用于登记状态的处理程序返回时状态自动前进到等待。在另一实施例中,后台任务调度器通过自动从创建前进到等待来转变来自创建/开始状态402的任务并且保持于此直到活动有资格运行(在状态前进到运行的点)。
在一个实施例中,还未满足标准的任务处于等待状态406。该状态用于在运行任务之前等待满足系统标准的任务。例如并且在一个实施例中,要求屏幕睡眠的维护任务不能运行直到运行该任务的设备屏幕睡眠。在一个实施例中,一旦满足任务标准,则后台任务调度器将任务转换为运行状态408并且调用该任务的处理程序。在一个实施例中,应用的处理程序为将运行以启动任务并执行任务操作的代码块。
在一个实施例中,在任务处于运行状态408的过程期间,应用可测试是否仍满足任务的标准。例如并且在一个实施例中,如果任务取决于连接到特定服务的网络并且该服务当前不可用,与该任务对应的应用将任务状态转变为延期410。在一个实施例中,任务(例如,应用)可查询调度器以测试是否应延期执行。如果应答为是,则应用可通过将任务状态设置为延期来确认延期(否则,任务保持在运行状态,或者如果处理程序在不改变状态的情况下返回,则移动到结束状态)。在一个实施例中,如果标准当前不满足于运行任务,则应用随后可从处理程序返回并且将工作延期到满足任务的标准时。在一个实施例中,后台任务调度器108将在再次满足该任务的标准时再次调用处理程序。另选地,应用可请求继续412与处理程序异步地工作,在这种情况下,后台任务调度器在稍后时间将状态更新到延期410或者结束414。在一个实施例中,如果在处理程序返回运行状态之后需要继续“运行”任务,则使用继续状态,其中不会发生从运行到结束的自动状态转变。如果状态被设置为继续,则该任务被认为“运行中”直到应用手动将状态设置为结束或者延期。
在一个实施例中,应用可指示通过将认为置于结束状态414来结束该任务。在该实施例中,一旦任务结束,则非重复任务向后台任务调度器取消注册,并且重复任务向后台任务调度器重新注册,使得该任务可在调度时间重复。在一个实施例中,转变到结束还自动发生在处理程序在不改变状态的情况下返回时(在通过转变到运行状态进行调用之后)。
如上所述,如果满足该任务的执行标准,则后台任务调度器可能未自动运行该任务。相反,后台任务调度器将任务重要性与可用设备余量进行比较以确定是否运行该任务。图5为将任务重要性与可用设备余量进行比较的进程500的一个实施例的流程图。在一个实施例中,进程500由上面图3中的框312处的进程300执行以将任务重要性与可用设备余量进行比较。在图5中,过程500通过在框502处接收可用设备余量而开始。在一个实施例中,通过评估如上参考图1所述的设备的一个或多个因数来确定可用设备余量。在框504处,进程500确定任务重要性。在一个实施例中,进程500通过使用任务重要性曲线诸如上面图2中所述的任务重要性曲线206来确定任务重要性。在该实施例中,进程500确定自最初满足任务的标准以来所经过的时间。使用该时间,进程500可使用所经过的时间利用上面参考图2所述的任务重要性曲线来确定任务重要性。例如并且在一个实施例中,任务重要性在满足任务标准的初始点相对低。该任务重要性增大直到该任务的宽限期截止。在该点,任务重要性大幅升高,因为后台任务调度器将更积极地尝试运行该任务。在另一实施例中,进程500基于自最初满足任务标准以来所经过的时间使用与任务重要性有关的公式来计算任务重要性。
在框506处,进程500确定该任务的任务重要性是否小于(或等于)可用设备余量。如果任务重要性小于(或等于)可用设备余量,则系统可运行该任务并且在框508处返回是。如果不是,则系统延期任务的执行,直到稍晚时间并且在框510处返回否。
图6为调度和管理任务的后台任务调度器108的一个实施例的框图。在一个实施例中,后台任务调度器108包括接收任务模块602、调度任务模块604、监测系统模块606、系统标准模块608、确定可用设备余量模块610、任务重要性模块612、执行任务模块614、延期任务确定模块616、延期任务模块618、重启任务模块620、任务完成确定模块622、任务完成模块624、任务再现模块626和任务结束模块628。在一个实施例中,接收任务模块602在上面的框302如图3中所述来接收任务。调度任务模块604在上面的框304如图3中所述来调度任务。监测系统模块606在上面的框306如图3中所述针对任务标准来监测系统。系统标准模块608在上面的框308如图3中所述来确定该任务的标准是否得到满足。确定可用设备余量模块610在上面的框310如图3中所述来确定可用设备余量。任务重要性模块612在上面的框312如图3中所述来将任务重要性和系统成本进行比较。执行任务模块614在上面的框314如图3中所述来运行任务。延期任务确定模块616在上面的框316如图3中所述来确定是否延期任务。延期任务模块618在上面的框326如图3中所述来延期任务的执行。重启任务模块620在上面的框328如图3中所述来重启任务的执行。任务完成确定模块622在上面的框318如图3中所述来确定任务执行是否完成。任务完成模块624在上面的框320如图3中所述来将任务标记为完成。任务再现模块626在上面的框322如图3中所述来确定该任务是否为再现任务。任务结束模块628在上面的框324如图3中所述来将任务的执行标记为结束。
图7为将任务重要性与可用设备余量进行比较的任务重要性模块612的一个实施例的框图。在一个实施例中,任务重要性模块612包括接收可用设备余量模块702、计算任务重要性模块704、比较重要性和余量模块706和返回结果模块708。在一个实施例中,接收可用设备余量模块702在框502如图5中所述来接收可用设备余量。计算任务重要性模块704在框504如图5中所述来确定该任务重要性。比较重要性和余量模块706在框506如图5中所述来确定任务重要性是否大于任务的系统成本。返回结果模块708如在上面的图5的框508和510中所述来返回比较的结果。
图8示出了可与本发明的一个实施例一起使用的数据处理系统800的一个实例。例如,系统800可被实现为包括如图1所示的设备100。需注意,虽然图8示出了计算机系统的各种部件,但它并不旨在表示将这些部件互连的任何特定架构或方式,因此此类细节与本发明并无密切关系。还应理解,具有较少部件或可能较多部件的网络计算机以及其他数据处理系统或其他消费电子设备也可用于本发明。
如图8所示,数据处理系统形式的计算机系统800包括耦接到一个或多个微处理器805、ROM(只读存储器)807、易失性RAM809和非易失性存储器811的总线803。微处理器805可从存储器807,809,811检索指令并执行指令以执行上述操作。总线803与这些各种部件互连在一起,并且还将这些部件805,807,809和811互连至显示控制器和显示设备813,并且互连至外围设备诸如输入/输出(I/O)设备,该输入/输出(I/O)设备可以是鼠标、键盘、调制解调器、网络接口、打印机和本领域熟知的其他设备。通常,输入/输出设备815通过输入/输出控制器813耦接到系统。易失性RAM(随机存取存储器)809通常被实现为动态RAM(DRAM),该DRAM需要连续供电以刷新或维持存储器中的数据。
大容量存储装置811通常为磁盘驱动器或磁性光驱或光驱或DVD RAM或闪存存储器或者即使在系统断电后也保持数据(例如,大量数据)的其他类型的存储器系统。通常,大容量存储装置811也可以是随机存取存储器,虽然这并非必需。虽然图8显示,大容量存储装置811是直接耦接到数据处理系统中的其余部件的本地设备,但应当理解,本发明可利用远离系统的非易失性存储器,诸如网络存储设备,该网络存储设备通过网络接口诸如调制解调器或以太网接口或无线网络耦接到数据处理系统。总线803可包括通过本领域熟知的各种桥接器、控制器和/或适配器相互连接的一条或多条总线。
图9示出了可与本发明的一个实施例一起使用的另一数据处理系统900的实例。例如,系统900可被实现为图1所示的设备100。图9所示的数据处理系统900包括处理系统911,该处理系统911可为一个或多个微处理器,或者可为芯片集成电路上的系统,并且该系统还包括用于存储由处理系统执行的数据和程序的存储器901。系统900还包括音频输入/输出子系统905,该音频输入/输出子系统可包括用于例如回放音乐或通过扬声器和麦克风提供电话功能的麦克风和/或扬声器。
显示控制器和显示设备909为用户提供可视用户界面,该数字界面可包括图形用户界面,该图形用户界面类似于在运行OS X操作系统软件时在麦金塔计算机(Macintoshcomputer)或者在运行iOS操作系统时在Apple iPhone上所示的图形用户界面等。系统900还包括一个或多个无线收发器903以与另外数据处理系统诸如图9的系统900进行通信。无线收发器可为WLAN收发器、红外收发器、蓝牙收发器和/或无线蜂窝电话收发器。应当理解,未示出的附加部件在某些实施例中也可以是系统900的一部分,并且在某些实施例中,也可在数据处理系统中使用比图9中所示更少的部件。系统900进一步包括一个或多个无线端口917以与另外数据处理系统诸如图8的系统800进行通信。通信端口可为USB端口、火线端口、蓝牙接口等。
数据处理系统900还包括用于允许用户提供对系统的输入的一个或多个输入设备913。这些输入设备可为小键盘或键盘或触摸面板或多点触摸面板。数据处理系统900还包括可为用于坞站的连接器的可选的输入/输出设备915。应当理解,如本领域所熟知的,可使用未示出的一条或多条总线来互连各种部件。图9中示出的数据处理系统可为手持式计算机或个人数字助手(PDA)、或具有类似PDA功能的蜂窝电话、或包括蜂窝电话的手持式计算机、或媒体播放器诸如iPod、或组合这些设备的各个方面或功能的设备诸如在一个设备或嵌入式设备中结合PDA和蜂窝电话的媒体播放器或其他消费电子设备。在其他实施例中,数据处理系统900可为网络计算机或另外的设备中的嵌入式处理设备、或比图9中所示具有较少部件或者可能更多部件的其他类型的数据处理系统。
本发明的至少某些实施例可以是数字媒体播放器的一部分,例如便携式音乐和/或视频媒体播放器,该数字媒体播放器可包括呈现媒体的媒体处理系统、存储媒体的存储设备,并且可进一步包括与天线系统和媒体处理系统耦接的射频(RF)收发器(例如,用于蜂窝电话的RF收发器)。在某些实施例中,存储在远程存储设备上的媒体可通过RF收发器传输到媒体播放器。例如,媒体可以是音乐或其他音频、静态图片或运动图片中的一者或多者。
便携式媒体播放器可包括媒体选择设备,诸如得自Apple Inc.(Cupertino,CA)的或iPod 媒体播放器上的点击轮输入设备、触摸屏输入设备、按钮设备、可移动指示输入设备或其他输入设备。可使用媒体选择设备来选择存储在存储设备和/或远程存储设备上的媒体。在至少某些实施例中,便携式媒体播放器可包括显示设备,该显示设备耦接到媒体处理系统以显示通过输入设备选择的并且通过扬声器或一个或多个耳机或者在显示设备上、或者在显示设备上和扬声器或耳机两者上呈现的媒体的标题或其他指示符。便携式媒体播放器的实例在所公开的美国专利号7,345,671以及美国公开专利号2004/0224638中有所描述,这两个专利文件以引用方式并入本文。
上述内容的多个部分可利用逻辑电路诸如专用逻辑电路来实现,或利用微控制器或执行程序代码指令的其他形式的处理核心来实现。从而,可利用程序代码诸如机器可执行指令来执行上述讨论所教导的过程,该机器可执行指令使机器执行这些指令以执行某些函数。在该上下文中,“机器”可为将中间形式(或“抽象”)指令转换为处理器专用指令(例如,抽象执行环境诸如“虚拟机”(例如,Java虚拟机)、解译器、公共语言运行时、高级语言虚拟机等的)的机器,和/或设置在半导体芯片(例如,利用晶体管实现的“逻辑电路”)上的电子电路,该电子电路设计用于执行指令诸如通用处理器和/或专用处理器。上述讨论所教导的过程也可通过(作为机器的替代或与机器结合)电子电路来执行,该电子电路被设计用于执行过程(或其一部分)而不执行程序代码。
本发明还涉及一种用于执行本文所述的操作的装置。该装置可专门构造用于所需的目的,或者可包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储介质中,诸如但不限于任何类型的盘,包括软盘、光盘、CD-ROM和磁光盘,只读存储器(ROM)、RAM、EPROM、EEPROM、磁卡或光卡、或适用于存储电子指令的任何类型的介质,并且每个盘均耦接到计算机系统总线。
机器可读介质包括以机器(例如,计算机)可读形式存储或传输信息的任何机构。例如,机器可读介质包括只读存储器(“ROM”);随机存取存储器(“RAM”);磁盘存储介质;光学存储介质;闪存存储器设备等。
制造的制品可用于存储程序代码。存储程序代码的制造的制品可体现为但不限于一个或多个存储器(例如,一个或多个闪存存储器、随机存取存储器(静态、动态或其他))、光盘、CD-ROM、DVD ROM、EPROM、EEPROM、磁卡或光卡、或适用于存储电子指令的其他类型的机器可读介质。也可借助于包含在传播介质(例如,经由通信链路(例如网络连接))中的数据信号将程序代码从远程计算机(例如,服务器)下载到请求计算机(例如,客户端)。
已按照对计算机存储器内的数据位进行操作的算法和符号表示来呈现前面的详细描述。这些算法描述和表示是数据处理领域的技术人员所使用的工具,而这些工具也能最有效地将其工作实质传达给该领域其他技术人员。算法在这里一般是指导致所希望的结果的操作的自给序列。操作是那些需要对物理量进行物理操纵的操作。通常,尽管不是必须的,但这些量采用能够被存储、传送、组合、比较以及换句话讲操纵的电信号或磁信号的形式。已被证明,其在主要出于通用原因而将这些信号指代为位、值、元素、符号、字符、项、数字等时是方便的。
然而,应当牢记的是,所有这些以及类似的术语都与适当的物理量相关联,并且只是应用于这些量的方便标签。除非另外特别说明,否则从上述讨论中显而易见的是,可以理解,在整个说明书中,利用诸如“注册”、“接收”、“确定”、“恢复”、“存储”、“监测”、“计算”、“启动”、“延期”、“转发”、“重新调度”、“标记”等术语的讨论是指计算机系统或类似的电子计算设备的动作和进程,其可对计算机系统的寄存器和存储器内的表示为物理(电子)量的数据进行操作,并将其转换成在计算机系统存储器或寄存器或其他此类信息存储装置、传输或显示设备内相似地显示为物理量的其他数据。
本文中所呈现的过程和显示并不固有地与任何特定计算机或其他装置相关。根据本文的教导内容,各种通用系统可与程序一起使用,或者可证明其便于构造用于执行所述操作的更专用的装置。根据下文的描述,用于各种这些系统的所需结构将是显而易见的。此外,本发明未参照任何特定的编程语言来进行描述。应当理解,多种编程语言可用于实现如本文所述的本发明的教导内容。
前面的讨论仅描述了本发明的一些示例性实施例。本领域的技术人员将易于从此类讨论、附图和权利要求书中认识到,可在不脱离本发明的实质和范围的情况下进行各种修改。
Claims (30)
1.一种数据处理系统,包括:
用于接收设备的后台任务的执行标准的装置,所述执行标准指示用于基于所述设备的部件状态来启动所述后台任务和所述执行标准的一个或多个标准;
用于针对所述执行标准的出现来监测所述设备的运行状态的装置;
用于在所述执行标准出现的情况下,确定可用设备余量以运行所述后台任务的装置,以及用于基于所述可用设备余量和后台任务重要性的比较来请求启动所述后台任务的装置,并且所述后台任务重要性为运行所述后台任务对于所述设备的重要程度的度量,并且所述后台任务重要性在请求启动所述后台任务之前变化从而在所述执行标准出现后开始的宽限期期间具有多个不同值。
2.根据权利要求1所述的数据处理系统,其中所述部件状态选自由以下各项组成的组:设备电源状态、中央处理单元状态、显示状态、存储系统状态和网络连接性。
3.根据权利要求2所述的数据处理系统,其中所述设备电源状态选自由以下各项组成的组:空闲、忙碌和百分比水平。
4.根据权利要求2所述的数据处理系统,其中所述中央处理单元状态选自由以下各项组成的组:忙碌、空闲和百分比阈值。
5.根据权利要求1所述的数据处理系统,其中所述执行标准为多个部件状态的组合。
6.根据权利要求1所述的数据处理系统,其中所述后台任务重要性与时间相关,并且基于自所述执行标准出现以来所经过的时间。
7.根据权利要求1所述的数据处理系统,还包括:
用于在不再满足所述执行标准的情况下延期执行所述后台任务的装置。
8.根据权利要求1所述的数据处理系统,还包括:
用于确定所述后台任务已完成执行的装置;和
用于在所述后台任务为再现任务的情况下重新调度所述后台任务以在将来时间执行的装置。
9.根据权利要求1所述的数据处理系统,其中所述后台任务为应用在没有用户干预的情况下执行的任务。
10.一种为设备调度后台任务的方法,所述方法包括:
确定所述后台任务的时间相关的任务重要性,其中所述时间相关的任务重要性在启动所述后台任务之前变化从而在所述后台任务最初可用于运行后开始的宽限期期间具有多个不同值;
确定可用设备余量以运行所述后台任务;以及
基于所述可用设备余量和后台任务重要性的比较,来请求启动所述后台任务。
11.根据权利要求10所述的方法,其中在用于所述后台任务的宽限期截止之前,所述时间相关的任务重要性增加。
12.根据权利要求11所述的方法,其中用于所述后台任务的所述宽限期为用于所述后台任务的时间段,在所述时间段之后,所述设备更积极地调度所述后台任务以用于运行。
13.一种为设备调度后台任务的方法,所述方法包括:
接收后台任务的执行标准,所述执行标准指示用于基于所述设备的部件状态来启动所述后台任务和所述执行标准的一个或多个标准;
针对所述执行标准的出现来监测所述设备的运行状态;
如果所述执行标准出现,
确定可用设备余量以运行所述后台任务,以及
基于所述可用设备余量和后台任务重要性的比较来请求启动所述后台任务,并且所述后台任务重要性为运行所述后台任务对于所述设备的重要程度的度量,并且所述后台任务重要性在请求启动所述后台任务之前变化从而在所述执行标准出现后开始的宽限期期间具有多个不同值。
14.根据权利要求13所述的方法,其中所述部件状态选自由以下各项组成的组:设备电源状态、中央处理单元状态、显示状态、存储系统状态和网络连接性。
15.根据权利要求14所述的方法,其中所述设备电源状态选自由以下各项组成的组:空闲、忙碌和百分比水平。
16.根据权利要求14所述的方法,其中所述中央处理单元状态选自由以下各项组成的组:忙碌、空闲和百分比阈值。
17.根据权利要求13所述的方法,其中所述执行标准为多个部件状态的组合。
18.根据权利要求13所述的方法,其中所述后台任务重要性与时间相关,并且基于自所述执行标准出现以来所经过的时间。
19.根据权利要求13所述的方法,还包括:
如果不再满足所述执行标准,
则延期执行所述后台任务。
20.根据权利要求13所述的方法,还包括:
确定所述后台任务已完成执行;以及
如果所述后台任务为再现任务,
则重新调度所述后台任务以在将来时间执行。
21.根据权利要求13所述的方法,其中所述后台任务为应用在没有用户干预的情况下执行的任务。
22.一种为设备调度后台任务的装置,所述装置包括:
存储器;和
处理器,所述处理器通过总线耦接到所述存储器,并被配置为执行来自所述存储器的进程以接收所述后台任务的执行标准,针对执行标准的出现来监测所述设备的运行状态,如果所述执行标准出现,则确定可用设备余量以运行所述后台任务,并且基于所述可用设备余量和后台任务重要性的比较来请求启动所述后台任务,并且所述后台任务重要性为运行所述后台任务对于所述设备的重要程度的度量,并且所述后台任务重要性在请求启动所述后台任务之前变化从而在所述执行标准出现后开始的宽限期期间具有多个不同值,其中所述执行标准指示用于基于所述设备的部件状态来启动所述后台任务和所述执行标准的一个或多个标准。
23.根据权利要求22所述的装置,其中所述进程还使得所述处理器在不再满足所述执行标准的情况下延期执行所述后台任务。
24.一种数据处理系统,包括:
用于确定后台任务的时间相关的任务重要性的装置,其中所述时间相关的任务重要性在启动所述后台任务之前变化从而在所述后台任务最初可用于运行后开始的宽限期期间具有多个不同值;
用于确定可用设备余量以运行所述后台任务的装置;和
用于基于所述时间相关的任务重要性和所述可用设备余量的比较来请求启动所述后台任务的装置。
25.根据权利要求24所述的数据处理系统,其中在用于所述后台任务的宽限期截止之前,所述时间相关的任务重要性增加。
26.根据权利要求25所述的数据处理系统,其中用于所述后台任务的所述宽限期为用于所述后台任务的时间段,在所述时间段之后,所述设备更积极地调度所述后台任务以用于运行。
27.一种为设备调度后台任务的装置,所述装置包括:
存储器;和
处理器,所述处理器通过总线耦接到所述存储器,并被配置为执行来自所述存储器的进程以确定所述后台任务的时间相关的任务重要性,确定可用设备余量以运行所述后台任务,以及基于所述时间相关的任务重要性和所述可用设备余量的比较,来请求启动所述后台任务,其中所述时间相关的任务重要性在启动所述后台任务之前变化从而在所述后台任务最初可用于运行后开始的宽限期期间具有多个不同值。
28.根据权利要求27所述的装置,其中在用于所述后台任务的宽限期截止之前,所述时间相关的任务重要性增加。
29.根据权利要求28所述的装置,其中用于所述后台任务的所述宽限期为用于所述后台任务的时间段,在所述时间段之后,所述设备更积极地调度所述后台任务以用于运行。
30.根据权利要求27所述的装置,其中所述进程还使得所述处理器调用与所述后台任务对应的处理程序。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361765628P | 2013-02-15 | 2013-02-15 | |
US61/765,628 | 2013-02-15 | ||
US14/174,658 | 2014-02-06 | ||
US14/174,658 US11372672B2 (en) | 2013-02-15 | 2014-02-06 | Centralized task scheduling |
PCT/US2014/015360 WO2014126810A1 (en) | 2013-02-15 | 2014-02-07 | Centralized task scheduling |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105190555A CN105190555A (zh) | 2015-12-23 |
CN105190555B true CN105190555B (zh) | 2019-07-16 |
Family
ID=51352275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480008817.1A Active CN105190555B (zh) | 2013-02-15 | 2014-02-07 | 集中式任务调度 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11372672B2 (zh) |
KR (1) | KR101739216B1 (zh) |
CN (1) | CN105190555B (zh) |
TW (1) | TWI606397B (zh) |
WO (1) | WO2014126810A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140282014A1 (en) * | 2013-03-14 | 2014-09-18 | Apple Inc. | Presenting snapshots of plug-in content in user interfaces |
US9286106B1 (en) * | 2013-04-16 | 2016-03-15 | Ca, Inc. | Scheduling periodic tasks with dependencies and determining improper loop dependencies between tasks placed in a waiting tasks set and in a unfinished dependent tasks set |
EP3113558B1 (en) * | 2014-03-21 | 2018-12-19 | Huawei Technologies Co., Ltd. | Method and user equipment for generating monitoring report |
US9847018B2 (en) * | 2014-06-20 | 2017-12-19 | Ray Enterprises, LLC | System and method for applying over the air updates to a universal remote control device |
US10176021B1 (en) * | 2014-11-21 | 2019-01-08 | Ca, Inc. | System and method for managing actual processing capacity usage on a mainframe computer |
US20160293212A1 (en) * | 2015-03-31 | 2016-10-06 | Microsoft Technology Licensing, Llc | Performing processing-intensive operation on multi-tasking limited-capacity devices |
US9552229B2 (en) * | 2015-05-14 | 2017-01-24 | Atlassian Pty Ltd | Systems and methods for task scheduling |
US9870266B2 (en) | 2015-07-30 | 2018-01-16 | Nasdaq, Inc. | Background job processing framework |
US10152360B2 (en) * | 2016-04-22 | 2018-12-11 | Schneider Electric Software, Llc | Coordinating event-driven object execution |
US10169069B2 (en) * | 2017-04-06 | 2019-01-01 | International Business Machines Corporation | System level update protection based on VM priority in a multi-tenant cloud environment |
US10163065B1 (en) * | 2017-08-16 | 2018-12-25 | Nmetric, Llc | Systems and methods of ensuring and maintaining equipment viability for a task |
CN109445927B (zh) * | 2018-11-12 | 2021-09-17 | 郑州云海信息技术有限公司 | 一种存储集群的任务管理方法及装置 |
US11392411B2 (en) * | 2019-11-08 | 2022-07-19 | Sap Se | Background job scheduling restrictions |
CN113127158B (zh) * | 2019-12-30 | 2023-07-14 | 百度在线网络技术(北京)有限公司 | 用于执行数据处理任务的方法及装置 |
US11481252B2 (en) | 2020-01-27 | 2022-10-25 | Kyocera Document Solutions Inc. | Process deferral system and methods using tokens |
US11507418B2 (en) | 2020-01-27 | 2022-11-22 | Kyocera Document Solutions Inc. | Process deferral system and methods using a service requester |
US11392365B2 (en) | 2020-12-14 | 2022-07-19 | International Business Machines Corporation | Optimizing device update scheduling |
US11579959B2 (en) | 2021-05-26 | 2023-02-14 | Honeywell International Inc. | Systems and methods for margin based diagnostic tools for priority preemptive schedulers |
KR102412088B1 (ko) * | 2021-11-08 | 2022-06-22 | (주) 바우디움 | 상태 기계에 의하여 작업의 진행 상황을 관리하는 방법 및 이를 이용한 장치 |
CN117666755A (zh) * | 2022-08-29 | 2024-03-08 | 华为技术有限公司 | 任务调度方法及相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6834386B1 (en) * | 1999-07-16 | 2004-12-21 | Microsoft Corporation | Method and system for regulating background tasks using performance measurements |
TW201216750A (en) * | 2010-08-20 | 2012-04-16 | Qualcomm Inc | Battery power management for a mobile device |
CN102508701A (zh) * | 2011-10-18 | 2012-06-20 | 北京百纳威尔科技有限公司 | 自动控制应用程序运行处理方法和用户终端 |
TW201250600A (en) * | 2011-04-11 | 2012-12-16 | Microsoft Corp | Management of background tasks |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7451447B1 (en) * | 1998-08-07 | 2008-11-11 | Arc International Ip, Inc. | Method, computer program and apparatus for operating system dynamic event management and task scheduling using function calls |
US7010788B1 (en) | 2000-05-19 | 2006-03-07 | Hewlett-Packard Development Company, L.P. | System for computing the optimal static schedule using the stored task execution costs with recent schedule execution costs |
US20030061260A1 (en) * | 2001-09-25 | 2003-03-27 | Timesys Corporation | Resource reservation and priority management |
US7345671B2 (en) | 2001-10-22 | 2008-03-18 | Apple Inc. | Method and apparatus for use of rotational user inputs |
US6971034B2 (en) * | 2003-01-09 | 2005-11-29 | Intel Corporation | Power/performance optimized memory controller considering processor power states |
US7627343B2 (en) | 2003-04-25 | 2009-12-01 | Apple Inc. | Media player system |
US7206866B2 (en) | 2003-08-20 | 2007-04-17 | Microsoft Corporation | Continuous media priority aware storage scheduler |
US8028060B1 (en) | 2007-01-05 | 2011-09-27 | Apple Inc. | Background task execution over a network based on network activity idle time |
US8893130B2 (en) | 2007-03-26 | 2014-11-18 | Raytheon Company | Task scheduling method and system |
US8060884B2 (en) * | 2007-07-10 | 2011-11-15 | Sharp Laboratories Of America, Inc. | Deterministic task scheduling in a computing device |
US20100095330A1 (en) * | 2008-10-15 | 2010-04-15 | Echostar Technologies L.L.C. | Satellite receiver system with rechargeable battery and antenna solar cell |
KR101548134B1 (ko) | 2009-10-01 | 2015-08-28 | 콘티넨탈 오토모티브 시스템 주식회사 | 실시간 스택 검사 시스템 및 그 방법 |
US20110145761A1 (en) * | 2009-12-10 | 2011-06-16 | Denis Leon Krief | Interactive task management system and method |
US8468534B2 (en) * | 2010-04-05 | 2013-06-18 | Apple Inc. | Dynamic priority queuing |
US8560876B2 (en) | 2010-07-06 | 2013-10-15 | Sap Ag | Clock acceleration of CPU core based on scanned result of task for parallel execution controlling key word |
CN102591754A (zh) * | 2011-01-18 | 2012-07-18 | 智比特信息技术(镇江)有限公司 | 用于由计算机控制的电子产品的自动测试方法 |
US9374787B2 (en) | 2011-02-10 | 2016-06-21 | Alcatel Lucent | Method and apparatus of smart power management for mobile communication terminals using power thresholds |
US8620709B2 (en) * | 2011-02-11 | 2013-12-31 | Avaya, Inc | Mobile activity manager |
US9003420B2 (en) * | 2012-05-18 | 2015-04-07 | International Business Machines Corporation | Resolving RCU-scheduler deadlocks |
US9071923B2 (en) * | 2012-12-20 | 2015-06-30 | Cellco Partnership | Automatic archiving of an application on a mobile device |
-
2014
- 2014-02-06 US US14/174,658 patent/US11372672B2/en active Active
- 2014-02-07 WO PCT/US2014/015360 patent/WO2014126810A1/en active Application Filing
- 2014-02-07 CN CN201480008817.1A patent/CN105190555B/zh active Active
- 2014-02-07 KR KR1020157025350A patent/KR101739216B1/ko active IP Right Grant
- 2014-02-14 TW TW103104981A patent/TWI606397B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6834386B1 (en) * | 1999-07-16 | 2004-12-21 | Microsoft Corporation | Method and system for regulating background tasks using performance measurements |
TW201216750A (en) * | 2010-08-20 | 2012-04-16 | Qualcomm Inc | Battery power management for a mobile device |
TW201250600A (en) * | 2011-04-11 | 2012-12-16 | Microsoft Corp | Management of background tasks |
CN102508701A (zh) * | 2011-10-18 | 2012-06-20 | 北京百纳威尔科技有限公司 | 自动控制应用程序运行处理方法和用户终端 |
Also Published As
Publication number | Publication date |
---|---|
KR101739216B1 (ko) | 2017-05-23 |
TWI606397B (zh) | 2017-11-21 |
CN105190555A (zh) | 2015-12-23 |
US20140237476A1 (en) | 2014-08-21 |
KR20150120435A (ko) | 2015-10-27 |
TW201443785A (zh) | 2014-11-16 |
US11372672B2 (en) | 2022-06-28 |
WO2014126810A1 (en) | 2014-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105190555B (zh) | 集中式任务调度 | |
CN105677431B (zh) | 将后台工作和前台工作解耦合 | |
JP6286555B2 (ja) | 情報をプッシュするための方法、端末、およびシステム | |
US20200104732A1 (en) | Methods and system for managing predictive models | |
CN1617501B (zh) | 向应用程序通知状态变化的灵活体系结构 | |
JP5680620B2 (ja) | ソフトウェアアプリケーションの起動コストを低減するためのシステムおよび方法 | |
CN110221901A (zh) | 容器资源创建方法、装置、设备及计算机可读存储介质 | |
US9407722B2 (en) | Scheduled device communication | |
CN104838360A (zh) | 基于配额的资源管理 | |
CN103873587B (zh) | 一种基于云平台实现调度的方法及装置 | |
CN111800462A (zh) | 微服务实例处理方法、装置、计算机设备及存储介质 | |
CN108984290A (zh) | 任务调度方法和系统 | |
CN102421091A (zh) | 通讯录更新方法及系统 | |
CN113961346A (zh) | 数据缓存的管理与调度方法、装置、电子设备和存储介质 | |
CN113656087A (zh) | 小程序启动方法、装置、设备及存储介质 | |
US8533446B2 (en) | On-demand database server startup and shutdown | |
CN105308566A (zh) | 请求式可扩展定时器轮 | |
CN102970355B (zh) | 通过挂起承租人来管理数据中心的容量的方法和设备 | |
CN112052077A (zh) | 软件任务管理的方法、装置、设备、介质 | |
CN116074445A (zh) | 一种外呼时间预估的方法、装置、电子设备及介质 | |
CN110362314A (zh) | 信息处理方法及装置、计算机可读介质、电子设备 | |
CN113934437B (zh) | 云手机安装应用的方法、系统和客户端云手机 | |
CN103488506A (zh) | 一种管理应用程序卸载的方法及装置 | |
CN111258810A (zh) | 一种切换数据源的实现方法、系统、终端设备和存储介质 | |
CN102469125A (zh) | 一种手机多任务下载系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |