CN106155806A - 一种多任务调度方法及服务器 - Google Patents
一种多任务调度方法及服务器 Download PDFInfo
- Publication number
- CN106155806A CN106155806A CN201510175451.3A CN201510175451A CN106155806A CN 106155806 A CN106155806 A CN 106155806A CN 201510175451 A CN201510175451 A CN 201510175451A CN 106155806 A CN106155806 A CN 106155806A
- Authority
- CN
- China
- Prior art keywords
- task
- current
- current task
- preset condition
- detection result
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000001514 detection method Methods 0.000 claims description 107
- 230000001143 conditioned effect Effects 0.000 abstract 2
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种多任务调度方法和服务器;其中,所述方法包括:获取N个任务中的一个当前任务,所述N为大于1的自然数;检测所述当前任务所处的当前状态,得到检测结果;根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果;所述判断结果用于表征所述当前任务为满足预设条件的目标任务时,获取为所述当前任务配置的配置参数,根据所述配置参数运行所述当前任务,获得运行结果,根据所述运行结果更新所述当前任务的所述当前状态。
Description
技术领域
本发明涉及调度技术,尤其涉及一种多任务调度方法及服务器。
背景技术
目前,传统的多任务调度方法通常采用基于轮询时间片的方式来实现多任务调度。传统的多任务调度方法包括:首先,针对每一项任务定义一个轮循时间片,并初始化各项任务的运行时间表;之后,等待最小的任务时间片后,检测当前任务的轮循时间片是否到达;当所述当前任务的轮询时间片到达时,开始运行所述任务,并重置该任务的运行时间表。
但是,传统的多任务调度方法存在如下缺陷:1)在轮询过程中,无法灵活控制每一项任务的启动时间;2)无法控制任务之间的运行方式,是并行或者串行;3)无法准确控制任务的当前状态;4)无法控制任务的类型,是单次任务,还是多次任务。
综上所述,传统的多任务调度方法只能以轮询时间片的方式依次执行到达轮询时间片的每一项任务,无法实现多任务间的灵活调度。
发明内容
为解决现有技术中存在的问题,本发明实施例提供一种多任务调度方法及服务器,能够在执行多任务的轮询过程中,实现任务间的灵活调度。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种多任务调度方法,所述方法包括:
获取N个任务中的一个当前任务,所述N为大于1的自然数;
检测所述当前任务所处的当前状态,得到检测结果;
根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果;
所述判断结果用于表征所述当前任务为满足预设条件的目标任务时,获取为所述当前任务配置的配置参数,根据所述配置参数运行所述当前任务,获得运行结果,根据所述运行结果更新所述当前任务的所述当前状态。
上述方案中,在所述检测所述当前任务所处的当前状态之前,所述方法还包括:
初始化所述N个任务的运行时间表;
达到第一预设时间阈值后,触发执行检测所述当前任务所处的当前状态的操作。
上述方案中,所述根据所述运行结果更新所述当前任务的所述当前状态,还包括:
结合所述初始化的所述N个任务的运行时间表,根据所述运行结果更新所述当前任务的运行时间表,将所述运行时间表作为用于执行任务调度的调度时间表。
上述方案中,所述方法还包括:设置对应于所述N个任务的任务结构体,所述任务结构体中的结构体实例与所述N个任务一一对应。
上述方案中,根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果,包括:
当所述检测结果用于表征所述当前任务所处的当前状态为可运行,且所述当前任务的等待时间片已到达,则所述当前任务为满足预设条件的目标任务,否则,所述当前任务为不满足预设条件的目标任务。
上述方案中,根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果,包括:
当所述检测结果用于表征所述当前任务所处的当前状态为等待或运行,且所述当前任务的轮询时间片已到达,则所述当前任务为满足预设条件的目标任务;否则,所述当前任务为不满足预设条件的目标任务。
上述方案中,根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果,包括:
当所述检测结果用于表征所述当前任务所处的当前状态为禁用或结束,则所述当前任务为不满足预设条件的目标任务。
上述方案中,根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果,包括:
当所述检测结果用于表征所述当前任务所处的当前状态为失败,则所述当前任务为满足预设条件的目标任务。
本发明实施例还提供一种服务器,所述服务器包括获取模块、检测模块、判断模块和执行模块;其中,
所述获取模块,用于获取N个任务中的一个当前任务,所述N为大于1的自然数;
所述检测模块,用于检测所述当前任务所处的当前状态,得到检测结果;
所述判断模块,用于根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果;
所述执行模块,用于当所述判断结果用于表征所述当前任务为满足预设条件的目标任务时,获取为所述当前任务配置的配置参数,根据所述配置参数运行所述当前任务,获得运行结果,根据所述运行结果更新所述当前任务的所述当前状态。
上述方案中,所述服务器还包括初始化模块和计时模块;其中,
所述初始化模块,用于初始化所述N个任务的运行时间表;
所述计时模块,用于达到第一预设时间阈值后,触发执行检测所述当前任务所处的当前状态的操作。
上述方案中,所述执行模块,还用于结合所述初始化的所述N个任务的运行时间表,根据所述运行结果更新所述当前任务的运行时间表,将所述运行时间表作为用于执行任务调度的调度时间表。
上述方案中,所述服务器还包括设置模块;其中,
所述设置模块,用于设置对应于所述N个任务的任务结构体,所述任务结构体中的结构体实例与所述N个任务一一对应。
上述方案中,所述判断模块用于根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果,包括:
当所述检测结果用于表征所述当前任务所处的当前状态为可运行,且所述当前任务的等待时间片已到达,则所述当前任务为满足预设条件的目标任务,否则,所述当前任务为不满足预设条件的目标任务。
上述方案中,所述判断模块用于根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果,包括:
当所述检测结果用于表征所述当前任务所处的当前状态为等待或运行,且所述当前任务的轮询时间片已到达,则所述当前任务为满足预设条件的目标任务;否则,所述当前任务为不满足预设条件的目标任务。
上述方案中,所述判断模块用于根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果,包括:
当所述检测结果用于表征所述当前任务所处的当前状态为禁用或结束,则所述当前任务为不满足预设条件的目标任务。
上述方案中,所述判断模块用于根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果,包括:
当所述检测结果用于表征所述当前任务所处的当前状态为失败,则所述当前任务为满足预设条件的目标任务。
本发明实施例提供一种多任务调度方法,服务器获取N个任务中的一个当前任务,所述N为大于1的自然数;检测所述当前任务所处的当前状态,得到检测结果;根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果;所述判断结果用于表征所述当前任务为满足预设条件的目标任务时,获取为所述当前任务配置的配置参数,根据所述配置参数运行所述当前任务,获得运行结果,根据所述运行结果更新所述当前任务的所述当前状态。如此,能够在执行多任务的轮询过程中,实现任务间的灵活调度。
附图说明
图1为本发明实施例一多任务调度方法的实现流程示意图;
图2为本发明实施例二多任务调度方法的实现流程示意图;
图3为本发明实施例三多任务调度方法的实现流程示意图;
图4为本发明实施例服务器的组成结构示意图一;
图5为本发明实施例服务器的组成结构示意图二;
图6为本发明实施例服务器的组成结构示意图三;
图7为传统的多任务调度方法的具体实现流程示意图;
图8为基于传统的多任务调度方法的任务运行情况示意图;
图9为本发明实施例多任务调度方法的具体实现流程示意图;
图10为基于本发明实施例多任务调度方法的任务运行情况示意图;
图11为本发明实施例服务器作为硬件实体的一个示例图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
方法实施例一:
图1为本发明实施例一多任务调度方法的实现流程示意图,如图1所示,所述方法包括:
步骤S101:获取N个任务中的一个当前任务,所述N为大于1的自然数;
具体地,服务器在执行多任务的轮询过程中,可以随机获取待执行的N个任务中的一个当前任务,也可以按照优先级顺序获取待执行的N个任务中的一个优先级较高的任务,作为当前任务。在实际应用中,当所述N个任务之间没有优先级限制的情况下,即各个任务之间的执行顺序是随机的,则服务器随机地从N个任务中获取一个任务,作为当前任务;当所述N个任务之间预先设置有优先级顺序,则服务器可以根据预先设置的优先级顺序从N个任务中获取一个优先级较高的任务,作为当前任务。
步骤S102:检测所述当前任务所处的当前状态,得到检测结果;
这里,所述当前任务所处的当前状态可以包括可运行、等待或运行、禁用或结束、以及失败等。
具体地,服务器检测所述当前任务所处的当前状态,得到检测结果包括如下四种情况:A、当经检测确定所述当前任务所处的当前状态为可运行时,为了进一步确定所述当前任务是否为处于就绪状态的任务,则需要进一步检测所述当前任务的等待时间片是否已到达,以得到检测结果;B、当经检测确定所述当前任务所处的当前状态为等待或运行时,为了进一步确定所述当前任务是否为处于就绪状态的任务,则需要进一步检测所述当前任务的轮询时间片是否已到达,以得到检测结果;C、当经检测确定所述当前任务所处的当前状态为禁用或结束时,直接得到检测结果;D、当经检测确定所述当前任务所处的当前状态为失败时,直接得到检测结果。
步骤S103:根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果;
这里,服务器根据所述检测结果来判断确定所述当前任务是否为满足预设条件的目标任务;其中,当经判断确定所述当前任务为满足预设条件的目标任务时,即相当于所述当前任务为可调度的任务,也可称作已处于就绪状态的任务。
具体地,对应于步骤S102得到检测结果的四种情况,服务器根据所述检测结果来判断确定所述当前任务是否为满足预设条件的目标任务包括:
当所述检测结果用于表征所述当前任务所处的当前状态为可运行,且所述当前任务的等待时间片已到达,则所述当前任务为满足预设条件的目标任务,否则,所述当前任务为不满足预设条件的目标任务;
当所述检测结果用于表征所述当前任务所处的当前状态为等待或运行,且所述当前任务的轮询时间片已到达,则所述当前任务为满足预设条件的目标任务;否则,所述当前任务为不满足预设条件的目标任务;
当所述检测结果用于表征所述当前任务所处的当前状态为禁用或结束,则所述当前任务为不满足预设条件的目标任务;
当所述检测结果用于表征所述当前任务所处的当前状态为失败,则所述当前任务为满足预设条件的目标任务。
步骤S104:所述判断结果用于表征所述当前任务为满足预设条件的目标任务时,获取为所述当前任务配置的配置参数,根据所述配置参数运行所述当前任务,获得运行结果,根据所述运行结果更新所述当前任务的所述当前状态。
这里,所述为所述当前任务配置的配置参数可以包括任务的类型、失败的尝试次数或可调度次数等。在实际应用中,所述任务的类型的配置可以根据需要配置为单次运行或多次运行;所述识别的尝试次数或可调度次数的配置可以综合考虑服务器CPU的处理能力和对多任务调度的速率的要求等。
举例来说,当所述判断结果用于表征所述当前任务为满足预设条件的目标任务时,获取为所述当前任务配置的配置参数如当前任务的类型,则服务器根据所述当前任务的类型运行所述当前任务,获得运行结果,根据所述运行结果更新所述当前任务的所述当前状态,包括:当所述当前任务的类型为单次运行时,若所述运行结果为成功,则将当前任务的状态更新为结束;当所述当前任务的类型为多次运行时,若所述运行结果为成功,则将当前任务的状态更新为运行。
采用本发明实施例一的技术方案,在执行多任务的轮询过程中,可以通过获取当前任务,对所获取的当前任务进行状态检测,及进一步根据检测结果确定当前任务为满足预设条件的目标任务,即可调度任务时,根据所述配置参数运行所述当前任务,并根据所获得运行结果更新所述当前任务的所述当前状态,实现任务间的灵活调度,不再需要依次执行到达轮询时间片的每一项任务,实现了多任务间的灵活调度。
方法实施例二:
图2为本发明实施例一多任务调度方法的实现流程示意图,如图2所示,所述方法包括:
步骤S201:获取N个任务中的一个当前任务,所述N为大于1的自然数;
具体地,服务器在执行多任务的轮询过程中,可以随机获取待执行的N个任务中的一个当前任务,也可以按照优先级顺序获取待执行的N个任务中的一个优先级较高的任务,作为当前任务。在实际应用中,当所述N个任务之间没有优先级限制的情况下,即各个任务之间的执行顺序是随机的,则服务器随机地从N个任务中获取一个任务,作为当前任务;当所述N个任务之间预先设置有优先级顺序,则服务器可以根据预先设置的优先级顺序从N个任务中获取一个优先级较高的任务,作为当前任务。
步骤S202:初始化所述N个任务的运行时间表;
具体地,服务器可以在开始执行多任务的轮询过程时,对待执行的N个任务的运行时间表进行初始化。
这里,需要补充说明的是,在本发明实施例中,步骤S201和步骤S202之间并无执行时间先后顺序的限定。
步骤S203:达到第一预设时间阈值后,触发执行检测所述当前任务所处的当前状态的操作;
这里,所述第一预设时间阈值为在时间片轮询操作系统中预先设置的最小的任务时间片。这里,所述最小的任务时间片是大小可以根据服务器中整个时间片轮询操作系统的要求加以设置。具体地,服务器完成初始化所述N个任务的运行时间表后,需要等待最小的任务时间片,之后,再触发执行检查所述当前任务所处的当前状态的操作。
步骤S204:检测所述当前任务所处的当前状态,得到检测结果;
这里,所述当前任务所处的当前状态可以包括可运行、等待或运行、禁用或结束、以及失败等。
具体地,服务器检测所述当前任务所处的当前状态,得到检测结果包括如下四种情况:A、当经检测确定所述当前任务所处的当前状态为可运行时,为了进一步确定所述当前任务是否为处于就绪状态的任务,则需要进一步检测所述当前任务的等待时间片是否已到达,以得到检测结果;B、当经检测确定所述当前任务所处的当前状态为等待或运行时,为了进一步确定所述当前任务是否为处于就绪状态的任务,则需要进一步检测所述当前任务的轮询时间片是否已到达,以得到检测结果;C、当经检测确定所述当前任务所处的当前状态为禁用或结束时,直接得到检测结果;D、当经检测确定所述当前任务所处的当前状态为失败时,直接得到检测结果。
步骤S205:根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果;
这里,服务器根据所述检测结果来判断确定所述当前任务是否为满足预设条件的目标任务;其中,当经判断确定所述当前任务为满足预设条件的目标任务时,即相当于所述当前任务为可调度的任务,也可称作已处于就绪状态的任务。
具体地,对应于步骤S204得到检测结果的四种情况,服务器根据所述检测结果来判断确定所述当前任务是否为满足预设条件的目标任务包括:
当所述检测结果用于表征所述当前任务所处的当前状态为可运行,且所述当前任务的等待时间片已到达,则所述当前任务为满足预设条件的目标任务,否则,所述当前任务为不满足预设条件的目标任务;
当所述检测结果用于表征所述当前任务所处的当前状态为等待或运行,且所述当前任务的轮询时间片已到达,则所述当前任务为满足预设条件的目标任务;否则,所述当前任务为不满足预设条件的目标任务;
当所述检测结果用于表征所述当前任务所处的当前状态为禁用或结束,则所述当前任务为不满足预设条件的目标任务;
当所述检测结果用于表征所述当前任务所处的当前状态为失败,则所述当前任务为满足预设条件的目标任务。
步骤S206:所述判断结果用于表征所述当前任务为满足预设条件的目标任务时,获取为所述当前任务配置的配置参数,根据所述配置参数运行所述当前任务,获得运行结果,根据所述运行结果更新所述当前任务的所述当前状态。
这里,所述为所述当前任务配置的配置参数可以包括任务的类型、失败的尝试次数或可调度次数等。在实际应用中,所述任务的类型的配置可以根据需要配置为单次运行或多次运行;所述识别的尝试次数或可调度次数的配置可以综合考虑服务器CPU的处理能力和对多任务调度的速率的要求等。
在本发明实施例二实施方式中,所述方法还可以包括:
步骤S207:结合所述初始化的所述N个任务的运行时间表,根据所述运行结果更新所述当前任务的运行时间表,将所述运行时间表作为用于执行任务调度的调度时间表。
如此,采用本发明实施例二的技术方案,在执行多任务的轮询过程中,不再需要依次执行到达轮询时间片的每一项任务,实现了多任务间的灵活调度。
方法实施例三:
图3为本发明实施例三多任务调度方法的实现流程示意图,如图3所示,所述方法包括:
步骤S301:设置对应于N个任务的任务结构体;
其中,所述任务结构体中的结构体实例与所述N个任务一一对应,所述N为大于1的自然数。
这里,所述任务结构体中的结构体实例可以包括对应任务所处的当前状态、预先配置的对应任务的配置参数及任务的调度方式等信息。其中,所述配置参数可以包括任务的类型、失败的尝试次数或可调度次数等;所述任务的调度方式可以包括并行调度或串行调度。
步骤S302:获取所述N个任务中的一个当前任务;
具体地,服务器在执行多任务的轮询过程中,可以随机获取待执行的N个任务中的一个当前任务,也可以按照优先级顺序获取待执行的N个任务中的一个优先级较高的任务,作为当前任务。在实际应用中,当所述N个任务之间没有优先级限制的情况下,即各个任务之间的执行顺序是随机的,则服务器随机地从N个任务中获取一个任务,作为当前任务;当所述N个任务之间预先设置有优先级顺序,则服务器可以根据预先设置的优先级顺序从N个任务中获取一个优先级较高的任务,作为当前任务。
步骤S303:检测所述当前任务所处的当前状态,得到检测结果;
这里,服务器通过遍历预先设置的任务结构体查找对应于当前任务的结构体实例的方式,检测所述当前任务所处的当前状态,得到检测结果。其中,所述当前任务所处的当前状态可以包括可运行、等待或运行、禁用或结束、以及失败等。
具体地,服务器检测所述当前任务所处的当前状态,得到检测结果包括如下四种情况:A、当经检测确定所述当前任务所处的当前状态为可运行时,为了进一步确定所述当前任务是否为处于就绪状态的任务,则需要进一步检测所述当前任务的等待时间片是否已到达,以得到检测结果;B、当经检测确定所述当前任务所处的当前状态为等待或运行时,为了进一步确定所述当前任务是否为处于就绪状态的任务,则需要进一步检测所述当前任务的轮询时间片是否已到达,以得到检测结果;C、当经检测确定所述当前任务所处的当前状态为禁用或结束时,直接得到检测结果;D、当经检测确定所述当前任务所处的当前状态为失败时,直接得到检测结果。
步骤S304:根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果;
这里,服务器根据所述检测结果来判断确定所述当前任务是否为满足预设条件的目标任务;其中,当经判断确定所述当前任务为满足预设条件的目标任务时,即相当于所述当前任务为可调度的任务,也可称作已处于就绪状态的任务。
具体地,对应于步骤S303得到检测结果的四种情况,服务器根据所述检测结果来判断确定所述当前任务是否为满足预设条件的目标任务包括:
当所述检测结果用于表征所述当前任务所处的当前状态为可运行,且所述当前任务的等待时间片已到达,则所述当前任务为满足预设条件的目标任务,否则,所述当前任务为不满足预设条件的目标任务;
当所述检测结果用于表征所述当前任务所处的当前状态为等待或运行,且所述当前任务的轮询时间片已到达,则所述当前任务为满足预设条件的目标任务;否则,所述当前任务为不满足预设条件的目标任务;
当所述检测结果用于表征所述当前任务所处的当前状态为禁用或结束,则所述当前任务为不满足预设条件的目标任务;
当所述检测结果用于表征所述当前任务所处的当前状态为失败,则所述当前任务为满足预设条件的目标任务。
步骤S305:所述判断结果用于表征所述当前任务为满足预设条件的目标任务时,获取为所述当前任务配置的配置参数,根据所述配置参数运行所述当前任务,获得运行结果,根据所述运行结果更新所述当前任务的所述当前状态。
这里,所述为所述当前任务配置的配置参数可以包括任务的类型、失败的尝试次数或可调度次数等。在实际应用中,所述任务的类型的配置可以根据需要配置为单次运行或多次运行;所述识别的尝试次数或可调度次数的配置可以综合考虑服务器CPU的处理能力和对多任务调度的速率的要求等。
如此,采用本发明实施例三的技术方案,在执行多任务的轮询过程中,不再需要依次执行到达轮询时间片的每一项任务,实现了多任务间的灵活调度。
服务器实施例:
图4为本发明实施例服务器的组成结构示意图一,如图4所示,所述服务器包括获取模块401、检测模块402、判断模块403和执行模块404;其中,
所述获取模块401,用于获取N个任务中的一个当前任务,所述N为大于1的自然数;
所述检测模块402,用于检测所述当前任务所处的当前状态,得到检测结果;
所述判断模块403,用于根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果;
具体地,所述判断模块403用于根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果,包括:
当所述检测结果用于表征所述当前任务所处的当前状态为可运行,且所述当前任务的等待时间片已到达,则所述当前任务为满足预设条件的目标任务,否则,所述当前任务为不满足预设条件的目标任务;
当所述检测结果用于表征所述当前任务所处的当前状态为等待或运行,且所述当前任务的轮询时间片已到达,则所述当前任务为满足预设条件的目标任务;否则,所述当前任务为不满足预设条件的目标任务;
当所述检测结果用于表征所述当前任务所处的当前状态为禁用或结束,则所述当前任务为不满足预设条件的目标任务;
当所述检测结果用于表征所述当前任务所处的当前状态为失败,则所述当前任务为满足预设条件的目标任务。
所述执行模块404,用于当所述判断结果用于表征所述当前任务为满足预设条件的目标任务时,获取为所述当前任务配置的配置参数,根据所述配置参数运行所述当前任务,获得运行结果,根据所述运行结果更新所述当前任务的所述当前状态。
在一应用实施例中,如图5所示,所述服务器还可以包括初始化模块405和计时模块406;其中,
所述初始化模块405,用于初始化所述N个任务的运行时间表;
所述计时模块406,用于达到第一预设时间阈值后,触发执行检测所述当前任务所处的当前状态的操作。
在一应用实施例中,如图5所示,所述执行模块404,还用于结合所述初始化的所述N个任务的运行时间表,根据所述运行结果更新所述当前任务的运行时间表,将所述运行时间表作为用于执行任务调度的调度时间表。
在一应用实施例中,如图6所示,所述服务器还可以包括设置模块407;其中,
所述设置模块407,用于设置对应于所述N个任务的任务结构体,所述任务结构体中的结构体实例与所述N个任务一一对应。
具体应用场景:
图7为传统的多任务调度方法的具体实现流程示意图,如图7所示,所述方法包括:
步骤S701:初始化所有任务的运行时间表;
步骤S702:等待最小的任务时间片;
步骤S703:检测当前任务的轮询时间片是否已到达,若是,执行步骤S704;否则,执行步骤S705;
步骤S704:执行所述当前任务,并重置所述当前任务的运行时间表;
步骤S705:进一步检测确定是否接到退出通知,若是,退出对所述当前任务的执行,结束流程;否则,返回执行步骤S701。
这样,采用如图7所示的传统的多任务调度方法,服务器只能通过检测当前任务的轮询时间片是否已到达的方式依次执行到达轮询时间片的每一项任务,即如图8所示的基于传统的多任务调度方法的任务运行情况示意图,如此,将无法实现多任务间的灵活调度。
图9为本发明实施例多任务调度方法的具体实现流程示意图,如图9所示,所述方法包括:
步骤S901:初始化所有任务的运行时间表;
步骤S902:等待最小的任务时间片;
步骤S903:检测当前任务是否满足可调度条件,若是,执行步骤S904;否则,执行步骤S905;
步骤S904:执行所述当前任务,并根据所述当前任务的运行结果,更新所述当前任务的状态及调度时间表;
步骤S905:进一步检测确定是否接到退出通知,若是,退出对所述当前任务的执行,结束流程;否则,返回执行步骤S901。
如此,通过如图9所示的多任务调度方法,服务器不再通过检测当前任务的轮询时间片是否已到达来依次执行到达轮询时间片的每一项任务,而是采用检测当前任务是否满足可调度条件的方式,灵活地实现任务间的调度,即如图10所示的基于本发明实施例多任务调度方法的任务运行情况示意图。
这里,需要补充说明的是,上述实施例中所涉及的服务器可以为PC这种电子设备,还可以为如PAD,平板电脑,手提电脑这种便携电子设备、还可以为如手机这种智能移动终端,不限于这里的描述;服务器至少包括用于存储数据的数据库和用于数据处理的处理器,或者包括设置于服务器内的存储介质或独立设置的存储介质。
其中,对于用于数据处理的处理器而言,在执行处理时,可以采用微处理器、中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,DigitalSingnal Processor)或可编程逻辑阵列(FPGA,Field-Programmable Gate Array)实现;对于存储介质来说,包含操作指令,该操作指令可以为计算机可执行代码,通过所述操作指令来实现上述本发明实施例信息处理方法流程中的各个步骤。
所述服务器S11作为硬件实体的一个示例如图11所示。所述装置包括处理器111、存储介质112以及至少一个外部通信接口113;所述处理器111、存储介质112以及外部通信接口113均通过总线114连接。
这里需要指出的是:以上涉及服务器项的描述,与上述方法描述是类似的,同方法的有益效果描述,不做赘述。对于本发明服务器中未披露的技术细节,请参照本发明方法实施例的描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种多任务调度方法,其特征在于,所述方法包括:
获取N个任务中的一个当前任务,所述N为大于1的自然数;
检测所述当前任务所处的当前状态,得到检测结果;
根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果;
所述判断结果用于表征所述当前任务为满足预设条件的目标任务时,获取为所述当前任务配置的配置参数,根据所述配置参数运行所述当前任务,获得运行结果,根据所述运行结果更新所述当前任务的所述当前状态。
2.根据权利要求1所述的方法,其特征在于,在所述检测所述当前任务所处的当前状态之前,所述方法还包括:
初始化所述N个任务的运行时间表;
达到第一预设时间阈值后,触发执行检测所述当前任务所处的当前状态的操作。
3.根据权利要求2所述的方法,其特征在于,所述根据所述运行结果更新所述当前任务的所述当前状态,还包括:
结合所述初始化的所述N个任务的运行时间表,根据所述运行结果更新所述当前任务的运行时间表,将所述运行时间表作为用于执行任务调度的调度时间表。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:设置对应于所述N个任务的任务结构体,所述任务结构体中的结构体实例与所述N个任务一一对应。
5.根据权利要求1所述的方法,其特征在于,根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果,包括:
当所述检测结果用于表征所述当前任务所处的当前状态为可运行,且所述当前任务的等待时间片已到达,则所述当前任务为满足预设条件的目标任务,否则,所述当前任务为不满足预设条件的目标任务。
6.根据权利要求1所述的方法,其特征在于,根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果,包括:
当所述检测结果用于表征所述当前任务所处的当前状态为等待或运行,且所述当前任务的轮询时间片已到达,则所述当前任务为满足预设条件的目标任务;否则,所述当前任务为不满足预设条件的目标任务。
7.根据权利要求1所述的方法,其特征在于,根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果,包括:
当所述检测结果用于表征所述当前任务所处的当前状态为禁用或结束,则所述当前任务为不满足预设条件的目标任务。
8.根据权利要求1所述的方法,其特征在于,根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果,包括:
当所述检测结果用于表征所述当前任务所处的当前状态为失败,则所述当前任务为满足预设条件的目标任务。
9.一种服务器,其特征在于,所述服务器包括获取模块、检测模块、判断模块和执行模块;其中,
所述获取模块,用于获取N个任务中的一个当前任务,所述N为大于1的自然数;
所述检测模块,用于检测所述当前任务所处的当前状态,得到检测结果;
所述判断模块,用于根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果;
所述执行模块,用于当所述判断结果用于表征所述当前任务为满足预设条件的目标任务时,获取为所述当前任务配置的配置参数,根据所述配置参数运行所述当前任务,获得运行结果,根据所述运行结果更新所述当前任务的所述当前状态。
10.根据权利要求9所述的服务器,其特征在于,所述服务器还包括初始化模块和计时模块;其中,
所述初始化模块,用于初始化所述N个任务的运行时间表;
所述计时模块,用于达到第一预设时间阈值后,触发执行检测所述当前任务所处的当前状态的操作。
11.根据权利要求10所述的服务器,其特征在于,
所述执行模块,还用于结合所述初始化的所述N个任务的运行时间表,根据所述运行结果更新所述当前任务的运行时间表,将所述运行时间表作为用于执行任务调度的调度时间表。
12.根据权利要求9所述的服务器,其特征在于,所述服务器还包括设置模块;其中,
所述设置模块,用于设置对应于所述N个任务的任务结构体,所述任务结构体中的结构体实例与所述N个任务一一对应。
13.根据权利要求9所述的服务器,其特征在于,所述判断模块用于根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果,包括:
当所述检测结果用于表征所述当前任务所处的当前状态为可运行,且所述当前任务的等待时间片已到达,则所述当前任务为满足预设条件的目标任务,否则,所述当前任务为不满足预设条件的目标任务。
14.根据权利要求9所述的服务器,其特征在于,所述判断模块用于根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果,包括:
当所述检测结果用于表征所述当前任务所处的当前状态为等待或运行,且所述当前任务的轮询时间片已到达,则所述当前任务为满足预设条件的目标任务;否则,所述当前任务为不满足预设条件的目标任务。
15.根据权利要求9所述的服务器,其特征在于,所述判断模块用于根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果,包括:
当所述检测结果用于表征所述当前任务所处的当前状态为禁用或结束,则所述当前任务为不满足预设条件的目标任务。
16.根据权利要求9所述的服务器,其特征在于,所述判断模块用于根据所述检测结果判断所述当前任务是否为满足预设条件的目标任务,得到判断结果,包括:
当所述检测结果用于表征所述当前任务所处的当前状态为失败,则所述当前任务为满足预设条件的目标任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510175451.3A CN106155806B (zh) | 2015-04-14 | 2015-04-14 | 一种多任务调度方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510175451.3A CN106155806B (zh) | 2015-04-14 | 2015-04-14 | 一种多任务调度方法及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106155806A true CN106155806A (zh) | 2016-11-23 |
CN106155806B CN106155806B (zh) | 2020-08-11 |
Family
ID=57336930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510175451.3A Active CN106155806B (zh) | 2015-04-14 | 2015-04-14 | 一种多任务调度方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106155806B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107272462A (zh) * | 2017-07-26 | 2017-10-20 | 上海与德通讯技术有限公司 | 一种基于多任务的纯动作处理方法和装置 |
CN107390537A (zh) * | 2017-07-26 | 2017-11-24 | 上海与德通讯技术有限公司 | 一种基于多任务的处理方法和装置 |
CN109558687A (zh) * | 2018-12-06 | 2019-04-02 | 广东浪潮大数据研究有限公司 | 一种数据处理方法、系统及相关组件 |
CN109947548A (zh) * | 2019-03-15 | 2019-06-28 | 美智光电科技有限公司 | 分配时间片的方法和装置及控制任务执行的方法和装置 |
CN111104223A (zh) * | 2019-12-17 | 2020-05-05 | 腾讯科技(深圳)有限公司 | 任务处理方法、装置、计算机可读存储介质和计算机设备 |
CN111371820A (zh) * | 2018-12-25 | 2020-07-03 | 上海亮衡信息科技有限公司 | 一种基于定时器触发的通信方法、系统及通信设备 |
CN111371816A (zh) * | 2018-12-25 | 2020-07-03 | 上海亮衡信息科技有限公司 | 一种基于条件触发的通信方法、系统及通信设备 |
CN111371815A (zh) * | 2018-12-25 | 2020-07-03 | 上海亮衡信息科技有限公司 | 一种基于时间片触发的通信方法、系统及通信设备 |
CN113467901A (zh) * | 2020-03-31 | 2021-10-01 | 北京华为数字技术有限公司 | 一种任务调度的方法及相关设备 |
CN115878272A (zh) * | 2021-09-22 | 2023-03-31 | 中科寒武纪科技股份有限公司 | 图任务调度方法、执行端设备、存储介质及程序产品 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1210306A (zh) * | 1997-09-01 | 1999-03-10 | 松下电器产业株式会社 | 微控制器、数据处理系统及任务切换控制方法 |
CN101106734A (zh) * | 2007-08-09 | 2008-01-16 | 中兴通讯股份有限公司 | 智能网系统任务调度系统及方法 |
CN101266553A (zh) * | 2008-05-06 | 2008-09-17 | 无锡紫芯集成电路系统有限公司 | 基于嵌入式系统的多任务管理方法 |
CN101290588A (zh) * | 2008-03-07 | 2008-10-22 | 重庆邮电大学 | 一种微嵌入式实时任务调度器及调度方法 |
CN101425024A (zh) * | 2008-10-24 | 2009-05-06 | 中国移动通信集团山东有限公司 | 一种多任务处理方法及装置 |
CN102004663A (zh) * | 2009-09-02 | 2011-04-06 | 中国银联股份有限公司 | 一种多任务并发调度的系统及方法 |
CN102043667A (zh) * | 2010-11-25 | 2011-05-04 | 深圳市科陆电子科技股份有限公司 | 一种嵌入式操作系统的任务调度方法 |
US8424003B2 (en) * | 2006-05-31 | 2013-04-16 | International Business Machines Corporation | Unified job processing of interdependent heterogeneous tasks using finite state machine job control flow based on identified job type |
CN103197969A (zh) * | 2013-03-27 | 2013-07-10 | 百度在线网络技术(北京)有限公司 | 一种分布式定时任务控制装置及方法 |
-
2015
- 2015-04-14 CN CN201510175451.3A patent/CN106155806B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1210306A (zh) * | 1997-09-01 | 1999-03-10 | 松下电器产业株式会社 | 微控制器、数据处理系统及任务切换控制方法 |
US8424003B2 (en) * | 2006-05-31 | 2013-04-16 | International Business Machines Corporation | Unified job processing of interdependent heterogeneous tasks using finite state machine job control flow based on identified job type |
CN101106734A (zh) * | 2007-08-09 | 2008-01-16 | 中兴通讯股份有限公司 | 智能网系统任务调度系统及方法 |
CN101290588A (zh) * | 2008-03-07 | 2008-10-22 | 重庆邮电大学 | 一种微嵌入式实时任务调度器及调度方法 |
CN101266553A (zh) * | 2008-05-06 | 2008-09-17 | 无锡紫芯集成电路系统有限公司 | 基于嵌入式系统的多任务管理方法 |
CN101425024A (zh) * | 2008-10-24 | 2009-05-06 | 中国移动通信集团山东有限公司 | 一种多任务处理方法及装置 |
CN102004663A (zh) * | 2009-09-02 | 2011-04-06 | 中国银联股份有限公司 | 一种多任务并发调度的系统及方法 |
CN102043667A (zh) * | 2010-11-25 | 2011-05-04 | 深圳市科陆电子科技股份有限公司 | 一种嵌入式操作系统的任务调度方法 |
CN103197969A (zh) * | 2013-03-27 | 2013-07-10 | 百度在线网络技术(北京)有限公司 | 一种分布式定时任务控制装置及方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107272462A (zh) * | 2017-07-26 | 2017-10-20 | 上海与德通讯技术有限公司 | 一种基于多任务的纯动作处理方法和装置 |
CN107390537A (zh) * | 2017-07-26 | 2017-11-24 | 上海与德通讯技术有限公司 | 一种基于多任务的处理方法和装置 |
CN109558687A (zh) * | 2018-12-06 | 2019-04-02 | 广东浪潮大数据研究有限公司 | 一种数据处理方法、系统及相关组件 |
CN111371820A (zh) * | 2018-12-25 | 2020-07-03 | 上海亮衡信息科技有限公司 | 一种基于定时器触发的通信方法、系统及通信设备 |
CN111371816A (zh) * | 2018-12-25 | 2020-07-03 | 上海亮衡信息科技有限公司 | 一种基于条件触发的通信方法、系统及通信设备 |
CN111371815A (zh) * | 2018-12-25 | 2020-07-03 | 上海亮衡信息科技有限公司 | 一种基于时间片触发的通信方法、系统及通信设备 |
CN109947548A (zh) * | 2019-03-15 | 2019-06-28 | 美智光电科技有限公司 | 分配时间片的方法和装置及控制任务执行的方法和装置 |
CN109947548B (zh) * | 2019-03-15 | 2020-11-20 | 美智光电科技股份有限公司 | 分配时间片的方法和装置及控制任务执行的方法和装置 |
CN111104223A (zh) * | 2019-12-17 | 2020-05-05 | 腾讯科技(深圳)有限公司 | 任务处理方法、装置、计算机可读存储介质和计算机设备 |
CN111104223B (zh) * | 2019-12-17 | 2023-06-09 | 腾讯科技(深圳)有限公司 | 任务处理方法、装置、计算机可读存储介质和计算机设备 |
CN113467901A (zh) * | 2020-03-31 | 2021-10-01 | 北京华为数字技术有限公司 | 一种任务调度的方法及相关设备 |
CN115878272A (zh) * | 2021-09-22 | 2023-03-31 | 中科寒武纪科技股份有限公司 | 图任务调度方法、执行端设备、存储介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN106155806B (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106155806B (zh) | 一种多任务调度方法及服务器 | |
US20190347559A1 (en) | Input processing method using neural network computation, and apparatus therefor | |
US11086290B2 (en) | Electronic apparatus for monitoring state of machine tool and control method thereof | |
EP3016451B1 (en) | Electronic device and method of controlling power of electronic device background | |
EP3355223A1 (en) | Unlock method and mobile terminal | |
CN101464807B (zh) | 一种应用程序的加载方法及装置 | |
US10852719B2 (en) | Server, electronic device, and electronic device information providing method | |
US10310905B2 (en) | Method and apparatus for controlling a plurality of operating systems | |
US20180205675A1 (en) | Message generation method and wearable electronic device for supporting the same | |
CN105988805B (zh) | 一种应用程序的管理方法及移动终端 | |
EP3358446A1 (en) | Gesture sensing method and electronic device supporting same | |
CN106227585A (zh) | 一种应用程序启动方法、装置及设备 | |
US20180253202A1 (en) | Electronic device and method for controlling application thereof | |
CN108701026A (zh) | 用于在存储器约束下管理进程的方法和装置 | |
EP3293655A1 (en) | Below the lock user interface with mixed authentication settings | |
CN110022948B (zh) | 用于提供锻炼内容的移动装置和与其连接的可佩戴装置 | |
CN106648854A (zh) | 用于终端的任务执行方法及装置 | |
US10430236B2 (en) | Electronic device and method for resuming process thereof | |
EP3048519B1 (en) | Electronic device and method for displaying object in electronic device | |
KR102255361B1 (ko) | 인텐트 처리 방법 및 그 전자 장치 | |
CN107633080B (zh) | 一种用户任务处理方法及装置 | |
CN107797835A (zh) | 对消息进行处理的方法及装置 | |
US10210104B2 (en) | Apparatus and method for providing handoff thereof | |
CN106909599A (zh) | 一种集群系统、消息处理方法及装置 | |
CN106708737B (zh) | 一种测试方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |