# I/O 管理概述

# I/O 设备的基本概念

  1. I/O:I/O 就是输入 / 输出,将数据输入到计算机,或接收计算机的数据输出到外部设备
  2. I/O 设备分类:
    1. 人机交互类外部设备
    2. 存储设备
    3. 网络通信设备
  3. I/O 设备的构成
    1. 机械部件:比如键盘鼠标的按键按钮,用来执行 I/O 操作
    2. 电子部件:即 I/O 控制器、设备控制器,是 CPU 与硬件设备之间的桥梁
  4. I/O 控制器的主要作用
    1. 接收并识别 CPU 命令
    2. 向 CPU 报告设备状态
    3. 数据交换
    4. 地址识别

# I/O 控制器

# I/O 控制器的组成

  1. CPU 与控制器间的接口
  2. I/O 逻辑
  3. 控制器与设备间的接口

image-20230323091052595

# I/O 控制方式

  1. 程序直接控制方式
  2. 中断驱动方式
  3. DMA 方式
  4. 通道控制方式

# I/O 软件层次结构

image-20230323095112422

# 用户层软件

实现用户交互接口,通过库函数实现系统调用

# 设备独立性软件

  1. 向上一层提供调用接口
  2. 设备保护
  3. 容错处理
  4. 设备分配与回收
  5. 数据缓冲区管理
  6. 逻辑设备与物理设备的映射

# 设备驱动程序

  1. 不同设备硬件特性不同,但 CPU 指令相同
  2. 负责控制硬件设备,将 CPU 指令转换成设备操作
  3. 驱动程序会以独立进程的形式存在

# 中断处理程序

  1. I/O 完成后发出中断信号
  2. 执行中断处理程序
  3. 会直接操作硬件

# I/O 核心子系统

# SPOLing 技术(假脱机技术)

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

image-20230323100434893

# 设备分配与回收

# 设备分配考虑的因素

国有属性,分配算法,安全性

# 静态分配和动态分配

进程运行前分配所有资源,还是运行中动态申请资源

# 设备管理中的数据结构

image-20230323101901315

# 设备分配步骤

  1. 根据物理设备名查 SDT
  2. 查 DCT,尝试分配给进程
  3. 查 COCT,尝试分配给进程
  4. 查 CHCT,尝试分配给进程

# 缓冲区管理

# 目的

为缓解 CPU 和 I/O 设备速率不匹配的矛盾

  1. 缓和 CPU 和 I/O 设备速度不匹配的矛盾
  2. 减少 CPU 中断的频率,放宽对 CPU 响应时间的限制
  3. 解决数据粒度不匹配的问题
  4. 提高 CPU 与 I/O 设备并行性

# 单缓冲

  1. 非空不写
  2. 未满不读

image-20230323103020001

# 双缓冲

image-20230323103629536

# 循环缓冲

image-20230323103736218

# 缓冲池

  1. 空缓冲队列
  2. 满输入缓冲队列
  3. 满输出缓冲队列

image-20230323104100919