主题
第七章 中断、设备与 I/O:连接外部世界
1. I/O 为什么难:速度差了百万倍
CPU 一纳秒能做几条指令,机械磁盘一次寻道要几毫秒——差了六个数量级。如果 CPU 傻等设备,等一次磁盘的工夫本可以执行几百万条指令。设备管理的一切设计,都是围绕"别让快的等慢的"展开的:中断让 CPU 不用守着设备,DMA 让 CPU 不用搬运数据,缓冲让快慢双方各干各的,SPOOLing 让独占设备排队虚拟化。本章按这条主线走完,最后把七章知识串成一次完整的 read 之旅。
2. 设备的分类
| 分类维度 | 类型 | 特征 | 例子 |
|---|---|---|---|
| 数据组织 | 块设备 | 以固定大小块为单位传输,可寻址、可随机访问 | 磁盘、SSD |
| 数据组织 | 字符设备 | 以字符流为单位,不可寻址,来了就处理 | 键盘、鼠标、串口、打印机 |
| 共享属性 | 独占设备 | 同一时间只能一个进程用 | 打印机 |
| 共享属性 | 共享设备 | 可多进程交替使用 | 磁盘 |
| 速度 | 低速/中速/高速 | 键盘每秒几字节,磁盘每秒数百 MB | — |
块设备可寻址所以能"调度请求顺序"(上一章的磁盘调度),字符设备没有位置概念,谈不上调度顺序。
