任务调度的方法和装置的制造方法

文档序号:8512495阅读:241来源:国知局
任务调度的方法和装置的制造方法
【技术领域】
[0001]本申请涉及计算机技术领域,具体涉及任务调度处理技术领域,尤其涉及一种任务调度的方法和装置。
【背景技术】
[0002]任务调度是操作系统的重要组成部分。对于周期性任务的统一调度,现有技术中主要通过判断当前时间与任务上次执行开始时间之间的时间差大于任务执行间隔来确定调度任务,在一些实现中,为了避免任务在执行时被再次调度,还需要在任务被调度时对任务上锁,在任务当前次执行完成时对任务解锁。这种任务调度的方法,在每个任务被调度一次的过程中增加加锁、解锁两次数据写操作,当需要调度的任务数量较大时,存在调度效率较低的问题。

【发明内容】

[0003]本申请的目的在于提出一种改进的任务调度的方法和装置,来解决以上【背景技术】部分提到的技术问题。
[0004]第一方面,本申请提供了一种任务调度的方法,所述方法包括:根据调度周期周期性地触发如下调度处理操作;所述调度处理操作包括:获取当前调度处理操作的调度时间;获取每个待调度任务的时间参数,其中,所述时间参数包括待调度任务的最近启用时间和任务执行周期,所述任务执行周期为待调度任务相邻两次执行开始时间之间的间隔;输出所述任务执行周期、所述最近启用时间与所述调度时间满足预设条件的待调度任务至任务池;分配并执行任务池中的任务。
[0005]在一些实施例中,所述预设条件包括:所述调度时间与所述最近启用时间的差除以所述任务执行周期得到的余数小于所述调度周期。
[0006]在一些实施例中,所述预设条件包括:待调度任务的拟调度时间迟于上一次调度处理操作的调度时间且早于或等于当前调度处理操作的调度时间,其中,所述拟调度时间由所述最近启用时间加上整数个所述任务执行周期获得。
[0007]在一些实施例中,所述调度周期满足以下条件:所有待调度任务的任务执行周期是所述调度周期的整数倍。
[0008]在一些实施例中,所述方法还包括:判断任务池中的任务是否全部被分配或执行;若是,则结束任务调度。
[0009]在一些实施例中,当所述调度处理操作是首次调度处理操作时,当前调度处理操作的调度时间为当前时间;当所述调度处理操作不是首次调度处理操作时,当前调度处理操作的调度时间为前一个调度时间加上一个调度周期的时间。
[0010]第二方面,本申请提供了一种任务调度的装置,所述装置包括:调度触发模块,配置用于根据调度周期周期性地触发调度处理模块执行调度处理操作;所述调度处理模块,配置用于执行调度处理操作,包括:调度时间获取单元,配置用于获取所述调度触发模块触发当前调度处理操作的调度时间;任务参数获取单元,配置用于获取每个待调度任务的时间参数,其中,所述时间参数包括待调度任务的最近启用时间和任务执行周期,所述任务执行周期为待调度任务相邻两次执行开始时间之间的间隔;判断及输出单元,配置用于输出所述任务执行周期、所述最近启用时间与所述调度时间满足预设条件的待调度任务至任务池;任务分配及执行模块,配置用于分配及执行任务池中的任务。
[0011]在一些实施例中,所述预设条件包括:所述调度时间与所述最近启用时间的差除以所述任务执行周期得到的余数小于所述调度周期。
[0012]在一些实施例中,所述预设条件包括:待调度任务的拟调度时间迟于上一次调度处理操作的调度时间且早于或等于当前调度处理操作的调度时间,其中,所述拟调度时间由所述最近启用时间加上整数个所述任务执行周期获得。
[0013]在一些实施例中,所述调度周期满足以下条件:所有待调度任务的任务执行周期是所述调度周期的整数倍。
[0014]在一些实施例中,所述装置还包括:任务检测模块,配置用于判断任务池中的任务是否全部被分配或执行;并且,在任务池中的任务全部被分配或执行时,结束任务调度。
[0015]在一些实施例中,当所述调度处理操作是首次调度处理操作时,当前调度处理操作的调度时间为当前时间;当所述调度处理操作不是首次调度处理操作时,当前调度处理操作的调度时间为前一个调度时间加上一个调度周期的时间。
[0016]本申请提供的任务调度的方法和装置,通过调度周期周期性地触发调度处理操作,在调度操作里,通过任务执行周期、最近启用时间与调度时间满足的预设条件输出待调度的任务,而后对输出的任务进行分配并执行,在不增加数据读写负担的基础上实现了任务的统一调度,从而提高了任务调度的效率。
【附图说明】
[0017]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0018]图1是根据本申请的任务调度的方法的一个实施例的流程图;
[0019]图2是图1中的实施例的调度处理操作的流程图;
[0020]图3是根据本申请的调度处理操作中基于调度时间的时间参数与调度时间的关系不意图;
[0021]图4是根据本申请的调度处理操作中基于任务执行间隔的调度效果示意图;
[0022]图5是根据本申请的任务调度的方法的一个实施例的流程图;
[0023]图6是根据本申请的任务调度装置的一个实施例的结构示意图;
[0024]图7是根据本申请的一个实施例的任务调度服务器系统的示意图;
[0025]图8示出了可以应用本申请实施例的示例性系统架构。
【具体实施方式】
[0026]下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
[0027]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0028]请参考图1,其示出了任务调度的方法的一个实施例的流程100。本实施例主要以该方法应用于包含有处理器的电子设备中来举例说明,该电子设备可以包括智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Aud1 Layer III,动态影像专家压缩标准音频层面 3)、MP4 (Moving Picture Experts Group Aud1 Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。本申请的任务调度的方法,包括以下步骤:
[0029]步骤101,根据调度周期周期性地触发调度处理操作。
[0030]在本实施例中,电子设备(例如任务调度应用运行于其上的便携计算机)可以根据调度周期计算调度时间,并在每个调度时间到达的时刻周期性地触发对任务的调度处理操作(例如任务调度应用的一个调度处理进程)的执行。
[0031]其中,调度周期是触发调度处理操作的时间间隔,其可以是预设的一个时间段,例如可以是5秒。调度时间可以是电子设备每次触发调度操作的时间。每次调度处理操作被触发的对应时间可以作为当前调度处理操作的调度时间。
[0032]在本实施例的一些实现方式中,电子设备可以在本步骤中完成调度时间的计算。当首次触发调度处理操作时,电子设备可以将当前时间作为所触发的调度处理操作的调度时间;当不是首次触发调度处理操作时,电子设备可以将前一个调度时间加上一个调度周期的时间作为所触发的调度处理操作的调度时间。
[0033]以下将以windows系统C++语言开发为例,给出根据调度周期周期性地触发调度处理操作的一个实现。
[0034]在C++语言中,用scheduleTime表示调度时间,schedule Interval表示调度周期,则电子设备根据调度周期计算调度时间可以通过以下语句实现:
[0035]scheduleTime = now ();
[0036]schedule Interval = 5 ;
[0037]scheduleTime = scheduleTime+scheduleInterval ;
[0038]其中,当所述调度
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1