设备管理的目标和功能
- 提高 CPU 与 I/O 设备之间的并行操作程度
- 为用户提供方便统一的界面
重点 四种 I/O 控制方式
| 方式 | 特点 | CPU 参与程度 | 适用场景 |
|---|
| 程序控制方式(轮询) | CPU 不断检查设备状态,忙等 | 全程参与,效率低 | 简单/低速设备 |
| 中断驱动方式 | 设备完成 I/O 后发中断通知 CPU | 仅启动和完成时参与,但逐字节传输仍占用 CPU | 中速设备 |
| DMA 方式(直接存储器访问) | DMA 控制器直接完成内存与设备间的数据传输 | 仅初始化参与,传输由 DMA 控制器完成 | 高速块设备(磁盘) |
| 通道控制方式 | I/O 处理器独立执行通道程序 | 几乎不参与,通道自主管理 I/O | 大型系统、多设备场景 |
程序控制方式(Programmed I/O)
- CPU 循环检查设备状态寄存器,判断设备是否就绪
- 若设备未就绪,CPU 忙等(busy-wait),浪费大量 CPU 时间
- CPU 负责数据的逐字/逐字节传输(从设备到寄存器,再从寄存器到内存)
- 优点:实现简单,无需额外硬件支持
- 缺点:CPU 利用率极低,CPU 和 I/O 串行工作
中断驱动方式(Interrupt-driven I/O)
- CPU 发起 I/O 操作后可以执行其他任务
- I/O 设备完成操作后通过中断信号通知 CPU
- CPU 响应 中断与异常,保存现场,执行中断处理程序
- 数据仍由 CPU 逐字节传输(CPU 在中断处理中完成数据搬运)
- 优点:提高了 CPU 与 I/O 的并行度,CPU 利用率明显提升
- 缺点:频繁中断对于高速设备开销过大,数据仍需 CPU 中转
重点 DMA 方式(Direct Memory Access)
- DMA 控制器接管总线,直接在外设和内存之间传输数据
- 工作流程:CPU 设置 DMA 控制器(传输方向、内存地址、字节数)→ DMA 控制器控制总线传输 → 传输完成后发中断通知 CPU
- 数据传输无需 CPU 干预,CPU 只需处理起始设置和结束中断
- 适用于高速块设备(磁盘、显卡等)
- 优点:CPU 和 I/O 高度并行,适合大批量数据传输
- 缺点:DMA 控制器价格较高,DMA 传输占用总线(周期窃取)
通道控制方式(I/O Channel)
- 通道是一个独立的、专门处理 I/O 操作的处理器(I/O 处理器)
- 拥有自己的指令系统,可执行通道程序
- CPU 只需向通道发送 I/O 指令,通道自主完成整个 I/O 过程
- 进一步减少 CPU 负担,适合大型计算机系统
- 通道分为:字节多路通道(连接多个低速设备)、数组选择通道(连接高速设备)、数组多路通道(同时服务多个高速设备)