一种任务处理方法、任务处理器及任务处理设备与流程

文档序号:16811186发布日期:2019-02-10 13:40阅读:206来源:国知局
一种任务处理方法、任务处理器及任务处理设备与流程

本申请涉及计算机领域,具体涉及一种任务处理方法、任务处理器及任务处理设备。



背景技术:

随着用户对处理器性能的要求不断提高,功耗问题限制了单核处理器不断提高性能的发展途径,越来越多的多核处理器应运而生。在多核处理器中,多个处理器并行计算,需要处理的业务任务被分解成若干个部分,根据一定的调度原则,由负责调度的功能模块,将每个部分调度到一个核上执行。

基于多核的并行计算架构,由集中的调度功能模块或称为调度核心负责任务的调度和分配,由于业务的多样性,不同的任务有不同的优先级,调度功能模块在调度时基于第一优先级调度,选择目标核集合中的一个目标核执行一个任务,由于任务调度快于任务执行,所以同时分配给目标核的任务会在目标核内部的任务队列中等待。

但是,在目标核上一般基于先到先服务的runtocompletion方式,后调度的任务即使优先级高也要等待先调度的低优先级任务完成才能执行,在实时系统中,任务执行时间要求非常严格,尤其在无线通信系统中,一个任务的处理时间只有约几十微秒,基于runtocompletion的方式任务实时性差,高优先级任务的服务质量(qualityofservice,qos)需求难以保证。



技术实现要素:

本申请提供了一种任务处理方法、任务处理器及任务处理设备,用于优先执行高优先级的任务,从而满足了高优先级任务的qos需求。

本申请第一方面提供一种任务处理方法,包括:

获取待执行任务;

确定所述待执行任务的第一优先级;

根据所述第一优先级从至少一个逻辑运算单元集合中确定目标逻辑运算单元集合,所述目标逻辑运算单元集合包括至少一个逻辑运算单元,一个逻辑运算单元用于执行一个待执行任务;

当所述目标逻辑运算单元集合具有当前任务时,优先执行所述待执行任务和所述当前任务中优先级最高的任务。

在并行处理系统中,为了提高任务处理效率,一般是采用多线并行的方式来处理任务,因此,用于处理任务的逻辑运算单元集合至少为一个,且一个逻辑运算单元集合中包括至少一个逻辑运算单元,在不同的并行处理系统的场景下,逻辑运算单元集合可以处于内核、处理器或者服务器中,而且不同的逻辑运算单元对应不同优先级的独立的执行上下文,独立的执行上下文可以是线程,一个独立的执行上下文一次处理一个任务,因此,一个逻辑运算单元用于执行一个任务,例如,并行处理系统具体为多核处理器时,一个逻辑运算单元集合处于一个用作于任务执行的内核中。当有需要处理的业务时,可以通过对业务的任务进行分解得到待执行任务,或者通过其他方式接收到待执行任务,先确定待执行任务的第一优先级,根据第一优先级从至少一个逻辑运算单元集合中确定一个逻辑运算单元集合,作为目标逻辑运算单元集合,当目标逻辑运算单元集合具有当前任务时,优先执行待执行任务和当前任务中优先级最高的任务,与现有技术中只能先执行完当前任务之后,再执行待执行任务,而本申请是优先执行待执行任务和当前任务中优先级最高的任务,从而满足了高优先级任务的qos需求。

结合本申请第一方面,本申请第一方面第一实施方式中,所述根据所述第一优先级从至少一个逻辑运算单元集合中确定目标逻辑运算单元集合,包括:

获取至少一个逻辑运算单元集合中所有逻辑运算单元的预置优先级,所述目标逻辑运算单元集合包括至少一个逻辑运算单元,一个逻辑运算单元用于执行一个待执行任务,每一个逻辑运算单元的预置优先级对应一个或多个任务的优先级;

根据所述第一优先级及所述预置优先级确定所述待执行任务对应的逻辑运算单元;

确定所述待执行任务对应的逻辑运算单元所处的逻辑运算单元集合为目标逻辑运算单元集合。

在第一方面中,根据第一优先级之所以能够确定对应的目标逻辑运算单元集合,是因为预先为每一个逻辑运算单元都配置了不同的预置优先级,预置优先级的配置是由逻辑运算单元所对应的独立的执行上下文的优先级所决定的,预置优先级可以是固定的值,也可以是取值范围,为方便索引,一个逻辑运算单元的预置优先级与一个或多个任务的优先级进行一一配对保存。获取至少一个逻辑运算单元集合中所有逻辑运算单元的预置优先级,将待执行任务的第一优先级与所有逻辑运算单元的预置优先级进行逐一的比对,就能级确定待执行任务对应的逻辑运算单元,确定待执行任务对应的逻辑运算单元所处的逻辑运算单元集合为目标逻辑运算单元集合。目标逻辑运算单元集合的确定是依据逻辑运算单元的预置优先级和的第一优先级得到的,有利于方案的具体实施。

结合本申请第一方面第一实施方式,本申请第一方面第二实施方式中,所述优先执行所述待执行任务和所述当前任务中优先级最高的任务,包括:

当所述目标逻辑运算单元集合具有当前任务时,获取所述当前任务的第二优先级;

将所述待执行任务调度到所述目标逻辑运算单元集合;

判断所述第一优先级是否高于所述第二优先级;

当所述第一优先级高于所述第二优先级时,中断所述当前任务,并执行所述待执行任务;

当所述第一优先级低于或等于所述第二优先级时,不中断所述当前任务。

如果目标逻辑运算单元集合中没有任何的任务,那么自然是执行待执行任务,无需进行说明,而如果目标逻辑运算单元集合中在待执行任务之前已经调度了任务,而且正在执行当前任务时,获取当前任务的第二优先级,将待执行任务调度到目标逻辑运算单元集合,判断待执行任务的第一优先级是否高于当前任务的第二优先级,如果第一优先级高于第二优先级,那么根据qos需求,自然是需要先执行待执行任务,可以通过目标逻辑运算单元集合中当前任务对应的逻辑运算单元中断当前任务,并通过待执行任务对应的逻辑运算单元执行待执行任务;如果第一优先级低于或等于第二优先级,那么根据qos需求,自然是需要继续执行当前任务,因此,无需中断当前任务。详细具体的说明了如何优先执行高优先级的任务。

结合本申请第一方面、第一方面第一实施方式或第一方面第二实施方式,本申请第一方面第三实施方式中,所述确定所述至少一个待执行任务中每一个待执行任务的第一优先级,包括:

确定所述待执行任务的qos特性;

根据所述qos特性确定所述待执行任务的第一优先级。

一般待执行任务都具有包括服务时间、服务代价、完整性、可用性及信誉等qos特性,qos特性可以作为评判第一优先级的标准,因此,可以预置不同qos特性的任务对应不同的优先级,一般情况下,优先级越最高的任务需要优先执行。由于预先为不同的qos特性的任务设置了不同的优先级,所以确定待执行任务的第一优先级,具体可以是,先确定待执行任务的qos特性,再根据qos特性确定待执行任务的第一优先级。

结合本申请第一方面第三实施方式,本申请第一方面第四实施方式中,所述获取待执行任务之前,还包括:

获取业务处理请求,所述业务处理请求包括业务标识;

根据所述业务处理请求中的业务标识生成业务任务;

对所述业务任务进行任务分解,得到至少一个子任务,所述至少一个子任务中包括所述待执行任务。

在以上的各实施方式中,一个待执行任务对应的是一个逻辑运算单元,因此,一个待执行任务实际上是业务任务的一个子任务,如何获取待执行任务,具体为:先获取业务处理请求,业务处理请求包括业务标识,根据业务处理请求中的业务标识生成业务任务,对业务任务进行任务分解,得到至少一个子任务,至少一个子任务中包括待执行任务。

本申请第二方面提供一种任务处理器,包括:

获取模块,用于获取待执行任务;

处理模块,用于确定所述待执行任务的第一优先级;

所述处理模块,还用于根据所述第一优先级从至少一个逻辑运算单元集合中确定目标逻辑运算单元集合,所述目标逻辑运算单元集合包括至少一个逻辑运算单元,一个逻辑运算单元用于执行一个待执行任务;

执行模块,用于当所述目标逻辑运算单元集合具有当前任务时,优先执行所述待执行任务和所述当前任务中优先级最高的任务。

在并行处理系统中,为了提高任务处理效率,一般是采用多线并行的方式来处理任务,因此,用于处理任务的逻辑运算单元集合至少为一个,且一个逻辑运算单元集合中包括至少一个逻辑运算单元,在不同的并行处理系统的场景下,逻辑运算单元集合可以处于内核、处理器或者服务器中,而且不同的逻辑运算单元对应不同优先级的独立的执行上下文,独立的执行上下文可以是线程,一个独立的执行上下文一次处理一个任务,因此,一个逻辑运算单元用于执行一个任务,例如,并行处理系统具体为多核处理器时,一个逻辑运算单元集合处于一个用作于任务执行的内核中。当有需要处理的业务时,获取模块可以通过对业务的任务进行分解得到待执行任务,或者通过其他方式接收到待执行任务,处理模块先确定待执行任务的第一优先级,根据第一优先级从至少一个逻辑运算单元集合中确定一个逻辑运算单元集合,作为目标逻辑运算单元集合,当目标逻辑运算单元集合具有当前任务时,执行模块优先执行待执行任务和当前任务中优先级最高的任务,与现有技术中只能先执行完当前任务之后,再执行待执行任务,而本申请是优先执行待执行任务和当前任务中优先级最高的任务,从而满足了高优先级任务的qos需求。

结合本申请第二方面,本申请第二方面第一实施方式中,

所述获取模块,还用于获取至少一个逻辑运算单元集合中所有逻辑运算单元的预置优先级,所述目标逻辑运算单元集合包括至少一个逻辑运算单元,一个逻辑运算单元用于执行一个待执行任务,每一个逻辑运算单元的预置优先级对应一个或多个任务的优先级;

所述处理模块,还用于根据所述第一优先级及所述预置优先级确定所述待执行任务对应的逻辑运算单元;

所述处理模块,还用于确定所述待执行任务对应的逻辑运算单元所处的逻辑运算单元集合为目标逻辑运算单元集合。

在第二方面中,处理模块根据第一优先级之所以能够确定对应的目标逻辑运算单元集合,是因为预先为每一个逻辑运算单元都配置了不同的预置优先级,预置优先级的配置是由逻辑运算单元所对应的独立的执行上下文的优先级所决定的,预置优先级的可以是固定的值,也可以是取值范围,为方便索引,一个逻辑运算单元的预置优先级与一个或多个任务的优先级进行一一配对保存。获取模块获取至少一个逻辑运算单元集合中所有逻辑运算单元的预置优先级,处理模块将待执行任务的第一优先级与所有逻辑运算单元的预置优先级进行逐一的比对,就能级确定待执行任务对应的逻辑运算单元,确定待执行任务对应的逻辑运算单元所处的逻辑运算单元集合为目标逻辑运算单元集合。目标逻辑运算单元集合的确定是依据逻辑运算单元的预置优先级和的第一优先级得到的,有利于方案的具体实施。

结合本申请第二方面第一实施方式,本申请第二方面第二实施方式中,

所述执行模块,还用于当所述目标逻辑运算单元集合具有当前任务时,获取所述当前任务的第二优先级;

所述执行模块,还用于将所述待执行任务调度到所述目标逻辑运算单元集合;

所述执行模块,还用于判断所述第一优先级是否高于所述第二优先级;

所述执行模块,还用于当所述第一优先级高于所述第二优先级时,中断所述当前任务,并执行所述待执行任务;

所述执行模块,还用于当所述第一优先级低于或等于所述第二优先级时,不中断所述当前任务。

如果目标逻辑运算单元集合中没有任何的任务,那么自然是执行待执行任务,无需进行说明,而如果目标逻辑运算单元集合中在待执行任务之前已经调度了任务,而且正在执行当前任务时,执行模块获取当前任务的第二优先级,将待执行任务调度到目标逻辑运算单元集合,判断待执行任务的第一优先级是否高于当前任务的第二优先级,如果第一优先级高于第二优先级,那么根据qos需求,自然是需要先执行待执行任务,执行模块可以通过目标逻辑运算单元集合中当前任务对应的逻辑运算单元中断当前任务,并通过待执行任务对应的逻辑运算单元执行待执行任务;如果第一优先级低于或等于第二优先级,那么根据qos需求,自然是需要继续执行当前任务,因此,执行模块无需中断当前任务。详细具体的说明了如何优先执行高优先级的任务。

结合本申请第二方面、第二方面第一实施方式或第二方面第二实施方式,本申请第二方面第三实施方式中,

所述处理模块,还用于确定所述待执行任务的qos特性;

所述处理模块,还用于根据所述qos特性确定所述待执行任务的第一优先级。

一般待执行任务都具有包括服务时间、服务代价、完整性、可用性及信誉等qos特性,qos特性可以作为评判第一优先级的标准,因此,可以预置不同qos特性的任务对应不同的优先级,一般情况下,优先级越最高的任务需要优先执行。由于预先为不同的qos特性的任务设置了不同的优先级,所以处理模块确定待执行任务的第一优先级,具体可以是,处理模块先确定待执行任务的qos特性,再根据qos特性确定待执行任务的第一优先级。

结合本申请第二方面第三实施方式,本申请第二方面第四实施方式中,

所述获取模块,还用于获取业务处理请求,所述业务处理请求包括业务标识;

所述获取模块,还用于根据所述业务处理请求中的业务标识生成业务任务;

所述获取模块,还用于对所述业务任务进行任务分解,得到至少一个子任务,所述至少一个子任务中包括所述待执行任务。

在以上的各实施方式中,一个待执行任务对应的是一个逻辑运算单元,因此,一个待执行任务实际上是业务任务的一个子任务,获取模块如何获取待执行任务,具体为:获取模块先获取业务处理请求,业务处理请求包括业务标识,获取模块根据业务处理请求中的业务标识生成业务任务,对业务任务进行任务分解,得到至少一个子任务,至少一个子任务中包括待执行任务。

本申请第三方面提供一种任务处理设备,包括:

处理器、收发器及存储器,所述存储器可以用于存储所述处理器执行的代码;

所述处理器、所述收发器及所述存储器通过总线系统连接;

所述处理器,用于获取待执行任务;

所述处理器,还用于确定所述待执行任务的第一优先级;

所述处理器,还用于根据所述第一优先级从至少一个逻辑运算单元集合中确定目标逻辑运算单元集合,所述目标逻辑运算单元集合包括至少一个逻辑运算单元,一个逻辑运算单元用于执行一个待执行任务;

所述处理器,还用于当所述目标逻辑运算单元集合具有当前任务时,优先执行所述待执行任务和所述当前任务中优先级最高的任务。

在并行处理系统中,为了提高任务处理效率,一般是采用多线并行的方式来处理任务,因此,用于处理任务的逻辑运算单元集合至少为一个,且一个逻辑运算单元集合中包括至少一个逻辑运算单元,在不同的并行处理系统的场景下,逻辑运算单元集合可以处于内核、处理器或者服务器中,而且不同的逻辑运算单元对应不同优先级的独立的执行上下文,独立的执行上下文可以是线程,一个独立的执行上下文一次处理一个任务,因此,一个逻辑运算单元用于执行一个任务,例如,并行处理系统具体为多核处理器时,一个逻辑运算单元集合处于一个用作于任务执行的内核中。当有需要处理的业务时,处理器可以通过对业务的任务进行分解得到待执行任务,或者通过其他方式接收到待执行任务,处理器先确定待执行任务的第一优先级,根据第一优先级从至少一个逻辑运算单元集合中确定一个逻辑运算单元集合,作为目标逻辑运算单元集合,当目标逻辑运算单元集合具有当前任务时,处理器优先执行待执行任务和当前任务中优先级最高的任务,与现有技术中只能先执行完当前任务之后,再执行待执行任务,而本申请是优先执行待执行任务和当前任务中优先级最高的任务,从而满足了高优先级任务的qos需求。

本申请第四方面提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述的任务处理方法。

本申请第五方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述的任务处理方法。

附图说明

为了更清楚地说明本申请实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍。

图1为本申请提供的并行处理系统的示意图;

图2为本申请提供的任务处理方法的一个实施例的流程示意图;

图3为本申请提供的任务处理方法的另一个实施例的流程示意图;

图4为本申请提供的任务处理器的一个实施例的结构示意图;

图5为本申请提供的任务处理设备的一个实施例的结构示意图。

具体实施方式

本申请提供了一种任务处理方法、任务处理器及任务处理设备,用于优先执行高优先级的任务,从而满足了高优先级任务的qos需求。

下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述。

首先简单介绍本申请应用的系统构架或场景。

如图1所示,为并行处理系统的示意图,其中,包括任务生成、任务分配及任务执行三个部分,任务执行部分中包括n个逻辑运算单元集合,每个逻辑运算单元集合中包括至少一个逻辑运算单元,n大于1。任务生成部分的作用是生成任务,任务分配部分的作用是负责分配和调度任务到任务执行部分的逻辑运算单元,每个逻辑运算单元对应不同优先级的独立的执行上下文,独立的执行上下文可以是线程,一个独立的执行上下文一次处理一个任务。对于并行处理系统所处的具体场景下,逻辑运算单元可以是内核、处理器或者服务器等。

并行处理系统所处的具体场景为多核处理器时,多核处理器是指在一个处理器中集成多个完整的内核。在多核处理器中,一部分内核作为任务生成部分,用于负责生成任务;一部分内核作为任务执行部分,一个内核包含一个逻辑运算单元集合,逻辑运算单元集合种的一个逻辑运算单元对应内核上所支持的一个线程,线程包括硬件线程或软件线程,线程具有不同的优先级,高优先级的线程可以抢占低优先级的线程,硬件线程或者软件线程用于执行任务,因此,通过一个逻辑运算单元可以一次执行一个任务;一部分内核作为任务分配部分,负责任务的调度及其他功能。

并行处理系统所处的具体场景为多处理器系统时,多处理器系统是指包含多个功能相近的处理器,处理器之间彼此可以交换数据,所有处理器共享内存、i/o设备、控制器及外部设备,整个硬件系统由统一的操作系统控制,在处理器和程序之间实现作业、任务、程序、数组极其元素各级的全面并行。在多处理器系统中,一部分处理器作为作为任务执行部分。

并行处理系统所处的具体场景为多服务器系统时,多服务器系统中一部分服务器作为任务执行部分。

并行处理系统所处的具体场景以多核处理器为例,由于业务的多样性,不同的任务有不同的优先级,任务分配部分在分配任务时是基于第一优先级的,由于任务分配快于任务执行,所以同时分配给任务执行部分的任务会在任务执行内部的任务队列中等待。任务执行中的逻辑运算单元执行任务一般是基于先到先服务的runtocompletion方式,后调度的任务即使优先级高也要等待先调度的低优先级任务完成才能执行,在实时系统中,任务执行时间要求非常严格,尤其在无线通信系统中,一个任务的处理时间只有约几十微秒,基于runtocompletion的方式任务实时性差,高优先级任务的qos需求难以保证。

为了解决上述高优先级任务的qos需求难以保证的问题,请参阅图2,本申请提供一种任务处理方法,包括:

201、获取获取待执行任务;

本实施例中,当有需要处理的业务时,可以通过对业务任务进行分解得到一个或多个子任务,从一个或多个子任务中获取一个子任务作为待执行任务,或者通过其他方式直接接收到待执行任务。

202、确定待执行任务的第一优先级;

本实施例中,由于不同的任务是具有优先级的,而且待执行任务都预先设置有对应的优先级判定机制,因此,可以确定待执行任务的第一优先级。

203、根据第一优先级从至少一个逻辑运算单元集合中确定目标逻辑运算单元集合;

本实施例中,在并行处理系统中,逻辑运算单元集合至少为一个,且一个逻辑运算单元集合中包括至少一个逻辑运算单元,每一个逻辑运算单元都预先设置了对应不同优先级的任务,因此,根据第一优先级可以确定至少一个逻辑运算单元集合中对应的逻辑运算单元集合,作为目标逻辑运算单元。

204、当目标逻辑运算单元集合具有当前任务时,优先执行待执行任务和当前任务中优先级最高的任务。

本实施例中,根据qos需求,自然是需要先执行高优先级的任务,因此,当目标逻辑运算单元集合具有当前任务时,那么优先执行分配给目标逻辑运算单元集合的待执行任务和当前任务中优先级高的任务。

本申请实施例中,获取到待执行任务后,根据待执行任务的第一优先级确定目标逻辑运算单元集合,当目标逻辑运算单元集合具有当前任务时,优先执行待执行任务和当前任务中优先级最高的任务,与现有技术中只能先执行完当前任务之后,再执行待执行任务,而本申请是优先执行待执行任务和当前任务中优先级最高的任务,从而满足了高优先级任务的qos需求。

在上述实施例中,根据第一优先级可以确定逻辑运算单元集合,其实现的原理是因为不同的逻辑运算单元具有不同的预置优先级,预置优先级的配置是由逻辑运算单元所对应的独立的执行上下文的优先级所决定的,预置优先级的可以是固定的值,也可以是取值范围,下面通过实施例进行说明。

可选的,本申请的一些实施例中,根据第一优先级从至少一个逻辑运算单元集合中确定目标逻辑运算单元集合,包括:

获取至少一个逻辑运算单元集合中所有逻辑运算单元的预置优先级,目标逻辑运算单元集合包括至少一个逻辑运算单元,一个逻辑运算单元用于执行一个待执行任务,每一个逻辑运算单元的预置优先级对应一个或多个任务的优先级;

根据第一优先级及预置优先级确定待执行任务对应的逻辑运算单元;

确定待执行任务对应的逻辑运算单元所处的逻辑运算单元集合为目标逻辑运算单元集合。

本申请实施例中,根据第一优先级之所以能够确定对应的目标逻辑运算单元集合,是因为预先为每一个逻辑运算单元都配置了不同的预置优先级,预置优先级的配置是由逻辑运算单元所对应的独立的执行上下文的优先级所决定的,预置优先级的可以是固定的值,也可以是取值范围,为方便索引,一个逻辑运算单元的预置优先级与一个或多个任务的优先级进行一一配对保存。获取至少一个逻辑运算单元集合中所有逻辑运算单元的预置优先级,将待执行任务的第一优先级与所有逻辑运算单元的预置优先级进行逐一的比对,就能级确定待执行任务对应的逻辑运算单元,确定待执行任务对应的逻辑运算单元所处的逻辑运算单元集合为目标逻辑运算单元集合。由于目标逻辑运算单元集合的确定是依据预置优先级和第一优先级得到的,而且第一优先级和预置优先级的匹配关系具体是预先设置的,从而能够实现根据第一优先级确定对应的目标逻辑运算单元集合。

下面通过实施例对如何优先执行待执行任务和当前任务中优先级最高的任务进行具体说明。

请参阅图3,本申请提供一种任务处理方法,包括:

301、获取待执行任务;

详情请参考步骤图2所示的实施例中步骤201。

302、确定待执行任务的第一优先级;

详情请参考步骤图2所示的实施例中步骤202。

303、根据第一优先级从至少一个逻辑运算单元集合中确定目标逻辑运算单元集合;

详情请参考步骤图2所示的实施例中步骤203。

304、当目标逻辑运算单元集合具有当前任务时,获取当前任务的第二优先级;

本实施例中,如果目标逻辑运算单元集合中没有任何的任务,那么自然是执行待执行任务,无需进行说明,而如果目标逻辑运算单元集合中在待执行任务之前已经调度了任务,而且正在执行当前任务时,获取当前任务的第二优先级。

305、将待执行任务调度到目标逻辑运算单元集合;

本实施例中,由于已经确定了目标逻辑运算单元集合,需要执行待执行任务的话,就需要将待执行任务调度到目标逻辑运算单元集合。

306、判断第一优先级是否高于第二优先级,若第一优先级高于第二优先级,则执行步骤307;若第一优先级低于或等于第二优先级,则执行步骤308;

本实施例中,目标逻辑运算单元集合收到待执行任务之后,考虑到任务的执行需要满足qos需求,那么先判断待执行任务的第一优先级是否高于当前任务的第二优先级,如果第一优先级高于第二优先级,执行步骤307;如果第一优先级低于或等于第二优先级,则执行步骤308。

307、中断当前任务,并执行待执行任务;

本实施例中,如果第一优先级高于第二优先级,那么根据qos需求,自然是需要先执行待执行任务,可以通过目标逻辑运算单元集合中当前任务对应的逻辑运算单元中断当前任务,并通过待执行任务对应的逻辑运算单元执行待执行任务。

308、不中断当前任务。

本实施例中,如果第一优先级低于或等于第二优先级,那么根据qos需求,自然是需要继续执行当前任务。

本申请实施例中,通过对如何优先执行待执行任务和当前任务中优先级高的任务的细化,详细的说明了是如何保证高优先级的任务能够优先执行,从而保证高优先级任务的qos需求。

需要说明的是,上述图3所示的实施例中,步骤304可以在步骤305之前执行,步骤304也可以在步骤305之后执行,步骤305和步骤304的前后顺序不做限定。

可选的,本申请的一些实施例中,确定待执行任务的第一优先级,包括:

确定待执行任务的qos特性;

根据qos特性确定待执行任务的第一优先级。

本申请实施例中,一般待执行任务都具有包括服务时间、服务代价、完整性、可用性及信誉等qos特性,qos特性可以作为评判第一优先级的标准,因此,可以预置不同qos特性的任务对应不同的优先级,一般情况下,优先级越最高的任务需要优先执行。由于预先为不同的qos特性的任务设置了不同的优先级,所以确定待执行任务的第一优先级,具体可以是,先确定待执行任务的qos特性,再根据qos特性确定待执行任务的第一优先级。

可选的,本申请的一些实施例中,获取待执行任务之前,还包括:

获取业务处理请求,业务处理请求包括业务标识;

根据业务处理请求中的业务标识生成业务任务;

对业务任务进行任务分解,得到至少一个子任务,至少一个子任务中包括待执行任务。

本申请实施例中,在以上的各实施方式中,一个待执行任务对应的是一个逻辑运算单元,因此,一个待执行任务实际上是业务任务的一个子任务,如何获取待执行任务,具体为:先获取业务处理请求,业务处理请求包括业务标识,根据业务处理请求中的业务标识生成业务任务,对业务任务进行任务分解,得到至少一个子任务,至少一个子任务中包括待执行任务。

以上实施例中介绍的是本申请的任务处理方法,下面通过实施例详细介绍任务处理器。

请参阅图4,本申请提供一种任务处理器,包括:

获取模块401,用于获取待执行任务;

处理模块402,用于确定待执行任务的第一优先级;

处理模块402,还用于根据第一优先级从至少一个逻辑运算单元集合中确定目标逻辑运算单元集合,目标逻辑运算单元集合包括至少一个逻辑运算单元,一个逻辑运算单元用于执行一个待执行任务;

执行模块403,用于当目标逻辑运算单元集合具有当前任务时,优先执行待执行任务和当前任务中优先级最高的任务。

本申请实施例中,在并行处理系统中,为了提高任务处理效率,一般是采用多线并行的方式来处理任务,因此,用于处理任务的逻辑运算单元集合至少为一个,且一个逻辑运算单元集合中包括至少一个逻辑运算单元,在不同的并行处理系统的场景下,逻辑运算单元集合可以处于内核、处理器或者服务器中,而且不同的逻辑运算单元对应不同优先级的独立的执行上下文,独立的执行上下文可以是线程,一个独立的执行上下文一次处理一个任务,因此,一个逻辑运算单元用于执行一个任务,例如,并行处理系统具体为多核处理器时,一个逻辑运算单元集合处于一个用作于任务执行的内核中。当有需要处理的业务时,获取模块401可以通过对业务的任务进行分解得到待执行任务,或者通过其他方式接收到待执行任务,处理模块402先确定待执行任务的第一优先级,根据第一优先级从至少一个逻辑运算单元集合中确定一个逻辑运算单元集合,作为目标逻辑运算单元集合,当目标逻辑运算单元集合具有当前任务时,执行模块403优先执行待执行任务和当前任务中优先级最高的任务,与现有技术中只能先执行完当前任务之后,再执行待执行任务,而本申请是优先执行待执行任务和当前任务中优先级最高的任务,从而满足了高优先级任务的qos需求。

可选的,本申请的一些实施例中,

获取模块401,还用于获取至少一个逻辑运算单元集合中所有逻辑运算单元的预置优先级,目标逻辑运算单元集合包括至少一个逻辑运算单元,一个逻辑运算单元用于执行一个待执行任务,每一个逻辑运算单元的预置优先级对应一个或多个任务的优先级;

处理模块402,还用于根据第一优先级及预置优先级确定待执行任务对应的逻辑运算单元;

处理模块402,还用于确定待执行任务对应的逻辑运算单元所处的逻辑运算单元集合为目标逻辑运算单元集合。

本申请实施例中,处理模块402根据第一优先级之所以能够确定对应的目标逻辑运算单元集合,是因为预先为每一个逻辑运算单元都配置了不同的预置优先级,预置优先级的配置是由逻辑运算单元所对应的独立的执行上下文的优先级所决定的,预置优先级的可以是固定的值,也可以是取值范围,为方便索引,一个逻辑运算单元的预置优先级与一个或多个任务的优先级进行一一配对保存。获取模块401获取至少一个逻辑运算单元集合中所有逻辑运算单元的预置优先级,处理模块402将待执行任务的第一优先级与所有逻辑运算单元的预置优先级进行逐一的比对,就能级确定待执行任务对应的逻辑运算单元,处理模块402确定待执行任务对应的逻辑运算单元所处的逻辑运算单元集合为目标逻辑运算单元集合。目标逻辑运算单元集合的确定是依据逻辑运算单元的预置优先级和的第一优先级得到的,有利于方案的具体实施。

可选的,本申请的一些实施例中,

执行模块403,还用于当目标逻辑运算单元集合具有当前任务时,获取当前任务的第二优先级;

执行模块403,还用于将待执行任务调度到目标逻辑运算单元集合;

执行模块403,还用于判断第一优先级是否高于第二优先级;

执行模块403,还用于当第一优先级高于第二优先级时,中断当前任务,并执行待执行任务;

执行模块403,还用于当第一优先级低于或等于第二优先级时,不中断当前任务。

本申请实施例中,如果目标逻辑运算单元集合中没有任何的任务,那么自然是执行待执行任务,无需进行说明,而如果目标逻辑运算单元集合中在待执行任务之前已经调度了任务,而且正在执行当前任务时,执行模块获取当前任务的第二优先级,将待执行任务调度到目标逻辑运算单元集合,判断待执行任务的第一优先级是否高于当前任务的第二优先级,如果第一优先级高于第二优先级,那么根据qos需求,自然是需要先执行待执行任务,执行模块403可以通过目标逻辑运算单元集合中当前任务对应的逻辑运算单元中断当前任务,并通过待执行任务对应的逻辑运算单元执行待执行任务;如果第一优先级低于或等于第二优先级,那么根据qos需求,自然是只需要继续执行当前任务,执行模块403不中断当前任务。详细具体的说明了如何优先执行高优先级的任务。

可选的,本申请的一些实施例中,

处理模块402,用于确定待执行任务的qos特性;

处理模块402,用于根据qos特性确定待执行任务的第一优先级。

本申请实施例中,一般待执行任务都具有包括服务时间、服务代价、完整性、可用性及信誉等qos特性,qos特性可以作为评判第一优先级的标准,因此,可以预置不同qos特性的任务对应不同的优先级,一般情况下,优先级越最高的任务需要优先执行。由于预先为不同的qos特性的任务设置了不同的优先级,所以处理模块402确定待执行任务的第一优先级,具体可以是,处理模块402先确定待执行任务的qos特性,再根据qos特性确定待执行任务的第一优先级。

可选的,本申请的一些实施例中,

获取模块401,还用于获取业务处理请求,业务处理请求包括业务标识;

获取模块401,还用于根据业务处理请求中的业务标识生成业务任务;

获取模块401,还用于对业务任务进行任务分解,得到至少一个子任务,至少一个子任务中包括待执行任务。

本申请实施例中,在以上的各实施方式中,一个待执行任务对应的是一个逻辑运算单元,因此,一个待执行任务实际上是业务任务的一个子任务,获取模块401如何获取待执行任务,具体为:获取模块401先获取业务处理请求,业务处理请求包括业务标识,获取模块401根据业务处理请求中的业务标识生成业务任务,对业务任务进行任务分解,得到至少一个子任务,至少一个子任务中包括待执行任务。

如图5所示,本申请提供一种任务处理设备,包括:

处理器501、收发器502及存储器503,存储器503可以用于存储处理器501执行的代码;

处理器501、收发器502及存储器503通过总线系统连接;

处理器501,用于获取待执行任务;

处理器501,还用于确定待执行任务的第一优先级;

处理器501,还用于根据第一优先级从至少一个逻辑运算单元集合中确定目标逻辑运算单元集合,目标逻辑运算单元集合包括至少一个逻辑运算单元,一个逻辑运算单元用于执行一个待执行任务;

处理器501,还用于当目标逻辑运算单元集合具有当前任务时,优先执行待执行任务和当前任务中优先级最高的任务。

本申请实施例中,在并行处理系统中,为了提高任务处理效率,一般是采用多线并行的方式来处理任务,因此,用于处理任务的逻辑运算单元集合至少为一个,且一个逻辑运算单元集合中包括至少一个逻辑运算单元,在不同的并行处理系统的场景下,逻辑运算单元集合可以处于内核、处理器或者服务器中,而且不同的逻辑运算单元对应不同优先级的独立的执行上下文,独立的执行上下文可以是线程,一个独立的执行上下文一次处理一个任务,因此,一个逻辑运算单元用于执行一个任务,例如,并行处理系统具体为多核处理器时,一个逻辑运算单元集合处于一个用作于任务执行的内核中。当有需要处理的业务时,处理器501可以通过对业务的任务进行分解得到待执行任务,或者通过其他方式接收到待执行任务,处理器501先确定待执行任务的第一优先级,根据第一优先级从至少一个逻辑运算单元集合中确定一个逻辑运算单元集合,作为目标逻辑运算单元集合,当目标逻辑运算单元集合具有当前任务时,处理器501优先执行待执行任务和当前任务中优先级最高的任务,与现有技术中只能先执行完当前任务之后,再执行待执行任务,而本申请是优先执行待执行任务和当前任务中优先级最高的任务,从而满足了高优先级任务的qos需求。

本申请还提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行以上实施例所描述的任务处理方法。

本申请还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以上实施例所描述的任务处理方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1