1、中断处理
RTOS通常是基于反应机制的,系统需要作出响应的事件通常叫做中断。处理器一旦识别到中断,就会采取相关措施,执行响应该事件的指令。
大多数情况下,处理器在遇到中断之前正在执行某些指令或处于状态机的某一状态。一旦有中断产生,这些处理必须暂停,转而根据中断向量,执行相应的中断服务程序。当中断响应完成后,再继续原先的处理。大多数RTOS都提供了中断处理和应用程序规划及执行管理的功能。
中断处理过程通常包括如下操作:
l暂停当前正在执行的线程;
l保持该线程继续执行时需要的有关数据,也就是所谓的“压栈”;
l将控制权交给中断服务子程序(ISR);
l在ISR中执行一定的操作以决定需要采取哪些措施;
l提取/保存该中断相关的关键(引入的)数据;
l设置所需的与设备相关的(输出)值;
l确定当中断及相关处理引起环境变化时需要执行哪个线程;
l清除中断硬件及软件标志以允许/识别下一个中断;
l将控制转交给重新选择的线程;
l提取该线程上次中断时保持的环境数据,也就是所谓的“出栈”。
上述这些操作内容都属于中断处理,当然可能还有更多的操作,具体操作与RTOS相关。这些仅仅是实时性能的一个方面。
2、系统处理
实时操作系统并不仅限于响应中断。它们还必须规划并管理应用程序线程的执行。RTOS处理来自各线程的请求,执行规划、信息(信号量)传递、资源分配及很多其它服务。大多数情况下系统处理必须迅速执行,这样线程可以在下一中断产生时完成相关的操作。
系统处理尽管不属于中断处理,它也一项关键的实时响应,系统的成败关键取决于系统处理。
系统处理主要包括下列内容:
l规划未来事件发生时相应的任务或线程或状态机;
l在线程之间传递消息;
l从通用池内声明公用资源(包括变量和函数)。
系统处理的实现虽然比中断处理更多变,但在改善RTOS实时性能方面占据同等重要的地位。系统服务和中断处理一起实现RTOS要求的处理。