1 中断
1.1 中断
中断没什么说的,发生中断保存上下文,跳到相应的中断执行中断服务程序,执行完毕跳出来。但是对于不同的系统,对于中断跳出后的点是不一样的。
- 前后台系统,中断回到后台程序
- 不可剥夺内核系统,中断回到被中断了的任务
- 可剥夺系统,中断选取任务就绪表中优先级最高的任务执行
1.2 中断延迟
中断延迟对于实时内核来说是一项重要指标,表示着中断被关了多长时间。所有实时系统在执行临界区代码段都要关中断,执行完之后再打开中断。这段时间就是中断延迟。
中断延迟 = 关中断的最长时间 + 开始执行中断服务子程序的第一条指令的时间
1.3 中断响应
中断响应定义为从中断发生到开始执行用户的中断服务子程序代码来处理这个中断的时间。中断响应时间包括开始处理这个中断前的全部开销。典型地,执行用户代码之前要保护现场,将 CPU 的各寄存器推入堆栈。这段时间将被记作中断响应时间。不同系统内核的中断响应时间不同。
- 前后台系统中断响应时间 = 中断延迟 + 保存CPU内部寄存器的时间
- 不可剥夺型内核响应时间 = 中断延迟 + 保存CPU内部寄存器的时间
- 可剥夺型内核响应时间 = 中断延迟 + 保存CPU内部寄存器的时间 + 内核进入中断服务函数的执行时间
中断响应时间是以最坏情况下的中断响应时间为准。比如某系统100次里有99次都是50us内响应,只有一次是250us响应的,中断响应时间按照250us来算。
1.4 中断恢复
中断恢复时间定义为微处理器返回到被中断了的程序代码所需要的时间。在前后