中断是一种硬件机制,用于通知CPU有个异步事件发生了,中断一旦被识别,CPU保存部分(或全部)现场或全部寄存器的值,跳转到专门的子程序,称为中断服务子程序(ISR)中断服务子程序做事件处理,处理完成后,程序回到:
*在前后台系统中,程序回到后台程序
*对不可剥夺型内核而言,程序回到被中断了的任务
*对可剥夺型内核而言,让进入就绪态的优先级最高的任务开始运行
中断延迟
实时内核最重要的指标就是中断关了多长时间。所有实时系统在进入临界区代码段之前都要关中断,执行完临界代码之后再开中断。关中断的时间越长,中断延迟就越长,表达式为:
中断延迟=关中断的最长时间+开始执行中断服务子程序的第一条指令的时间
中断响应
中断响应定义从中断发生到开始执行用户的中断服务子程序代码来处理这个中断的时间,包括开始处理这个中断前的全部开销。典型地,执行用户代码之前要保护现场,将CPU的各寄存器堆入堆栈。
中断响应时间=中断延迟+保护CPU内部寄存器的时间(不可剥夺型内核)
中断响应时间=中断延迟+保护CPU内部寄存器的时间+内核的进入中断服务函数的执行时间
中断响应是系统在最坏情况下的响应中断的时间
中断恢复时间
中断恢复时间定义为微处理器返回到被中断了的程序代码所需要的时间
中断恢复时间=恢复CPU内部寄存器值的时间+执行中断返回指令的时间(不可剥夺型内核)
中断恢复时间=判定是否有优先级更高的任务进入了就绪态的时间+恢复那个优先级更高任务的cpu内部寄存器的时间+执行中断返回指令的时间(可剥夺型内核)
文章评论(0条评论)
登录后参与讨论