程序中断方式是 CPU 与外设并行工作的重要机制。外设准备好后向 CPU 发中断请求,CPU 暂停当前程序转去处理 I/O,处理完返回继续执行,大大提高 CPU 利用率。
中断:CPU 执行程序时被内部/外部事件打断,暂停当前程序转去处理,处理完返回原程序。
中断 vs 异常:中断由外部设备引起(异步);异常由 CPU 内部引起(同步),包括故障(Fault,可恢复)、陷阱(Trap,有意如系统调用)、终止(Abort,不可恢复)。
1. 关中断(IF=0)
2. 保存断点(PC、PSW 压栈)
3. 识别中断源(取入口地址)
4. 保存现场(通用寄存器压栈)
5. 转入 ISR(PC ← 入口)
6. 开中断(IF=1,允许嵌套)
中断向量表 = 中断服务程序入口地址表。类型号 0~255 对应各入口。
向量中断:类型号直接指向向量表,硬件自动取入口(快,如 x86)。
非向量中断:类型号指向固定处理程序,再软件查询确定源(较慢)。
x86:类型号 × 4 = 向量表地址(每项 4 字节)
CPU 利用率 = 1 - (中断处理时间 × 中断频率)
例:中断频率 1000 次/秒,每次 10μs
CPU 用于中断 = 1000 × 10μs = 10ms
CPU 利用率 = 1 - 10ms/1000ms = 99%
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。