一种基于深度学习的EDF可调度性判定方法及装置与流程

文档序号:17640035发布日期:2019-05-11 00:36阅读:394来源:国知局
一种基于深度学习的EDF可调度性判定方法及装置与流程

本发明涉及实时调度领域,尤其涉及一种基于深度学习的edf可调度性判定方法及装置。



背景技术:

实时系统主要是面向与时间因素紧密相关的应用系统,它在航空、航天、医疗、银行、多媒体等多个领域都有着较为广泛的应用。由于实时系统对时间行为特性有严格要求,因此,在实时系统的设计中,实时系统的可预测性是设计者需要考虑的重要因素。其中,实时系统的可预测性通常和实时系统中所采用的调度算法有关。

对于周期性任务,基于优先级的动态调度常采用最早截止时间优先(earliestdeadlinefirst,简称:edf)算法。edf算法具体表现为:通过可调度性判定公式,获取任务集的可调度性判定结果,并根据可调度性判定结果,按照任务的截止时间动态调度任务集中的各个任务。

但在采用edf算法进行动态调度时,需要在大量的假设和约束条件的前提下,通过数学方法推导出可以用形式化语言描述的可调度性判定公式,这导致得到的可调度性判定结果准确度较低,且该可调度性判定结果只能判定完整任务集能否被调度,导致动态调度的灵活性较低。



技术实现要素:

本发明提供一种基于深度学习的edf可调度性判定方法及装置,以实现提高可调度性判定结果准确度及动态调度的灵活性。

第一方面,本发明提供一种基于深度学习的edf可调度性判定方法,该方法包括:

获取待执行任务集,其中,所述待执行任务集包括至少一个周期性、且可抢占的待执行任务;

采用空间划分方法对所述待执行任务集进行划分,获取第一任务子集,其中,所述第一任务子集包括至少一个所述待执行任务,所述空间划分方法用于对由所述待执行任务的属性参数所映射的高维度空间进行划分,以获取所述待执行任务在空间上的不同排列组合;

根据所述第一任务子集的调度特征及预先训练好的可调度性判定模型,获取可调度性判定结果,其中,所述可调度性判定结果用于表示所述第一任务子集能否在单核处理器上按照最早截止时间优先edf算法被调度。

进一步地,所述根据所述第一任务子集的调度特征及预先训练好的可调度性判定模型,获取可调度性判定结果之后,还包括:

根据所述可调度性判定结果,将可在单核处理器上按照edf算法被调度,且待执行任务数量最多的所述第一任务子集确定为目标任务子集,以使单核处理器按照edf算法调度所述目标任务子集中各待执行任务。

进一步地,所述待执行任务集包括m个所述待执行任务,m为大于0的整数;

所述采用空间划分方法对所述待执行任务集进行划分,获取第一任务子集,包括:

对m个所述待执行任务进行全排列,获取个所述第一任务子集,其中,表示从m个所述待执行任务中选取i个进行排列组合所得到的第一任务子集的个数,i为大于0的整数,x为对m个所述待执行任务进行全排列得到的第一任务子集的个数,x为大于1的整数。

进一步地,所述预先训练好的可调度性判定模型通过以下方式获取:

获取任务集,其中,所述任务集包括至少一个任务;

采用空间划分方法对所述任务集进行划分,获取第二任务子集,其中,所述第二任务子集携带有可调度性判定标签,所述可调度性判定标签用于表示所述第二任务子集能否在单核处理器上按照edf算法被调度,所述第二任务子集包括至少一个所述任务;

根据所述第二任务子集的调度特征及所述可调度性判定标签,对深度神经网络dnn模型进行训练,获取所述可调度性判定模型。

进一步地,所述调度特征是通过以下方式提取的:

根据任务在单核处理器上按照edf算法被调度时的行为信息和属性信息,构建第一调度特征集合,其中,所述第一调度特征集合包括至少一个第一调度特征;

根据预设条件,在所述第一调度特征集合包括的至少一个所述第一调度特征中选择第二调度特征;

对所述第二调度特征进行数据处理,获取所述调度特征。

进一步地,所述属性参数包括以下一项或多项:

任务周期、相对截止时间以及最坏执行时间。

进一步地,所述调度特征包括以下一项或多项:

中央处理器cpu利用率、密度、被调度难易程度、截止率、执行率、调度率、有效调度率、被抢占率、有效被抢占率、空闲率、有效空闲率、超周期负载率、同步忙周期负载率、特殊时间段负载率。

第二方面,本发明还提供一种基于深度学习的edf可调度性判定装置,该装置包括:

获取模块,用于获取待执行任务集,其中,所述待执行任务集包括至少一个待执行任务;

划分模块,用于采用空间划分方法对所述待执行任务集进行划分,获取第一任务子集,其中,所述第一任务子集包括至少一个所述待执行任务,所述空间划分方法表示对由所述待执行任务的属性参数所映射的高维度空间进行划分,获取所述待执行任务在空间上的不同排列组合;

判定模块,用于根据所述第一任务子集的调度特征及预先训练好的可调度性判定模型,获取可调度性判定结果,其中,所述可调度性判定结果表示所述第一任务子集能否在单核处理器上按照edf算法被调度。

第三方面本发明还提供一种基于深度学习的edf可调度性判定装置,该装置包括:

存储器和处理器;

所述存储器存储程序指令;

所述处理器执行所述程序指令,以执行第一方面所述的方法。

第四方面,本发明还提供一种存储介质,包括:程序;

所述程序在被处理器执行时,以执行第一方面所述的方法。

本发明提供一种基于深度学习的edf可调度性判定方法,该方法包括:获取待执行任务集,待执行任务集包括至少一个周期性、且可抢占的待执行任务,采用空间划分方法对待执行任务集进行划分,获取第一任务子集,其中,第一任务子集包括至少一个待执行任务,空间划分方法用于对由待执行任务的属性参数所映射的高维度空间进行划分,以获取待执行任务在空间上的不同排列组合,进一步,根据第一任务子集的调度特征及预先训练好的可调度性判定模型,获取可调度性判定结果,可调度性判定结果用于表示第一任务子集能否在单核处理器上按照最早截止时间优先edf算法被调度。

本发明所提供的方法的有益效果在于:

利用预先训练好的能够预测任务集能否在单核处理器上按照edf算法被调度的可调度性判定模型,进行可调度性判定,提高了可调度性判定结果的准确度。另外,对待执行任务集对应的第一任务子集进行可调度性判定,还能够在完整的待执行任务集无法被调度时,提供决策依据。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的基于深度学习的edf可调度性判定方法实施例一的流程示意图;

图2为本发明提供的基于深度学习的edf可调度性判定方法实施例二的流程示意图;

图3为本发明提供的基于深度学习的edf可调度性判定方法实施例三的流程示意图;

图4为本发明提供的基于深度学习的edf可调度性判定装置实施一的结构示意图;

图5为本发明提供的基于深度学习的edf可调度性判定装置实施二的结构示意图;

图6为本发明提供的基于深度学习的edf可调度性判定装置实施三的结构示意图;

图7为本发明提供的基于深度学习的edf可调度性判定装置实施例四的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明提供的基于深度学习的edf可调度性判定方法实施例一的流程示意图。本实施例提供的基于深度学习的edf可调度性判定方法可由基于深度学习的edf可调度性判定装置(以下简称为:可调度性判定装置)执行,该装置可以是处理器、计算机等设备,本发明不做限制。

如图1所示,本实施例的方法包括以下步骤:

s101、获取待执行任务集。

其中,待执行任务集包括至少一个周期性、且可抢占的待执行任务,即待执行任务具有周期性以及可抢占性。

可调度性判定装置获取当前实时系统中存在的周期性以及可抢占性的待执行任务。可调度性判定装置可周期性地向实时系统发送获取指令,以获取当前实时系统中存在的待执行任务,也可在实时系统中出现待执行任务时,由实时系统主动将待执行任务发送至可调度性判定装置。可调度性判定装置获取的待执行任务的数量可以是一个,也可以是多个。当待执行任务的数量为一个时,相应地,待执行任务集包括唯一的待执行任务。当待执行任务的数量为多个时,相应地,待执行任务集包括多个待执行任务。

需要说明的是,对于实时系统中出现的非周期性的任务,一般采用将其转换为周期性任务的方法进行调度,本发明中对于将非周期性的任务转换为周期性的任务的具体实现方式不做赘述。

s102、采用空间划分方法对待执行任务集进行划分,获取第一任务子集。

其中,第一任务子集包括至少一个待执行任务,空间划分方法用于对由待执行任务的属性参数所映射的高维度空间进行划分,以获取待执行任务在空间上的不同排列组合。

可选地,属性参数包括以下一项或多项:任务周期、相对截止时间以及最坏执行时间。

本步骤中,由待执行任务的属性参数所映射的高维度空间,即为由待执行任务集包括的所有待执行任务的任务周期、任务的相对截止时间以及任务的最坏执行时间中的一项或多项所映射的高维度空间。对上述高维度空间进行划分,得到多个相互独立的调度子空间,而每个子空间对应一个调度样本,该调度样本即为第一任务子集。

s103、根据第一任务子集的调度特征及预先训练好的可调度性判定模型,获取可调度性判定结果,其中,可调度性判定结果用于表示第一任务子集能否在单核处理器上按照edf算法被调度。

具体地,调度特征是根据实时系统中,任务集在单核处理器上按照edf算法被调度时的行为信息和属性信息得到的,且调度特征与实时系统中任务集的可调度性判定结果具有高度相关性。可选地,调度特征可以但不限于为以下一种或多种:中央处理器(centralprocessingunit,简称:cpu)利用率、密度、优劣程度、截止率、执行率、调度率、有效调度率、被抢占率、有效被抢占率、空闲率、有效空闲率、超周期负载率、同步忙周期负载率、特殊时间段负载率。后续实施例中会对任务集的调度特征进行详细介绍。

另外,本步骤中所采用的预先训练好的可调度性判定模型是一种基于数据驱动的可调度性分析模型,该可调度性判定模型是采用深度学习方法,通过大量样本进行训练,学习edf算法中以最早截止时间优先为基础的实时任务集动态调度过程,所得到的。一种可能的实现方式中,本实施例中,预先训练好的可调度性判定模型是通过大量训练样本,对深度神经网络(deepneuralnetworks,简称:dnn)模型进行训练得到的。

在实际应用过程中,以第一任务子集的调度特征所构成的向量为可调度判定模型的输入,第一任务子集对应的可调度性判定结果为可调度性判定模型的输出。利用可调度性判定模型进行可调度性判定,所得到的可调度性判定结果的准确度较高。

本实施例中,首先,获取待执行任务集,接着,采用空间划分方法对待执行任务集进行划分,获取第一任务子集,根据第一任务子集的调度特征及预先训练好的可调度性判定模型,获取可调度性判定结果,可调度性判定结果用于表示第一任务子集能否在单核处理器上按照edf算法被调度。

本实施例所提供的方法的有益效果在于:利用预先训练好的能够预测任务集能否在单核处理器上按照edf算法被调度的可调度性判定模型,进行可调度性判定,提高了可调度性判定结果的准确度。另外,对待执行任务集对应的第一任务子集进行可调度性判定,还能够在完整的待执行任务集无法被调度时,提供决策依据。

在图1所示实施例的基础上,当完整的待执行任务集无法被调度时,还可包括以下步骤:

根据可调度性判定结果,将可在单核处理器上按照edf算法被调度,且待执行任务数量最多的第一任务子集确定为目标任务子集,以使单核处理器按照edf算法调度目标任务子集中各待执行任务。

具体地,可调度性判定装置可根据所有第一任务子集的可调度性判定结果灵活地选择可被调度的第一任务子集作为目标任务子集,以使单核处理器按照edf算法调度该目标任务子集中的各个待执行任务。

优选地,将可在单核处理器上按照edf算法被调度的第一任务子集中,待执行任务数量最多的第一任务子集确定为目标任务子集,也就是说,目标任务子集为可被调度的第一任务子集中的其中一个。其中,若可在单核处理器上按照edf算法被调度的第一任务子集,待执行任务数量最多的第一任务子集唯一时,则将该唯一满足条件的第一任务子集确定为目标任务子集;若可在单核处理器上按照edf算法被调度的第一任务子集中,待执行任务数量最多的第一任务子集为多个时,则其中任意一个均可确定为目标任务子集。

可调度性判定装置可根据可调度性判定结果灵活的选择合适的第一任务子集作为目标任务子集,提高了调度的灵活性,以及提高了任务被调度的概率。

进一步地,在图1所示实施例的基础上,步骤s102可通过以下方式实现:以待执行任务集包括m个所述待执行任务为例进行说明,其中,m为大于0的整数;

对m个所述待执行任务进行全排列,获取个第一任务子集。其中,表示从m个待执行任务中选取i个进行排列组合所得到的第一任务子集的个数,i为大于0的整数,x为对m个待执行任务进行全排列得到的第一任务子集的个数,x为大于1的整数。

该待执行任务集用集合的方式表示为sm={α1,...αb,...αm},其中αb表示第b个周期性、可抢占的待执行任务,m为大于0的整数,b为大于0的整数。

首先,将待执行任务集sm={α1,...αb,...αm}映射到调度空间上,形成一个由各待执行任务的属性参数构成的3×m维调度空间z,其中,调度空间z可用公式(1)表示:

z=[[c1,d1,t1]t,...,[cb,db,tb]t,...,[cm,dm,tm]t],z∈r3×m公式(1)

其中,c为任务的最坏执行时间,d为任务的相对截止时间,t为任务周期,且该待执行任务集中各待执行任务的属性参数的值都不相同。

然后,对调度空间中的m个待执行任务进行全排列,从而,将该高维度的调度空间z划分为个由第一任务子集构成的相互独立的调度子空间即得到个第一任务子集。

其中,表示第一任务子集,通过在待执行任务集sm中任取i个待执行任务按照优先级降序排序所得到的,k表示该第一任务子集的编号,这里,x表示第一任务子集的个数。

接下来,通过一具体实施例详细介绍图1所示实施例中所采用的预先训练好的可调度性判定模型是如何获取的。

图2为本发明提供的基于深度学习的edf可调度性判定方法实施例二流程示意图。如图2所示,本实施例所示的方法包括:

s201、获取任务集,其中,任务集包括至少一个任务。

在步骤s201中获取的任务集包括实时系统中会出现的所有任务,这些任务均具有周期性以及可抢占性。

s202、采用空间划分方法对任务集进行划分,获取第二任务子集。

其中,第二任务子集携带有可调度性判定标签,可调度性标签用于表示第二任务子集能否在单核处理器上按照edf算法被调度,第二任务子集包括至少一个任务。

本步骤的目的在于:构建海量训练样本,以使dnn模型能够得到充分的学习。因此,通过对包括实时系统中会出现的所有任务的任务集进行空间划分,以获取数量庞大的第二任务子集,第二任务子集即为dnn模型的训练样本。同时,还获取每个第二任务子集的可调度性判定标签。

第二任务子集的可调度性判定标签可根据现有技术中edf算法中的可调度性判定公式获取。

s203、根据第二任务子集的调度特征以及可调度性判定标签,对dnn模型进行训练,获取可调度性判定模型。

将由第二任务子集的调度特征构建的向量以及第二任务子集对应的可调度性判定标签作为dnn模型的输入,以使dnn模型进行深度学习。通过深度学习,不断调整深度神经网络模型的精度,从而得到可以准确识别和预测任务集能否在单核处理器上按照edf算法被调度的可调度性判定模型。

本实施例中,首先,获取任务集,之后,采用空间划分方法对任务集进行划分,获取第二任务子集,其中,第二任务子集携带有表示第二任务子集能否在单核处理器上按照edf算法被调度的可调度性判定标签,进一步,再根据第二任务子集的调度特征以及可调度性判定标签,对dnn模型进行训练,获取可调度性判定模型。本实施例中的方法通过将以推导数学表达式、构建形式化的可调度性判定条件为研究的传统调度算法和以训练样本、识别模式为目的的深度学习方法有机结合起来,得到准确度较高的可调度性判定模型。

利用上述可调度性判定模型对待执行任务集进行可调度性判定,不仅能够提高可调度性判定结果的准确度。另外,还能够在完整的待执行任务集无法被调度时,提供决策依据,从而提高实时系统调度的灵活性以及任务被调度的概率。

图3为本发明提供的基于深度学习的edf可调度性判定方法实施例三的流程示意图。图3所示实施例用于详细说明调度特征是如何获取的。图3所示实施例中的方法可以在图1、图2所示实施例之前执行。

如图3所示,本实施例的方法包括:

s301、根据任务在单核处理器上按照edf算法被调度时的行为信息和属性信息,构建第一调度特征集合,其中,第一调度特征集合包括至少一个第一调度特征。

本步骤中,主要是通过观察和分析任务集在单核处理器上按照edf算法被调度时的行为和属性,采用常量特征和变量特征、一阶特征和多阶特征、宏观特征和微观特征、动态特征和静态特征等手段,从原始调度数据中辨识出可刻画主要矛盾的、具有物理意义的调度数据,根据辨识出的调度数据建立第一调度特征集合。

s302、根据预设条件,在第一调度特征集合包括的至少一个第一调度特征中选择第二调度特征。

本步骤的目的在于,从第一调度特征集合中选择出能够使可调度判定模型获得最好性能的第一调度特征,作为第二调度特征。第二调度特征可以为多个,也可以为一个,第二调度特征需满足与可调度性判定结果相关性强,第一调度特征之间相关性弱的特性。实际上,第二调度特征为满足预设条件的第一调度特征。

s303、对第二调度特征进行数据处理,获取调度特征。

通常情况下,第二调度特征具有高维特性,为了减少计算量,需要对第二调度特征进行数据处理。

具体地,通过对第二调度特征进行过滤和去噪等处理,从而获得处理后的第二调度特征,其中,处理后的第二调度特征具有更高可调度性判定准确度,且具有低维特性。将处理后的第二调度特征,作为用于表征任务集可调度性判定的调度特征。

示例性地,调度特征可以包括:cpu利用率、密度、优劣程度、截止率、执行率、调度率、有效调度率、被抢占率、有效被抢占率、空闲率、有效空闲率、超周期负载率、同步忙周期负载率、特殊时间段负载率等,需要说明的是,上述调度特征均表示任务集的调度特征。

下面对任务集的调度特征进行详细解释:

假设任务集sn包括n个任务,其中,τi为任务集sn中的第i个任务,其中,n为大于0的整数,i为小于或等于n的整数,在以下详细介绍中,ci表示任务τi的最坏执行时间,di表示任务τi的相对截止时间,ti表示任务τi的任务周期。

sn的cpu资源利用率:表示sn中各任务的cpu资源利用率之和,记为u(sn),任务集的cpu资源利用率越大,越不容易被调度。

其中,ui表示τi的cpu资源利用率,是指τi的最坏执行时间和周期的比值,ui用以描述任务使用cpu资源利用率的情况,ui越大,任务cpu的资源利用率越高,该任务越难被调度。

sn的密度:表示sn中各任务的密度之和,记为δ(sn),任务集的密度越大,越不容易被调度。

其中,δi表示τi的任务密度,是指τi的最坏执行时间和最坏截止时间的比值,用以描述任务的执行时间在相对截止时间内的疏密程度,δi越大,说明该任务越难被调度。

sn的优劣程度:表示sn中优质任务个数与任务总数的比值,记为φ(sn),其中nφii表示优质任务个数,n表示sn中任务的总数。当φ(sn)≥φii时,sn被称为是优质任务集,否则,被称为是劣质任务集。这里φii被初始化为50%。当任务集中优质任务个数越多,该任务集越容易被调度。也就是说,任务集的优劣程度即为任务集被调度难易程度。

其中,任务是否为优质任务,可通过以下方式判定:

φi表示τi的优劣程度,当φi>φi时,τi被称为优任务,当φi<φi时,τi被称为劣任务。φi表示预先设定的阈值,被作为衡量任务质量的指标。所谓优质任务是指在一个周期内,任务的最坏执行时间相对较短但相对截止时间和周期都较长,使任务有足够的时间执行完,越优质的任务越容易被调度,任务的优劣程度的任务的固有属性。

sn的截止率:表示sn中各任务在其超周期内的最大绝对截止时间和超周期的比值,记为q(sn),其中,di(tlcm(sn))表示任务τi在超周期tlcm(sn)内最后一次调度的绝对截止时间,di(tlcm(sn))=tlcm(sn)-ti+di。当任务集的截止率越大,任务集被限制越小,越容易被调度,任务集的超周期tlcm(sn)表示任务集中个任务周期的最小公倍数。

sn的执行率:表示sn中各任务在其超周期内总的执行时间和最后完成时间的比值,记为j(sn),其中,这里,ri(tlcm(sn))表示任务τi在超周期tlcm(sn)内最后一次调度的最坏响应时间,ri(tlcm(sn))=tlcm(sn)-ti+ri(sn)。当任务集的执行率越大,任务集执行的程度越高,越容易被调度。

sn的调度率:表示sn中各任务在其超周期内的最后完成时间和超周期的比值,记为f(sn),其中当任务集的调度率越大,任务集被调度的可能性越小,越难被调度。

sn的有效调度率:表示sn中各任务在其超周期内的最后完成时间和最大截止时间的比值,记为ef(sn),其中,当任务集的有效调度率越大,任务集被调度时超时的可能性越大,越难被调度。

sn的被抢占率:表示sn中各任务的被抢占率的最大值,记为z(sn),其中当任务集的被抢占率越大,任务集中任务相互影响越大,越难被调度。

其中,zi表示τi在sn中的被抢占率,是指sn中的τi在执行结束时被抢占的最大时间和周期的比值,其中,任务在执行结束时被抢占的最大时间等于任务的最坏响应时间ri与任务的最坏执行时间ci的差值,那么,任务的被抢占率zi用以描述任务在周期内被抢占的程度,zi越大,任务被在周期内其他任务影响程度越高,越难被调度。

sn的有效被抢占率:表示sn中各任务的有效被抢占率的最大值,记为ez(sn),其中,当任务集的有效被抢占率越大,任务集中任务相互影响越大,越难被调度。

其中,ezi(sn)表示τi在sn中的有效被抢占率,是指sn中的τi在执行结束时被抢占的最大时间和相对截止时间的比值,其中,任务在执行结束时被抢占的最大时间等于任务的最坏响应时间ri与任务的最坏执行时间ci的差值,那么,任务的有效被抢占率ezi(sn)用以描述任务在相对截止时间内被抢占的程度,ezi(sn)越大,任务被在周期内其他任务影响程度越高,越难被调度。

sn的空闲率:表示sn中各任务的空闲率的最小值,记为b(sn),其中当任务集的空闲率越大,任务集中任务空闲程度越高,越容易被调度。

其中,bi(sn)表示τi在sn中的空闲率,是指sn中的τi在其相对截止时间内剩余时间和周期的比值,其中,sn中的τi在其相对截止时间内剩余时间等于任务的相对截止时间di与任务的最坏响应时间ri的差值,那么,任务的空闲率bi(sn)用以描述任务在周期内空闲程度,bi(sn)越大,任务被在周期内空闲程度越高,越容易被调度。

sn的有效空闲率:表示sn中各任务的空闲率的最小值,记为eb(sn),其中当任务集的有效空闲率越大,任务集在相对截止时间内的空闲程度越高,越容易被调度。

其中,ebi(sn)表示τi在sn中的有效空闲率,是指sn中的τi在其相对截止时间内的剩余时间和相对截止时间的比值,其中,sn中的τi在其相对截止时间内剩余时间等于任务的相对截止时间di与任务的最坏响应时间ri的差值,那么,用以描述任务在周期内空闲程度,越大,任务被在相对截止时间内空闲程度越高,越容易被调度。

sn的超周期负载率:表示sn在其超周期内的cpu负载和同步忙周期的比值,记为lf(tlcm(sn)),其中,tlcm(sn)表示任务集sn的超周期。

sn的同步忙周期负载率:表示sn在其同步忙周期内的cpu负载和同步忙周期的比值,记为lf(bl(sn)),bl(sn)表示sn的同步忙周期。

sn的特殊时间段负载率:表示sn在特殊时间段lmax(sn)内的cpu负载和该特殊时间段的比值,记为lf(lmax(sn)),lmax(sn)表示在判断任务集sn能否被edf算法调度时需要遍历一个时间范围上界。

本实施例中,首先根据任务在单核处理器上按照edf算法被调度时的行为信息和属性信息,构建第一调度特征集合,其中,第一调度特征集合包括至少一个第一调度特征,接着,根据预设条件,在第一调度特征集合包括的至少一个第一调度特征中选择第二调度特征,进一步,对第二调度特征进行数据处理,获取调度特征。通过本实施例所示的方法所获取的调度特征,与可调度性判定结果具有高度相关性,能够提高可调度性判定模型的准确度。

图4为本发明提供的基于深度学习的edf可调度性判定装置实施例一的结构示意图。如图4所示,该装置40包括:获取模块41、划分模块42和判定模块43。

其中,获取模块41,用于获取待执行任务集,其中,待执行任务集包括至少一个待执行任务。

划分模块42,用于采用空间划分方法对待执行任务集进行划分,获取第一任务子集,其中,第一任务子集包括至少一个待执行任务,空间划分方法表示对由待执行任务的属性参数所映射的高维度空间进行划分,获取待执行任务在空间上的不同排列组合。

判定模块43,用于根据第一任务子集的调度特征及预先训练好的可调度性判定模型,获取可调度性判定结果,其中,可调度性判定结果表示第一任务子集能否在单核处理器上按照edf算法被调度。

可选地,上述属性参数包括以下一项或多项:任务周期、相对截止时间以及最坏执行时间。

可选地,调度特征可以包括cpu利用率、密度、优劣程度、截止率、执行率、调度率、有效调度率、被抢占率、有效被抢占率、空闲率、有效空闲率、超周期负载率、同步忙周期负载率、特殊时间段负载率等。

本实施例所示的装置可用于执行图1所示的方法,其实现原理和技术效果类似,此处不再赘述。

可选地,待执行任务包括m个待执行任务,m为大于0的整数;

相应地,划分模块42,具体用于对m个待执行任务进行全排列,获取个第一任务子集,其中,表示从m个待执行任务中选取i个进行排列组合所得到的第一任务子集的个数,i为大于0的整数,x为对m个待执行任务进行全排列得到的第一任务子集的个数,x为大于1的整数。

在一些实施例中,该装置还可以包括:确定模块44。

其中,确定模块44,用于根据可调度性判定结果,将可在单核处理器上按照edf算法被调度,且待执行任务数量最多的所述第一任务子集确定为目标任务子集,以使单核处理器按照edf算法调度目标任务子集中各待执行任务。

图5为本发明提供的基于深度学习的edf可调度性判定装置实施例二的结构示意图。如图5所示,本实施例的装置50在图4所示实施例的基础上,还包括:训练模块45。

相应地,获取模块41,还用于获取任务集,其中,任务集包括至少一个任务。

划分模块42,还用于采用空间划分方法对任务集进行划分,获取第二任务子集,其中,第二任务子集携带有可调度性判定标签,可调度性判定标签用于表示第二任务子集能否在单核处理器上按照edf算法被调度,第二任务子集包括至少一个任务。

训练模块45,用于根据第二任务子集的调度特征以及可调度性判定标签,对dnn模型进行训练,获取可调度性判定模型。

本实施例所示的装置可用于执行图2所示实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。

图6为本发明提供的基于深度学习的edf可调度性判定装置实施例三的结构示意图。如图6所示,本实施例的装置60在图5所示实施例的基础上,还包括:提取模块46。

提取模块46,用于提取调度特征。

在一些实施例中,提取模块46包括:构建子模块461、选择子模块462以及处理子模块463。

构建子模块461,具体用于根据任务在单核处理器上按照edf算法被调度时的行为信息和属性信息,构建第一调度特征集合,其中,第一调度特征集合包括至少一个第一调度特征。

选择子模块462,具体用于根据预设条件,在第一调度特征集合包括的至少一个第一调度特征中选择第二调度特征。

处理子模块463,具体用于对第二调度特征进行数据处理,获取调度特征。

本实施例所示的装置可用于执行图3所示实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。

图7为本发明提供的基于深度学习的edf可调度性判定装置实施例四的结构示意图。如图7所示,本实施例所示的装置70包括:存储器71、处理器72。

存储器71可以是独立的物理单元,与处理器72可以通过总线53连接。存储器71、处理器72也可以集成在一起,通过硬件实现等。

存储器71用于存储实现以上方法实施例,处理器72调用该程序,执行以上方法实施例的操作。

可选地,当上述实施例的方法中的部分或全部通过软件实现时,上述装置70也可以只包括处理器72。用于存储程序的存储器71位于装置70之外,处理器72通过电路/电线与存储器连接,用于读取并执行存储器中存储的程序。

处理器72可以是中央处理器(centralprocessingunit,cpu),网络处理器(networkprocessor,np)或者cpu和np的组合。

处理器72还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。

存储器71可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);存储器也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器还可以包括上述种类的存储器的组合。

本发明还提供一种程序产品,例如,计算机存储介质,包括:程序,程序在被处理器执行时用于执行以上方法。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

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

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