中断系统¶
概述¶
中断是计算机系统中的重要机制,用于处理突发事件和实现I/O操作。
中断定义
中断是指CPU暂停当前程序的执行,转去处理紧急事件,处理完后再返回原程序继续执行的过程。
中断的作用¶
中断的主要作用
- 实现CPU与I/O设备并行工作
- 处理硬件故障和软件错误
- 实现人机交互
- 支持多道程序设计
- 实现实时处理
中断的类型¶
1. 按中断源分类¶
硬中断(外部中断)
由外部设备产生的中断。
类型:
- I/O中断: I/O设备完成操作
- 时钟中断: 定时器到期
- 外部信号中断: 外部硬件信号
软中断(内部中断)
由程序执行产生的中断。
类型:
- 程序中断: 除零、溢出
- 陷阱中断: 系统调用
- 异常中断: 非法指令
2. 按可屏蔽性分类¶
可屏蔽中断
可以被CPU禁止的中断。
- 可通过中断屏蔽字控制
- 用于非紧急事件
不可屏蔽中断(NMI)
不能被CPU禁止的中断。
- 用于紧急事件
- 如电源故障、内存校验错误
中断处理过程¶
sequenceDiagram
participant CPU as CPU
participant Device as 中断源
participant Handler as 中断处理程序
Device->>CPU: 发出中断请求
CPU->>CPU: 判断是否响应
CPU->>CPU: 保护现场
CPU->>Handler: 转向中断处理程序
Handler->>Handler: 处理中断
Handler->>CPU: 恢复现场
CPU->>CPU: 返回原程序
1. 中断请求¶
中断请求
中断源向CPU发出中断请求信号。
2. 中断判优¶
中断判优
当多个中断同时发生时,选择优先级最高的中断。
判优方式:
- 硬件判优: 使用中断控制器
- 软件判优: 软件查询
3. 中断响应¶
中断响应
CPU响应中断,进入中断处理。
响应条件:
- CPU开中断
- 当前指令执行完
- 无更高优先级中断
4. 保护现场¶
保护现场
保存当前程序的执行状态。
保存内容:
- 程序计数器(PC)
- 状态寄存器(PSW)
- 通用寄存器
5. 中断处理¶
中断处理
执行中断处理程序。
6. 恢复现场¶
恢复现场
恢复原程序的执行状态。
中断优先级¶
中断优先级
不同中断具有不同的优先级。
| 优先级 | 中断类型 | 说明 |
|---|---|---|
| 最高 | 不可屏蔽中断 | 电源故障等 |
| 高 | 异常中断 | 程序错误 |
| 中 | I/O中断 | 设备中断 |
| 低 | 软中断 | 系统调用 |
中断嵌套¶
中断嵌套
在处理中断时,可以响应更高优先级的中断。
graph TB
A[主程序] --> B[中断1]
B --> C[中断2<br/>更高优先级]
C --> B
B --> A
条件:
- 新中断优先级更高
- 当前中断处理开中断
中断向量¶
中断向量
中断处理程序的入口地址。
中断向量表:
- 存放所有中断处理程序的入口地址
- 每个中断对应一个向量
- 通过中断号索引