OSEK 操作系统的基本概念

1 OSEK/VDX标准:实时操作系统(OSEK OS),通讯子系统(OSEK-COM),网络管理系统(OSEK-NM)。

2 OSEK是静态的操作系统,不支持在运行过程中动态改变,不需要进行动态的内存管理。

3 OSEK OS中重要的资源包括任务,时间,中断。

OSEK定义了三种处理层次:中断,调度器,任务。调度器分为非抢占式,全抢占式,混合抢占式;其实任务包括基本任务和扩展任务;优先级遵守上图所示。

1)任务分类

BCC1:基本任务,所有任务有不同的优先级,每个任务仅仅可以激活一个需求。

BCC2:BCC1+每个优先级可以实现多个任务,多任务的需求激活被允许。

ECC1:BCC1+扩展任务。

ECC2:ECC1+每个优先级可以实现多个任务,多任务的需求激活被允许。

2)任务的状态机

扩展任务状态机:Running State运行结束之后,会跳到Suspended State;Running State 被高优先级的task打断之后,进入 Ready State;Running /waiting/ready state 转换通过系统的EVENT实现。

基本任务状态机:Running State运行结束之后,会跳到Suspended State;Running State 被高优先级的task打断之后,进入 Ready State。

3)中断类型

ISR 1 : 这个类型中断不支持操作系统的服务。

ISR 2:这个类型的中断支持操作心态的服务,调用API。

4)EVENT 机制

该机制是同步,提供扩展任务状态机转换的条件(wait和release)。

5)Resource 管理

A)两个task在同一时间不能占用相同的资源。

B) 优先级不能翻转。

C) 死锁不能发生。

D)在等待的状态访问资源是没有结果。

6)天花板协议可以解决资源翻转和死锁的问题

A) Task T1和Task T4占用相同的信号S1,T4先执行,由于T1的优先级比T4高,T4进入ready 状态,T1进行running状态,由于T1获取S1时被拒,T1会进入waiting状态,直到T4执行完成之后,释放S1之后,T1才会被执行,这样就造成了task的优先级翻转。

B)Task T1获取S1,等待event触发,在此期间T2获取S2,T1的event发生了,T1获取S2被拒,T1进入waiting状态,T2获取S1被拒,T2也进入waiting状态,T1和T2产生死锁结果。

C)天花板协议:在系统初始化之后,每个资源都拥有静态的天花板优先级,天花板优先级比所有的task优先级都高,如果task获取了一个资源,这个task的优先级上升到这个资源的优先级,在系统中运行,当这个task释放了该资源时,优先级会复位到本身的task的初始化定义的优先级。

7) 系统启动流程

8)API服务的应用

经验分享 程序员 微信小程序 职场和发展