Skip to content

第七章 中断、设备与 I/O:连接外部世界


1. I/O 为什么难:速度差了百万倍

CPU 一纳秒能做几条指令,机械磁盘一次寻道要几毫秒——差了六个数量级。如果 CPU 傻等设备,等一次磁盘的工夫本可以执行几百万条指令。设备管理的一切设计,都是围绕"别让快的等慢的"展开的:中断让 CPU 不用守着设备,DMA 让 CPU 不用搬运数据,缓冲让快慢双方各干各的,SPOOLing 让独占设备排队虚拟化。本章按这条主线走完,最后把七章知识串成一次完整的 read 之旅。

2. 设备的分类

分类维度类型特征例子
数据组织块设备以固定大小块为单位传输,可寻址、可随机访问磁盘、SSD
数据组织字符设备以字符流为单位,不可寻址,来了就处理键盘、鼠标、串口、打印机
共享属性独占设备同一时间只能一个进程用打印机
共享属性共享设备可多进程交替使用磁盘
速度低速/中速/高速键盘每秒几字节,磁盘每秒数百 MB

块设备可寻址所以能"调度请求顺序"(上一章的磁盘调度),字符设备没有位置概念,谈不上调度顺序。

3. I/O 控制方式的演进:这条线是高频考点

3.1 程序轮询(程序直接控制)

3.2 中断驱动

3.3 DMA 直接存储器访问

3.4 通道

3.5 四种方式对照表

4. 中断处理的完整流程

5. 缓冲技术:为什么能提速

5.1 单缓冲、双缓冲、缓冲池

5.2 一句话分工

6. SPOOLing 假脱机:用共享设备虚拟独占设备

7. 设备驱动与设备独立性

8. 全专题贯通图:一次 read 的完整旅程

9. 本章要点回顾

10. 做题提醒