AUTOSAR操作系统 - 九大关键概念
一. 操作系统任务
1. 任务分类
A. 用户任务:基本任务/扩展任务
B. 系统任务:空闲任务(优先级最低,执行时间可衡量CPU负载率)
2. 任务状态
A. 基本任务:运行、就绪、挂起
B. 扩展任务:运行、就绪、挂起、等待
3. 任务与处理器资源
基本任务释放处理器资源的情况:
A. 该任务运行结束时;
B. 操作系统切换到更高优先级的任务时;
C. 发生了一个中断,处理器切换到该中断对应的中断服务程序时;
扩展任务:
D. 等待状态下也会释放处理器资源;(WaitEvent/ClearEvent)
二. 任务的调度策略(Scheduling Policy)
OS的任务调度是基于优先级的。
调度策略:
1. 非抢占式;
2. 完全抢占式;
3. 混合抢占式;
三. 计数器与报警器
处理重复事件的服务:基于计数器与报警器来实现的。
反复出现的事件由特定的计数器来记录。在计数器的基础上,AUTOSAR OS向应用软件提供了报警机制。多个报警器可以连接到同一个计数器。当到达报警器相对应的计数器设定值时,可激活一个任务、设置一个事件或调用一个回调函数。
绝对报警器:实际计数器值的绝对值;
相对报警器:实际计数器值的相对值;
四. 调度表
每个报警器只能激活一个任务或者设置一个事件,需要定义多个报警器来实现在同一时刻激活多个任务或者设置多个事件。
终结点(Expiry Point)
持续时间(Duration):Tick
偏移量(Offset):以Tick为单位的距离调度表起始点的偏移量。
在每个终结点可以进行一个乃至多个激活任务或设置事件的操作;
调度表由计数器驱动,有两种运行模式:
A. 单次执行:每个终结点只处理一次;
B. 重复执行:以调度表的持续时间为周期,周期性地被处理;
五. 中断处理
两类中断服务程序(ISR):
1. 一类中断:不能使用操作系统的服务,中断不会影响系统对任务的管理;
2. 二类中断:可以使用一部分操作系统提供的服务,如激活任务、设置事件等;
任务的优先级低于中断的优先级。
六. 资源管理
资源管理被用来协调有着不同优先级的多个任务对共享资源(如内存或硬件等)的并发访问。
优先级上限协议:访问资源时将优先级提高。
以避免优先级倒置和死锁问题的发生。
七. 自旋锁(Spin Lock)
自旋锁是一种为保护共享资源而提出的锁机制,一般用于多核处理器解决资源互斥问题。
八. 一致类(Conformance Class)
基础一致类:
1. BCC1: 每个优先级只有一个任务,基本任务的激活数只能为一次,仅支持基本任务;
2. BCC2: 每个优先级可有多个任务,基本任务的激活数可为多次,仅支持基本任务;
扩展一致类:
1. ECC1: 每个优先级只有一个任务,基本任务的激活数只能为一次,支持基本任务和扩展任务;
2. ECC2:每个优先级可有多个任务,基本任务的激活数可为多次,支持基本任务和扩展任务;
九. 可扩展性等级(Scalability Class)
SC1: 在OSEK OS基础上加入调度表;(堆栈监控)
SC2:在SC1基础上加入时间保护;
SC3:在SC1基础上加入存储保护;
SC4:在SC1基础上加入时间保护和存储保护;(多核通信IOC)