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服务的应用
