CN111897637B - 作业调度方法、装置、主机及存储介质 - Google Patents
作业调度方法、装置、主机及存储介质 Download PDFInfo
- Publication number
- CN111897637B CN111897637B CN202010680940.5A CN202010680940A CN111897637B CN 111897637 B CN111897637 B CN 111897637B CN 202010680940 A CN202010680940 A CN 202010680940A CN 111897637 B CN111897637 B CN 111897637B
- Authority
- CN
- China
- Prior art keywords
- job
- queue
- target
- jobs
- preset
- 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
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及计算机技术领域,提供一种作业调度方法、装置、主机及存储介质,所述方法包括:按照预设作业队列的优先级,从预设作业队列中确定待调度的目标作业队列,其中,目标作业队列为优先级最高且非空的预设作业队列;按照目标作业队列的时间片依次调度并执行目标作业队列中的作业,直至目标作业队列中的作业执行完毕,其中,目标作业队列中的作业按照执行时长从小到大依次排列。与现有技术相比,本发明在响应要求高的业务类型的作业得以及时处理的同时保证了相同业务类型的作业得以合理调度,有效的实现了资源的合理高效利用,降低了系统处理作业的等待时延,最终使得整个系统具有快速、高效的处理能力。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种作业调度方法、装置、主机及存储介质。
背景技术
在安防系统中,系统内随时会存在需要处理的多个作业的情况,因此涉及需要传输的数据信息量也比较大,例如,视频流和图片流的传输、报警系统的报警信息、门禁图片信息、车辆违法事件信息、访客考勤等事件信息。对于作业处理的并发也比较高,如何选择处理优先顺序,使安防系统具有快速、高效的处理能力是本领域技术人员亟待解决的问题。
发明内容
本发明的目的在于提供了一种作业调度方法、装置、主机及存储介质,其既能保证响应要求高的业务类型的作业得以及时处理,又能使同一业务类型的作业得以合理调度,有效的实现了资源的合理高效利用,降低了系统处理作业的等待时延,最终使得整个系统具有快速、高效的处理能力。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本发明提供一种作业调度方法,应用于主机,主机预先存储有预设作业队列,每一预设作业队列中的作业对应相同的业务类型及用于表征该业务类型的紧急程度的优先级,所述方法包括:按照预设作业队列的优先级,从预设作业队列中确定待调度的目标作业队列,其中,目标作业队列为优先级最高且非空的预设作业队列;按照目标作业队列的时间片依次调度并执行目标作业队列中的作业,直至目标作业队列中的作业执行完毕,其中,目标作业队列中的作业按照每一作业的执行时长从小到大依次排列。
第二方面,本发明提供一种作业调度装置,应用于主机,主机预先存储有预设作业队列,每一预设作业队列中的作业对应相同的业务类型及用于表征该业务类型的紧急程度的优先级,所述装置包括确定模块和调度模块,其中,确定模块用于按照预设作业队列的优先级,从预设作业队列中确定待调度的目标作业队列,其中,目标作业队列为优先级最高且非空的所述预设作业队列;调度模块用于按照目标作业队列的时间片依次调度并执行目标作业队列中的作业,直至目标作业队列中的作业执行完毕,其中,目标作业队列中的作业按照每一作业的执行时长从小到大依次排列。
第三方面,本发明提供一种主机,所述主机包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的作业调度方法。
第四方面,本发明提供一种计算可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的作业调度方法。
相对于现有技术,本发明将待处理的作业首先按照业务类型确定对应的优先级,高优先级的作业优先执行,由此保证响应要求高的业务类型的作业得以及时处理,针对同一优先级的作业按照时间片依次调度并执行,保证了相同业务类型的作业得以合理调度,有效的实现了资源的合理高效利用,降低了系统处理作业的等待时延,最终使得整个系统具有快速、高效的处理能力。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的进程的基本状态变迁示意图。
图2示出了本发明实施例提供的采用不同调度算法的调度过程示意图。
图3示出了一种本发明实施例提供的作业调度方法的流程图。
图4示出了另一种本发明实施例提供的作业调度方法的流程图。
图5示出了另一种本发明实施例提供的作业调度方法的流程图。
图6示出了另一种本发明实施例提供的作业调度方法的流程图。
图7示出了本发明实施例提供的作业调度装置的方框示意图。
图8示出了本发明实施例提供的主机的方框示意图。
图标:10-主机;11-存储器;12-处理器;13-总线;14-通信接口;100-作业调度装置;110-确定模块;120-调度模块;130-时间片计算模块;140-更新模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
对于任意一个应用系统,系统中通常会同时存在多个需要处理的作业,每一个作业在系统中以进程的形式被执行,在本发明实施例中,作业和进程的说法可以互换。进程是一个程序在给定运行空间和初始运行环境下,在一个处理机上执行的过程。进程是一个独立运行的活动单位,且是竞争系统资源的基本单位,由于应用系统中的系统资源是有限的,因此,一个进程被调执行之前,需要首先获取所需的系统资源,获取所需的系统资源的过程即为该进程被调度的过程。进程的基本状态包括三个:运行、等待和就绪,其中运行状态是指进程已经获得所有必需资源,且正在处理机上执行;等待状态指进程正在等待某一事件的发生而暂时停止执行;就绪状态指进程已获得除了CPU之外的其他所有必需资源,一旦得到了CPU控制权,就可立即执行。请参考图1,图1示出了本发明实施例提供的进程的基本状态变迁示意图。图1中,处于就绪状态的进程一旦获取到所需系统资源就会被调度,从而变迁至运行状态,处于运行状态的进程在时间片用完或者被其他进程抢占了系统资源后就会变迁至就绪状态,处于运行状态的进程在接收到服务请求后会变迁至等待状态,在某些系统中也会提供进程从等待状态变迁至运行状态的功能,等待状态的进程在服务请求处理完成或者预设事件发生时会变迁至就绪状态。
对于进程的调度,通常采用的调度算法为先来先服务FCFS(First Come FirstService,FCFS)调度算法,即先请求系统资源的进程先分配到系统资源,系统资源可以、但不限于CPU、内存、网络等。该算法在进程到达先后顺序不同时,系统的等待时间差异会很大。例如,系统中存在3个进程,分别为:P1、P2和P3,其执行时长分别是24ms、3ms、3ms,比较如下两种到达顺序下的等待时间:(1)按照P1、P2、P3的顺序到达,如图2(a)所示,由图2(a)可以看出,进程P1等待时间为0ms,进程P2等待时间为24ms,而进程P3的等待时间为27ms,且平均等待时间为:(1+24+27)/3=171ms。(2)按照P2、P3、P1的顺序到达,如图2(b)所示,由图2(b)可以看出,进程P1等待时间为6ms,进程P2等待时间为0ms,而进程P3的等待时间为3ms,且平均等待时间为:(6+0+3)/3=3ms。
通过以上分析可知:FCFS调度算法的平均等待时间通常不是最小,而且如果进程的执行时长变化很大,那么平均等待时间的变化也会很大。而且,FCFS调度算法是非抢占的,一旦系统资源分配给了一个进程,那么该进程就会使用该系统资源直到该系统资源被释放为止。但如果该进程使用系统资源的时间过长将造成其他进程得不到及时执行,进而导致严重的系统处理性能问题。
为了解决FCFS调度算法存在的某一进程使用系统资源的时间过长将造成其他进程得不到及时执行这一缺陷,通常采用时间片轮转RR(Round-Robin,RR)调度算法,RR调度算法增加了抢占机制来切换进程。在RR调度算法中,将一个较小的时间单元定义为一个时间片,时间片的大小通常为10~100ms。调度程序会循环整个就绪的队列,为每个进程分配不超过一个时间片的系统资源的使用时长。将新进程添加到就绪队列的尾部。调度程序从就绪队列中选择第一个进程,将定时器设置在一个时间片后中断,最后分派这个进程。当进程执行时长少于时间片时,进程本身会自动释放系统资源,调度程序接着处理就绪队列的下一个进程。当进程执行时长大于一个时间片时,预先设置的定时器会中断,进而中断进程的执行并进行上下文切换,再将进程加到就绪队列的尾部,接着调度程序会选择就绪队列内的下一个进程。例如,系统中存在3个进程,分别为:P1、P2和P3,其执行时长分别是24ms、3ms、3ms,如果使用4ms的时间片,那么P1会执行最初的4ms。由于它还需要20ms,所以在第一个时间片之后它会被抢占,调度程序将系统资源就交给队列中的下一个进程使用。由于P2不需要4ms,所以在其时间片用完之前就会释放系统资源。调度程序将释放后的系统资源交给下一个进程,即进程P3。在每个进程都得到了一个时间片之后,CPU又交给了进程P1以便继续执行。P1、P2和P3的调度过程的示意图如图2(c)所示,由图2(c)可以知,进程P1等待时间为10-4=6ms,进程P2等待时间为4ms,而进程P3的等待时间为7ms,且可计算出平均等待时间为:(6+4+7)/3=5.66ms。
在RR调度算法中,没有进程被连续分配超过一个时间片的系统资源(除非它是唯一可运行的进程)。如果进程占用的系统资源执行超过一个时间片,那么该进程会被抢占,并被放回到就绪队列。因此,RR调度算法是抢占的。由此解决了FCFS调度算法中系统资源被一个进程长期占用导致其他进程得不到及时调度的缺陷。
但RR调度算法的性能很大程度取决于时间片的大小,如果时间片定的很大,那么RR调度算法与FCFS调度算法一样;而如果时间片很小,那么将会导致大量的上下文切换,反而使进程执行得更慢,因此,设定一个合理的时间片也是提高整个系统的作业处理能力的关键。
针对安防系统中需要处理的作业的并发数高,对安防系统的处理能力要求高的场景下,发明人在对FCFS调度算法和RR调度算法进行大量的分析和研究后,提出一种作业调度方法、装置、主机及存储介质,满足安防系统快速、高效地处理作业的需求,下面将对此进行详细描述。
需要说明的是,安防系统只是本方法应用的一种具体应用场景,在其他有快速、高效处理作业要求的应用系统,也可以采用本方法,或者基于本方法进行适应性修改。
请参考图3,图3示出了一种本发明实施例提供的作业调度方法的流程图,该方法包括以下步骤:
步骤S110,按照预设作业队列的优先级,从预设作业队列中确定待调度的目标作业队列,其中,目标作业队列为优先级最高且非空的预设作业队列。
在本实施例中,主机预先按照业务类型为每一业务类型分配一个预设作业队列,每一预设作业队列根据对应的业务类型的处理紧急程度对应一个优先级,高优先级的预设作业队列中的作业优先执行,例如,在安防系统中,业务类型可以按照优先级由高到低依次分为:报警类作业,设备操作类作业、门禁控制类作业、运维管理类作业,其他类作业。
在本实施例中,当系统处于初始状态时,此时系统中只有少量的作业,主机按照作业的业务类型将其放入对应的预设作业队列中,此时,一些预设作业队列可能为空,主机选择一个优先级最高且非空的预设作业队列作为目标作业队列,依次执行目标作业队列中的作业。
步骤S130,按照目标作业队列的时间片依次调度并执行目标作业队列中的作业,直至目标作业队列中的作业执行完毕,其中,目标作业队列中的作业按照每一作业的执行时长从小到大依次排列。
在本实施例中,每一预设作业队列对应一个时间片,该时间片可以是根据预设规则设定,例如,该时间片可以基于该预设作业队列中所有作业的执行时长的最小值确定,还可以基于该预设作业队列中所有作业的执行时长的平均值确定。
在本实施例中,在不被其他作业打断的情况下,目标作业队列根据其时间片依次调度并执行其中的作业,直到目标作业队列中作业执行完毕。具体调度过程与上述RR调度算法类似,此处不再赘述。
本发明实施例提供的上述作业调度方法,首先按照业务类型确定对应的优先级,高优先级的作业优先执行,由此保证响应要求高的业务类型的作业得以及时处理,针对同一优先级的作业按照时间片依次调度并执行,保证了相同业务类型的作业得以合理调度,有效的实现了资源的合理高效利用,降低了系统处理作业的等待时延,最终使得整个系统具有快速、高效的处理能力。
在图3的基础上,本发明实施例给出了一种具体确定目标作业队列的时间片的实施方式,请参照图4,图4示出了另一种本发明实施例提供的作业调度方法的流程图,该方法还包括:
步骤S120,获取目标作业队列中每一作业的执行时长。
在本实施例中,作业的执行时长指在不被打断的情况下完成该作业所需要的执行时长,每一作业对应一个完成该作业的执行时长。
步骤S121,依据目标作业队列中所有作业的执行时长及预设条件确定目标作业队列的时间片。
在本实施例中,依据目标作业队列中所有作业的执行时长及预设条件确定的目标作业队列的时间片是与该目标作业队列最匹配的合理的值。当有新作业加入目标作业队列中时,该目标作业队列的时间片也会随之更新,以便目标作业队列的时间片一直被赋予与变化后的目标作业队列最匹配的合理的值。
本发明实施例提供的上述作业调度方法,采用目标作业队列中所有作业的执行时长及预设条件确定目标作业队列的时间片,使得目标作业队列的时间片更合理,从而使目标作业队列中作业能够快速、高效地执行,最终使整个系统满足快速、高效地处理作业的需求。
在图4的基础上,本发明实施例给出了一种可能的用于确定目标作业队列的时间片的实现方式,请参照图5,图5示出了另一种本发明实施例提供的作业调度方法的流程图,步骤S121包括以下子步骤:
子步骤S1210,确定同时满足第一条件和第三条件的预设个数的初选时间片。
在本实施例中,预设条件可以包括第一条件、第二条件及第三条件,其中,第一条件为目标作业队列的时间片及目标作业队列中每一作业的等待时长和执行时长均为非负数,第二条件为目标作业队列中每一作业的等待时长不超过预设时长,其中,预设时长可以为(N-1)*时间片,N为目标作业队列中的作业的个数,第三条件为目标作业队列中每一作业的执行时长大于或等于时间片。
在本实施例中,同时满足第一条件和第三条件的初选时间片可以有多个,用户可以根据实际需要确定预设个数。例如,目标作业队列中执行时长最小值为5,此时,同时满足第一条件和第三条件的初选时间片可以取1,2,3,4,5等多个值,若预设个数为3,用户可以依次从小到大取初选时间片为1,2,3,也可以随机从多个值中取3个。因此,在本实施例中,按照每一作业的执行时长从小到大依次排序,可以更快速地确定目标作业队列的时间片。
需要说明的是,预设个数越多,最终得到的时间片越合理,同时计算时间片的过程耗时也越长。
子步骤S1211,依据每一初选时间片及所述目标作业队列中每一作业的执行时长,确定与初选时间片对应的、且同时满足第一条件和第二条件的目标作业队列中每一作业的等待时长。
在本实施例中,对于任意一个初选时间片,根据该初选时间片及目标作业队列中每一作业的执行时长,可以计算出同时满足第一条件和第二条件的目标作业队列中每一作业的等待时长。需要说明的是,此处目标作业队列中每一作业的等待时长是指按照初选时间片对目标作业队列中每一作业进行第一轮处理时的等待时长。例如,目标作业队列中存在3个作业:作业1、作业2和作业3,执行时长分别为4,7,10,初选时间片取4,则第一轮轮转时,作业1的等待时长为0,作业2的等待时长为4,作业3的等待时长为8,则初选时间片为4时,作业1、作业2和作业3的等待时长分别为0、4和8。
需要说明的是,如果计算出目标作业队列中任意一个作业的等待时长不能同时满足第一条件和第二条件,则放弃该初选时间片。
子步骤S1212,计算每一初选时间片对应的平均等待时长,其中,平均等待时长为每一初选时间片对应的目标作业队列中所有作业的等待时长的平均时长。
在本实施例中,每一初选时间片对应一个平均等待时长,对于任意一个初选时间片,其平均等待时长为该初选时间片对应的目标作业队列中每一作业的等待时长的平均值。
在本实施例中,作为另一种计算时间片的实现方式,也可以用中位数代替平均等待时长计算时间片。
子步骤S1213,将最小平均等待时长对应的初选时间片作为目标作业队列的时间片。
在本实施例中,上述子步骤可以建模成公式:
s.t.C1:tw n,tr n,ts≥0,
C2:tw n≤(N-1)ts,
C3:tr n≥ts
其中,ts表示时间片,tr n表示第n个作业的执行时长,n表示第n个作业,N表示目标作业队列中作业的个数,tw n为第n个作业的等待时长,表示目标作业队列中所有作业的等待时长的平均值,min为取最小值函数。s.t.表示约束条件,C1、C2、C3分别表示三个约束条件,分别对应上述第一条件、第二条件、第三条件。
本发明实施例提供的上述作业调度方法,根据第一条件、第二条件、第三条件及目标作业队列中每一作业的执行时长,确定出平均等待时长最小的目标作业队列的时间片,从而使得在处理目标作业队列中作业时系统资源可以充分利用,减少了系统资源的浪费,提高了目标作业队列中作业的处理效率。
在本实施例中,随着系统的运行,系统中的作业不断地增多,新增的作业按照作业的业务类型动态地增加至对应的预设作业队列中,因此,在执行作业的过程中通常会出现有新作业加入至预设作业队列中,为了使高优先级的新作业得以尽快执行,或者使加入新作业后的预设作业队列按照更合理的时间片进行执行,本发明实施例还提供了另一种作业调度方法,请参照图6,图6示出了另一种本发明实施例提供的作业调度方法的流程图,该方法包括以下步骤:
步骤S210,当新作业加入至预设作业队列时,根据新作业的业务类型从预设作业队列中确定新作业待加入的第一队列。
在本实施例中,第一队列为业务类型与新作业的业务类型一致的预设作业队列。
步骤S220,依据新作业的执行时长将新作业加入至第一队列并更新第一队列的时间片。
在本实施例中,作为一种具体实施方式,每一预设作业队列中的作业可以按照执行时长从小到大依次排序,由此可以保证更快速地确定该预设作业队列的时间片。
在本实施例中,新作业可以为多个,且新作业对应的业务类型可以不同,此时可以根据每一新作业的执行时长及业务类型将其加入至对应的第一队列中,并根据每一新作业的执行时长更新对应的第一队列的时间片,以便根据更新后的第一队列的时间片执行更新后的第一队列中的作业。
在本实施例中,更新第一队列的时间片的方式在上述步骤S120、S121及S121的子步骤S1210~S1213中已有描述,此处不再赘述。
步骤S230,获取第一队列的第一优先级及正在执行的当前作业所在的第二队列的第二优先级。
在本实施例中,当新作业与正在执行的当前作业的业务类型相同时,第一队列和第二队列相同,当新作业与正在执行的当前作业的业务类型不相同时,第一队列和第二队列不同。由于每一预设作业队列均对应一个优先级,若第一队列与第二队列相同时,第一优先级与第二优先级必定相同,若第一队列与第二队列不相同,则需进一步判断第一队列和第二队列的优先级的高低。
步骤S240,当第一队列与第二队列不同、且第一优先级大于第二优先级时,暂停当前作业的执行并依据更新后的第一队列的时间片依次调度并执行第一队列中的作业,直至目标作业队列中的作业执行完毕。
在本实施例中,第一优先级大于第二优先级,表明新作业处理的紧急程度大于正在执行的当前作业,此时暂停该当前作业的执行,执行第一队列中的作业,当第一队列中的作业执行完毕后,在没有其他更高优先级、且非空的预设作业队列时,接着执行第二队列中之前被暂停的当前作业。
在本实施例中,当第一队列与第二队列不同、且当第一优先级小于第二优先级时,表明新作业处理的紧急程度小于正在执行的当前作业,此时会继续执行当前作业,直至队列中作业执行完毕后,在没有其他更高优先级、且非空的预设作业队列时,接着执行后面优先级队列中的作业。
步骤S250,当第一队列与第二队列相同、且新作业的执行时长小于当前正在执行的作业的执行时长,则暂停当前作业的执行,开始按照更新后的所述第一队列的时间片执行新作业,并在新作业执行完后继续执行之前被暂停的当前作业。
在本实施例中,第一队列与第二队列相同,意味着新作业与当前正在执行的作业处于同一个预设作业队列,若新作业的执行时长小于当前正在执行的作业的执行时长,则暂停当前作业的执行,并按照上述步骤S120~S121或者步骤S120和步骤S121的子步骤S1210~S1213描写的步骤更新第一队列的时间片,并按照更新后的时间片开始执行新作业,等新作业执行完成后,继续执行暂停的当前作业,例如,新作业为作业a,其执行时长为3,当前正在执行的作业为作业b,其执行时长为5,则暂停作业b的执行,按照作业a的执行时长更新该队列的时间片,并按照更新后的时间片执行作业a,当作业a执行完毕后再执行作业b。若新作业的执行时长大于当前正在执行的作业的执行时长,则新作业按照其执行时长加入至第一队列,以保持第一队列中的作业按照执行时长从小到大依次排序。
本发明实施例提供的上述作业调度方法,当执行作业的过程中有新作业加入至预设作业队列中,暂停当前作业的执行,以使高优先级的新作业得以尽快执行,或者重新计算加入新作业后的预设作业队列的时间片,以使该预设作业队列中的作业按照更合理的时间片进行执行。
为了执行上述实施例及各个可能的实施方式中的相应步骤,下面给出一种作业调度装置100的实现方式。请参照图7,图7示出了本发明实施例提供的作业调度装置100的方框示意图。需要说明的是,本实施例所提供的作业调度装置100,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及指出。
作业调度装置100包括确定模块110、调度模块120、时间片计算模块130及更新模块140。
确定模块110,用于按照预设作业队列的优先级,从预设作业队列中确定待调度的目标作业队列,其中,目标作业队列为优先级最高且非空的所述预设作业队列。
调度模块120,用于调度模块用于按照目标作业队列的时间片依次调度并执行目标作业队列中的作业,直至目标作业队列中的作业执行完毕,其中,目标作业队列中的作业按照每一作业的执行时长从小到大依次排列。
时间片计算模块130,用于:获取目标作业队列中每一作业的执行时长;依据目标作业队列中所有作业的执行时长及预设条件确定目标作业队列的时间片。
作为一种实施方式,预设条件包括第一条件、第二条件及第三条件,其中,第一条件为目标作业队列的时间片及目标作业队列中每一述作业的等待时长和执行时长均为非负数,第二条件为目标作业队列中每一作业的等待时长不超过预设时长时间片,第三条件为所述目标作业队列中每一所述作业的执行时长大于或等于所述时间片,所述时间片计算模块具体用于:确定同时满足第一条件和第三条件的预设个数的初选时间片;依据每一初选时间片及目标作业队列中每一作业的执行时长,确定与初选时间片对应的、且同时满足第一条件和第二条件的目标作业队列中每一作业的等待时长;计算每一初选时间片对应的平均等待时长,其中,平均等待时长为每一初选时间片对应的目标作业队列中所有作业的等待时长的平均时长;将最小平均等待时长对应的初选时间片作为目标作业队列的时间片。
更新模块140,用于:当新作业加入至预设作业队列时,根据新作业的业务类型从预设作业队列中确定新作业待加入的第一队列;依据新作业的执行时长将新作业加入至第一队列并更新第一队列的时间片;获取第一队列的第一优先级及正在执行的当前作业所在的第二队列的第二优先级;当第一队列与第二队列不同、且第一优先级大于第二优先级时,暂停当前作业的执行并依据更新后的第一队列的时间片依次调度并执行第一队列中的作业,直至目标作业队列中的作业执行完毕;当第一队列与第二队列相同、且新作业的执行时长小于当前正在执行的作业的执行时长,则暂停当前作业的执行,开始执行新作业,并在新作业执行完后继续执行之前被暂停的当前作业。
本发明实施例还提供执行上述作业调度装置的主机10的方框示意图,请参照图8,图8示出了本发明实施例提供的主机10的方框示意图。主机10包括存储器11、处理器12、总线13、通信接口14。存储器11、处理器12通过总线13连接。
主机10可以是实体的计算机,也可以是能够实现与实体的计算机具有相同功能的虚拟主机或者虚拟服务器。
存储器11用于存储程序,例如上述的作业调度装置,该主机10包括至少一个可以软件或固件(firmware)的形式存储于存储器11中的软件功能模块,处理器12在接收到执行指令后,执行所述程序以实现上述实施例揭示的作业调度方法。
存储器11可能包括高速随机存取存储器(RAM:Random Access Memory),也可能还包括非易失存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器11可以是内置于处理器12中的存储装置,也可以是独立于处理器12的存储装置。
总线13可以是ISA总线、PCI总线或EISA总线等。图8仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器12可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器12中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器12可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
通过至少一个通信接口14(可以是有线或者无线)实现主机10与外部设备的通信连接。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的作业调度方法。
综上所述,本发明实施例提供了一种作业调度方法、装置、主机及存储介质,所述方法应用于主机,主机预先存储有预设作业队列,每一预设作业队列中的作业对应相同的业务类型及用于表征该业务类型的紧急程度的优先级,所述方法包括:按照预设作业队列的优先级,从预设作业队列中确定待调度的目标作业队列,其中,目标作业队列为优先级最高且非空的预设作业队列;按照目标作业队列的时间片依次调度并执行目标作业队列中的作业,直至目标作业队列中的作业执行完毕,其中,目标作业队列中的作业按照每一作业的执行时长从小到大依次排列。与现有技术相比,本发明将待处理的作业首先按照业务类型确定对应的优先级,高优先级的作业优先执行,由此保证响应要求高的业务类型的作业得以及时处理,针对同一优先级的作业按照时间片依次调度并执行,保证了相同业务类型的作业得以合理调度,有效的实现了资源的合理高效利用,降低了系统处理作业的等待时延,最终使得整个系统具有快速、高效的处理能力。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (6)
1.一种作业调度方法,其特征在于,应用于主机,所述主机预先存储有预设作业队列,每一所述预设作业队列中的作业对应相同的业务类型及用于表征该业务类型的紧急程度的优先级,所述方法包括:
按照所述预设作业队列的优先级,从所述预设作业队列中确定待调度的目标作业队列,其中,所述目标作业队列为优先级最高且非空的所述预设作业队列;
按照所述目标作业队列的时间片依次调度并执行所述目标作业队列中的作业,直至所述目标作业队列中的作业执行完毕,其中,所述目标作业队列中的作业按照每一作业的执行时长从小到大依次排列;
所述按照所述目标作业队列的时间片依次调度并执行所述目标作业队列中的作业的步骤之前还包括:
获取所述目标作业队列中每一作业的执行时长;
依据所述目标作业队列中所有作业的执行时长及预设条件确定所述目标作业队列的时间片;
所述预设条件包括第一条件、第二条件及第三条件,其中,所述第一条件为所述目标作业队列的时间片及所述目标作业队列中每一所述作业的等待时长和执行时长均为非负数,所述第二条件为所述目标作业队列中每一所述作业的等待时长不超过预设时长,所述第三条件为所述目标作业队列中每一所述作业的执行时长大于或等于所述时间片,所述依据所述目标作业队列中所有作业的执行时长及预设条件确定所述目标作业队列的时间片的步骤包括:
确定同时满足所述第一条件和所述第三条件的预设个数的初选时间片;
依据每一所述初选时间片及所述目标作业队列中每一所述作业的执行时长,确定与所述初选时间片对应的、且同时满足所述第一条件和所述第二条件的所述目标作业队列中每一所述作业的等待时长;
计算每一所述初选时间片对应的平均等待时长,其中,所述平均等待时长为每一所述初选时间片对应的目标作业队列中所有作业的等待时长的平均时长;
将最小平均等待时长对应的初选时间片作为所述目标作业队列的时间片。
2.如权利要求1所述的作业调度方法,其特征在于,所述方法还包括:
当新作业加入至所述预设作业队列时,根据所述新作业的业务类型从所述预设作业队列中确定新作业待加入的第一队列;
依据所述新作业的执行时长将所述新作业加入至所述第一队列并更新所述第一队列的时间片;
获取所述第一队列的第一优先级及正在执行的当前作业所在的第二队列的第二优先级:
当所述第一队列与所述第二队列不同、且所述第一优先级大于所述第二优先级时,暂停所述当前作业的执行并依据更新后的所述第一队列的时间片依次调度并执行所述第一队列中的作业,直至所述目标作业队列中的作业执行完毕;
当所述第一队列与所述第二队列相同、且所述新作业的执行时长小于所述当前正在执行的作业的执行时长,则暂停所述当前作业的执行,开始按照更新后的所述第一队列的时间片执行所述新作业,并在所述新作业执行完后继续执行之前被暂停的所述当前作业。
3.一种作业调度装置,其特征在于,应用于主机,所述主机预先存储有预设作业队列,每一所述预设作业队列中的作业对应相同的业务类型及用于表征该业务类型的紧急程度的优先级,所述装置包括:
确定模块,用于按照所述预设作业队列的优先级,从所述预设作业队列中确定待调度的目标作业队列,其中,所述目标作业队列为优先级最高且非空的所述预设作业队列;
调度模块,用于按照所述目标作业队列的时间片依次调度并执行所述目标作业队列中的作业,直至所述目标作业队列中的作业执行完毕,其中,所述目标作业队列中的作业按照每一作业的执行时长从小到大依次排列;
时间片计算模块用于:
获取所述目标作业队列中每一作业的执行时长;
依据所述目标作业队列中所有作业的执行时长及预设条件确定所述目标作业队列的时间片;
所述预设条件包括第一条件、第二条件及第三条件,其中,所述第一条件为所述目标作业队列的时间片及所述目标作业队列中每一所述作业的等待时长和执行时长均为非负数,所述第二条件为所述目标作业队列中每一所述作业的等待时长不超过预设时长,所述第三条件为所述目标作业队列中每一所述作业的执行时长大于或等于所述时间片,所述时间片计算模块具体用于:
确定同时满足所述第一条件和所述第三条件的预设个数的初选时间片;
依据每一所述初选时间片及所述目标作业队列中每一所述作业的执行时长,确定与所述初选时间片对应的、且同时满足所述第一条件和所述第二条件的所述目标作业队列中每一所述作业的等待时长;
计算每一所述初选时间片对应的平均等待时长,其中,所述平均等待时长为每一所述初选时间片对应的目标作业队列中所有作业的等待时长的平均时长;
将最小平均等待时长对应的初选时间片作为所述目标作业队列的时间片。
4.如权利要求3所述的作业调度装置,其特征在于,所述装置还包括更新模块,所述更新模块用于:
当新作业加入至所述预设作业队列时,根据所述新作业的业务类型从所述预设作业队列中确定新作业待加入的第一队列;
依据所述新作业的执行时长将所述新作业加入至所述第一队列并更新所述第一队列的时间片;
获取所述第一队列的第一优先级及正在执行的当前作业所在的第二队列的第二优先级;
当所述第一队列与所述第二队列不同、且所述第一优先级大于所述第二优先级时,暂停所述当前作业的执行并依据更新后的所述第一队列的时间片依次调度并执行所述第一队列中的作业,直至所述目标作业队列中的作业执行完毕;
当所述第一队列与所述第二队列相同、且所述新作业的执行时长小于所述当前正在执行的作业的执行时长,则暂停所述当前作业的执行,开始按照更新后的所述第一队列的时间片执行所述新作业,并在所述新作业执行完后继续执行之前被暂停的所述当前作业。
5.一种主机,其特征在于,所述主机包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-2中任一项所述的作业调度方法。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-2中任一项所述的作业调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010680940.5A CN111897637B (zh) | 2020-07-15 | 2020-07-15 | 作业调度方法、装置、主机及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010680940.5A CN111897637B (zh) | 2020-07-15 | 2020-07-15 | 作业调度方法、装置、主机及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111897637A CN111897637A (zh) | 2020-11-06 |
CN111897637B true CN111897637B (zh) | 2022-08-19 |
Family
ID=73192761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010680940.5A Active CN111897637B (zh) | 2020-07-15 | 2020-07-15 | 作业调度方法、装置、主机及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111897637B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448705B (zh) * | 2021-06-25 | 2023-03-28 | 皖西学院 | 一种不平衡作业调度算法 |
CN113467915A (zh) * | 2021-07-13 | 2021-10-01 | 中科曙光国际信息产业有限公司 | 作业调度方法、装置、计算机设备及可读存储介质 |
CN113626171B (zh) * | 2021-08-26 | 2024-04-05 | 北京京东乾石科技有限公司 | 分析仓储执行设备的任务执行效率的方法、装置及系统 |
CN117076138B (zh) * | 2023-10-17 | 2024-02-23 | 西安羚控电子科技有限公司 | 面向体系仿真的资源跨平台集成和调度方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844365A (zh) * | 2016-09-18 | 2018-03-27 | 广东工业大学 | 一种针对智能家庭监控系统的调度方法 |
CN109343960A (zh) * | 2018-10-12 | 2019-02-15 | 郑州云海信息技术有限公司 | 一种Linux系统的任务调度方法、系统及相关装置 |
CN109445939A (zh) * | 2018-10-19 | 2019-03-08 | 积成电子股份有限公司 | 一种基于主动出让机制的软实时调度内核的调度方法 |
CN110096343A (zh) * | 2018-01-29 | 2019-08-06 | 深圳中科强华科技有限公司 | 一种基于cos的医疗信息系统的数据监测方法 |
WO2019171113A1 (en) * | 2018-03-05 | 2019-09-12 | Pratik Sharma | Priority based event filtering service in cloud |
CN110427256A (zh) * | 2019-07-23 | 2019-11-08 | 中南民族大学 | 基于优先级的作业调度优化方法、设备、存储介质及装置 |
CN111367652A (zh) * | 2020-01-07 | 2020-07-03 | 苏州大学 | 一种嵌入式实时操作系统的任务调度处理系统和方法 |
-
2020
- 2020-07-15 CN CN202010680940.5A patent/CN111897637B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844365A (zh) * | 2016-09-18 | 2018-03-27 | 广东工业大学 | 一种针对智能家庭监控系统的调度方法 |
CN110096343A (zh) * | 2018-01-29 | 2019-08-06 | 深圳中科强华科技有限公司 | 一种基于cos的医疗信息系统的数据监测方法 |
WO2019171113A1 (en) * | 2018-03-05 | 2019-09-12 | Pratik Sharma | Priority based event filtering service in cloud |
CN109343960A (zh) * | 2018-10-12 | 2019-02-15 | 郑州云海信息技术有限公司 | 一种Linux系统的任务调度方法、系统及相关装置 |
CN109445939A (zh) * | 2018-10-19 | 2019-03-08 | 积成电子股份有限公司 | 一种基于主动出让机制的软实时调度内核的调度方法 |
CN110427256A (zh) * | 2019-07-23 | 2019-11-08 | 中南民族大学 | 基于优先级的作业调度优化方法、设备、存储介质及装置 |
CN111367652A (zh) * | 2020-01-07 | 2020-07-03 | 苏州大学 | 一种嵌入式实时操作系统的任务调度处理系统和方法 |
Non-Patent Citations (2)
Title |
---|
"Queue with two priority classes";Jianfu Wang;《Operations Research》;20150531;第63卷(第3期);第733-749页 * |
"动态调整调度配额的TCSN调度算法";张华;《计算机应用研究》;20171115;第35卷(第11期);第3267-3270页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111897637A (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111897637B (zh) | 作业调度方法、装置、主机及存储介质 | |
US10628216B2 (en) | I/O request scheduling method and apparatus by adjusting queue depth associated with storage device based on hige or low priority status | |
CN107291547B (zh) | 一种任务调度处理方法、装置及系统 | |
EP2701074B1 (en) | Method, device, and system for performing scheduling in multi-processor core system | |
US8612986B2 (en) | Computer program product for scheduling ready threads in a multiprocessor computer based on an interrupt mask flag value associated with a thread and a current processor priority register value | |
US7451447B1 (en) | Method, computer program and apparatus for operating system dynamic event management and task scheduling using function calls | |
CN107800546B (zh) | 一种广播消息的管理方法及装置 | |
US8056083B2 (en) | Dividing a computer job into micro-jobs for execution | |
US20080178183A1 (en) | Scheduling Threads In A Multi-Processor Computer | |
Leyva-del-Foyo et al. | Predictable interrupt management for real time kernels over conventional PC hardware | |
CN112099975B (zh) | 一种消息处理方法及系统、存储介质 | |
US10271326B2 (en) | Scheduling function calls | |
CN105022668B (zh) | 一种作业调度方法及系统 | |
CN111324432A (zh) | 处理器调度方法、装置、服务器及存储介质 | |
CN109117280B (zh) | 电子装置及其限制进程间通信的方法、存储介质 | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
CN114461365A (zh) | 一种进程调度处理方法、装置、设备和存储介质 | |
CN112925616A (zh) | 任务分配方法、装置、存储介质及电子设备 | |
CN114327894A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
Nosrati et al. | Task scheduling algorithms introduction | |
CN114661415A (zh) | 调度方法及计算机系统 | |
JP2009541852A (ja) | コンピュータマイクロジョブ | |
CN109062706B (zh) | 电子装置及其限制进程间通信的方法、存储介质 | |
CN113296957A (zh) | 一种用于动态分配片上网络带宽的方法及装置 | |
JP2008225641A (ja) | コンピュータシステム、割り込み制御方法及びプログラム |
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 |