CN109992382B - 任务调度方法、装置及任务调度器 - Google Patents
任务调度方法、装置及任务调度器 Download PDFInfo
- Publication number
- CN109992382B CN109992382B CN201711498107.3A CN201711498107A CN109992382B CN 109992382 B CN109992382 B CN 109992382B CN 201711498107 A CN201711498107 A CN 201711498107A CN 109992382 B CN109992382 B CN 109992382B
- Authority
- CN
- China
- Prior art keywords
- task
- resource analysis
- running state
- analysis units
- real
- 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
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)
Abstract
本发明提供了一种任务调度方法、装置及任务调度器,涉及数据处理技术领域,该方法包括:当接收到实时性任务分配请求时,获取各个运行态任务的未完成的任务分片总数;根据每个运行态任务的未完成的任务分片总数和用户期望资源分析单元数,确定运行态任务的饱和资源分析单元数;根据各个运行态任务的饱和资源分析单元数,判断是否存在有效空闲资源分析单元;当判断结果为是时,创建实时性任务,以进行该实时性任务的分配。只有当存在有效空闲资源分析单元时才创建实时性任务,并进行后续的任务分配,这样有效缓解了实时性任务非法抢占非实时性任务的资源分析单元的问题。
Description
技术领域
本发明涉及数据处理技术领域,尤其是涉及一种任务调度方法、装置及任务调度器。
背景技术
在实际任务分析中,任务包括实时性任务和非实时性任务,所有任务按先进先出原则进行有序分析。对于非实时性任务,通过任务切片技术实现多倍速分析,也即将非实时性任务切分为多个任务分片,多个任务分片根据选择的分析倍速由多个资源分析单元进行处理,以提高分析速度。例如,若一个非实时性任务被切分为100个任务分片,且该任务采用5倍速分析,则该任务需要5个资源分析单元同时工作,共同完成这100个任务分片的分析。
采用任务切片技术时,空闲资源分析单元包括有效空闲资源分析单元和过渡态空闲资源分析单元,其中,有效空闲资源分析单元指该资源分析单元未处理任务或刚完成某个任务,可以分配新任务;过渡态空闲资源分析单元指该资源分析单元正在处理某个非实时性任务,且刚分析完该任务的一个任务分片,等待分配该任务的下一个未完成的任务分片。
由于现有技术无法检测空闲资源分析单元是否为有效空闲资源分析单元,在实时性任务和非实时性任务混合调度下,一旦发现空闲资源分析单元就会为其分配实时性任务,这样会导致实时性任务非法抢占正在分析非实时性任务的过渡态空闲资源分析单元。
发明内容
有鉴于此,本发明的目的在于提供一种任务调度方法、装置及任务调度器,以缓解资源分析单元被实时性任务非法强占的技术问题。
第一方面,本发明实施例提供了一种任务调度方法,所述方法包括:
当接收到实时性任务分配请求时,获取各个运行态任务的未完成的任务分片总数;
根据每个所述运行态任务的未完成的任务分片总数和用户期望资源分析单元数,确定所述运行态任务的饱和资源分析单元数;其中,所述饱和资源分析单元数用于衡量所述运行态任务的饥饿程度;
根据各个所述运行态任务的饱和资源分析单元数,判断是否存在有效空闲资源分析单元;
当判断结果为是时,创建实时性任务,以进行所述实时性任务的分配。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述根据每个所述运行态任务的未完成的任务分片总数和用户期望资源分析单元数,确定所述运行态任务的饱和资源分析单元数,包括:
将每个所述运行态任务的未完成的任务分片总数和用户期望资源分析单元数中的较小者,确定为所述运行态任务的饱和资源分析单元数。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述根据各个所述运行态任务的饱和资源分析单元数,判断是否存在有效空闲资源分析单元,包括:
计算各个所述运行态任务的饱和资源分析单元数的和值;
判断所述和值是否小于在线资源分析单元总数;其中,所述在线资源分析单元总数为空闲资源分析单元总数与运行资源分析单元总数之和;
如果是,确定存在有效空闲资源分析单元。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述方法还包括:
对于每个所述运行态任务,当满足以下分配条件时为所述运行态任务的待分配的任务分片分配资源分析单元:
空闲资源分析单元总数大于0,且所述运行态任务的用户期望资源分析单元数大于所述运行态任务的实际运行资源分析单元数与异常的任务分片总数之和。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述方法还包括:
对于每个所述运行态任务,当所述运行态任务的异常的任务分片总数大于或者等于所述运行态任务的饱和资源分析单元数时,将所述运行态任务的状态设置为异常态,以使所述运行态任务从运行态队列进入异常态队列。
结合第一方面的第四种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述方法还包括:
对于所述异常态队列的每个异常态任务,经过预设时间间隔后,将所述异常态任务的状态重置为就绪态,以使所述异常态任务进入就绪态队列,重新参与资源调度。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述方法还包括:
接收用户对未完成任务触发的任务状态更改指令;其中,所述未完成任务包括所述运行态任务、就绪态任务、异常态任务和睡眠态任务中的一种或多种;
按照所述任务状态更改指令修改所述未完成任务的状态。
第二方面,本发明实施例还提供一种任务调度装置,包括:
获取模块,用于当接收到实时性任务分配请求时,获取各个运行态任务的未完成的任务分片总数;
确定模块,用于根据每个所述运行态任务的未完成的任务分片总数和用户期望资源分析单元数,确定所述运行态任务的饱和资源分析单元数;其中,所述饱和资源分析单元数用于衡量所述运行态任务的饥饿程度;
判断模块,用于根据各个所述运行态任务的饱和资源分析单元数,判断是否存在有效空闲资源分析单元;
创建模块,用于当所述判断模块的判断结果为是时,创建实时性任务,以进行所述实时性任务的分配。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述装置还包括运行态任务资源分配模块,用于:
对于每个所述运行态任务,当满足以下分配条件时为所述运行态任务的待分配的任务分片分配资源分析单元:
空闲资源分析单元总数大于0,且所述运行态任务的用户期望资源分析单元数大于所述运行态任务的实际运行资源分析单元数与异常的任务分片总数之和。
第二方面,本发明实施例还提供一种任务调度器,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面及其任一种可能的实施方式所述的方法。
本发明实施例带来了以下有益效果:
本发明实施例中,当接收到实时性任务分配请求时,获取各个运行态任务的未完成的任务分片总数;根据每个运行态任务的未完成的任务分片总数和用户期望资源分析单元数,确定运行态任务的饱和资源分析单元数;根据各个运行态任务的饱和资源分析单元数,判断是否存在有效空闲资源分析单元;当判断结果为是时,创建实时性任务,以进行该实时性任务的分配。运行态任务的饱和资源分析单元数,也即运行态任务应当占用的资源分析单元数,通过各个运行态任务的饱和资源分析单元数确定是否存在有效空闲资源分析单元,只有当存在有效空闲资源分析单元时才创建实时性任务,并进行后续的任务分配,这样有效缓解了实时性任务非法抢占非实时性任务的资源分析单元的问题。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种任务调度方法的流程示意图;
图2为本发明实施例提供的一种任务状态机的结构示意图;
图3为本发明实施例提供的一种任务调度装置的结构示意图;
图4为本发明实施例提供的一种任务调度器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
对于非实时性任务,通过任务切片技术实现多倍速分析。在以下三种情况下,会出现资源分析单元的动态变化:1、资源分析单元出现离线、异常重启;2、正在运行分析的资源分析单元出现任务异常等,导致资源分析单元提前释放资源;3、完成任务分片分析,释放资源分析单元。
在实时性任务和非实时任务混合调度下,资源分析单元的动态变化会引发实时性任务非法抢占。基于此,本发明实施例提供的一种任务调度方法、装置及任务调度器,可以检测是否存在有效空闲资源分析单元,从而缓解资源分析单元被实时性任务非法强占的技术问题。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种任务调度方法进行详细介绍。
实施例一:
针对多用户创建多类型任务,采用分布式系统任务分配方式。在一些可能的实施例中,按照用户任务创建历史时间的先后顺序,依次为各个任务分配空闲资源分析单元。考虑到实时性任务的优先级较高,为了防止实时性任务的非法强占,在创建实时性任务之前,先进行实时性任务下发条件的检测,即检测是否存在有效空闲资源分析单元,只有满足实时性任务的下发条件才进行实时性任务的创建。
图1为本发明实施例提供的一种任务调度方法的流程示意图,如图1所示,针对实时性任务的创建,该方法包括以下几个步骤:
步骤S102,当接收到实时性任务分配请求时,获取各个运行态任务的未完成的任务分片总数。
运行态任务指正在分析处理中的任务,包括实时性任务和非实时性任务。实时性任务可以但不限于为监控视频等任务,非实时性任务可以但不限于录像视频等任务。为实现多倍速分析,采用任务切片技术将非实时性任务切分为多个任务分片,非实时性任务的各个任务分片的状态包括待分配状态(就绪态)、运行态、异常态、完成态和睡眠态(暂停后的任务状态)中的一种或多种,对应的,各个状态的任务分片可以依次记为待分配的任务分片、运行的任务分片、异常的任务分片和完成的任务分片。非实时性任务的未完成的任务分片包括待分配的任务分片、运行的任务分片和异常的任务分片,因此对于非实时性任务,需要计算其待分配的任务分片总数、运行的任务分片总数和异常的任务分片总数之和,得到未完成的任务分片总数。而实时性任务相当于只有一个任务分片,因此对于运行态的实时性任务,其未完成的任务分片总数恒为1;对于完成态的实时性任务,其未完成的任务分片总数恒为0。
步骤S104,根据每个运行态任务的未完成的任务分片总数和用户期望资源分析单元数,确定运行态任务的饱和资源分析单元数。
对于非实时性任务,其用户期望资源分析单元数与其分析倍速值有关,例如若采用5倍速分析非实时性任务A,则A的用户期望资源分析单元数可以为5。对于实时性任务,其用户期望资源分析单元数恒为1。
采用运行态任务的饱和资源分析单元数来衡量其饥饿程度。在一些可能的实施例中,将每个运行态任务的未完成的任务分片总数和用户期望资源分析单元数中的较小者,确定为运行态任务的饱和资源分析单元数。
具体地,若将任务X的未完成的任务分片总数记为DX,用户期望资源分析单元数记为EX,则饱和资源分析单元数TX为:
TX=min(EX,DX) (1)。
对于运行态的实时性任务,DX=1,EX=1,因此TX=1;对于完成态的实时性任务,DX=0,EX=1,因此TX=0。对于非实时性任务,若DX≥EX,则TX=EX;若DX<EX,则TX=DX。
步骤S106,根据各个运行态任务的饱和资源分析单元数,判断是否存在有效空闲资源分析单元。
先计算各个运行态任务的饱和资源分析单元数的和值,然后判断是否满足实时性任务下发条件,即该和值是否小于在线资源分析单元总数;其中,在线资源分析单元总数为空闲资源分析单元总数与运行资源分析单元总数之和。
若空闲资源分析单元总数记为I,运行资源分析单元总数记为R,则在线资源分析单元总数L为:
L=I+R (2);
实时性任务下发条件为:
其中,N表示运行态任务的总数,TX表示运行态任务X的饱和资源分析单元数。
如果满足上述实时性任务下发条件(3),则确定存在有效空闲资源分析单元;反之,则不存在有效空闲资源分析单元,并不创建实时性任务。
步骤S108,当上述判断结果为是时,创建实时性任务,以进行该实时性任务的分配。
创建实时性任务时,若满足上述实时性任务下发条件,也即存在有效空闲资源分析单元,则进行实时性任务的创建,并启动后续的分配机制。
本发明实施例中,当接收到实时性任务分配请求时,获取各个运行态任务的未完成的任务分片总数;根据每个运行态任务的未完成的任务分片总数和用户期望资源分析单元数,确定运行态任务的饱和资源分析单元数;根据各个运行态任务的饱和资源分析单元数,判断是否存在有效空闲资源分析单元;当判断结果为是时,创建实时性任务,以进行该实时性任务的分配。运行态任务的饱和资源分析单元数,也即运行态任务应当占用的资源分析单元数,通过各个运行态任务的饱和资源分析单元数确定是否存在有效空闲资源分析单元,只有当存在有效空闲资源分析单元时才创建实时性任务,并进行后续的任务分配,这样有效缓解了实时性任务非法抢占非实时性任务的资源分析单元的问题。
对于运行态的非实时性任务,其任务分片的异常会导致分析倍速降低,此时为了保证足够的分析倍速,会为该非实时性任务继续分配资源分析单元,因此正常情况下现有技术中存在非实时性任务的任务分片非法抢占资源分析单元的问题。针对该非法抢占问题,本实施例提供的方法还包括:对于每个运行态任务,当满足以下分配条件时为运行态任务的待分配的任务分片分配资源分析单元:
空闲资源分析单元总数大于0,且该运行态任务的用户期望资源分析单元数大于该运行态任务的实际运行资源分析单元数与异常的任务分片总数之和。其中,运行态任务的实际运行资源分析单元数为该运行态任务的运行的任务分片所占用的资源分析单元数。
若运行态任务X的实际运行资源分析单元数记为RX,X的异常的任务分片总数记为PX,则上述分配条件为:
I>0 (4),
EX-PX-RX>0 (5)。
对于每个运行态任务X,若同时满足上述条件(4)和(5),则为任务X分配资源分析单元。这样通过计算运行态任务的饱和资源分析单元数,结合上述分配条件,既能保证任务的有序分析,又可以解决正常情况下资源分析单元的动态变化导致的非法抢占问题。
图2为本发明实施例提供的一种任务状态机的结构示意图,如图2所示,本实施例中,任务的状态包括就绪态、运行态、异常态、完成态和睡眠态。具体地,任务创建后默认任务状态为就绪态,任务进入就绪态队列,后台任务调度器依据任务创建时间先后顺序依次为就绪态队列的任务分配资源分析单元。已经获取资源分析单元的任务从就绪态队列进入到运行态队列,任务运行期间会因为资源分析单元离线或任务自身异常等异常情况,从运行态队列进入异常态队列。任务分析完成进入完成态。
对于由多个任务分片组成的非实时性任务,其任务分片出现异常可能是因为资源分析单元故障(其他任务分片可能为正常运行态),也可能是因为该非实时性任务自身异常。当该非实时性任务自身异常时,其所有任务分片均为异常。为了提高对非实时性任务的异常检测效率,本实施例提供的方法还包括:对于每个运行态任务,当满足异常任务触发条件时,即当运行态任务的异常的任务分片总数大于或者等于该运行态任务的饱和资源分析单元数时,将该运行态任务的状态设置为异常态,以使该运行态任务从运行态队列进入异常态队列。
运行态任务的饱和资源分析单元数会从初始值随着任务分析一直减少为0,而异常的任务分片总数会因为异常而不停增加,当异常的任务分片总数大于或者等于饱和资源分析单元数时,说明该运行态任务的异常任务分片较多,因此可以认为该任务属于自身异常情况。上述异常任务触发条件可以通过下述不等式表示:
PX-TX≥0 (6)。
对于每个运行态任务X,若满足上述条件(6),则将该运行态任务X的状态设置为异常态。这样可以快速检测出自身异常的非实时性任务。
考虑到异常态任务长时间持有资源分析单元,会导致后续任务不能及时分析,本实施例提供的方法还包括异常淘汰机制(异常任务惩罚机制),具体如下:对于异常态队列的每个异常态任务,经过预设时间间隔后,将该异常态任务的状态重置为就绪态,以使异常态任务进入就绪态队列,重新参与资源调度。这样实现了状态机轮转,如图2所示,可以释放异常态任务占用的资源分析单元,实现了资源分析单元的合理化调度。
综上可知,结合任务切片、异步计算和状态机轮转技术,本实施例提供了一种任务调度技术,通过状态机技术和饱和资源分析单元数的联合检测,既能保证任务有序分析,也能对异常态任务及时淘汰,让出资源分析单元,实现资源分析单元的合理化调度。
为了支持用户调整任务分析时序,本实施例提供的方法还包括:接收用户对未完成任务触发的任务状态更改指令;其中,未完成任务包括运行态任务、就绪态任务、异常态任务和睡眠态任务中的一种或多种;按照该任务状态更改指令修改未完成任务的状态。如图2所示,用户通过手动操作可以将就绪态/异常态/运行态任务的状态更改为睡眠态,以进行任务的暂停;也可以将睡眠态任务的状态手动恢复为就绪态,重新启动该任务的调度。这样实现了用户对任务分析时序的调整,提高了用户体验度。
实施例二:
对应上述实施例一的任务调度方法,本实施例还提供了一种任务调度装置,如图3所示,该任务调度装置包括:
获取模块32,用于当接收到实时性任务分配请求时,获取各个运行态任务的未完成的任务分片总数;
确定模块34,用于根据每个运行态任务的未完成的任务分片总数和用户期望资源分析单元数,确定运行态任务的饱和资源分析单元数;其中,饱和资源分析单元数用于衡量该运行态任务的饥饿程度;
判断模块36,用于根据各个运行态任务的饱和资源分析单元数,判断是否存在有效空闲资源分析单元;
创建模块38,用于当判断模块36的判断结果为是时,创建实时性任务,以进行该实时性任务的分配。
上述装置还包括运行态任务资源分配模块,该运行态任务资源分配模块与创建模块38连接,用于:对于每个运行态任务,当满足以下分配条件时为运行态任务的待分配的任务分片分配资源分析单元:
空闲资源分析单元总数大于0,且该运行态任务的用户期望资源分析单元数大于该运行态任务的实际运行资源分析单元数与异常的任务分片总数之和。
本发明实施例中,当接收到实时性任务分配请求时,获取各个运行态任务的未完成的任务分片总数;根据每个运行态任务的未完成的任务分片总数和用户期望资源分析单元数,确定运行态任务的饱和资源分析单元数;根据各个运行态任务的饱和资源分析单元数,判断是否存在有效空闲资源分析单元;当判断结果为是时,创建实时性任务,以进行该实时性任务的分配。运行态任务的饱和资源分析单元数,也即运行态任务应当占用的资源分析单元数,通过各个运行态任务的饱和资源分析单元数确定是否存在有效空闲资源分析单元,只有当存在有效空闲资源分析单元时才创建实时性任务,并进行后续的任务分配,这样有效缓解了实时性任务非法抢占非实时性任务的资源分析单元的问题。
实施例三:
参见图4,本发明实施例还提供一种任务调度器100,包括:处理器40,存储器41,总线42和通信接口43,所述处理器40、通信接口43和存储器41通过总线42连接;处理器40用于执行存储器41中存储的可执行模块,例如计算机程序。
其中,存储器41可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口43(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线42可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器41用于存储程序,所述处理器40在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器40中,或者由处理器40实现。
处理器40可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器40中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器40可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器41,处理器40读取存储器41中的信息,结合其硬件完成上述方法的步骤。
本发明实施例提供的任务调度装置及任务调度器,与上述实施例提供的任务调度方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本发明实施例所提供的进行任务调度方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的任务调度装置及任务调度器的具体工作过程,可以参考前述任务调度方法实施例中的对应过程,在此不再赘述。
附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本申请所提供的几个实施例中,应该理解到,所揭露的任务调度器、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (9)
1.一种任务调度方法,其特征在于,所述方法包括:
当接收到实时性任务分配请求时,获取各个运行态任务的未完成的任务分片总数;
根据每个所述运行态任务的未完成的任务分片总数和用户期望资源分析单元数,确定所述运行态任务的饱和资源分析单元数;其中,所述饱和资源分析单元数用于衡量所述运行态任务的饥饿程度,所述资源分析单元用于对任务分片进行处理;
根据各个所述运行态任务的饱和资源分析单元数,判断是否存在有效空闲资源分析单元;
当判断结果为是时,创建实时性任务,以进行所述实时性任务的分配;
所述根据每个所述运行态任务的未完成的任务分片总数和用户期望资源分析单元数,确定所述运行态任务的饱和资源分析单元数,包括:
将每个所述运行态任务的未完成的任务分片总数和用户期望资源分析单元数中的较小者,确定为所述运行态任务的饱和资源分析单元数。
2.根据权利要求1所述的方法,其特征在于,所述根据各个所述运行态任务的饱和资源分析单元数,判断是否存在有效空闲资源分析单元,包括:
计算各个所述运行态任务的饱和资源分析单元数的和值;
判断所述和值是否小于在线资源分析单元总数;其中,所述在线资源分析单元总数为空闲资源分析单元总数与运行资源分析单元总数之和;
如果是,确定存在有效空闲资源分析单元。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于每个所述运行态任务,当满足以下分配条件时为所述运行态任务的待分配的任务分片分配资源分析单元:
空闲资源分析单元总数大于0,且所述运行态任务的用户期望资源分析单元数大于所述运行态任务的实际运行资源分析单元数与异常的任务分片总数之和。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于每个所述运行态任务,当所述运行态任务的异常的任务分片总数大于或者等于所述运行态任务的饱和资源分析单元数时,将所述运行态任务的状态设置为异常态,以使所述运行态任务从运行态队列进入异常态队列。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
对于所述异常态队列的每个异常态任务,经过预设时间间隔后,将所述异常态任务的状态重置为就绪态,以使所述异常态任务进入就绪态队列,重新参与资源调度。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收用户对未完成任务触发的任务状态更改指令;其中,所述未完成任务包括所述运行态任务、就绪态任务、异常态任务和睡眠态任务中的一种或多种;
按照所述任务状态更改指令修改所述未完成任务的状态。
7.一种任务调度装置,其特征在于,包括:
获取模块,用于当接收到实时性任务分配请求时,获取各个运行态任务的未完成的任务分片总数;
确定模块,用于根据每个所述运行态任务的未完成的任务分片总数和用户期望资源分析单元数,确定所述运行态任务的饱和资源分析单元数;其中,所述饱和资源分析单元数用于衡量所述运行态任务的饥饿程度,所述资源分析单元用于对任务分片进行处理;
判断模块,用于根据各个所述运行态任务的饱和资源分析单元数,判断是否存在有效空闲资源分析单元;
创建模块,用于当所述判断模块的判断结果为是时,创建实时性任务,以进行所述实时性任务的分配;
所述确定模块具体用于:将每个所述运行态任务的未完成的任务分片总数和用户期望资源分析单元数中的较小者,确定为所述运行态任务的饱和资源分析单元数。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括运行态任务资源分配模块,用于:
对于每个所述运行态任务,当满足以下分配条件时为所述运行态任务的待分配的任务分片分配资源分析单元:
空闲资源分析单元总数大于0,且所述运行态任务的用户期望资源分析单元数大于所述运行态任务的实际运行资源分析单元数与异常的任务分片总数之和。
9.一种任务调度器,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711498107.3A CN109992382B (zh) | 2017-12-29 | 2017-12-29 | 任务调度方法、装置及任务调度器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711498107.3A CN109992382B (zh) | 2017-12-29 | 2017-12-29 | 任务调度方法、装置及任务调度器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109992382A CN109992382A (zh) | 2019-07-09 |
CN109992382B true CN109992382B (zh) | 2021-06-01 |
Family
ID=67111223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711498107.3A Active CN109992382B (zh) | 2017-12-29 | 2017-12-29 | 任务调度方法、装置及任务调度器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109992382B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181662B (zh) * | 2020-10-13 | 2023-05-02 | 深圳壹账通智能科技有限公司 | 任务调度方法、装置、电子设备及存储介质 |
CN112817753A (zh) * | 2021-01-21 | 2021-05-18 | 浙江大华技术股份有限公司 | 任务的处理方法及装置、存储介质、电子装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000353099A (ja) * | 1999-06-01 | 2000-12-19 | Tektronix Inc | アクティブ・パイプラインにおける流れ制御方法 |
CN100485625C (zh) * | 2007-11-01 | 2009-05-06 | 北京工业大学 | 一种实时系统任务调度方法 |
US20120079486A1 (en) * | 2010-09-23 | 2012-03-29 | International Business Machines Corporation | Integration of dissimilar job types into an earliest deadline first (edf) schedule |
CN103699445B (zh) * | 2013-12-19 | 2017-02-15 | 北京奇艺世纪科技有限公司 | 一种任务调度方法、装置及系统 |
US9442760B2 (en) * | 2014-10-03 | 2016-09-13 | Microsoft Technology Licensing, Llc | Job scheduling using expected server performance information |
CN104731647B (zh) * | 2015-03-31 | 2018-02-09 | 北京奇艺世纪科技有限公司 | 任务处理方法及系统 |
JP6532385B2 (ja) * | 2015-11-02 | 2019-06-19 | キヤノン株式会社 | 情報処理システムおよびその制御方法、並びにプログラム |
-
2017
- 2017-12-29 CN CN201711498107.3A patent/CN109992382B/zh active Active
Non-Patent Citations (2)
Title |
---|
"P2P环境下多目标任务调度策略研究";张晓燕;《中国优秀硕士学位论文全文数据库 信息科技辑》;20090515(第05期);第I139-83页 * |
"Partitioned Fixed-Priority Real-Time Scheduling Based on Dependent Task-Split on Multicore Platform";Guowei Wu等;《2013 12th IEEE International Conference on Trust, Security and Privacy in Computing and Communications》;20131212;第1257-1264页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109992382A (zh) | 2019-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109936604B (zh) | 一种资源调度方法、装置和系统 | |
US9471386B2 (en) | Allocating resources to tasks in a build process | |
US9170841B2 (en) | Multiprocessor system for comparing execution order of tasks to a failure pattern | |
EP2701074A1 (en) | Method, device, and system for performing scheduling in multi-processor core system | |
CN107515786B (zh) | 资源分配方法、主装置、从装置和分布式计算系统 | |
JP4562568B2 (ja) | 異常検出プログラムおよび異常検出方法 | |
US9098350B2 (en) | Adaptive auto-pipelining for stream processing applications | |
US20110072437A1 (en) | Computer job scheduler with efficient node selection | |
TWI679886B (zh) | 一種影像分析系統與方法 | |
CN111090502B (zh) | 一种流数据任务调度方法和装置 | |
CN109992382B (zh) | 任务调度方法、装置及任务调度器 | |
US9965329B2 (en) | Method and apparatus for workload placement on heterogeneous systems | |
WO2014028411A1 (en) | Latency sensitive software interrupt and thread scheduling | |
CN108536530B (zh) | 一种多线程任务调度方法及装置 | |
CN104461698A (zh) | 虚拟磁盘动态挂载的方法、管理装置及分布式存储系统 | |
CN107741910B (zh) | 应用程序安装性能测试方法、装置、计算设备及存储介质 | |
US20210149726A1 (en) | Scheduling device, scheduling system, scheduling method, and non-transitory computer-readable medium | |
CN113391910A (zh) | 任务处理方法、装置、计算机设备及存储介质 | |
US9690626B2 (en) | Processing workloads in single-threaded environments | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN107220166B (zh) | 一种cpu占用率的统计方法及装置 | |
JP2005157955A (ja) | 資源予約システムおよび資源予約方法および該方法を実行するためのプログラムが記録された記録媒体 | |
CN111538629A (zh) | 一种服务器传感器的轮循方法、系统及相关装置 | |
CN110795239A (zh) | 应用内存泄露的检测方法及装置 | |
US10102052B2 (en) | Dumping resources |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |