CN107346263B - 任务执行方法、存储介质以及计算机设备 - Google Patents
任务执行方法、存储介质以及计算机设备 Download PDFInfo
- Publication number
- CN107346263B CN107346263B CN201710516334.8A CN201710516334A CN107346263B CN 107346263 B CN107346263 B CN 107346263B CN 201710516334 A CN201710516334 A CN 201710516334A CN 107346263 B CN107346263 B CN 107346263B
- Authority
- CN
- China
- Prior art keywords
- subtask
- execution time
- subtasks
- queue
- subtask queue
- 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
Images
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
- 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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/486—Scheduler internals
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种任务执行方法、存储介质以及计算机设备,其中任务执行方法包括:将待执行任务分解为多个执行粒度相同的子任务,并组成子任务队列;获取多个子任务队列的注册请求,其中,注册请求中包括多个子任务队列的优先级、最大衰减执行时间;根据优先级和最大衰减执行时间执行多个子任务队列中的子任务。本发明通过将待执行任务分解为多个执行粒度相同的子任务,并组成子任务队列,然后根据各子任务队列的优先级和最大衰减执行时间执行各子任务队列中的子任务,从而实现对调度资源消耗大、执行时间长的大型任务的执行,避免了采用传统的优先级队列使得此类任务无法得到执行的问题。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种任务执行方法、存储介质以及计算机设备。
背景技术
众所周知,优先级队列(Priority Queue)是0个或多个元素的集合,每个元素都有一个优先权,对优先级队列执行的操作有查找、插入一个新元素以及删除,一般情况下,查找操作用来搜索优先权最大的元素,删除操作用来删除该元素。对于优先权相同的元素,可按先进先出次序处理或按任意优先权进行。
然而,在医疗影像系统中,有很多非常耗资源的任务,这些任务会长时间、满带宽地执行。在执行某一个这样的任务时,显卡带宽会立即耗尽,并且无法同时运行另外一个长时间、耗资源的任务。这个时候,如果使用传统的优先级队列的话,因为通常都遵循高优先级先调度,低优先级后调度的原则,所以,如果任务队列中不停地有新的优先级较高的任务进入队列,则会导致已经有的低优先级任务永远无法得到调度。
发明内容
基于此,有必要针对采用传统的优先级队列使得低优先级任务无法得到执行的问题,提供一种任务执行方法、存储介质以及计算机设备。
一种任务执行方法,包括:
将待执行任务分解为多个子任务,并组成子任务队列;
获取多个子任务队列的注册请求,所述注册请求中包括多个子任务队列的优先级、最大衰减执行时间;
根据优先级和最大衰减执行时间执行多个子任务队列中的子任务。
在其中一个实施例中,将待执行任务分解为多个子任务包括:将待执行任务分解为多个执行粒度相同的子任务,其中,执行粒度相同包括执行时间相同以及占用资源相同。
在其中一个实施例中,根据优先级和最大衰减执行时间执行各子任务队列中的子任务,包括:
A、根据优先级按高到低依次执行各子任务队列中的子任务,并记录子任务的执行时间;
B、若执行的当前子任务队列中已执行子任务的执行总时间大于当前子任务队列的最大衰减执行时间或当前执行子任务队列中的子任务已执行完毕,则停止执行当前子任务队列中的子任务;
C、调度执行下一优先级子任务队列中的子任务,并记录子任务的执行时间;
D、返回执行步骤B、C,直到完成对最低优先级子任务队列中的子任务的调度;
E、根据优先级按高到低返回依次执行各子任务队列中的未执行子任务,并记录子任务的执行时间;
F、返回执行步骤B、C、D、E,直到完成各子任务队列中的所有子任务的执行。
在其中一个实施例中,注册请求中还包括各子任务队列的标识、与标识对应的子任务队列的最大期望执行时间以及与标识对应的子任务队列中每个子任务的期望执行时间,所述任务执行方法还包括:
获取临时任务加入指定子任务队列的加入请求,其中,加入请求中包括临时任务加入指定子任务队列的标识以及临时任务的期望执行时间;
根据与标识对应的指定子任务队列中每个子任务的期望执行时间和临时任务的期望执行时间确定指定子任务队列的总期望执行时间;
若指定子任务队列的总期望执行时间大于指定子任务队列的最大期望执行时间,则拒绝临时任务加入指定子任务队列的加入请求。
在其中一个实施例中,该方法还包括:
若指定子任务队列的总期望执行时间小于指定子任务队列的最大期望执行时间,则将临时任务加入指定子任务队列。
在其中一个实施例中,根据与标识对应的指定子任务队列中每个子任务的期望执行时间和临时任务的期望执行时间确定指定子任务队列的总期望执行时间,包括:
根据标识确定对应的指定子任务队列中的未执行子任务;
根据标识对应的指定子任务队列中每个子任务的期望执行时间和未执行子任务,确定标识对应的指定子任务队列中未执行子任务的总期望执行时间;
根据标识对应的指定子任务队列中未执行子任务的总期望执行时间和临时任务的期望执行时间确定指定子任务队列的总期望执行时间。
在其中一个实施例中,该方法还包括:
获取紧急任务执行请求;
所述根据优先级和最大衰减执行时间执行各子任务队列中的子任务,包括::
执行完当前正在执行的子任务后,执行紧急任务;
若紧急任务执行完毕,则根据优先级和最大衰减执行时间返回执行当前正在执行的子任务的下一子任务。
一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上方法的步骤。
一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现如上方法的步骤。
上述任务执行方法、存储介质以及计算机设备,通过将待执行任务分解为多个执行粒度相同的子任务,并组成子任务队列,然后根据各子任务队列的优先级和最大衰减执行时间执行各子任务队列中的子任务,从而实现对调度资源消耗大、执行时间长的大型任务的执行,避免了采用传统的优先级队列使得此类任务无法得到执行的问题。
附图说明
图1为一个实施例中任务执行方法的流程示意图;
图2为一个实施例中任务执行方法的流程示意图;
图3为一个实施例中任务执行方法的流程示意图;
图4为一个实施例中任务执行方法的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
本发明实施例提供了一种任务执行方法,如图1所示,可以包括如下步骤::
步骤S101,将待执行任务分解为多个执行粒度相同的子任务,并组成子任务队列。
本实施例主要应用于调度资源消耗大、执行时间长的大型任务,其中,调度资源包括但不限于CPU、GPU等资源。在本实施例中,此类大型任务还具有可分割性,且分割后的任务没有执行先后顺序的依赖要求。
因此,在调度执行此类大型任务之前,可以先将每个大型任务即待执行任务分别分解为由多个执行粒度相同的子任务组成的子任务队列。在本实施例中,执行粒度相同包括执行时间相同以及占用资源相同等,即对一个待执行任务进行分解后的各子任务的执行时间以及占用资源均相同。
步骤S102,获取多个子任务队列的注册请求,其中,注册请求中包括多个子任务队列的优先级、最大衰减执行时间。
获取每个子任务队列发送的注册请求,注册请求中包括各子任务队列的优先级、最大衰减执行时间。其中,各子任务队列的优先级用于表示各子任务队列的优先级别关系,从而可以根据各子任务队列的优先级从高到低构建优先级队列,即子任务队列的优先级高的排在优先级队列的前面,优先级低的排在优先级队列的后面。
最大衰减执行时间则用于控制对应的子任务队列在持续执行一定时间后停止执行,并根据优先级启动下一级子任务队列执行,从而避免传统的优先级队列仅遵循高优先级先调度、低优先级后调度的原则,而导致优先级低的子任务队列无法得到调度的问题。
步骤S103,根据优先级和最大衰减执行时间执行多个子任务队列中的子任务。
在本实施例中,根据优先级和最大衰减执行时间执行多个子任务队列中的子任务,即根据构建的优先级队列的优先级顺序以及各子任务队列的最大衰减执行时间执行各子任务队列中的子任务。当执行某一优先级子任务队列中子任务的执行时间超出该一级子任务队列的最大衰减执行时间时,或者该一级子任务队列中的全部子任务都执行完毕,则暂停执行该一级子任务队列中的子任务,并调度执行下一优先级子任务队列中的子任务,以此类推,按优先级顺序循环执行各子任务队列中的子任务,直到完成优先级队列中所有子任务队列中子任务的执行。
本发明实施例通过将待执行任务分解为由多个执行粒度相同的子任务组成的子任务队列,并为子任务队列设置最大衰减执行时间,从而实现对调度资源消耗大、执行时间长的大型任务的执行,避免了采用传统的优先级队列使得此类任务无法得到调度执行的问题。
在一个实施例中,执行粒度相同包括执行时间相同以及占用资源相同等,因此,将待执行任务分解为多个执行粒度相同的子任务,具体可以包括:根据资源占用以及执行时间将待执行任务分解为多个执行时间相同以及占用资源相同的子任务,例如,可以将待执行任务分解为多个执行时需要占满资源且执行时间相同的子任务。
在一个实施例中,如图2所示,根据优先级和最大衰减执行时间执行多个子任务队列中的子任务,包括:
步骤S201,根据优先级按高到低依次执行各子任务队列中的子任务,并记录子任务的执行时间。
举例来说,当有多个大型任务即待执行任务Task A、Task B以及Task C需要并发执行时,则可以根据上述方法将每个待执行任务Task A、Task B以及Task C分别分解为多个子任务,如待执行任务Task A可以分解为{Ta1,Ta2,Ta3...},待执行任务Task B可以分解为{Tb1,Tb2,Tb3…},待执行任务Task C可以分解为{Tc1,Tc2,Tc3…},其中,待执行任务Task A、Task B以及Task C具体可以是在医学影像系统中需要使用GPU资源进行绘制的任务或使用GPU进行高性能并行计算的任务,{Ta1,Ta2,Ta3...}为一个子任务队列,该队列中的每个子任务Ta1,Ta2,Ta3……都具有在执行时需要占满资源且执行时间相同的特点。
在任务启动前,可以获取各子任务队列的注册请求,注册请求中可以包括各子任务队列的优先级和最大衰减执行时间,例如,在本实施例中,假设待执行任务Task A、TaskB以及Task C在注册时其优先级为Task A>Task B>Task C,Task A的最大衰减执行时间为T1,Task B的最大衰减执行时间为T2,Task C的最大衰减执行时间为T3。则可以根据此优先级从高到低构建优先级队列GpuQueue,该优先级队列GpuQueue中可以包括如下多个子任务队列:
GpuQueuePriorityA
GpuQueuePriorityB
GpuQueuePriorityC
其中,GpuQueuePriorityA为待执行任务Task A的子任务队列{Ta1,Ta2,Ta3...},其优先级最高,GpuQueuePriorityB为待执行任务Task B的子任务队列{Tb1,Tb2,Tb3…},其优先级仅次于GpuQueuePriorityA,GpuQueuePriorityC为待执行任务Task C的子任务队列{Tc1,Tc2,Tc3…},其优先级最低。
从而在任务执行时,则可以根据优先级的按高到低依次执行优先级子任务队列中的子任务,在实施例中,由于GpuQueuePriorityA的优先级最高,因此,可以最先执行GpuQueuePriorityA中的子任务{Ta1,Ta2,Ta3...},并记录子任务的执行时间。
步骤S202,判断执行的当前子任务队列中已执行子任务的执行总时间是否大于当前子任务队列的最大衰减执行时间或当前执行子任务队列中的子任务是否执行完毕,若是则执行步骤S203,否则执行步骤S204。
该一级子任务队列的总执行时间超出最大衰减执行时间或者该一级子任务队列中的子任务全部执行完毕时,则暂停执行该子任务队列中的子任务,并开始调度执行下一级子任务队列中的子任务。例如,当执行GpuQueuePriorityA中的子任务Ta1耗时TE1,则判断TE1与该队列的最大衰减执行时间T1的大小,如果TE1大于T1,则暂停执行GpuQueuePriorityA中的子任务,并调度执行GpuQueuePriorityB中的子任务,如果TE1小于T1,则继续执行GpuQueuePriorityA中的其他子任务。
以此类推,如执行总时间超出该子任务队列的最大衰减执行时间以后或者该一级子任务队列中的所有子任务都执行完毕,其执行总时间都没有达该队列的最大衰减执行时间,则可以调度执行下一级子任务队列。
步骤S203,调度执行下一优先级子任务队列中的子任务,并记录子任务的执行时间,直到该子任务队列中已执行子任务的执行总时间大于该子任务队列的最大衰减执行时间或该执行子任务队列中的子任务已执行完毕。
步骤S204,继续执行当前子任务队列中的未执行子任务,直到当前子任务队列中已执行子任务的执行总时间大于当前子任务队列的最大衰减执行时间或当前执行子任务队列中的子任务已执行完毕,则返回步骤S203。
步骤S205,判断该下一优先级子任务队列是否为最低优先级子任务队列,若是则执行步骤S206,否则返回执行步骤S203。
如果执行完毕最低一级优先级的子任务队列中的子任务或者执行该最低优先级子任务队列的执行总时间超出该子任务队列的最大衰减执行时间,则再次返回,重新开始调度执行最高优先级的子任务队列中的未执行子任务。
步骤S206,根据优先级按高到低返回依次执行各子任务队列中的未执行子任务,并记录子任务的执行时间,返回执行步骤S202。
重复上述步骤根据各子任务队列的最大衰减执行时间以及优先级关系继续执行各子任务队列中的未执行子任务,直到完成所有子任务队列中子任务的执行。从而避免了采用传统的优先级队列使得此类大型任务无法得到执行的问题,以实现对调度资源消耗大、执行时间长的大型任务的执行。
步骤S207,判断是否完成各子任务队列中的所有子任务的执行,若是则执行步骤S208,否则返回执行步骤S203。
步骤S208,结束流程。
在一个实施例中,如图3所示,子任务队列的注册请求中还可以包括各子任务队列的标识、与标识对应的子任务队列的最大期望执行时间以及与标识对应的子任务队列中每个子任务的期望执行时间,因此,该任务执行方法还可以包括如下步骤:
步骤S301,获取临时任务加入指定子任务队列的加入请求,其中,加入请求中包括临时任务加入指定子任务队列的标识以及临时任务的期望执行时间。
在一个实施例中,当有一个临时任务想要加入优先级队列中指定的某个子任务队列时,则可以发送加入请求,加入请求中可以携带该临时任务需要加入的指定子任务队列的标识以及该临时任务的期望执行时间。
步骤S302,根据与标识对应的指定子任务队列中每个子任务的期望执行时间和临时任务的期望执行时间确定该指定子任务队列的总期望执行时间。
在本实施例中,可以根据加入请求中临时任务需要加入的指定子任务队列的标识而确定与该标识对应的指定子任务对列,进而确定该指定子任务队列中的未执行子任务,并根据该指定子任务队列中每个子任务的期望执行时间,确定未执行子任务的总期望执行时间。具体的,未执行子任务的总期望执行时间可以是每个未执行子任务对应的期望执行时间之和。
进一步根据该指定子任务队列中未执行子任务的总期望执行时间和临时任务的期望执行时间确定指定子任务队列的总期望执行时间。具体的,该指定子任务队列的总期望执行时间可以是未执行子任务的总期望执行时间与临时任务的期望执行时间之和。
步骤S303,判断指定子任务队列的总期望执行时间是否大于指定子任务队列的最大期望执行时间,若是,则执行步骤S304,否则执行步骤S305。
步骤S304,拒绝临时任务加入指定子任务队列的加入请求。
步骤S305,将临时任务加入指定子任务队列。
在本实施例中,根据上述步骤确定该指定子任务队列的总期望执行时间后,则通过比较该指定子任务队列的总期望执行时间与最大期望执行时间的大小来确定是否将该临时任务加入指定子任务队列。具体的,如果该指定子任务队列的总期望执行时间小于该子任务队列的最大期望执行时间,则将临时任务加入该指定子任务队列,否则拒绝临时任务加入该指定子任务队列的加入请求。从而实现在现有资源不能满足调度需求时,丢弃临时任务,以防止不停的有临时任务进入该子任务队列而导致该子任务队列中原有的子任务无法得到调度的问题。
在一个实施例中,如图4所示,该任务执行方法还可以包括如下步骤:
步骤S401,获取紧急任务执行请求。
在本实施例中,优先级队列GpuQueue中还包括一个紧急子任务队列GpuQueueEmergency,该紧急子任务队列GpuQueueEmergency的优先级别通常为整个优先级队列GpuQueue中最高的。
因此,当有一个任务想要加入紧急子任务队列时,则可以发送加入请求,加入请求中可以携带该任务希望加入的紧急子任务队列的标识,从而根据加入请求将该任务加入紧急子任务队列GpuQueueEmergency中。加入紧急子任务队列GpuQueueEmergency中的任务则为紧急任务。
步骤S402,执行完当前正在执行的子任务后,执行该紧急任务。
当任务加入紧急子任务队列时系统正在执行其他子任务队列中的子任务,则在执行完毕当前正在执行的任意一个子任务以后,开始执行紧急子任务队列中的突发紧急任务,以实现紧急任务的优先执行。
步骤S403,若紧急任务执行完毕,则根据优先级和最大衰减执行时间返回执行当前正在执行的子任务的下一子任务。
在本实施例中,直到紧急子任务队列中的突发紧急任务被全部执行完毕,再根据优先级队列的优先级和最大衰减执行时间返回执行当前正在执行的子任务的下一子任务,从而实现对突发紧急任务的优先执行。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如下步骤:将待执行任务分解为多个执行粒度相同的子任务,并组成子任务队列;获取多个子任务队列的注册请求,其中注册请求中包括多个子任务队列的优先级、最大衰减执行时间;根据优先级和最大衰减执行时间执行多个子任务队列中的子任务。
在一个实施例中,执行粒度相同包括执行时间相同以及占用资源相同,因此,将待执行任务分解为多个执行粒度相同的子任务,包括:根据资源占用以及执行时间将待执行任务分解为多个执行时间相同以及占用资源相同的子任务。
在一个实施例中,根据优先级和最大衰减执行时间执行各子任务队列中的子任务,包括:A、根据优先级按高到低依次执行各子任务队列中的子任务,并记录子任务的执行时间;B、若执行的当前子任务队列中已执行子任务的执行总时间大于当前子任务队列的最大衰减执行时间或当前执行子任务队列中的子任务已执行完毕,则停止执行当前子任务队列中的子任务;C、调度执行下一优先级子任务队列中的子任务,并记录子任务的执行时间;D、返回执行步骤B、C,直到完成对最低优先级子任务队列中的子任务的调度;E、根据优先级按高到低返回依次执行各子任务队列中的未执行子任务,并记录子任务的执行时间;F、返回执行步骤B、C、D、E,直到完成各子任务队列中的所有子任务的执行。
在一个实施例中,注册请求中还包括各子任务队列的标识、与标识对应的子任务队列的最大期望执行时间以及与标识对应的子任务队列中每个子任务的期望执行时间,所述任务执行方法还包括:获取临时任务加入指定子任务队列的加入请求,其中,加入请求中包括临时任务加入指定子任务队列的标识以及临时任务的期望执行时间;根据与标识对应的指定子任务队列中每个子任务的期望执行时间和临时任务的期望执行时间确定指定子任务队列的总期望执行时间;若指定子任务队列的总期望执行时间大于指定子任务队列的最大期望执行时间,则拒绝临时任务加入指定子任务队列的加入请求。
在一个实施例中,还可以包括:若指定子任务队列的总期望执行时间小于指定子任务队列的最大期望执行时间,则将临时任务加入指定子任务队列。
在一个实施例中,根据与标识对应的指定子任务队列中每个子任务的期望执行时间和临时任务的期望执行时间确定指定子任务队列的总期望执行时间,包括:根据标识确定对应的指定子任务队列中的未执行子任务;根据标识对应的指定子任务队列中每个子任务的期望执行时间和未执行子任务,确定标识对应的指定子任务队列中未执行子任务的总期望执行时间;根据标识对应的指定子任务队列中未执行子任务的总期望执行时间和临时任务的期望执行时间确定指定子任务队列的总期望执行时间。
在一个实施例中,任务执行方法还可以包括:获取紧急任务执行请求;则根据优先级和最大衰减执行时间执行各子任务队列中的子任务,包括:执行完当前正在执行的子任务后,执行紧急任务;若紧急任务执行完毕,则根据优先级和最大衰减执行时间返回执行当前正在执行的子任务的下一子任务。
本发明实施例还提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现如下步骤:将待执行任务分解为多个执行粒度相同的子任务,并组成子任务队列;获取多个子任务队列的注册请求,其中注册请求中包括多个子任务队列的优先级、最大衰减执行时间;根据优先级和最大衰减执行时间执行多个子任务队列中的子任务。
在一个实施例中,执行粒度相同包括执行时间相同以及占用资源相同,因此,将待执行任务分解为多个执行粒度相同的子任务,包括:根据资源占用以及执行时间将待执行任务分解为多个执行时间相同以及占用资源相同的子任务。
在一个实施例中,根据优先级和最大衰减执行时间执行各子任务队列中的子任务,包括:A、根据优先级按高到低依次执行各子任务队列中的子任务,并记录子任务的执行时间;B、若执行的当前子任务队列中已执行子任务的执行总时间大于当前子任务队列的最大衰减执行时间或当前执行子任务队列中的子任务已执行完毕,则停止执行当前子任务队列中的子任务;C、调度执行下一优先级子任务队列中的子任务,并记录子任务的执行时间;D、返回执行步骤B、C,直到完成对最低优先级子任务队列中的子任务的调度;E、根据优先级按高到低返回依次执行各子任务队列中的未执行子任务,并记录子任务的执行时间;F、返回执行步骤B、C、D、E,直到完成各子任务队列中的所有子任务的执行。
在一个实施例中,注册请求中还包括各子任务队列的标识、与标识对应的子任务队列的最大期望执行时间以及与标识对应的子任务队列中每个子任务的期望执行时间,所述任务执行方法还包括:获取临时任务加入指定子任务队列的加入请求,其中,加入请求中包括临时任务加入指定子任务队列的标识以及临时任务的期望执行时间;根据与标识对应的指定子任务队列中每个子任务的期望执行时间和临时任务的期望执行时间确定指定子任务队列的总期望执行时间;若指定子任务队列的总期望执行时间大于指定子任务队列的最大期望执行时间,则拒绝临时任务加入指定子任务队列的加入请求。
在一个实施例中,还可以包括:若指定子任务队列的总期望执行时间小于指定子任务队列的最大期望执行时间,则将临时任务加入指定子任务队列。
在一个实施例中,根据与标识对应的指定子任务队列中每个子任务的期望执行时间和临时任务的期望执行时间确定指定子任务队列的总期望执行时间,包括:根据标识确定对应的指定子任务队列中的未执行子任务;根据标识对应的指定子任务队列中每个子任务的期望执行时间和未执行子任务,确定标识对应的指定子任务队列中未执行子任务的总期望执行时间;根据标识对应的指定子任务队列中未执行子任务的总期望执行时间和临时任务的期望执行时间确定指定子任务队列的总期望执行时间。
在一个实施例中,任务执行方法还可以包括:获取紧急任务执行请求;则根据优先级和最大衰减执行时间执行各子任务队列中的子任务,包括:执行完当前正在执行的子任务后,执行紧急任务;若紧急任务执行完毕,则根据优先级和最大衰减执行时间返回执行当前正在执行的子任务的下一子任务。
在一个实施例中,存储器可以包括上述实施例提供的计算机可读存储介质,其实现原理和技术效果可参阅上述实施例,此处不再赘述。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种任务执行方法,其特征在于,包括:
将待执行任务分解为多个子任务,并组成子任务队列;
获取多个子任务队列的注册请求,所述注册请求中包括所述多个子任务队列的优先级、最大衰减执行时间以及所述各子任务队列的标识、与所述标识对应的子任务队列的最大期望执行时间以及与所述标识对应的子任务队列中每个子任务的期望执行时间;
根据所述优先级和最大衰减执行时间执行多个子任务队列中的子任务,当执行当前优先级子任务队列中各子任务的执行时间超出所述子任务队列的最大衰减执行时间时,或者所述子任务队列中的全部子任务都执行完毕,则暂停执行所述子任务队列中的子任务并调度执行下一优先级子任务队列中的子任务,直到完成所述多个子任务队列中的子任务的执行;以及,
获取临时任务加入指定子任务队列的加入请求,所述加入请求中包括所述临时任务加入指定子任务队列的标识以及所述临时任务的期望执行时间;根据与所述标识对应的指定子任务队列中每个子任务的期望执行时间和所述临时任务的期望执行时间确定所述指定子任务队列的总期望执行时间;若所述指定子任务队列的总期望执行时间大于所述指定子任务队列的最大期望执行时间,则拒绝所述临时任务加入所述指定子任务队列的加入请求;
其中,所述根据所述优先级和最大衰减执行时间执行各子任务队列中的子任务,包括:
A、根据所述优先级按高到低依次执行各子任务队列中的子任务,并记录所述子任务的执行时间;
B、若执行的当前子任务队列中已执行子任务的执行总时间大于当前子任务队列的最大衰减执行时间或当前执行子任务队列中的子任务已执行完毕,则停止执行当前子任务队列中的子任务;
C、调度执行下一优先级子任务队列中的子任务,并记录子任务的执行时间;
D、返回执行步骤B、C,直到完成对最低优先级子任务队列中的子任务的调度;
E、根据所述优先级按高到低返回依次执行各子任务队列中的未执行子任务,并记录子任务的执行时间;
F、返回执行步骤B、C、D、E,直到完成所述各子任务队列中的所有子任务的执行。
2.根据权利要求1所述的任务执行方法,其特征在于,所述将待执行任务分解为多个子任务包括:
将待执行任务分解为多个执行粒度相同的子任务,所述执行粒度相同包括执行时间相同以及占用资源相同。
3.根据权利要求1所述的任务执行方法,其特征在于,还包括:
若所述指定子任务队列的总期望执行时间小于所述指定子任务队列的最大期望执行时间,则将所述临时任务加入所述指定子任务队列。
4.根据权利要求1或3所述的任务执行方法,其特征在于,根据与所述标识对应的指定子任务队列中每个子任务的期望执行时间和所述临时任务的期望执行时间确定所述指定子任务队列的总期望执行时间,包括:
根据所述标识确定对应的指定子任务队列中的未执行子任务;
根据所述标识对应的指定子任务队列中每个子任务的期望执行时间和未执行子任务,确定所述标识对应的指定子任务队列中未执行子任务的总期望执行时间;
根据所述标识对应的指定子任务队列中未执行子任务的总期望执行时间和所述临时任务的期望执行时间确定所述指定子任务队列的总期望执行时间。
5.根据权利要求1所述的任务执行方法,其特征在于,所述方法还包括:
获取紧急任务执行请求;
所述根据所述优先级和最大衰减执行时间执行各子任务队列中的子任务,包括:
执行完当前正在执行的子任务后,执行所述紧急任务;
若所述紧急任务执行完毕,则根据所述优先级和最大衰减执行时间返回执行所述当前正在执行的子任务的下一子任务。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1~5任一项所述方法的步骤。
7.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如下步骤:
将待执行任务分解为多个子任务,并组成子任务队列;
获取各子任务队列的注册请求,所述注册请求中包括所述各子任务队列的优先级、最大衰减执行时间以及所述各子任务队列的标识、与所述标识对应的子任务队列的最大期望执行时间以及与所述标识对应的子任务队列中每个子任务的期望执行时间;
根据所述优先级和最大衰减执行时间执行各子任务队列中的子任务,当执行当前优先级子任务队列中子任务的执行时间超出所述子任务队列的最大衰减执行时间时,或者所述子任务队列中的全部子任务都执行完毕,则暂停执行所述子任务队列中的子任务并调度执行下一优先级子任务队列中的子任务,直到完成所述多个子任务队列中的子任务的执行;以及,
获取临时任务加入指定子任务队列的加入请求,所述加入请求中包括所述临时任务加入指定子任务队列的标识以及所述临时任务的期望执行时间;根据与所述标识对应的指定子任务队列中每个子任务的期望执行时间和所述临时任务的期望执行时间确定所述指定子任务队列的总期望执行时间;若所述指定子任务队列的总期望执行时间大于所述指定子任务队列的最大期望执行时间,则拒绝所述临时任务加入所述指定子任务队列的加入请求;
其中,所述根据所述优先级和最大衰减执行时间执行各子任务队列中的子任务,包括:
A、根据所述优先级按高到低依次执行各子任务队列中的子任务,并记录所述子任务的执行时间;
B、若执行的当前子任务队列中已执行子任务的执行总时间大于当前子任务队列的最大衰减执行时间或当前执行子任务队列中的子任务已执行完毕,则停止执行当前子任务队列中的子任务;
C、调度执行下一优先级子任务队列中的子任务,并记录子任务的执行时间;
D、返回执行步骤B、C,直到完成对最低优先级子任务队列中的子任务的调度;
E、根据所述优先级按高到低返回依次执行各子任务队列中的未执行子任务,并记录子任务的执行时间;
F、返回执行步骤B、C、D、E,直到完成所述各子任务队列中的所有子任务的执行。
8.根据权利要求7所述的计算机设备,其特征在于,所述将待执行任务分解为多个子任务包括:
将待执行任务分解为多个执行粒度相同的子任务,所述执行粒度相同包括执行时间相同以及占用资源相同。
9.根据权利要求8所述的计算机设备,其特征在于,若所述指定子任务队列的总期望执行时间小于所述指定子任务队列的最大期望执行时间,则将所述临时任务加入所述指定子任务队列。
10.根据权利要求7或9所述的计算机设备,其特征在于,根据与所述标识对应的指定子任务队列中每个子任务的期望执行时间和所述临时任务的期望执行时间确定所述指定子任务队列的总期望执行时间,包括:
根据所述标识确定对应的指定子任务队列中的未执行子任务;
根据所述标识对应的指定子任务队列中每个子任务的期望执行时间和未执行子任务,确定所述标识对应的指定子任务队列中未执行子任务的总期望执行时间;
根据所述标识对应的指定子任务队列中未执行子任务的总期望执行时间和所述临时任务的期望执行时间确定所述指定子任务队列的总期望执行时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710516334.8A CN107346263B (zh) | 2017-06-29 | 2017-06-29 | 任务执行方法、存储介质以及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710516334.8A CN107346263B (zh) | 2017-06-29 | 2017-06-29 | 任务执行方法、存储介质以及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107346263A CN107346263A (zh) | 2017-11-14 |
CN107346263B true CN107346263B (zh) | 2021-01-12 |
Family
ID=60256730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710516334.8A Active CN107346263B (zh) | 2017-06-29 | 2017-06-29 | 任务执行方法、存储介质以及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107346263B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107346263B (zh) * | 2017-06-29 | 2021-01-12 | 上海联影医疗科技股份有限公司 | 任务执行方法、存储介质以及计算机设备 |
CN110673944B (zh) * | 2018-07-03 | 2022-09-09 | 杭州海康威视数字技术股份有限公司 | 执行任务的方法和装置 |
CN110175072A (zh) * | 2019-05-28 | 2019-08-27 | 广州小鹏汽车科技有限公司 | 任务执行方法、系统及车辆 |
CN112114973B (zh) * | 2020-09-29 | 2024-02-13 | 中国银行股份有限公司 | 一种数据处理方法及装置 |
CN113342493B (zh) * | 2021-06-15 | 2022-09-20 | 上海哔哩哔哩科技有限公司 | 任务执行方法、装置及计算机设备 |
CN114493373B (zh) * | 2022-03-31 | 2022-07-12 | 中国科学院空天信息创新研究院 | 一种遥感卫星处理系统中应急任务处理方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101446910A (zh) * | 2008-12-08 | 2009-06-03 | 哈尔滨工程大学 | 基于smp的aedf任务调度方法 |
CN101751025A (zh) * | 2008-12-12 | 2010-06-23 | 北京北方微电子基地设备工艺研究中心有限责任公司 | 一种硅片优化调度的方法和装置 |
CN102043668A (zh) * | 2010-12-10 | 2011-05-04 | 成电汽车电子产业园(昆山)有限公司 | 一种嵌入式实时操作系统中任务多次激活的方法 |
CN103823780A (zh) * | 2014-03-03 | 2014-05-28 | 东南大学 | 一种实时现场总线控制调度方法 |
CN105978955A (zh) * | 2016-04-28 | 2016-09-28 | 武汉网幂科技有限公司 | 一种移动视频同步系统、方法及移动终端 |
CN106547611A (zh) * | 2015-09-16 | 2017-03-29 | 中兴通讯股份有限公司 | 基于业务流的任务调度方法及装置 |
US20170161669A1 (en) * | 2015-12-07 | 2017-06-08 | Le Holdings (Beijing) Co., Ltd. | Method and system for submitting content delivery tasks |
CN107346263A (zh) * | 2017-06-29 | 2017-11-14 | 上海联影医疗科技有限公司 | 任务执行方法、存储介质以及计算机设备 |
-
2017
- 2017-06-29 CN CN201710516334.8A patent/CN107346263B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101446910A (zh) * | 2008-12-08 | 2009-06-03 | 哈尔滨工程大学 | 基于smp的aedf任务调度方法 |
CN101751025A (zh) * | 2008-12-12 | 2010-06-23 | 北京北方微电子基地设备工艺研究中心有限责任公司 | 一种硅片优化调度的方法和装置 |
CN102043668A (zh) * | 2010-12-10 | 2011-05-04 | 成电汽车电子产业园(昆山)有限公司 | 一种嵌入式实时操作系统中任务多次激活的方法 |
CN103823780A (zh) * | 2014-03-03 | 2014-05-28 | 东南大学 | 一种实时现场总线控制调度方法 |
CN106547611A (zh) * | 2015-09-16 | 2017-03-29 | 中兴通讯股份有限公司 | 基于业务流的任务调度方法及装置 |
US20170161669A1 (en) * | 2015-12-07 | 2017-06-08 | Le Holdings (Beijing) Co., Ltd. | Method and system for submitting content delivery tasks |
CN105978955A (zh) * | 2016-04-28 | 2016-09-28 | 武汉网幂科技有限公司 | 一种移动视频同步系统、方法及移动终端 |
CN107346263A (zh) * | 2017-06-29 | 2017-11-14 | 上海联影医疗科技有限公司 | 任务执行方法、存储介质以及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107346263A (zh) | 2017-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107346263B (zh) | 任务执行方法、存储介质以及计算机设备 | |
CN109582455B (zh) | 多线程任务处理方法、装置及存储介质 | |
CN110018893B (zh) | 一种基于数据处理的任务调度方法及相关设备 | |
Delgado et al. | Job-aware scheduling in eagle: Divide and stick to your probes | |
US10802877B2 (en) | Task management methods and system, and computer storage medium | |
CN110287003B (zh) | 资源的管理方法和管理系统 | |
US9448864B2 (en) | Method and apparatus for processing message between processors | |
US7752622B1 (en) | Method and apparatus for flexible job pre-emption | |
CN107229511B (zh) | 集群任务均衡调度方法、装置、存储介质及电子设备 | |
US7743378B1 (en) | Method and apparatus for multi-dimensional priority determination for job scheduling | |
US8056083B2 (en) | Dividing a computer job into micro-jobs for execution | |
US7844968B1 (en) | System for predicting earliest completion time and using static priority having initial priority and static urgency for job scheduling | |
CN104915253B (zh) | 一种作业调度的方法及作业处理器 | |
US7984447B1 (en) | Method and apparatus for balancing project shares within job assignment and scheduling | |
US10467054B2 (en) | Resource management method and system, and computer storage medium | |
CN108681481B (zh) | 业务请求的处理方法及装置 | |
CN107515781B (zh) | 一种基于多处理器的确定性任务调度及负载均衡系统 | |
US8214836B1 (en) | Method and apparatus for job assignment and scheduling using advance reservation, backfilling, and preemption | |
CN111897637B (zh) | 作业调度方法、装置、主机及存储介质 | |
CN108958789B (zh) | 一种并行流式计算方法、电子设备、存储介质及系统 | |
JP5605131B2 (ja) | ジョブスケジューリングプログラム,方法,および装置 | |
US20150026694A1 (en) | Method of processing information, storage medium, and information processing apparatus | |
CN112214318A (zh) | 一种任务调度方法、系统、设备以及介质 | |
CN115509704A (zh) | 一种任务调度方法、装置、设备及存储介质 | |
Alhussian et al. | An unfair semi-greedy real-time multiprocessor scheduling algorithm |
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 | ||
CB02 | Change of applicant information |
Address after: 201807 Shanghai City, north of the city of Jiading District Road No. 2258 Applicant after: Shanghai Lianying Medical Technology Co., Ltd Address before: 201807 Shanghai City, north of the city of Jiading District Road No. 2258 Applicant before: SHANGHAI UNITED IMAGING HEALTHCARE Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |