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