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

一种基于自适应汽车开放系统架构标准的调度系统及其调度方法

文献发布时间:2023-06-19 11:02:01


一种基于自适应汽车开放系统架构标准的调度系统及其调度方法

技术领域

本发明涉及基于自适应汽车开放系统架构标准的调度系统,属于边缘计算领域。

背景技术

随着自动驾驶和智能网联技术的飞速发展,传统的AUTOSAR平台(ClassicalAutosar)已不能独立满足日益复杂的汽车电子控制功能需求。尤其是针对面向服务的架构开发以及使用高性能的处理器,Adaptive Autosar有着不可比拟的优势。众所周知,自动驾驶技术对进程或者线程调度有着严格的实时性要求,而像ROS/ROS2 这类产品,在进程或者线程调度上都会有明显的不稳定性和延迟性。因此通过在Adaptive Autosar中设计一个用户层的调度器,兼容不同OS,最终能够更好的支持Adaptive Autosar上自动驾驶功能的任务调度,满足相应的低延迟,确定性和实时性要求。

自动驾驶应用对操作系统的性能和稳定性有着较高的要求;尤其是基于Linux OS上开发的自动驾驶应用程序,是很难保证自动驾驶应用的稳定性,因为Linux OS并不是一个实时操作系统。

随着自动驾驶应用程序越来越复杂,对任务的实时性、稳定性的要求也越来越高。如果系统资源没有足够多的话,那么相应的对调度器设计也就提出较高的要求。众所周知操作系统中的调度是可以解决系统资源和运行任务的矛盾,一般像Linux OS,在kernel底层是有调度算法的,如RR ,FIFO ,CFS 这三种策略,但是这三种调度算法是以Linux线程作为调度的基本单位,同时kernel 底层中线程之间的切换也相对比较耗资源的。调度器为了能实现实时性功能,首先需要有优先级,优先级有不同的策略:抢占、RR、FIFO。使用FIFO方式的时候,会有可能某个任务出现异常的时候一直占用CPU,导致其它任务没有机会获得。

发明内容

发明目的:提供一种基于自适应汽车开放系统架构标准的调度系统及其调度方法,以解决上述问题。

技术方案:一种基于自适应汽车开放系统架构标准的调度系统,包括任务层单元、用户层单元和核心层单元;

任务层单元,包括用户任务和核心群配置,用户任务为用户运行需求,核心群配置分配用户任务进行管理;

用户层单元,包括线程池,空闲的线程池得到分配到用户任务进行运行;

核心层单元,包括CPU,与线程池绑定,运行分配来的用户任务。

根据本发明的一个方面,所述任务层单元分配任务列中的用户任务到空闲的线程池,用户任务开始运行,当任务列为全局队列,用户上的所有任务都会放在该全局队列上,任务列是二维数组,优先级作为索引,一个任务列作为索引的一组成员实现优先级任务先运行的功能,同时也实现核心群的功能。

根据本发明的一个方面,所述用户层单元将线程池当作用户层虚拟的CPU,以线程池为基础进行资源管理,即核心群配置用户任务绑定在线程池上,由于线程池与物理CPU一一对应,则用户任务绑定在设置的物理CPU上,任务列与核心群一一对应,将线程池当作用户层虚拟的CPU,以线程池为基础进行资源管理,即核心群配置用户任务绑定在线程池上,由于线程池与物理CPU一一对应,则用户任务绑定在设置的物理CPU上,任务列与核心群一一对应。

一种基于自适应汽车开放系统架构标准的调度方法,按照优先级以及资源配置管理用户任务,具体步骤包括:

步骤1、调度系统的成员函数创建工作池,会读取用户的配置文件调度器程序,该配置文件含有核心群,CPU设置,CPU绑定,优先级等配置信息;

步骤2、实例化一个线程池,接着调用经典线程池的成员函数绑定上下文,该函数会去获取一个任务的上下文,即工作脉络;

步骤3、在绑定上下文函数中,会用标准的标准穿行方式创建一个环线程,同时根据读取到的调度程序文件配置信息,去设置环线程属性,包括CPU设置,CPU绑定,RR调度策略、FIFO调度策略以及优先级等线程属性;

步骤4、该线程是个循环线程,如果处于空闲状态,线程会处于等待状态;如果调度器发现有任务,会唤醒相应的线程,或者把任务根据优先级放入对应的任务队列中,等待执行。

根据本发明的一个方面,为了能实现实时性功能,首先需要有优先级,优先级有不同的策略:抢占、RR、FIFO方式,使用FIFO方式,对此FIFO调度策略进行监测,做异常处理,避免当某个任务出现异常一直占用CPU,导致其它任务没有机会获得。

根据本发明的一个方面,要保证实时性,不仅仅要保证优先级,还需要配置资源,通过设置某个进程的核心群,绑定CPU、绑定中断以及CPU的亲合性设置,保证整个系统的实时性。

有益效果:本发明通过在用户层可以设计一个调度器,方便管理自动驾驶应用程序,同时保证其稳定性和低延迟性,同时用户任务切换相比内核线程切换的时候资源消耗比较小,通过对FIFO调度策略进行监测,做异常处理,避免当某个任务出现异常一直占用CPU,导致其它任务没有机会获得,通过设置某个进程的核心群,绑定CPU、中断以及CPU的亲合性设置,保证整个系统的实时性。

附图说明

图1是本发明的基于自适应汽车开放系统架构标准的调度方法的流程图。

图2是本发明的基于自适应汽车开放系统架构标准的全局队列调度系统框图。

图3是本发明的基于自适应汽车开放系统架构标准的核心群调度系统框图。

图4是本发明的基于自适应汽车开放系统架构标准的调度系统的运行图。

具体实施方式

实施例1

在用户层设计一个调度系统,因为用户层设计的调度系统可以通过静态配置策略和资源,以及方便管理用户任务。

在该实施例中,如图1所示,一种基于自适应汽车开放系统架构标准的调度系统,包括任务层单元、用户层单元和核心层单元;

任务层单元,包括用户任务和核心群配置,用户任务为用户运行需求,核心群配置分配用户任务进行管理;

用户层单元,包括线程池,空闲的线程池得到分配到用户任务进行运行;

核心层单元,包括CPU,与线程池绑定,运行分配来的用户任务。

如图2所示,在进一步的实施例中,1.在Linux平台上,运行的程序在用户层上是以进程的方式体现的,但是对于核心层单元来看只有线程的概念,而且核心层单元调度的最小单位是线程,因此可以在用户层创建一个线程池,绑定在某一个物理CPU上,包括物理上有4个CPU,那么就创建4个线程池,分别绑定在固定的CPU上,然后调度系统可以分配任务列中的用户任务给空闲的线程池上,用户任务紧接着开始运行;用户任务列是个全局队列,用户上所有的任务都会放在该全局队列上,然后调度系统会在全局队列任务列中取任务给空闲的线程池。

实施例2

在用户层设计一个调度系统,因为用户层设计的调度系统可以通过静态配置策略和资源,以及方便管理用户任务。

在该实施例中,如图1所示,一种基于自适应汽车开放系统架构标准的调度系统,包括任务层单元、用户层单元和核心层单元;

任务层单元,包括用户任务和核心群配置,用户任务为用户运行需求,核心群配置分配用户任务进行管理;

用户层单元,包括线程池,空闲的线程池得到分配到用户任务进行运行;

核心层单元,包括CPU,与线程池绑定,运行分配来的用户任务。

如图3所示,在进一步的实施例中,从核心层单元来看,物理CPU看到的仅仅是线程池,而对于应用任务来说,也是只能看线程池。因此从用户任务的角度看,可以把线程池当作一个用户层虚拟的CPU,进而可以以线程池为基础,进行资源管理,即核心群配置,包括核心群配置了用户任务绑定在某些线程池上,由于线程池是跟物理CPU一一对应的,那么其实也就绑定在设置的物理CPU上。这时候全局队列任务列不合适了,需要跟核心群对应,即有多少个核心群,就有多少个任务列,每个任务列就会对应一个核心群。任务列是个二维数组,优先级作为索引,一个任务列做为索引的一组成员,这样就可以实现优先级用户任务先运行的功能,同时也是实现了核心群的功能。

实施例3

在用户层设计一个调度系统,因为用户层设计的调度系统可以通过静态配置策略和资源,以及方便管理用户任务。

在该实施例中,如图1所示,一种基于自适应汽车开放系统架构标准的调度系统,包括任务层单元、用户层单元和核心层单元;

任务层单元,包括用户任务和核心群配置,用户任务为用户运行需求,核心群配置分配用户任务进行管理;

用户层单元,包括线程池,空闲的线程池得到分配到用户任务进行运行;

核心层单元,包括CPU,与线程池绑定,运行分配来的用户任务。

如图4所示,一种基于自适应汽车开放系统架构标准的调度方法,按照优先级以及资源配置管理用户任务,具体步骤包括:

步骤1、调度系统的成员函数创建工作池,会读取用户的配置文件调度器程序,该配置文件含有核心群,CPU设置,CPU绑定,优先级等配置信息;

步骤2、实例化一个线程池,接着调用经典线程池的成员函数绑定上下文,该函数会去获取一个任务的上下文,即工作脉络;

步骤3、在绑定上下文函数中,会用标准的标准穿行方式创建一个环线程,同时根据读取到的调度程序文件配置信息,去设置环线程属性,包括CPU设置,CPU绑定,RR调度策略、FIFO调度策略以及优先级等线程属性;

步骤4、该线程是个循环线程,如果处于空闲状态,线程会处于等待状态;如果调度器发现有任务,会唤醒相应的线程,或者把任务根据优先级放入对应的任务队列中,等待执行。

在进一步的实施例中,为了能实现实时性功能,首先需要有优先级,优先级有不同的策略:抢占、RR、FIFO方式,使用FIFO方式,对此FIFO调度策略进行监测,做异常处理,避免当某个任务出现异常一直占用CPU,导致其它任务没有机会获得。

在进一步的实施例中,要保证实时性,不仅仅要保证优先级,还需要配置资源,通过设置某个进程的核心群,绑定CPU、绑定中断以及CPU的亲合性设置,保证整个系统的实时性。

总之,本发明具有以下优点:

1、通过在用户层可以设计一个调度器,方便管理自动驾驶应用程序,同时保证其稳定性和低延迟性,同时用户任务切换相比内核线程切换的时候资源消耗比较小;

2、通过对FIFO调度策略进行监测,做异常处理,避免当某个任务出现异常一直占用CPU,导致其它任务没有机会获得;

3、通过设置某个进程的核心群,绑定CPU、中断以及CPU的亲合性设置,保证整个系统的实时性。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,用于通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。

相关技术
  • 一种基于自适应汽车开放系统架构标准的调度系统及其调度方法
  • 基于自适应平台汽车开放系统架构的数据可视化系统及方法
技术分类

06120112774535