目录
1、报警器
AUTOSAR操作系统提供了处理重复性事件的服务。反复出现的事件由专用的计数器来记录。在计数器基础上,AUTOSAR操作系统为应用软件提供了报警机制。当一个报警器到期时,AUTOSAR操作系统会提供激活任务、设置事件服务或者调用一个报警回调函数,该报警回调函数是应用程序提供的一个快捷函数。
计数器的值可以定义为实际计数器值的一个相对值(相对报警)或者一个绝对值(绝对报警)。报警可以被设置为单报警或者周期性报警。同时,操作系统将会提供取消报警和得到报警当前状态的服务,多个报警器也可以链接在同一个计数器上。
在系统生成时,一个报警被静态分配给一个计数器或是一项任务或是一个报警回调程序。根据配置的不同,当报警到期时,报警回调程序被调用,或是任务被激活,或是事件被设置。报警回调程序禁止与二类中断一起运行。
计数器和报警都是静态定义的,分配给计数器的报警,以及当报警到期时采取的行为也是静态定义的,但是报警对应的计数器值和循环报警的周期是动态参数。
2、SPINLOCK
多核处理器具备更多的计算资源同时也给编程带来了诸多问题,其中一个重要问题就是不同CPU对全局变量操作的互斥问题,这极大影响了系统调度CPU并发挥全部CPU的效能,其中Spinlock作为一种轻量级的互斥手段,被广泛运用于多核处理器系统中。Splinlock是一种简单的互斥机制,如果竞争互斥锁失败,它采取死等的方式自旋,免去任务调度的繁重操作。
3、多核OS
在多核操作系统的软件开发中,多核操作系统的配置对多核处理器的系统性能有直接的影响,若多核操作系统设计不当,多核处理器高并发性的优势会被抹杀。
当前,大多数的应用程序仍然是基于串行方式去编写代码,为了适应多核计算资源,使用并行编译技术。多核操作系统中的任务调度是并行编译中运行程序的关键步骤,任务调度的目标是充分利用处理器内部的每一个核心,使处理器上执行总体程序的时间最短,提高吞吐率。在多核操作系统中,操作系统的目标是允许多个任务在多个处理器内核上运行,为了充分利用这些处理器内核,必须保证分配到各个处理器内核上的用户程序具有一个很好的负载均衡,否则可能会出现一个内核在运行而另一些内核处于空闲状态的情况,而实际的处理器效率却以任务较重的处理内核为准,这使得多核处理器的并行优势无法发挥出来。
操作系统为了充分利用多核处理器中数量不断增长的处理内核,应用程序的任务以及运行实体个数比单核处理器增加了很多,同时多核处理器也使得并行系统的处理器体系架构变得异常复杂。