集中式任务调度的制作方法_3

文档序号:9438884阅读:来源:国知局
止,较低的所需设备余量便可针对要运行的任务而出现。这允许该任务以更多种类的场 景运行。例如并且在一个实施例中,在高系统利用率期间运行的任务将被延期直到该任务 的重要性已增大到任务可运行的点的时间。在一个实施例中,在宽限期结束之后,该任务保 持在"紧急状态"中,直到任务可运行的此类时间。在该实施例中,任务可不运行,因为该设 备非常忙碌并且没有余量来运行该任务。在一个实施例中,在宽限期之后,用于该任务的所 需的设备余量可为非零或零的常数值。如果为非零,这意味着任务不运行的状况可能存在 (例如,如果设备温度高,则任务不运行)。在另一实施例中,任务重要性曲线206的一部分 为非恒定的(例如,渐进地趋向于零)。
[0040] 如上所述,设备100的后台任务调度器108调度任务、确定何时运行任务、并且管 理任务的运行。图3为调度和管理任务的进程300的一个实施例的流程图。在一个实施例 中,由调度和管理任务的后台任务调度器,诸如上述所述的图1的后台任务调度器108执行 进程300。在图3中,进程300通过在框302处接收将被调度的任务而开始。在一个实施例 中,进程300经由静态配置文件(例如,根据要求启动的任务)等从用户进程、系统进程接 收将被调度的任务。例如并且在一个实施例中,用户进程可为使用任务来确定是否存在针 对用户下载的可用媒体的媒体管理应用、可使用任务来获取邮件的邮件应用、刷新日历的 日历应用等。作为另一实例,系统进程可为使用任务来更新搜索索引的搜索系统、使用任务 来执行备份维护工作的备份应用、使用任务来更新文件高速缓存的文件查看应用、使用任 务来检查可用更新器的软件更新程序、可使用任务来确定是否存在应用下载和/或更新的 应用存储应用等。进程300在框304处调度该任务。在一个实施例中,进程300使用任务可 运行时的一个或多个标准来调度该任务。在一个实施例中,这些执行标准存储在用于调度 任务的词典中。例如并且在一个实施例中,维护型任务可被调度以在运行该任务的系统具 有A/C电源以及在系统处于空闲或者电源休眠时可能在该任务的宽限期结束之前运行。在 该实施例中,在宽限期结束之后,维护型任务可在系统为A/C电源供电或电池供电时运行。 在该实施例中,在满足A/C电源休眠、A/C空闲、A/C忙碌、电池电源休眠、电池电源休眠、电 池空闲和电池忙碌的标准时,维护型任务在宽限期截止之后运行。在一个实施例中,宽限期 为一个时间段,在该时间段之后,任务到期并且系统试图更积极调地度该任务。
[0041] 在框306处,进程300监测系统以确定是否已满足用于调度任务的标准。在一个 实施例中,进程300监测系统的电源状态(例如,A/C电源或电池)和/或系统负载(例如, 空闲、忙碌或电源休眠中)。此外,进程300可监测高级标准状况,诸如网络标准、仅A/C、屏 幕睡眠、电池水平、硬盘驱动器(HDD)转动等。进程300在框308处确定是否已满足任务标 准。在一个实施例中,进程300通过针对每个当前注册的任务的执行标准下的整个状况集 设置系统变化通知,以及在所监测的标准中的一个标准的基本系统状况下的系统通知进程 300发生变化时,评估执行标准的每个任务集来确定任务的执行标准是否得到满足。在一个 实施例中,还未满足标准的任务处于等待状态。该状态用于在运行任务之前等待将被满足 的系统标准的任务。
[0042] 如果未满足任务标准,则执行前进至上面的框306。如果已满足任务标准,则进程 300在框310处确定可用设备余量。在一个实施例中,进程300通过评估如上参考图1所述 的设备的一个或多个因数来确定可用设备余量。在框312处,进程300确定该任务的任务 重要性是否小于(或等于)用于该任务的系统成本。在一个实施例中,进程300基于任务 重要性曲线和自首次满足该任务的标准以来所经过的时间来计算任务重要性。在下面图5 中进一步描述确定任务重要性是否小于(或等于)可用设备余量。如果任务重要性不小于 可用设备余量,则执行前进至上面的框306。
[0043] 如果任务重要性小于(或等于)可用设备余量,则进程300在框314处执行任务。 在一个实施例中,进程300通知与该任务对应的应用该任务准备好执行。在一个实施例中, 一旦满足任务标准,进程300便将任务转换为运行状态并且调用该任务的处理程序。例如 并且在一个实施例中,如果满足用于媒体管理应用的媒体下载检查任务的标准并且该任务 准备好运行,则进程300将该任务准备好运行的通知发送至应用。在该实施例中,进程300 并未直接调用处理程序或"运行任务"。进程300向注册任务来触发任务的处理程序执行的 应用或守护进程发送消息。对于根据要求可启动或者空闲退出守护进程,该消息将首先启 动正讨论的守护进程。
[0044] 在框316处,该任务的应用或守护进程确定是否要延期该任务。在一个实施例中, 在任务正运行时,运行该任务的应用可测试是否仍满足该任务的标准。应用随后可最早从 处理程序返回并且将工作延期到更合适的时间。如果任务将被延期,在框326处,用于该任 务的应用或守护进程延期该任务的运行并且将该任务置于延期状态。在一个实施例中,在 该状态下,任务被暂停在其当前状态。在框328处,过程300确定任务执行是否重新开始。 如果任务执行应重新开始,则执行前进至上面的框314。在一个实施例中,进程300可通知 该任务的应用或守护进程当再次满足用于该任务的标准时可重新调用处理程序。另选地, 应用可请求继续与处理程序异步地工作,在这种情况下,该任务的应用或守护进程在稍后 时间将任务的状态更新为延期或者结束。如果不重新开始任务执行,则执行前进至上面的 框 326〇
[0045] 如果在上面框316处未延期任务执行,则该任务的应用或守护进程在框318处确 定该任务是否完成。在框320处,进程300将任务标记为完成。在一个实施例中,如果任务 完成,则进程300将任务置于结束状态。在框322处,进程300确定该任务是否为再现任务。 在一个实施例中,再现任务为周期性地执行以执行重复的调度服务器的任务。例如并且在 一个实施例中,再现任务可为周期性地检查从服务器下载(例如,邮件获取、日历刷新、媒 体下载服务、应用下载等)的任务。在该实施例中,一旦完成下载任务,则进程300将调度 该任务的另一实例以用于以后执行。如果该任务为再现任务,则执行前进至框304,其中进 程300调度该任务的下一实例。如果该任务不是再现任务,则在框324处,进程300将该任 务的执行标记为结束。
[0046] 图4为任务的不同状态的状态图400的一个实施例的图示。在一个实施例中,后 台任务调度器108和/或处理该任务的应用根据该状态图400来更新该任务的状态。状态 图400示出了所支持的状态转换。在一个实施例中,实线指示在从处理程序返回时由系统 作出的状态提升。应用对状态的手动提升是可选的并且适用于延期、连续和结束状态。粗 虚线适用于重复任务。细线条指示应用的可选状态提升"适用于延期、继续和登记状态"。
[0047] 在一个实施例中,每个已注册的任务在由应用或守护进程或者基于静态配置文件 由调度器创建时开始。在一个实施例中,每个已注册的任务具有以下状态:创建/开始402、 登记404、等待406、运行408、延期410、连续412和结束414。在一个实施例中,登记状态 404为可选状态,由守护进程用于利用后台任务调度器108来进行登记。在一个实施例中, 登记状态由根据需要启动的守护进程用于获得并可能修改静态配置文件中指定的合格标 准。在用于登记状态的处理程序返回时状态自动前进到等待。在另一实施例中,后台任务 调度器通过自动从创建前进到等待来转变来自创建/开始状态402的任务并且保持于此直 到活动有资格运行(在状态前进到运行的点)。
[0048] 在一个实施例中,还未满足标准的任务处于等待状态406。该状态用于在运行任务 之前等待满足系统标准的任务。例如并且在一个实施例中,要求屏幕睡眠的维护任务不能 运行直到运行该任务的设备屏幕睡眠。在一个实施例中,一旦满足任务标准,则后台任务调 度器将任务转换为运行状态408并且调用该任务的处理程序。在一个实施例中,应用的处 理程序为将运行以启动任务并执行任务操作的代码块。
[0049] 在一个实施例中,在任务处于运行状态408的过程期间,应用可测试是否仍满足 任务的标准。例如并且在一个实施例中,如果任务取决于连接到特定服务的网络并且该服 务当前不可用,与该任务对应的应用将任务状态转变为延期410。在一个实施例中,任务 (例如,应用)可查询调度器以测试是否应延期执行。如果应答为是,则应用可通过将任务 状态设置为延期来确认延期(否则,任务保持在运行状态,或者如果处理程序在不改变状 态的情况下返回,则移动到结束状态)。在一个实施例中,如果标准当前不满足于运行任务, 则应用随后可从处理程序返回并且将工作延期到满足任务的标准时。在一个实施例中,后 台任务调度器108将在再次满足该任务的标准时再次调用处理程序。另选地,应用可请求 继续412与处理程序异步地工作,在这种情况下,后台任务调度器在稍后时间将状态更新 到延期410或者结束414。在一个实施例中,如果在处理程序返回运行状态之后需要继续 "运行"任务,则使用继续状态,其中不会发生从运行到结束的自动状态转变。如果状态被设 置为继续,则该任务被认为"运行中"直到应用手动将状态设置为结束或者延期。
[0050] 在一个实施例中,应用可指示通过将认为置于结束状态414来结束该任务。在该 实施例中,一旦任务结束,则非重复任务向后台任务调度器取消注册,并且重复任务向后台 任务调度器重新注册,使得该任务可在调度时间重复。在一个实施例中,转变到结束还自动 发生在处理程序在不改变状态的情况下返回时(在通过转变到运行状态进行调用之后)。
[0051] 如上所述,如果
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1