设备管理是操作系统负责控制和管理所有I/O设备的核心模块,目标是提高设备与CPU的并行性、屏蔽设备差异,为用户提供统一的设备访问接口。
| 方式 | 核心原理 | 特点 |
|-----------------|---------------------------------------------|---------------------------------------|
| 轮询 | CPU循环检查设备状态,等待就绪后传输数据 | 简单但CPU利用率低,串行工作 |
| 中断 | 设备就绪后主动通知CPU,触发中断处理程序 | CPU与设备部分并行,需保存/恢复现场 |
| DMA | 由DMA控制器直接管理数据传输,仅在首尾需CPU干预 | 完全并行,适合块设备(如磁盘) |
| 通道控制 | 专用I/O处理器执行通道程序,独立完成I/O操作 | 高度自动化,支持多设备并行(大型机) |
对比:
| 类型 | 结构 | 应用场景 |
|-----------------|------------------------------------------|--------------------------|
| 单缓冲 | 单个缓冲区交替用于输入/输出 | 简单低速设备(如键盘) |
| 双缓冲 | 两个缓冲区交替读写,实现并行 | 流媒体播放、网络通信 |
| 循环缓冲 | 多缓冲区环形队列,连续处理数据 | 高吞吐量设备(如磁盘) |
| 缓冲池 | 动态分配缓冲区,统一管理输入/输出队列 | 通用I/O系统 |
目的:减少中断次数、均衡CPU与设备速度差异。
| 算法 | 核心思想 | 优缺点 |
|-----------------|---------------------------------------|----------------------------------------|
| FCFS | 按请求顺序服务 | 公平但寻道时间长 |
| SSTF | 优先服务最近的磁道请求 | 吞吐量高,但可能饥饿 |
| SCAN | 磁头单向移动至最远端后折返(电梯算法) | 平衡效率与公平,无饥饿 |
| C-SCAN | 磁头单向移动至最远端后立即返回起点 | 更均匀的等待时间 |
性能公式: 寻道时间 + 旋转延迟 + 传输时间。
DMA vs 中断:
设备独立性实现方式:
Q1:DMA如何减少CPU干预?
Q2:为何引入缓冲技术?
Q3:SPOOLing如何实现打印机共享?