5.设备管理
I/O体系结构
从上至下依次为
- 用户层软件:产生 I/O 请求、格式化 I/O、Spooling
- 设备独立性软件:映射、保护、分块、缓冲、分配
- 设备驱动程序:设置设备寄存器、检查状态
- 中断处理程序
- 硬件:执行 I/O 操作
I/O控制方法
- 采用轮询的可编程 I/O 方式
- 易于实现,但 CPU 和 I/O 设备只能串行工作,CPU效率较低
- 采用中断的可编程 I/O 方式
- 比上一种方法有优势,但数据中的每一个字在存储器与 I/O 控制器之间的传输都要经过 CPU ,这就导致这种方式仍会消耗较多的 CPU 时间
- 直接存储器访问(DMA)方式
- DMA 控制时,传输基本单位是数据块,只有传送开始和结束时才需要 CPU 的参与,CPU 利用率较高
- I/O
通道方式(通道是一种特殊的硬件)
- I/O 通道传送基本单位是一组数据块,有更高的自主权,CPU 利用率更高
总结:整个 I/O 控制方法的发展,总的来说就是四个字——“简政放权”:减轻 CPU 对所有操作控制的压力,让合适的“人”(如其他专门硬件)去处理合适的“事”(如这里的 I/O 操作)。
I/O分配中的数据结构和分配方法
设备分配中的数据结构
设备控制表 (DCT)
控制器控制表(COCT)、通道控制表(CHCT)、系统设备控制表(SDT)
上述几种数据结构之间的关系
- DCT 与 COCT 一一对应
- CHCT 与 COCT 一对多(一个通道可谓多个设备控制器服务)
- SDT 整个系统只有 一张
分配方法
设备分配的安全性指分配设备时防止发生死锁
(具体见教材)
通道和通道程序
通道
(具体见教材)
通道程序(★)
- 通道程序由一系列通道指令构成。
- 通道指令构成如下
- 操作码:包括 读 写 控制 等操作
- 内存地址:操作数据的内存首址
- 计数:操作数据的字节数(与上一项 内存地址 相加,即可获得操作数据的内存范围)
- 通道程序结束位 P :P = 1 表示本条指令是通道程序的最后一条指令
- 记录结束标志 R :R = 0 表示本条指令和下一条指令处理的数据是同一条记录;R = 1 表示这是处理某条记录的最后一条指令
设备独立性及其实现方法
设备独立性
(具体见教材)
实现方法
(具体见教材)
虚拟设备和SPOOLing技术
SPOOLing技术(★★★)
(具体见教材)
缓冲管理(★★★★★)
假设一块数据
操作 | 所需时间 |
---|---|
磁盘 → 缓冲区 | T |
缓冲区 → 用户区 | M |
CPU 处理 | C |
单缓冲(★★★)
- 每块数据处理时间为
- max(C, T) + M
双缓冲(★★★)
- 每块数据处理时间为
- max(C+M, T)
时间计算小结:能并行的放在 max 内取大的,再和只能串行的任务时间相加
环形缓冲
(具体见教材)
缓冲池
(具体见教材)
设备处理与I/O软件
(具体见教材)
设备分配
(具体见教材)
参考资料
- 计算机操作系统.汤小丹等
- 2020年操作系统考研复习指导.王道论坛