掌桥专利:专业的专利平台
掌桥专利
首页

任务调度方法、装置、计算机设备和存储介质

文献发布时间:2023-06-19 12:18:04


任务调度方法、装置、计算机设备和存储介质

技术领域

本公开涉及计算机技术领域,特别是涉及一种任务调度方法、装置、计算机设备和存储介质。

背景技术

人工智能处理器处理的不同任务,有的对延迟敏感,需要在一定的时间内得到响应;而有的任务对延迟不敏感,例如训练任务,主要追求吞吐率,对延迟不太敏感,但对延迟不敏感也不能饿死。

因此,需要有一种调度算法,通过合理的资源调度,既能够保证延迟敏感型任务能够得到及时响应,又要保证一定的公平性,让延迟不敏感型应用不会饿死。

发明内容

基于此,有必要针对上述技术问题,提供一种能够相对公平的进行调度的任务调度方法、装置、计算机设备和存储介质。

一种任务调度方法,所述方法包括:

若普通调度通道的当前通道平均调度等待时间大于当前时间阈值,则将所述普通调度通道中的目标任务由所述普通调度通道调入优先调度通道;

若普通调度通道的任务的动态优先级达到预设值,则将动态优先级达到预设值的所述任务由所述普通调度通道调入优先调度通道;

其中,所述普通调度通道中的任务在所述优先调度通道中的所有任务被调度后被调度。

在其中一个实施例中,所述方法还包括:根据所述普通调度通道中所有任务的当前调度等待时间确定所述当前时间阈值。

在其中一个实施例中,根据所述普通调度通道中所有任务的当前调度等待时间,确定所述当前时间阈值,包括:

根据所述各个所述普通调度通道中任务的当前调度等待时间,计算各个普通调度通道的当前通道平均调度等待时间;

根据至少一个所述普通调度通道的当前通道平均调度等待时间的均值获取所述当前时间阈值。

在其中一个实施例中,所述方法还包括:根据所述普通调度通道中各个任务的静态优先级和所述任务的当前调度等待时间,确定所述普通调度通道中各个任务的动态优先级。

在其中一个实施例中,所述动态优先级为0,根据所述普通调度通道中各个任务的静态优先级和所述任务的当前调度等待时间,确定所述普通调度通道中各个任务的动态优先级,包括:

获取调度等待时间阈值、静态优先级系数、调度等待时间系数以及预设时长;

计算所述普通调度通道中各个任务的调度等待时间与所述预设时长的比值,得到第一运算结果;

计算所述调度等待时间系数与所述第一运算结果的乘积,得到第二运算结果;

计算静态优先级系数与所述静态优先级的乘积,得到第三运算结果;

计算所述调度等待时间阈值与所述第三运算结果的和,得到第四运算结果;

将所述第四运算结果与所述第二运算结果的差值作为对应的所述普通调度通道中各个任务的动态优先级。

在其中一个实施例中,所述方法还包括:

获取所述优先调度通道的任务链表,根据所述优先调度通道的任务链表依次调度所述优先调度通道的任务;

在所述优先调度通道的所有任务被调度后,获取普通调度通道的任务链表,根据所述普通调度通道的任务链表和所述普通调度通道中任务对应的设备的状态调度所述普通调度通道的任务。

在其中一个实施例中,每一静态优先级对应一个任务链表,每一任务链表对应一个调度通道,所述调度通道包括普通调度通道和优先调度通道,所述方法还包括:

在所述优先调度通道中的所有任务被调度后,根据所述静态优先级按序对所述普通调度通道的任务进行调度。

在其中一个实施例中,所述方法还包括:

接收任务;根据所述任务的类型和亲和度获取所述任务的任务优先级;根据所述任务的任务优先级,将所述任务添加至对应的任务链表的末尾。

在其中一个实施例中,所述方法还包括:

若当前处理器资源不能满足所述优先调度通道的当前任务,则对所述普通调度通道的任务进行阻塞处理,以使计算资源满足所述优先调度通道的当前任务。

一种任务调度方法,所述方法包括:

若普通调度通道的当前通道平均调度等待时间大于当前时间阈值,则获取所述普通调度通道中各个任务的动态优先级,

若所述普通调度通道中存在的动态优先级达到预设值的目标任务,则将所述目标任务由所述普通调度通道调入优先调度通道;

其中,所述普通调度通道中的任务在所述优先调度通道中的所有任务被调度后被调度。

一种任务调度方法,所述方法包括:

若普通调度通道中任务的动态优先级达到预设值,则获取动态优先级达到预设值的所述任务所在普通调度通道的当前通道平均调度等待时间;

若所述当前通道平均调度等待时间大于当前时间阈值,则将动态优先级达到预设值的所述任务由所述普通调度通道调入优先调度通道;

其中,所述普通调度通道中的任务在所述优先调度通道中的所有任务被调度后被调度。

一种任务调度装置,所述装置包括:

存储器,用于为普通调度通道以及优先调度通道提供存储空间,其中,所述普通调度通道中的任务在所述优先调度通道中的所有任务被调度后被调度;

均衡电路,用于若普通调度通道的当前通道平均调度等待时间大于当前时间阈值,则将所述普通调度通道中的目标任务由所述普通调度通道调入优先调度通道;若普通调度通道的任务的动态优先级达到预设值,则将动态优先级达到预设值的所述任务由所述普通调度通道调入优先调度通道。

一种任务调度装置,所述装置包括:

存储器,用于为普通调度通道以及优先调度通道提供存储空间,其中,所述普通调度通道中的任务在所述优先调度通道中的所有任务被调度后被调度;

均衡电路,用于若普通调度通道的当前通道平均调度等待时间大于当前时间阈值,则获取所述普通调度通道中各个任务的动态优先级,若所述普通调度通道中存在的动态优先级达到预设值的目标任务,则将所述目标任务由所述普通调度通道调入优先调度通道。

一种任务调度装置,所述装置包括:

存储器,用于为普通调度通道以及优先调度通道提供存储空间,其中,所述普通调度通道中的任务在所述优先调度通道中的所有任务被调度后被调度;

均衡电路,用于若普通调度通道中任务的动态优先级达到预设值,则获取动态优先级达到预设值的所述任务所在普通调度通道的当前通道平均调度等待时间;若所述当前通道平均调度等待时间大于当前时间阈值,则将所述任务由所述普通调度通道调入优先调度通道。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本公开实施例中方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本公开实施例中方法的步骤。

上述任务调度方法、装置、计算机设备和存储介质,通过获取更新后各个任务的等待时间,得到当前等待时间,并将各个通道的当前通道平均调度等待时间的均值作为所述当前时间阈值,该方法得到的当前时间阈值是基于所有的普通通道中任务的当前调度等待时间得到的,因此该当前时间阈值可以从整体上准确的评估任务列表中任务的等待调度时间是否过长。

附图说明

图1为一个实施例中任务调度方法的应用环境图;

图2为一个实施例中任务调度方法的流程示意图;

图3为一个实施例中任务调度方法的补充步骤的流程示意图;

图4为另一个实施例中任务调度方法的补充步骤的流程示意图;

图5为一个实施例中任务调度方法的流程示意图;

图6为一个实施例中任务调度装置的结构框图;

图7为另一个实施例中任务调度装置的结构框图;

图8为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本公开,并不用于限定本公开。

本公开提供的任务调度方法,可以应用于如图1所示的应用环境中。其中,任务调度装置100与任务处理系统200连接。其中,任务调度装置可以对任务进行调度,得到任务的调度信息。任务调度装置100包括存储器(未示出),该存储器用于提供存储空间。任务处理系统200包含多个设备210,任务处理系统200根据任务的调度信息将任务分发至设备210,每一设备210用于执行相应的任务,得到任务的处理结果。

可选地,任务在被下发至设备上执行之前,会从通道中被依次下发至软件队列、硬件队列,之后从硬件队列被下发至对应的设备上被执行。可选地,这些任务、任务被派发至软件队列开始的时间、任务被派发至硬件队列的时间以及调度等待时间可以被记录在任务列表中。调度等待时间可以为任务从被派发至软件队列开始到被派发至硬件队列所等待的时间。

可选地,本申请实施例中的通道可以包括普通调度通道和优先调度通道,任务调度装置100可以根据任务的优先级,将不同优先级的任务调度至优先调度通道或普通调度通道。其中,优先调度通道中任务的优先级相较于普通调度通道中任务的优先级高,也就是说该优先调度通道中的任务先于普通调度通道中的任务被调度执行。进一步可选地,在优先调度通道中的所有任务被调度后,普通调度通道中的任务才被调度执行。可选地,该普通调度通道可以是一个或多个,此处不做具体限定。

可选地,该设备210可以为芯片、处理器或处理器核。其中,若设备为处理器,则该处理器可以为人工智能处理器(IPU),该人工智能处理器包括但不限于加速处理器APU(Accelerated Processing Unit)、图形处理器GPU(Graphics Processing Unit)、神经网络处理器NPU(neural-network processing units)等人工智能处理器。

在一个实施例中,如图2所示,提供了一种任务调度方法,以该方法应用于图1中的任务调度装置为例进行说明,上述方法可以包括以下步骤:

步骤210,若普通调度通道的当前通道平均调度等待时间大于或等于当前时间阈值,则将所述普通调度通道中的目标任务由所述普通调度通道调入优先调度通道。

其中,通道可以被放入待调度的任务。任务调度装置100从通道中取出任务进行调度。通道可以被分为普通调度通道和优先调度通道。可选地,任务调度装置100的存储器可以为通道提供存储空间。其中,所述普通调度通道中的任务在所述优先调度通道中的所有任务被调度后被调度。任务调度装置100可以根据普通调度通道中的任务的规模以及资源状态从普通调度通道中取出对应的任务进行调度。任务的规模为任务执行时所需的资源,该资源可以为处理器或处理器核,内存等。资源状态可以包括空闲与占用。任务调度装置100按照先进先出的次序从优先调度通道取出任务进行调度。

可选地,任务调度装置100可以通过对任务列表中各个任务的调度等待时间进行更新,获取各个任务的当前调度等待时间。具体地,任务调度装置100在遍历普通调度通道中任务的任务列表时,首先更新任务列表中各个任务的调度等待时间,得到任务列表中各个任务的当前调度等待时间。本申请实施例中,各个任务的当前调度等待时间是实时更新确定的。进一步地,该当前通道平均调度等待时间和当前时间阈值均可以是根据当前通道中任务的当前调度等待时间确定的,具体确定方式可参见下文的描述。

具体地,任务调度装置100遍历普通调度通道中任务的任务列表,获取任务列表中各个任务的当前调度等待时间;根据各个任务的当前调度等待时间获得各个普通调度通道的当前通道平均调度等待时间,以及当前时间阈值。任务调度装置100对普通调度通道的当前通道平均调度等待时间与当前时间阈值进行比较,若普通调度通道的当前通道平均调度等待时间大于或等于当前时间阈值,则将所述普通调度通道中的目标任务由所述普通调度通道调入优先调度通道。可选地,该目标任务可以为普通调度通道中各个任务的当前调度等待时间的长短以及任务规模的大小确定的任务。例如,该目标任务可以是普通调度通道中当前调度等待时间最长的任务。再入,该目标任务可以是普通调度通道中任务规模满足当前资源要求的任务,当前资源要求可以是总资源与优先调度通道中任务的任务规模所需的资源之差。又如,该目标任务可以是普通调度通道中当前调度等待时间最长,且该目标任务可以是普通调度通道中任务规模满足当前资源要求的任务。

本实施例的任务调度方法首先利用普通调度通道和优先调度通道将不同优先级的待调度任务进行区分,并分别放入普通调度通道和优先调度通道。之后通过遍历普通调度通道中任务的任务列表,将等待时间过久(饥饿)的任务调入优先调度通道进行调度,本实施例采用当前时间阈值评估普通调度通道中任务的调度等待时间是否过长,这可以对待调度的各个任务当前的相对状态进行准确评估,因此,本实施例的任务调度方法在调度过程中可以实现相对公平的调度。

在其中一个实施例中,如图3所示,上述任务调度方法还包括:

步骤S220,根据所述各个所述普通调度通道中任务的当前调度等待时间,计算各个所述普通调度通道的当前通道平均调度等待时间。

具体地,任务调度装置100获取普通调度通道中各个任务的当前调度等待时间后,根据所述各个普通调度通道中任务的当前调度等待时间,计算各个普通调度通道的当前通道平均调度等待时间。该当前通道平均调度等待时间可以为当前通道中所有的任务的当前调度等待时间的均值。

步骤S230,根据至少一个所述普通调度通道的当前通道平均调度等待时间的均值,确定所述当前时间阈值。

具体地,任务调度装置100根据至少一个所述普通调度通道的当前通道平均调度等待时间的均值获取所述当前时间阈值。可选地,任务调度装置100根据所有的所述普通调度通道的当前通道平均调度等待时间的均值获取所述当前时间阈值。具体地,任务调度装置100根据所有的所述普通调度通道的当前通道平均调度等待时间的均值和一预设值获取所述当前时间阈值。

在其他实施例中,该当前时间阈值也可以是根据至少一个普通调度通道中各个任务的当前调度等待时间确定的。例如,任务调度装置100可以获取至少一个普通调度通道中所有任务的当前调度等待时间,并将该至少一个普通调度通道中所有任务的当前调度等待时间的均值和一预设值作为该当前时间阈值。当然,在其他可选的实施例中,该当前时间阈值还可以是设定的预设值,该预设值可以是一恒定值,也可以是根据任务的当前调度等待时间确定的变值,此处不做具体限定。

本实施例的方法,在获取任务的当前调度等待时间后,将各个通道的当前通道平均调度等待时间的均值作为所述当前时间阈值,该方法得到的当前时间阈值是基于所有的普通通道中任务的当前调度等待时间得到的动态时间阈值,因此该当前时间阈值可以从整体上准确的评估任务列表中任务的等待调度时间是否过长,并且根据任务的当前调度等待时间动态的调整,从而可以提高任务调度的效率。

在一个实施例中,用户可以定义各个任务的优先级,任务调度装置可以根据各个任务的优先级,将任务调度至普通调度通道或优先调度通道中。例如,任务的优先级可以包括0~15个优先级,其中,0表示该任务的优先级最高,15表示该任务的优先级最低。进一步可选地,该普通调度通道可以包括多个,每个普通调度通道对应一个优先级的任务链表。可选地,该普通调度通道还可以是一个,该普通调度通道可以包括多个任务链表,每个任务链表可以对应一个优先级的任务。可选地,优先调度通道可以是一个,其可以包括一个任务链表,用于存放优先级最高的任务。其中,优先调度通道中的任务可以按照“先入先出”的原则依次被调度执行,在优先调度通道中的任务全部完成调度之后,任务调度装置可以调度普通调度通道中的任务。

进一步地,普通调度通道中的任务可以按照其任务优先级和/或当前调度等待时间进行确定。其中,普通调度通道中的任务按照任务的当前调度等待时间进行调度的实施例可参见上文所述。普通调度通道中任务按照任务的优先级,或者,任务优先级与任务的当前调度等待时间结合的方式进行调度的实施例具体可参见下文的描述。

如图4所示,本申请实施例提供了另一种任务调度方法,以该方法应用于图1中的任务调度装置为例进行说明,包括以下步骤:

步骤S310,若普通调度通道的任务的动态优先级达到预设值,则将动态优先级达到预设值的所述任务由所述普通调度通道调入优先调度通道。

其中,本实施例中普通调度通道与上述实施例的含义相同。可选地,可以根据任务的类型、任务规模、亲和性等获取各个任务静态优先级,各个任务的静态优先级也可以是由用户指定的。任务调度装置100根据任务的静态优先级将任务下发至普通调度通道或优先调度通道。任务调度装置100优先调度所述优先调度通道中的所有任务,只有优先调度通道中的所有任务被调度后,普通调度通道中的任务才被调度。

可选地,预设值可以根据优先调度通道的静态优先级设置。例如在优先调度通道的静态优先级为0时,该预设值可以设置为0。可选地,每个通道会对应设置一个任务链表,通道每被放入一个任务,会在对应的任务链表的末尾增加该被放入的任务。可选地,若普通调度通道的任务的动态优先级达到预设值,任务调度装置100将动态优先级达到预设值的所述任务由所述普通调度通道调入优先调度通道。

在任务被调入优先调度通道后会在优先调度通道的任务链表的末尾增加该任务。若任务的动态优先级未达到预设值,则继续留在原属的普通调度通道中等待被调度。

可选地,任务调度装置100获取优先调度通道的任务链表,根据所述优先调度通道的任务链表依次调度所述优先调度通道的任务;在所述优先调度通道的所有任务被调度后,获取普通调度通道的任务链表,根据所述普通调度通道的任务链表和所述普通调度通道中任务的对应的设备的状态调度所述普通调度通道的任务。可选地,设备的状态包括设备的占用状态。

可选地,普通调度通道的数量可以为多个。可选地,每一静态优先级对应一个任务链表,每一任务链表对应一个调度通道,所述调度通道包括普通调度通道和优先调度通道。可选地,可以将最急需进行调度的任务的静态优先级设置为0,其余的任务可以根据调度急需程度进一步划分。可选地,静态优先级为0的任务被放入优先调度通道,优先调度通道被放入的任务会依序增加至对应的任务链表。除静态优先级为0的任务以外的其他任务会按照它们的静态优先级放入对应的普通调度通道,相应的,任务被放入普通调度通道后也会被依序增加至对应的任务链表。

进一步地,随着任务的静态优先级增大,任务的调度急需程度降低。具体地,任务调度装置100接收任务(待调度的任务)并确认该任务的静态任务优先级,之后根据所述任务的静态任务优先级,将所述任务添加至对应通道的任务链表的末尾。任务调度装置100在所述优先调度通道中的所有任务被调度后,按根据静态优先级按序对所述普通调度通道的任务进行调度。

可选地,任务调度装置100根据所述普通调度通道中各个任务的静态优先级和所述任务的调度等待时间,确定所述普通调度通道中各个任务的动态优先级。具体地,在动态优先级为0时,任务调度装置100首先获取调度等待时间阈值、静态优先级系数、调度等待时间系数以及预设时长;然后计算所述普通调度通道中各个任务的调度等待时间与所述预设时长的比值,得到第一运算结果;之后计算所述调度等待时间系数与所述第一运算结果的乘积,得到第二运算结果;之后计算静态优先级系数与所述静态优先级的乘积,得到第三运算结果;之后计算所述调度等待时间阈值与所述第三运算结果的和,得到第四运算结果;最后将所述第四运算结果与所述第二运算结果的差值对应的所述普通调度通道中各个任务的动态优先级。

具体地,可以根据下述公式计算各个任务的动态优先级:

dynamic_priority=wait_threshold+a*static_priority-b*wait_jiffies/n,

其中,dynamic_priority为动态优先级,wait_threshold为调度等待时间阈值,a为静态优先级系数,b为调度等待时间系数,wait_jiffies为普通调度通道中各个任务的调度等待时间,n为wait_jiffies的量纲化参数。可选地,n可以为4s。

本实施例的任务调度方法首先将不同优先级的待调度任务进行区分,并分别放入普通调度通道和优先调度通道。之后根据任务的动态优先级,将等待时间过久的任务调入优先调度通道进行调度,本实施例采用动态优先级评估普通调度通道中任务的调度等待时间是否过长(饥饿),这可以对待调度的各个任务当前的相对状态进行准确评估,因此,本实施例的任务调度方法在调度过程中可以实现相对公平的调度。

基于同样的发明构思,在其中一个实施例中,如图6所示,该方法包括:

步骤S410,若普通调度通道的当前通道平均调度等待时间大于当前时间阈值,则获取所述普通调度通道中各个任务的动态优先级。其中,该普通调度通道的当前通道平均调度等待时间及当前时间阈值的确定方式,与上文中步骤S220、步骤S230的确定方式基本一致,具体可参见上文的描述。

步骤S420,若所述普通调度通道中存在的动态优先级达到预设值的目标任务,则将所述目标任务由所述普通调度通道调入优先调度通道。其中,所述普通调度通道中的任务在所述优先调度通道中的所有任务被调度后被调度。

本实施例中涉及的当前通道平均调度等待时间、当前时间阈值以及动态优先级的获取方式可参见上文中相关内容的描述,在此不再做赘述。

本实施例的方法,只有任务所在普通调度通道符合当前通道平均调度等待时间大于当前时间阈值且者该任务的动态优先级达到预设值这两个条件均成立时,才可以调入优先调度通道,该方法,可以从两个维度(当前时间阈值和动态优先级)准确评估任务的调度等待时间,将调度等待时间过长的任务调入优先调度通道优先调度。本实施例的方法可以实现相对公平的调度。

基于同样的发明构思,在其中一个实施例中,如图7所示,本公开提出了另一种任务调度方法,该方法包括:

步骤S510,若普通调度通道的任务的动态优先级达到预设值,则获取动态优先级达到预设值的所述任务所在普通调度通道的当前通道平均调度等待时间。

步骤S520,若所述当前通道平均调度等待时间大于当前时间阈值,则将所述动态优先级达到预设值的任务由所述普通调度通道调入优先调度通道。其中,所述普通调度通道中的任务在所述优先调度通道中的所有任务被调度后被调度。

本实施例中涉及的当前通道平均调度等待时间、当前时间阈值以及动态优先级的获取方式可参见上文中相关内容的描述,在此不再做赘述。

本实施例的方法,只有任务的动态优先级达到预设值且所在普通调度通道符合当前通道平均调度等待时间大于当前时间阈值这两个条件均成立时,才可以调入优先调度通道,该方法,可以从两个维度(当前时间阈值和动态优先级)准确评估任务的调度等待时间,将调度等待时间过长的任务调入优先调度通道优先调度。本实施例的方法可以实现相对公平的调度。

在其中一个实施例中,上述的各个任务调度方法都可以包括:若当前处理器资源不能满足所述优先调度通道的当前任务,则对所述普通调度通道的任务进行阻塞处理,以使计算资源满足所述优先调度通道的当前任务。

本实施例通过阻塞普通调度通道的任务使得当前处理器资源可以满足所述优先调度通道的当前任务,以保证优先调度通道的任务可以被优先调度。

需要说明的是,本公开中的任务调度方法可以被应用于人工智能处理器的任务调度,以使人工智能处理器可以合理均衡的处理各个任务。本公开中的任务调度方法克服了传统技术中人工智能处理器进行任务调度时由于参考的调度因素(亲和性、任务规模等等)过多难以实现公平调度的问题。

应该理解的是,虽然图2-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图7所示,提供了一种任务调度装置,包括:

存储器710,用于为普通调度通道以及优先调度通道提供存储空间,其中,所述普通调度通道中的任务在所述优先调度通道中的所有任务被调度后被调度;

均衡电路720,用于若普通调度通道的当前通道平均调度等待时间大于当前时间阈值,则将所述普通调度通道中的目标任务由所述普通调度通道调入优先调度通道;若普通调度通道的任务的动态优先级达到预设值,则将动态优先级达到预设值的所述任务由所述普通调度通道调入优先调度通道。

在其中一个实施例中,均衡电路720用于根据所述普通调度通道中所有任务的当前调度等待时间确定所述当前时间阈值。

在其中一个实施例中,均衡电路720用于根据所述各个所述普通调度通道中任务的当前调度等待时间,计算各个普通调度通道的当前通道平均调度等待时间;根据至少一个所述普通调度通道的当前通道平均调度等待时间的均值获取所述当前时间阈值。

在其中一个实施例中,均衡电路720用于根据所述普通调度通道中各个任务的静态优先级和所述任务的当前调度等待时间,确定所述普通调度通道中各个任务的动态优先级。

在其中一个实施例中,所述动态优先级为0,均衡电路720用于获取调度等待时间阈值、静态优先级系数、调度等待时间系数以及预设时长;计算所述普通调度通道中各个任务的调度等待时间与所述预设时长的比值,得到第一运算结果;计算所述调度等待时间系数与所述第一运算结果的乘积,得到第二运算结果;计算静态优先级系数与所述静态优先级的乘积,得到第三运算结果;计算所述调度等待时间阈值与所述第三运算结果的和,得到第四运算结果;将所述第四运算结果与所述第二运算结果的差值作为对应的所述普通调度通道中各个任务的动态优先级。

在其中一个实施例中,均衡电路720用于获取优先调度通道的任务链表,根据所述优先调度通道的任务链表依次调度所述优先调度通道的任务;在所述优先调度通道的所有任务被调度后,获取普通调度通道的任务链表,根据所述普通调度通道的任务链表和所述普通调度通道中任务对应的设备的状态调度所述普通调度通道的任务。

在其中一个实施例中,每一静态优先级对应一个任务链表,每一任务链表对应一个调度通道,所述调度通道包括普通调度通道和优先调度通道,均衡电路620用于在所述优先调度通道中的所有任务被调度后,根据静态优先级按序对所述普通调度通道的任务进行调度。

均衡电路820,用于接收任务;根据所述任务的类型和亲和度获取所述任务的任务优先级;根据所述任务的任务优先级,将所述任务添加至对应的任务链表的末尾。

均衡电路820,用于若当前处理器资源不能满足所述优先调度通道的当前任务,则对所述普通调度通道的任务进行阻塞处理,以使计算资源满足所述优先调度通道的当前任务。

在一个实施例中,提供了另一种任务调度装置,包括:

存储器,用于为普通调度通道以及优先调度通道提供存储空间,其中,所述普通调度通道中的任务在所述优先调度通道中的所有任务被调度后被调度;

均衡电路,用于若普通调度通道的当前通道平均调度等待时间大于当前时间阈值,则获取所述普通调度通道中各个任务的动态优先级,若所述普通调度通道中存在的动态优先级达到预设值的目标任务,则将所述目标任务由所述普通调度通道调入优先调度通道。

在一个实施例中,提供了另一种任务调度装置,包括:

存储器,用于为普通调度通道以及优先调度通道提供存储空间,其中,所述普通调度通道中的任务在所述优先调度通道中的所有任务被调度后被调度;

均衡电路,用于若普通调度通道中任务的动态优先级达到预设值,则获取动态优先级达到预设值的所述任务所在普通调度通道的当前通道平均调度等待时间;若所述当前通道平均调度等待时间大于当前时间阈值,则将动态优先级达到预设值的所述任务由所述普通调度通道调入优先调度通道。

关于任务调度装置的具体限定可以参见上文中对于任务调度方法的限定,在此不再赘述。上述任务调度装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种任务调度方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图8中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:若某一普通调度通道的当前通道平均调度等待时间大于当前时间阈值,则将所述某一普通调度通道中的目标任务由所述普通调度通道调入优先调度通道;和/或,若普通调度通道的任务的动态优先级达到预设值,则将动态优先级达到预设值的所述任务由所述普通调度通道调入优先调度通道;其中,所述普通调度通道中的任务在所述优先调度通道中的所有任务被调度后被调度。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据所述普通调度通道中所有任务的当前调度等待时间确定所述当前时间阈值。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据所述各个所述普通调度通道中任务的当前调度等待时间,计算各个普通调度通道的当前通道平均调度等待时间;根据至少一个所述普通调度通道的当前通道平均调度等待时间的均值获取所述当前时间阈值。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据所述普通调度通道中各个任务的静态优先级和所述任务的当前调度等待时间,确定所述普通调度通道中各个任务的动态优先级。

在一个实施例中,所述动态优先级为0,处理器执行计算机程序时具体实现以下步骤:获取调度等待时间阈值、静态优先级系数、调度等待时间系数以及预设时长;计算所述普通调度通道中各个任务的调度等待时间与所述预设时长的比值,得到第一运算结果;计算所述调度等待时间系数与所述第一运算结果的乘积,得到第二运算结果;计算静态优先级系数与所述静态优先级的乘积,得到第三运算结果;计算所述调度等待时间阈值与所述第三运算结果的和,得到第四运算结果;将所述第四运算结果与所述第二运算结果的差值作为对应的所述普通调度通道中各个任务的动态优先级。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取优先调度通道的任务链表,根据所述优先调度通道的任务链表依次调度所述优先调度通道的任务;在所述优先调度通道的所有任务被调度后,获取普通调度通道的任务链表,根据所述普通调度通道的任务链表和所述普通调度通道中任务对应的设备的状态调度所述普通调度通道的任务。

在一个实施例中,每一静态优先级对应一个任务链表,每一任务链表对应一个调度通道,所述调度通道包括普通调度通道和优先调度通道,处理器执行计算机程序时还实现以下步骤:在所述优先调度通道中的所有任务被调度后,根据静态优先级按序对所述普通调度通道的任务进行调度。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收任务;根据所述任务的类型和亲和度获取所述任务的任务优先级;根据所述任务的任务优先级,将所述任务添加至对应的任务链表的末尾。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:若当前处理器资源不能满足所述优先调度通道的当前任务,则对所述普通调度通道的任务进行阻塞处理,以使计算资源满足所述优先调度通道的当前任务。

在一个实施例中,提供了另一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:若普通调度通道的当前通道平均调度等待时间大于当前时间阈值,则获取所述普通调度通道中各个任务的动态优先级,若所述普通调度通道中存在的动态优先级达到预设值的目标任务,则将所述目标任务由所述普通调度通道调入优先调度通道;其中,所述普通调度通道中的任务在所述优先调度通道中的所有任务被调度后被调度。

在一个实施例中,提供了另一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:若普通调度通道中任务的动态优先级达到预设值,则获取动态优先级达到预设值的所述任务所在普通调度通道的当前通道平均调度等待时间;若所述当前通道平均调度等待时间大于当前时间阈值,则将动态优先级达到预设值的所述任务由所述普通调度通道调入优先调度通道;其中,所述普通调度通道中的任务在所述优先调度通道中的所有任务被调度后被调度。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:若某一普通调度通道的当前通道平均调度等待时间大于当前时间阈值,则将所述某一普通调度通道中的目标任务由所述普通调度通道调入优先调度通道;若普通调度通道的任务的动态优先级达到预设值,则将动态优先级达到预设值的所述任务由所述普通调度通道调入优先调度通道;其中,所述普通调度通道中的任务在所述优先调度通道中的所有任务被调度后被调度。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据所述普通调度通道中所有任务的当前调度等待时间确定所述当前时间阈值。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据所述各个所述普通调度通道中任务的当前调度等待时间,计算各个普通调度通道的当前通道平均调度等待时间;根据至少一个所述普通调度通道的当前通道平均调度等待时间的均值获取所述当前时间阈值。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据所述普通调度通道中各个任务的静态优先级和所述任务的当前调度等待时间,确定所述普通调度通道中各个任务的动态优先级。

在一个实施例中,所述动态优先级为0,计算机程序被处理器执行时具体实现以下步骤:获取调度等待时间阈值、静态优先级系数、调度等待时间系数以及预设时长;计算所述普通调度通道中各个任务的调度等待时间与所述预设时长的比值,得到第一运算结果;计算所述调度等待时间系数与所述第一运算结果的乘积,得到第二运算结果;计算静态优先级系数与所述静态优先级的乘积,得到第三运算结果;计算所述调度等待时间阈值与所述第三运算结果的和,得到第四运算结果;将所述第四运算结果与所述第二运算结果的差值作为对应的所述普通调度通道中各个任务的动态优先级。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取优先调度通道的任务链表,根据所述优先调度通道的任务链表依次调度所述优先调度通道的任务;在所述优先调度通道的所有任务被调度后,获取普通调度通道的任务链表,根据所述普通调度通道的任务链表和所述普通调度通道中任务对应的设备的状态调度所述普通调度通道的任务。

在一个实施例中,每一静态优先级对应一个任务链表,每一任务链表对应一个调度通道,所述调度通道包括普通调度通道和优先调度通道,计算机程序被处理器执行时还实现以下步骤:在所述优先调度通道中的所有任务被调度后,根据静态优先级按序对所述普通调度通道的任务进行调度。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收任务;根据所述任务的类型和亲和度获取所述任务的任务优先级;根据所述任务的任务优先级,将所述任务添加至对应的任务链表的末尾。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若当前处理器资源不能满足所述优先调度通道的当前任务,则对所述普通调度通道的任务进行阻塞处理,以使计算资源满足所述优先调度通道的当前任务。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:若普通调度通道的当前通道平均调度等待时间大于当前时间阈值,则获取所述普通调度通道中各个任务的动态优先级,若所述普通调度通道中存在的动态优先级达到预设值的目标任务,则将所述目标任务由所述普通调度通道调入优先调度通道;其中,所述普通调度通道中的任务在所述优先调度通道中的所有任务被调度后被调度。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:若普通调度通道中任务的动态优先级达到预设值,则获取动态优先级达到预设值的所述任务所在普通调度通道的当前通道平均调度等待时间;若所述当前通道平均调度等待时间大于当前时间阈值,则将动态优先级达到预设值的所述任务由所述普通调度通道调入优先调度通道;其中,所述普通调度通道中的任务在所述优先调度通道中的所有任务被调度后被调度。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本公开的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开构思的前提下,还可以做出若干变形和改进,这些都属于本公开的保护范围。因此,本公开专利的保护范围应以所附权利要求为准。

相关技术
  • 任务调度方法、任务调度系统、存储介质和计算机设备
  • 任务调度方法、装置、任务调度平台及计算机存储介质
技术分类

06120113240900