# 输入输出管理

知识结构

  • I/O 管理概述
    • I/O 控制方式;I/O 软件层次结构
  • I/O 核心子系统
    • I/O 调度概念;高速缓存与缓冲区
    • 设备分配与回收;假脱机技术

# 5.1 I/O 管理概述

# 5.1.1 I/O 设备

IO 设备管理是操作系统设计中最凌乱也最具有挑战性的部分。

计算机系统中的 IO 设备按使用特性可分为以下类型。

  • 人机交互类外部设备
  • 存储设备
  • 网络通信设备

# 5.1.2 I/O 控制方式

设备管理的主要任务之一是控制设备和内存或处理机之间的数据传送。

外围设备的输入/输出控制方式有 4 种。

  • 程序直接控制方式。CPU 对外设状态进行循环检查,CPU 利用率低
  • 中断驱动方式。允许 IO 设备主动打断 CPU 的运行并请求服务。
  • DMA 方式。在 IO 和内存之间开辟直接的数据交换通路。
  • 通道控制方式。IO 通道是专门负责输入输出的处理机。

# 5.1.3 I/O 子系统的层次结构

为了使复杂的 IO 软件具有清晰的结构、良好的可移植性和适应性,在 IO 软件中普遍采用了层次式结构,将系统输入/输出组织成一系列的层次,每层都利用其下层提供的服务。

一个比较合理的层次划分如下

  • 用户层 IO 软件。实现与用户交互的接口
  • 设备独立性软件。用于实现用户程序与设备驱动器的统一接口
  • 设备驱动程序。与硬件直接相关,负责具体实现系统对设备发出的操作指令。
  • 中断处理程序。用于保存被中断进程的 CPU 环境。
  • 硬件设备。IO 设备通常包括一个机械部件和一个电子部件。电子部件称为设备控制器

# 5.2 I/O 核心子系统

# 5.2.1 I/O 子系统概述

由于 IO 设备种类繁多,功能和传输速率差异巨大,因此需要多种方法来进行设备控制。这些方法共同组成了操作系统内核的 IO 子系统。

# 5.2.2 I/O 调度概念

IO 调度就是确定一个好的顺序来执行这些 IO 请求。

应用程序所发布的系统调用的顺序不一定总是最佳选择,所以需要 IO 调度来改善系统整体性能,使进程之间公平地共享设备访问,减少 IO 完成所需要的平均等待时间。

# 5.2.3 高速缓存与缓冲区

  1. 磁盘高速缓存(Disk Cache)。利用内存种的存储空间来暂存从磁盘中读出一系列盘块中的信息。
  2. 缓冲区。

在设备管理子系统中,引入缓冲区的目的主要如下:

  • 缓和 CPU 与 IO 设备间速度不匹配的矛盾
  • 减少对 CPU 的中断频率
  • 解决基本数据单元大小不匹配的问题
  • 提高 CPU 和 IO 设备间的并行性

根据系统设置的缓冲器的个数,缓冲技术可以分为如下几种;

  • 单缓冲
  • 双缓冲
  • 循环缓冲
  • 缓冲池
  1. 高速缓存 vs 缓冲区
高速缓存 缓冲区
存放低速设备上某些数据的拷贝 存放低速传给高速设备的数据
存放高速设备经常访问的数据 高度设备和低速设备的通信都要经过缓冲区

# 5.2.4 设备分配与回收

  1. 设备分配概述
  2. 设备分配的数据结构
  3. 设备分配的策略
  4. 设备分配的安全性
  5. 逻辑设备名到物理设备名的映射

# 5.2.5 SPOOLing 技术

为了缓和 CPU 的高速性和 IO 设备低速性之间的矛盾,引入了脱机输入/输出技术。该技术利用专门的外围控制机,将低速 IO 设备上的数据传送到高速磁盘上。

  1. 输入井和输出井
  2. 输入缓冲区和输出缓冲区
  3. 输入进程和输出进程

WARNING

暂时告一段落