第 3 章 RHEL for Real Time 的硬件中断
实时系统在其操作过程中收到许多中断,包括定期执行维护和系统调度决策的半常规"timer"中断。系统也可能收到特殊中断,如不可屏蔽中断(NMI)和系统管理中断(SMI)。设备使用硬件中断来指示需要注意的系统物理状态的变化。例如,其已读取一系列数据块的硬盘信号,或者当网络设备处理包含网络数据包的缓冲区时。
当实时发生中断时,系统会停止活动程序,并执行中断处理程序。
在实时中,硬件中断由中断数引用。这些数字被映射到创建中断的硬件片段。这可让系统监控创建中断的设备以及发生的时间。当实时发生中断时,系统会停止活动程序并执行中断处理程序。该处理程序会抢占其他正在运行的程序和系统活动。这会减慢整个系统并创建延迟。
RHEL for Real Time 修改处理中断的方式,以便提高性能并降低延迟。使用 cat /proc/interrupts 命令,您可以打印输出来查看发生的硬件中断类型、收到的中断数、中断的目标 CPU 以及生成中断的设备。
3.1. level-signaled 中断 复制链接链接已复制到粘贴板!
在实时中,level-signaled 中断使用提供自愿转换的专用中断行。设备控制器通过断言中断请求行上的信号来引发中断。中断行发送两个标记中的一个来代表二进制 1 或二进制 0。
当中断信号被行发送时,它会一直处于该状态,直到 CPU 重置为止。CPU 执行状态保存、捕获中断并分配中断处理程序。中断处理程序决定了中断的原因,通过执行必要的服务清除中断,同时恢复设备的状态。级别签名的中断更为可靠,并且支持多个设备,尽管它们比较复杂。