I/O 设备分类

  • 按使用特性:人机交互类外部设备、存储设备、网络通信设备
  • 按传输速率:低速设备、中速设备、高速设备
  • 按信息交换的单位:块设备、字符设备

I/O 控制方式

  • 程序直接控制方式:CPU 忙等待轮询
  • 中断驱动方式:每传完一个单位数据发出中断
  • DMA 方式(Direct Memory Access, 直接内存存取):基本单位是数据块,直接在设备与内存间传送;需要命令/状态寄存器(CR)、内存地址寄存器(MAR)、数据寄存器(DR)、数据计数器(DC)
  • 通道控制方式:通道是独立于 CPU 的专管 I/O 控制的处理机,可实现 CPU 与 I/O 高度并行

I/O 子系统的层次结构

自上而下:

  • 用户层 I/O 软件
  • 设备独立性软件
  • 设备驱动程序(计算数据所在磁盘的柱面号、磁头号、扇区号)
  • 中断处理程序
  • 硬件设备

设备控制器主要功能:接收和识别 CPU 或通道发来的命令、实现数据交换、发现和记录设备及自身的状态信息、设备地址识别。

高速缓存与缓冲区

  • 磁盘高速缓存(Disk Cache)
  • 缓冲区(Buffer):单缓冲、双缓冲、循环缓冲、缓冲池
  • 缓冲区作用:缓和 CPU 与 I/O 设备速度不匹配的矛盾、减少中断频率、解决数据粒度不匹配、提高 CPU 与 I/O 设备的并行性

设备分配与回收

  • 设备分配方式:独占式使用设备、分时式共享使用设备、以 SPOOLing 方式使用外部设备
  • 设备分配的数据结构:设备控制表 DCT、控制器控制表 COCT、通道控制表 CHCT、系统设备表 SDT
  • 设备分配的策略:静态分配、动态分配;设备分配的安全性分为安全分配方式和不安全分配方式
  • 逻辑设备名到物理设备名的映射:逻辑设备表(LUT),程序员利用系统调用打开 I/O 设备时通常使用逻辑设备名

SPOOLing 技术(假脱机技术)

用软件方式模拟脱机技术,组成:

  • 输入井和输出井
  • 输入缓冲区与输出缓冲区
  • 输入进程和输出进程

可将独占设备改造为共享设备(如打印机),实现虚拟设备功能。