计算机操作系统——设备管理(考研复试终极整理版)
一、设备管理定义与核心功能
1. 定义
设备管理是操作系统负责控制和管理所有I/O设备的核心模块,目标是提高设备与CPU的并行性、屏蔽设备差异,为用户提供统一的设备访问接口。
2. 核心功能
- 缓冲管理:解决CPU与设备速度不匹配问题(如I/O缓冲区的设置)。
- 设备分配与去配:按策略分配设备资源(如静态分配、动态分配)。
- 设备驱动调度:实现设备控制器的操作指令与中断处理。
- 虚拟设备:通过SPOOLing技术将独占设备虚拟为共享设备(如打印机队列)。
- 设备独立性:用户使用逻辑设备名而非物理设备名(如/dev/input)。
二、I/O控制方式
| 方式 |
核心原理 |
特点 |
| 轮询 |
CPU循环检查设备状态,等待就绪后传输数据 |
简单但CPU利用率低,串行工作 |
| 中断 |
设备就绪后主动通知CPU,触发中断处理程序 |
CPU与设备部分并行,需保存/恢复现场 |
| DMA |
由DMA控制器直接管理数据传输,仅在首尾需CPU干预 |
完全并行,适合块设备(如磁盘) |
| 通道控制 |
专用I/O处理器执行通道程序,独立完成I/O操作 |
高度自动化,支持多设备并行(大型机) |
对比:
- DMA vs 中断:DMA无需CPU参与数据传输,中断需CPU处理数据。
- 通道 vs DMA:通道可执行复杂指令,支持多设备;DMA仅管理单一设备。
三、设备控制器与驱动程序
1. 设备控制器
- 功能:
- 接收CPU命令(如读/写指令)
- 数据缓冲(如磁盘控制器的缓冲区)
- 状态反馈(通过状态寄存器)
- 组成:
- 数据寄存器(存储传输数据)
- 命令寄存器(接收CPU指令)
- 状态寄存器(反馈设备状态)
2. 设备驱动程序
- 作用:将OS的通用I/O请求转换为设备控制器的具体操作(如生成磁盘寻道指令)。
- 与中断处理程序区别:
- 驱动程序:处理设备初始化、命令发送等主动操作。
- 中断处理程序:响应设备中断,完成被动操作(如数据读取)。
四、缓冲管理技术
1. 缓冲类型
| 类型 |
结构 |
应用场景 |
| 单缓冲 |
单个缓冲区交替用于输入/输出 |
简单低速设备(如键盘) |
| 双缓冲 |
两个缓冲区交替读写,实现并行 |
流媒体播放、网络通信 |
| 循环缓冲 |
多缓冲区环形队列,连续处理数据 |
高吞吐量设备(如磁盘) |
| 缓冲池 |
动态分配缓冲区,统一管理输入/输出队列 |
通用I/O系统 |
目的:减少中断次数、均衡CPU与设备速度差异。
五、设备分配与调度
1. 分配策略
- 静态分配:进程运行前分配所需全部设备(避免死锁,但资源利用率低)。
- 动态分配:运行时按需分配(需考虑死锁,如银行家算法)。
2. 磁盘调度算法
| 算法 |
核心思想 |
优缺点 |
| FCFS |
按请求顺序服务 |
公平但寻道时间长 |
| SSTF |
优先服务最近的磁道请求 |
吞吐量高,但可能饥饿 |
| SCAN |
磁头单向移动至最远端后折返(电梯算法) |
平衡效率与公平,无饥饿 |
| C-SCAN |
磁头单向移动至最远端后立即返回起点 |
更均匀的等待时间 |
性能公式:
寻道时间 + 旋转延迟 + 传输时间。
六、虚拟设备与SPOOLing技术
1. SPOOLing原理
- 输入井/输出井:磁盘中的缓冲区,暂存输入/输出数据。
- 实现步骤:
- 将独占设备(如打印机)的I/O请求写入输出井。
- 后台进程按顺序调度输出井中的数据到物理设备。
2. 优点
- 设备虚拟化:将独占设备变为逻辑上的共享设备。
- 提高吞吐量:CPU与I/O设备并行工作。
七、高频考点与答题技巧
1. 必背概念对比
DMA vs 中断:
- DMA:数据块传输,CPU仅在首尾参与。
- 中断:单次数据传输后触发中断,需CPU处理。
设备独立性实现方式:
2. 经典问题解析
Q1:DMA如何减少CPU干预?
- 答:DMA控制器直接管理数据传送,仅需CPU初始化及结束中断处理。
Q2:为何引入缓冲技术?
- 答:解决CPU与设备速度差异、减少中断次数、支持异步I/O。
Q3:SPOOLing如何实现打印机共享?
- 答:通过输出井缓存打印请求,按序调度打印任务,避免进程直接竞争打印机。