输入输出系统

I/O 系统是操作系统里离硬件最近、也最容易被低估的部分。本章从“设备有多不一样”出发,走到“一次读请求到底经过哪些层”。

第一个问题是设备本身。设备可以按信息交换方式、传输速度和功能分类,传输特性、控制特性与可靠性特性各不相同;这些差异决定了不能只靠一套通用策略,而是要有分类管理、调度和缓冲的思路。

第二个问题是 CPU 如何让出控制权。程序查询方式让 CPU 一直等待,中断驱动方式让设备主动通知,DMA 方式把整块传输交给控制器;三种方式在开销、并行度和复杂度上的差别,决定了不同场景该选哪一种。

第三个问题是资源的组织与保护。设备驱动程序屏蔽硬件细节,静态、动态、共享三种分配策略应对不同的独占与复用需求,错误检测与恢复机制保证故障不会扩散成整机崩溃。

第四个问题是吞吐效率。缓冲区用单缓冲、双缓冲和多缓冲吸收设备与 CPU 的速度差,缓冲区调度策略以及内存、缓存、并发层面的优化进一步压低延迟;I/O 子系统把这些组件串成完整层次,异步 I/O 与 I/O 多路复用则是现代系统的关键手段。

读完本章,你应能解释三类 I/O 控制方式的适用边界,比较三种缓冲方案的取舍,并说出一次 I/O 请求在典型 I/O 子系统中依次经过哪些层。

章节

发现内容有问题?

告诉我们哪里需要改进。