中断优先级排序及 CPU 执行轨迹分析
某机器有四个中断源 L0、L1、L2、L3,原始中断响应优先级为 L0→L1→L2→L3,现要求更改为 L2→L0→L3→L1。假设每个中断服务程序执行 10ms,且每次中断服务程序执行完后会回到主程序,本文将绘制不同优先级顺序下的 CPU 执行轨迹。
一、原始优先级顺序下的 CPU 执行轨迹
按照 L0→L1→L2→L3 的优先级顺序,CPU 执行轨迹如下:
时间轴
|
| L0
| L1
| L2
| L3
|
L0 中断服务程序执行 10ms 后回到主程序,然后 L1 中断服务程序执行 10ms 回到主程序,依此类推,最后 L3 中断服务程序执行 10ms 回到主程序。
二、更改优先级顺序后的 CPU 执行轨迹
按照 L2→L0→L3→L1 的优先级顺序,CPU 执行轨迹如下:
时间轴
|
| L2
| L0
| L3
| L1
|
首先,L2 中断服务程序执行 10ms 回到主程序,然后 L0 中断服务程序执行 10ms 回到主程序,依此类推,最后 L1 中断服务程序执行 10ms 回到主程序。
总结
通过以上分析,我们可以看到,中断优先级顺序会直接影响 CPU 的执行轨迹。优先级高的中断会优先被处理,即使在其他中断服务程序执行过程中,一旦出现更高优先级的中断,CPU 会立即切换到该中断服务程序执行。
原文地址: https://www.cveoy.top/t/topic/nGnZ 著作权归作者所有。请勿转载和采集!