智能汽车操作系统的任务调度方法、装置、设备及介质与流程

文档序号:36258649发布日期:2023-12-05 11:27阅读:49来源:国知局
智能汽车操作系统的任务调度方法与流程

本说明书涉及操作系统,尤其涉及一种智能汽车操作系统的任务调度方法、装置、设备及介质。


背景技术:

1、自动驾驶系统作为智能汽车操作系统的子系统,环境信息获取和智能决策控制等驾驶任务是其关键环节,具有极强的执行确定性要求。但在实际产品开发过程中受到硬件资源的限制,驾驶任务通常运行在高负载场景之下,由于内存、cpu等资源竞争等问题导致自动驾驶任务的运行出现不可避免的抖动,甚至出现任务执行超时,任务执行帧率下降等异常情况,从而导致自动驾驶系统无法按预期工作,极端情况甚至会带来车辆行驶安全的风险。

2、目前该部分能力通常由中间件进行支持,通过提供接口或配置文件支持自动驾驶任务的开发者对任务执行线程的调度策略进行配置,从而实现自动驾驶系统的关键任务能够优先获得系统资源,降低其执行抖动。然而,目前的中间件产品通常只提供了接口或配置能力对任务的调度策略进行配置,通过不断迭代调整获取满足确定性需求的调度策略。调试难度较高,其实际效果很大程度依赖开发者的经验。因此,无法保证自动驾驶任务的运行确定性。


技术实现思路

1、本说明书实施例提供了一种智能汽车操作系统的任务调度方法、装置、设备及介质,用以解决现有技术对自动驾驶任务的调度策略的配置方式无法保证自动驾驶任务的运行确定性的技术问题。

2、第一方面,本说明书实施例提供了一种智能汽车操作系统的任务调度方法,包括:获取自动驾驶系统的m个任务依赖链条,每个所述任务依赖链条上包括存在依赖关系的多个驾驶任务,所述自动驾驶系统为所述智能汽车操作系统的子系统,m为大于1的整数;通过编排工具对所述m个任务依赖链条上驾驶任务的调度策略进行静态编排,得到策略描述配置文件,所述策略描述配置文件用于描述所述自动驾驶系统中驾驶任务的调度策略;在所述自动驾驶系统的运行阶段,根据所述策略描述配置文件调度所述自动驾驶系统中驾驶任务,以使所述自动驾驶系统中驾驶任务按照预先静态编排的调度策略执行。

3、可选地,所述通过编排工具对所述m个任务依赖链条上驾驶任务的调度策略进行静态编排,得到策略描述配置文件,包括通过所述编排工具执行的如下步骤:根据所述m个任务依赖链条上每个驾驶任务的最坏执行时间和执行周期,对所述m个任务依赖链条上的驾驶任务进行分组为n个任务组,n为大于1的整数;根据所述n个任务组中每个任务组的第一最坏执行时间总时长和第一参考周期,将所述n个任务组分别编排到对应的cpu内核;根据编排结果生成并输出所述策略描述配置文件。

4、可选地,所述根据所述m个任务依赖链条上每个驾驶任务的最坏执行时间和执行周期,对所述m个任务依赖链条上的驾驶任务进行分组为n个任务组,包括:从所述m个任务依赖链条获取当前待编排的目标驾驶任务;根据所述目标驾驶任务的最坏执行时间和执行周期,将所述目标驾驶任务编排到一个任务组,以使该任务组的第一最坏执行时间总时长不超过该任务组的第一参考周期。

5、可选地,所述根据所述目标驾驶任务的最坏执行时间和执行周期,将所述目标驾驶任务编排到一个任务组,以使该任务组的第一最坏执行时间总时长不超过该任务组的第一参考周期,包括:确定当前任务组内已有驾驶任务和所述目标驾驶任务的第一最坏执行时间总时长;根据当前任务组内已有驾驶任务和所述目标驾驶任务中每个驾驶任务的执行周期,确定所述当前任务组的第一参考周期;如果所述当前任务组的第一最坏执行时间总时长不大于所述当前任务组的第一参考周期,将所述目标驾驶任务编排到所述当前任务组;如果所述当前任务组的第一最坏执行时间总时长大于所述当前任务组的第一参考周期,完成向所述当前任务组的驾驶任务编排,并将所述目标驾驶任务编排到新开的任务组。

6、可选地,在所述完成向所述当前任务组的驾驶任务编排之后,还包括:如果所述当前任务组中包含融合节点任务,获取与所述当前任务组包含相同融合节点任务的参照任务组;比对所述当前任务组的第一参考周期与所述参照任务组的第一参考周期,确定出目标任务组,所述目标任务组为所述当前任务组与所述参照任务组中第一参考周期较大的任务组;删除所述目标任务组中所述融合节点任务。

7、可选地,所述从所述m个任务依赖链条获取当前待编排的目标驾驶任务,包括:将所述m个任务依赖链条分别作为待遍历的目标任务依赖链条;遍历所述目标任务依赖链条,将遍历到的驾驶任务依次确定为当前待编排的目标驾驶任务。

8、可选地,所述根据所述n个任务组中每个任务组的第一最坏执行时间总时长和第一参考周期,将所述m个任务组分别编排到对应的cpu内核,包括:从所述n个任务组中获取当前待编排的目标任务组;根据所述目标任务组的第一最坏执行时间总时长和第一参考周期将所述目标任务组编排到一个cpu内核,以使该cpu内核所需执行任务组的总算力不超过该cpu内核的算力上限。

9、可选地,所述根据所述目标任务组的第一最坏执行时间总时长和第一参考周期将所述目标任务组编排到一个cpu内核,以使该cpu内核所需执行任务组的总算力不超过该cpu内核的算力上限,包括:根据当前cpu内核已有任务组和所述目标任务组中每个任务组的第一最坏执行时间总时长,确定当前cpu内核对应的第二最坏执行时间总时长;根据当前cpu内核已有任务组和所述目标任务组中每个任务组的第一参考周期,确定出当前cpu内核对应的第二参考周期;如果所述当前cpu内核的第二最坏执行时间总时长不大于当前cpu内核对应的第二参考周期,将所述目标任务组编排到所述当前cpu内核;如果所述当前cpu内核的第二最坏执行时间总时长大于当前cpu内核对应的执行,完成向所述当前cpu内核的任务组编排,将所述目标任务组编排到一个未被编排任务组的cpu内核。

10、可选地,所述从所述n个任务组中获取当前待编排的目标任务组,包括:将所述n个任务组分别作为待遍历的目标任务组;遍历所述目标任务组,将遍历到的任务组依次确定为当前待编排的目标任务组。

11、可选地,所述获取自动驾驶系统的m个任务依赖链条,包括:获取任务拓扑数据,所述任务拓扑数据表征所述自动驾驶系统中不同驾驶任务之间的拓扑关系;根据所述任务拓扑数据,构建所述m个任务依赖链条。

12、可选地,所述根据所述策略描述配置文件调度所述自动驾驶系统中驾驶任务,包括:通过中间件加载所述策略描述配置文件,对所述自动驾驶系统的驾驶任务进行调度策略的配置;按照配置结果调度并执行所述自动驾驶系统中驾驶任务。

13、第二方面,本说明书实施例提供一种智能汽车操作系统的任务调度装置,包括:链条获取单元,用于获取自动驾驶系统的m个任务依赖链条,每个所述任务依赖链条上包括存在依赖关系的多个驾驶任务,所述自动驾驶系统为所述智能汽车操作系统的子系统,m为大于1的整数;静态编排单元,用于通过编排工具对所述m个任务依赖链条上驾驶任务的调度策略进行静态编排,得到策略描述配置文件,所述策略描述配置文件用于描述所述自动驾驶系统中驾驶任务的调度策略;配置执行单元,用于在所述自动驾驶系统的运行阶段,根据所述策略描述配置文件调度所述自动驾驶系统中驾驶任务,以使所述自动驾驶系统中驾驶任务按照预先静态编排的调度策略执行。

14、第三方面,本说明实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面任一实施方式所述的智能汽车操作系统的任务调度方法。

15、第四方面,本说明书实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面任一实施方式所述的智能汽车操作系统的任务调度方法。

16、本说明书实施例提供的一个或者多个技术方案,至少具有如下技术效果或者优点:

17、通过编排工具对智能汽车操作系统的自动驾驶系统中驾驶任务的调度策略预先进行静态编排并以此生成描述驾驶任务的调度策略的策略描述配置文件,以使在自动驾驶系统的运行阶段,能够通过加载该策略描述配置文件实现对驾驶任务的调度策略的配置。从而,在自动驾驶系统的运行时阶段,驾驶任务能够基于预先静态编排的调度策略执行,以此提升了自动驾驶系统的驾驶任务的运行确定性,减少了异常发生的概率。

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