设备管理屏蔽 I/O 设备物理差异,向上给统一接口,向下调度磁盘/外设。
外设就绪时发中断打断 CPU,CPU 保存现场、执行中断处理程序、恢复现场。
中断让 CPU 不必轮询外设,是并发与交互的基础。
一次中断:① 保存现场 → ② 按中断向量查处理程序 → ③ 执行 → ④ 恢复返回。中断向量表 = 中断号 → 处理程序入口。
DMA:不经 CPU,由 DMA 控制器直接在外设 ↔ 内存之间搬数据。
流程:CPU 设置 DMA 控制器(源/目的/长度)→ DMA 接管总线搬数据 → 完成发一次中断通知 CPU。
中断解决「通知」,DMA 解决「搬运」。PIO 时 CPU 逐字节搬;DMA 让 CPU 只发起 + 收尾。小数据用 PIO,大数据块(磁盘)用 DMA 才释放 CPU。
磁盘 = 多个盘面,每面有磁道(同心圆),磁道分扇区(最小读写单位,512B/4KB),多盘面同半径磁道构成柱面。
访问时间 = 寻道时间(磁头移到磁道,最慢)+ 旋转延迟(转到位,平均半圈)+ 传输时间。优化重点是减少寻道。
设磁头当前 50,请求队列 98, 183, 37, 122, 14, 124, 65, 67:
| 算法 | 总寻道 | 公平性 | 特点 |
|---|---|---|---|
| FCFS | 大 | 好 | 无优化 |
| SSTF | 最小 | 差(饿死) | 贪心最近 |
| SCAN | 较小 | 中 | 电梯来回 |
| C-SCAN | 较小 | 好 | 单向循环 |
(现代磁盘自带缓存/重排,OS 级调度被弱化,思想保留在 SSD FTL、磁盘 NCQ 里。)
设备驱动:内核与硬件之间的翻译层,把统一接口(read/write/ioctl)翻译成设备寄存器操作。Linux 下设备抽象为文件(/dev),字符 / 块 / 网络三类。