5.计算机操作系统——设备管理_.md 5.7 KB

计算机操作系统——设备管理(考研复试终极整理版)


一、设备管理定义与核心功能

1. 定义

设备管理是操作系统负责控制和管理所有I/O设备的核心模块,目标是提高设备与CPU的并行性屏蔽设备差异,为用户提供统一的设备访问接口。

2. 核心功能

  1. 缓冲管理:解决CPU与设备速度不匹配问题(如I/O缓冲区的设置)。
  2. 设备分配与去配:按策略分配设备资源(如静态分配、动态分配)。
  3. 设备驱动调度:实现设备控制器的操作指令与中断处理。
  4. 虚拟设备:通过SPOOLing技术将独占设备虚拟为共享设备(如打印机队列)。
  5. 设备独立性:用户使用逻辑设备名而非物理设备名(如/dev/input)。

二、I/O控制方式

| 方式 | 核心原理 | 特点 |
|-----------------|---------------------------------------------|---------------------------------------|
| 轮询 | CPU循环检查设备状态,等待就绪后传输数据 | 简单但CPU利用率低,串行工作 |
| 中断 | 设备就绪后主动通知CPU,触发中断处理程序 | CPU与设备部分并行,需保存/恢复现场 |
| DMA | 由DMA控制器直接管理数据传输,仅在首尾需CPU干预 | 完全并行,适合块设备(如磁盘) |
| 通道控制 | 专用I/O处理器执行通道程序,独立完成I/O操作 | 高度自动化,支持多设备并行(大型机) |

对比

  • DMA vs 中断:DMA无需CPU参与数据传输,中断需CPU处理数据。
  • 通道 vs DMA:通道可执行复杂指令,支持多设备;DMA仅管理单一设备。

三、设备控制器与驱动程序

1. 设备控制器

  • 功能
    1. 接收CPU命令(如读/写指令)
    2. 数据缓冲(如磁盘控制器的缓冲区)
    3. 状态反馈(通过状态寄存器)
  • 组成
    • 数据寄存器(存储传输数据)
    • 命令寄存器(接收CPU指令)
    • 状态寄存器(反馈设备状态)

2. 设备驱动程序

  • 作用:将OS的通用I/O请求转换为设备控制器的具体操作(如生成磁盘寻道指令)。
  • 与中断处理程序区别
    • 驱动程序:处理设备初始化、命令发送等主动操作
    • 中断处理程序:响应设备中断,完成被动操作(如数据读取)。

四、缓冲管理技术

1. 缓冲类型

| 类型 | 结构 | 应用场景 |
|-----------------|------------------------------------------|--------------------------|
| 单缓冲 | 单个缓冲区交替用于输入/输出 | 简单低速设备(如键盘) |
| 双缓冲 | 两个缓冲区交替读写,实现并行 | 流媒体播放、网络通信 |
| 循环缓冲 | 多缓冲区环形队列,连续处理数据 | 高吞吐量设备(如磁盘) |
| 缓冲池 | 动态分配缓冲区,统一管理输入/输出队列 | 通用I/O系统 |

目的:减少中断次数、均衡CPU与设备速度差异。


五、设备分配与调度

1. 分配策略

  • 静态分配:进程运行前分配所需全部设备(避免死锁,但资源利用率低)。
  • 动态分配:运行时按需分配(需考虑死锁,如银行家算法)。

2. 磁盘调度算法

| 算法 | 核心思想 | 优缺点 |
|-----------------|---------------------------------------|----------------------------------------|
| FCFS | 按请求顺序服务 | 公平但寻道时间长 |
| SSTF | 优先服务最近的磁道请求 | 吞吐量高,但可能饥饿 |
| SCAN | 磁头单向移动至最远端后折返(电梯算法) | 平衡效率与公平,无饥饿 |
| C-SCAN | 磁头单向移动至最远端后立即返回起点 | 更均匀的等待时间 |

性能公式: 寻道时间 + 旋转延迟 + 传输时间。


六、虚拟设备与SPOOLing技术

1. SPOOLing原理

  • 输入井/输出井:磁盘中的缓冲区,暂存输入/输出数据。
  • 实现步骤
    1. 将独占设备(如打印机)的I/O请求写入输出井。
    2. 后台进程按顺序调度输出井中的数据到物理设备。

2. 优点

  • 设备虚拟化:将独占设备变为逻辑上的共享设备。
  • 提高吞吐量:CPU与I/O设备并行工作。

七、高频考点与答题技巧

1. 必背概念对比

  • DMA vs 中断

    • DMA:数据块传输,CPU仅在首尾参与。
    • 中断:单次数据传输后触发中断,需CPU处理。
  • 设备独立性实现方式

    • 逻辑设备名映射到物理设备(通过设备分配表)。

2. 经典问题解析

  • Q1:DMA如何减少CPU干预?

    • 答:DMA控制器直接管理数据传送,仅需CPU初始化及结束中断处理。
  • Q2:为何引入缓冲技术?

    • 答:解决CPU与设备速度差异、减少中断次数、支持异步I/O。
  • Q3:SPOOLing如何实现打印机共享?

    • 答:通过输出井缓存打印请求,按序调度打印任务,避免进程直接竞争打印机。