一种任务调度方法、任务调度系统、车辆电子控制单元及车辆与流程

文档序号:15142930发布日期:2018-08-10 20:06阅读:242来源:国知局
本公开的实施例涉及车辆
技术领域
,尤其涉及一种任务调度方法、任务调度系统及车辆。
背景技术
:现有ecu(electroniccontrolunit,电子控制单元)的任务调度一般可分为按照时间周期的调度以及按照优先级的调度,前者用于实时性要求不高的系统,例如多级反馈队列调度;后者用于实时性要求比较高的系统,例如osek(opensystemsandthecorrespondinginterfacesforautomotiveelectronics,汽车电子类开放系统和对应接口标准)/vdx(vehicledistributedexecutive,汽车分布式执行标准)操作系统或autosar(automotiveopensystemarchitecture,汽车开放系统架构)操作系统。目前,ecu的功能越来越多,代码量越来越大,涉及的接口越来越多,随着以太网、车辆网、双核等新技术的出现,ecu需要处理的网络数据也越来越多。技术实现要素:本公开的实施例提供一种任务调度方法、任务调度系统及车辆,以解决现有ecu的任务调度不够合理的问题。为解决上述技术问题,本公开的实施例是这样实现的:第一方面,本公开的实施例提供了一种任务调度方法,包括:获取车辆电子控制单元需要执行的任务的任务信息,所述任务信息包括任务的完成期限和任务占用的资源预算;结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序;其中,所述需要执行的任务包括:待执行任务和正在执行任务中的至少一项。在一些实施例中,所述需要执行的任务包括第一类型任务和第二类型任务,所述第一类型任务为资源预算大于或者等于第一阈值的任务,所述第二类型任务为资源预算小于所述第一阈值的任务;所述结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序的步骤,包括:对于第一类型任务和第二类型任务,结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序。在一些实施例中,所述对于第一类型任务和第二类型任务,结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序的步骤,包括:在待执行任务包括第一任务和第二任务,且所述第一任务为第一类型任务,所述第二任务为第二类型任务时,确定所述第二任务的完成期限是否允许所述第二任务在所述第一任务执行结束后执行;在确定为是时,控制所述第一任务在所述第二任务之前执行。在一些实施例中,在所述控制所述第一任务在所述第二任务之前执行的步骤之后,所述方法还包括:根据所述第一任务的执行时间,对所述第二任务的完成期限进行调整。在一些实施例中,所述对于第一类型任务和第二类型任务,结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序的步骤,包括:在正在执行任务包括第三任务,待执行任务包括第四任务,所述第三任务为第二类型任务,所述第四任务为第一类型任务,且所述第四任务的执行期限在所述第三任务的执行期限内时,确定所述第三任务的完成期限是否允许所述第三任务在所述第四任务执行结束后执行;在确定为是时,控制所述第三任务停止执行,并控制所述第四任务先于所述第三任务执行;在确定为否时,控制所述第三任务继续执行。在一些实施例中,在所述控制所述第三任务停止执行,并控制所述第四任务先于所述第三任务执行的步骤之后,所述方法还包括:根据所述第四任务的执行时间,对所述第三任务的完成期限进行调整。在一些实施例中,所述需要执行的任务包括第三类型任务,所述第三类型任务为实时任务;所述结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序的步骤,还包括:在待执行任务包括第五任务,且所述第五任务为第三类型任务时,在所述第五任务的执行时刻,执行所述第五任务。第二方面,本公开的实施例提供了一种任务调度系统,包括:任务信息获取模块,用于获取车辆电子控制单元需要执行的任务的任务信息,所述任务信息包括任务的完成期限和任务占用的资源预算;任务执行顺序确定模块,用于结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序;其中,所述需要执行的任务包括:待执行任务和正在执行任务中的至少一项。在一些实施例中,所述任务执行顺序确定模块具体用于:确定各任务的任务属性,所述任务属性包括第一类型任务和第二类型任务,所述第一类型任务为资源预算大于或者等于第一阈值的任务,所述第二类型任务为资源预算小于所述第一阈值的任务;对于第一类型任务和第二类型任务,结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序。在一些实施例中,所述任务执行顺序确定模块具体用于:在待执行任务包括第一任务和第二任务,且所述第一任务为第一类型任务,所述第二任务为第二类型任务时,确定所述第二任务的完成期限是否允许所述第二任务在所述第一任务执行结束后执行;在确定为是时,控制所述第一任务在所述第二任务之前执行。在一些实施例中,所述系统还包括:第一期限调整模块,用于根据所述第一任务的执行时间,对所述第二任务的完成期限进行调整。在一些实施例中,所述任务执行顺序确定模块具体用于:在正在执行任务包括第三任务,待执行任务包括第四任务,所述第三任务为第二类型任务,所述第四任务为第一类型任务,且所述第四任务的执行期限在所述第三任务的执行期限内时,确定所述第三任务的完成期限是否允许所述第三任务在所述第四任务执行结束后执行;在确定为是时,控制所述第三任务停止执行,并控制所述第四任务先于所述第三任务执行;在确定为否时,控制所述第三任务继续执行。在一些实施例中,所述系统还包括:第二期限调整模块,用于根据所述第四任务的执行时间,对所述第三任务的完成期限进行调整。在一些实施例中,所述任务执行顺序确定模块具体用于:在待执行任务包括任务属性为实时任务的第五任务时,在所述第五任务的执行时刻,执行所述第五任务。第三方面,本公开的实施例提供了一种车辆电子控制单元,包括处理器,存储器,存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任务调度方法的步骤。第四方面,本公开的实施例提供了一种车辆,包括上述任务调度系统或上述车辆电子控制单元。第五方面,本公开的实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任务调度方法的步骤。附图说明为了更清楚地说明本公开的实施例的技术方案,下面将对本公开的实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获取其他的附图。图1是一种任务调度方法的流程示意图;图2是三种任务调度示例;图3是一种任务调度系统的结构示意图;图4是另一种任务调度系统的结构示意图;图5是另一种任务调度系统的结构示意图;图6是一种车辆电子控制单元的结构示意图。具体实施方式下面将结合本公开的实施例中的附图,对本公开的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。如图1所示,一种任务调度方法,包括以下步骤:步骤101、获取车辆电子控制单元需要执行的任务的任务信息,所述任务信息包括任务的完成期限和任务占用的资源预算。步骤102、结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序。其中,所述需要执行的任务包括:待执行任务和正在执行任务中的至少一项。本公开的实施例通过任务调度系统实现,其中,任务调度系统可以理解为ecu调度系统。任何任务都设置有任务的完成期限,且任何任务在执行时均会占用一定的资源。其中,任务的完成期限可以理解为任务时间死限deadline;操作系统概念中,ram(random-accessmemory,随机存取存储器)、flash存储器、cpu(centralprocessingunit,中央处理器)、堆栈或外设接口等都可以理解为资源。现有的任务调度方法中,任务的执行顺序仅根据任务的优先级决定,优先级高的任务先执行,优先级低的任务后执行。例如,当占用资源预算较大的任务a在执行的过程中,产生一个优先级比任务a高的任务b时,按照现有的任务调度方法,任务调度系统会在任务a执行时停止任务a的执行,而优先执行任务b。由于任务a占用的资源预算较大,从而导致任务a切换到任务b时,操作系统的管理成本较大。另外,随着任务调度系统需要处理的任务越来越多,尤其是需要处理的网络数据越来越多,操作系统中的资源会愈加紧张。因此,仅根据任务的优先级实现任务的调度不够合理。本公开的实施例中,任务的执行顺序可以结合任务的完成期限和占用的资源预算进行确定。这样有助于使得ecu的任务调度更加合理,从而使ecu更好地适应于大量网络数据的处理。在本公开的实施例中,可以将需要执行的任务主要划分为三种任务类型:第一类型任务,所述第一类型任务为资源预算大于或者等于第一阈值的任务;第二类型任务,所述第二类型任务为资源预算小于所述第一阈值的任务;第三类型任务,所述第三类型任务为实时任务。其中,第一类型任务由于占用的资源预算较大,因此,第一类型任务也可以理解为资源型任务。需要说明的是,操作系统中,ram、flash存储器、cpu、堆栈或外设接口等都可以理解为资源,而其中cpu、ram等资源空间较为关键,因此,本公开的实施例可以重点考虑占用的cup预算,或者说同时考虑占用的ram预算,等等。在一些实施例中,如表1所示,对于第一类型任务,可以把资源分为cpu、ram/flash、io三种分类型,可以为每种分类型建立一个资源预算模型。任务id资源类型执行时间(ms)资源资源预算acpu1cpu10%cpubram/flash2ram、cpu2%cpu/8kramcio5io4%cpu表1资源预算模型在一些实施例中,所述结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序的步骤,包括:对于第一类型任务和第二类型任务,结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序。其具体的确定方式可以采用以下可选的实施方式。可选的,在待执行任务包括第一任务和第二任务,且所述第一任务为第一类型任务,所述第二任务为第二类型任务时,确定所述第二任务的完成期限是否允许所述第二任务在所述第一任务执行结束后执行;在确定为是时,控制所述第一任务在所述第二任务之前执行;在确定为否时,按照所述第一任务和所述第二任务完成期限的先后顺序确定各任务的执行顺序。本发明实施方式适用于对待执行任务的执行顺序的确定,本发明实施方式中,优先考虑了任务占用的资源预算在任务调度方面的重要性,能够更好地适应当前任务调度系统需要处理任务越来越多的发展趋势。在一些实施例中,在所述控制所述第一任务在所述第二任务之前执行的步骤之后,所述方法还包括:根据所述第一任务的执行时间,对所述第二任务的完成期限进行调整。本发明实施方式中,之所以对第二任务的完成期限进行调整,是考虑到第一任务的优先执行可能会对第二任务的完成期限带来变化,因此,需要根据第一任务的执行时间对第二任务的完成期限进行重新评估。在一些实施例中,所述对于第一类型任务和第二类型任务,结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序的步骤,包括:在正在执行任务包括第三任务,待执行任务包括第四任务,所述第三任务为第二类型任务,所述第四任务为第一类型任务,且所述第四任务的执行期限在所述第三任务的执行期限内时,确定所述第三任务的完成期限是否允许所述第三任务在所述第四任务执行结束后执行;在确定为是时,控制所述第三任务停止执行,并控制所述第四任务先于所述第三任务执行;在确定为否时,控制所述第三任务继续执行。本发明实施方式适用于对正在执行任务和待执行任务的执行顺序的确定,本发明实施方式中,优先考虑了任务占用的资源预算在任务调度方面的重要性,能够更好地适应当前任务调度系统需要处理任务越来越多的发展趋势。在一些实施例中,在所述控制所述第三任务停止执行,并控制所述第四任务先于所述第三任务执行的步骤之后,所述方法还包括:根据所述第四任务的执行时间,对所述第三任务的完成期限进行调整。本发明实施方式中,之所以对第三任务的完成期限进行调整,是考虑到第四任务的优先执行可能会对第三任务的完成期限带来变化,因此,需要根据第四任务的执行时间对第三任务的完成期限进行重新评估。本公开的实施例中涉及的第一任务、第二任务、第三任务和第四任务均不为实时任务。当待执行任务包括实时任务时,可以按照以下实施方式进行实施。在一些实施例中,所述需要执行的任务包括第三类型任务,所述第三类型任务为实时任务;所述结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序的步骤,还包括:在待执行任务包括第五任务,且所述第五任务为第三类型任务时,在所述第五任务的执行时刻,执行所述第五任务。这里,实时任务即为需要实时执行的任务,对于其他任务而言,其为优先级最高的任务。因此,本发明实施方式中,除了结合任务的完成期限和占用的资源预算之外,对于实时任务而言,为了确保实时任务的正常执行,在实时任务的执行时刻满足时,需要执行该实时任务。本公开的实施例通过对各任务的完成期限和各任务占用的资源预算进行综合考虑,以确定各任务的执行顺序。本公开的实施例在进行任务调度时,考虑了任务占用的资源预算,因此,能够使得ecu的任务调度更加合理,从而使ecu更好地适应于大量网络数据的处理。为了更好地理解本公开的实施例的技术方案,下面结合图2进行举例说明。如图2所示,任务t1代表第三类型任务,任务t2代表第一类型任务,任务t3代表第二类型任务。a:在时刻0,任务t3运行;b:在时刻2,异步事件任务t2开始满足运行条件;在时间点2,任务t3、任务t2重新评估并调整deadline;c:在时刻3,任务t1抢占任务t3运行;d:在时刻12,任务t1运行结束;e:在时刻12,任务t3继续运行;f:根据资源优先的调度,在时刻14,任务t2抢占任务t3运行;g:在时刻17,任务t2运行结束,任务t3重新评估并调整deadline;h:在时刻17,任务t3恢复运行。本公开的实施例通过对各任务划分任务属性,并结合各任务的完成期限和各任务占用的资源预算进行综合考虑,以确定各任务的执行顺序。本发明在进行任务调度时,考虑了任务占用的资源预算,因此,能够使得ecu的任务调度更加合理,从而使ecu更好地适应于大量网络数据的处理。如图3所示,一种任务调度系统300,包括:任务信息获取模块301,用于获取车辆电子控制单元需要执行的任务的任务信息,所述任务信息包括任务的完成期限和任务占用的资源预算;任务执行顺序确定模块302,用于结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序;其中,所述需要执行的任务包括:待执行任务和正在执行任务中的至少一项。在一些实施例中,所述任务执行顺序确定模块302具体用于:确定各任务的任务属性,所述任务属性包括第一类型任务和第二类型任务,所述第一类型任务为资源预算大于或者等于第一阈值的任务,所述第二类型任务为资源预算小于所述第一阈值的任务;对于第一类型任务和第二类型任务,结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序。在一些实施例中,所述任务执行顺序确定模块302具体用于:在待执行任务包括第一任务和第二任务,且所述第一任务为第一类型任务,所述第二任务为第二类型任务时,确定所述第二任务的完成期限是否允许所述第二任务在所述第一任务执行结束后执行;在确定为是时,控制所述第一任务在所述第二任务之前执行。在一些实施例中,如图4所示,任务调度系统300还包括:第一期限调整模块303,用于根据所述第一任务的执行时间,对所述第二任务的完成期限进行调整。在一些实施例中,所述任务执行顺序确定模块302具体用于:在正在执行任务包括第三任务,待执行任务包括第四任务,所述第三任务为第二类型任务,所述第四任务为第一类型任务,且所述第四任务的执行期限在所述第三任务的执行期限内时,确定所述第三任务的完成期限是否允许所述第三任务在所述第四任务执行结束后执行;在确定为是时,控制所述第三任务停止执行,并控制所述第四任务先于所述第三任务执行;在确定为否时,控制所述第三任务继续执行。在一些实施例中,如图5所示,任务调度系统300还包括:第二期限调整模块304,用于根据所述第四任务的执行时间,对所述第三任务的完成期限进行调整。在一些实施例中,所述任务执行顺序确定模块302具体用于:在待执行任务包括任务属性为实时任务的第五任务时,在所述第五任务的执行时刻,执行所述第五任务。本公开的实施例提供的任务调度系统300可以执行上述任一实施例提供的任务调度方法,其中的相关概念以及具体实施方式可以参考上述任一实施例提供的任务调度方法的描述,且达到相同的有益效果,在此不再赘述。如图6所示,一种车辆电子控制单元500包括存储器501、处理器502及存储在存储器501上并可在处理器502上运行的计算机程序;处理器502执行所述程序时实现:获取车辆电子控制单元需要执行的任务的任务信息,所述任务信息包括任务的完成期限和任务占用的资源预算;结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序;其中,所述需要执行的任务包括:待执行任务和正在执行任务中的至少一项。在图6中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器502代表的一个或多个处理器和存储器501代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。处理器502负责管理总线架构和通常的处理,存储器501可以存储处理器502在执行操作时所使用的数据。在一些实施例中,所述需要执行的任务包括第一类型任务和第二类型任务,所述第一类型任务为资源预算大于或者等于第一阈值的任务,所述第二类型任务为资源预算小于所述第一阈值的任务;处理器502在执行所述结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序的步骤时,包括:对于第一类型任务和第二类型任务,结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序。在一些实施例中,处理器502在执行所述对于第一类型任务和第二类型任务,结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序的步骤时,包括:在待执行任务包括第一任务和第二任务,且所述第一任务为第一类型任务,所述第二任务为第二类型任务时,确定所述第二任务的完成期限是否允许所述第二任务在所述第一任务执行结束后执行;在确定为是时,控制所述第一任务在所述第二任务之前执行。在一些实施例中,处理器502执行所述程序时还实现:根据所述第一任务的执行时间,对所述第二任务的完成期限进行调整。在一些实施例中,处理器502在执行所述对于第一类型任务和第二类型任务,结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序的步骤时,包括:在正在执行任务包括第三任务,待执行任务包括第四任务,所述第三任务为第二类型任务,所述第四任务为第一类型任务,且所述第四任务的执行期限在所述第三任务的执行期限内时,确定所述第三任务的完成期限是否允许所述第三任务在所述第四任务执行结束后执行;在确定为是时,控制所述第三任务停止执行,并控制所述第四任务先于所述第三任务执行;在确定为否时,控制所述第三任务继续执行。在一些实施例中,处理器502执行所述程序时还实现:根据所述第四任务的执行时间,对所述第三任务的完成期限进行调整。在一些实施例中,所述需要执行的任务包括第三类型任务,所述第三类型任务为实时任务;处理器502在执行所述结合各任务的完成期限和占用的资源预算,确定各任务的执行顺序的步骤时,还包括:在待执行任务包括第五任务,且所述第五任务为第三类型任务时,在所述第五任务的执行时刻,执行所述第五任务。另外,车辆电子控制单元500包括一些未示出的功能模块,在此不再赘述。本公开的实施例提供的车辆电子控制单元500可以执行上述任一实施例提供的任务调度方法,其中的相关概念以及具体实施方式可以参考上述任一实施例提供的任务调度方法的描述,且达到相同的有益效果,在此不再赘述。本公开的实施例还提供一种车辆,包括上述任一实施例提供的任务调度系统,或包括上述任一实施例提供的车辆电子控制单元,其中的相关概念以及具体实施方式可以参考上述任一实施例提供的任务调度系统或车辆电子控制单元的描述,且达到相同的有益效果,在此不再赘述。本公开的实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述任务调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1