# I/O 管理概述
# I/O 设备的基本概念
- I/O:I/O 就是输入 / 输出,将数据输入到计算机,或接收计算机的数据输出到外部设备
- I/O 设备分类:
- 人机交互类外部设备
- 存储设备
- 网络通信设备
- I/O 设备的构成
- 机械部件:比如键盘鼠标的按键按钮,用来执行 I/O 操作
- 电子部件:即 I/O 控制器、设备控制器,是 CPU 与硬件设备之间的桥梁
- I/O 控制器的主要作用
- 接收并识别 CPU 命令
- 向 CPU 报告设备状态
- 数据交换
- 地址识别
# I/O 控制器
# I/O 控制器的组成
- CPU 与控制器间的接口
- I/O 逻辑
- 控制器与设备间的接口
# I/O 控制方式
- 程序直接控制方式
- 中断驱动方式
- DMA 方式
- 通道控制方式
# I/O 软件层次结构
# 用户层软件
实现用户交互接口,通过库函数实现系统调用
# 设备独立性软件
- 向上一层提供调用接口
- 设备保护
- 容错处理
- 设备分配与回收
- 数据缓冲区管理
- 逻辑设备与物理设备的映射
# 设备驱动程序
- 不同设备硬件特性不同,但 CPU 指令相同
- 负责控制硬件设备,将 CPU 指令转换成设备操作
- 驱动程序会以独立进程的形式存在
# 中断处理程序
- I/O 完成后发出中断信号
- 执行中断处理程序
- 会直接操作硬件
# I/O 核心子系统
# SPOLing 技术(假脱机技术)
- 输入井和输出井
- 输入进程和输出进程
- 输入缓冲区和输出缓冲区
# 设备分配与回收
# 设备分配考虑的因素
国有属性,分配算法,安全性
# 静态分配和动态分配
进程运行前分配所有资源,还是运行中动态申请资源
# 设备管理中的数据结构
# 设备分配步骤
- 根据物理设备名查 SDT
- 查 DCT,尝试分配给进程
- 查 COCT,尝试分配给进程
- 查 CHCT,尝试分配给进程
# 缓冲区管理
# 目的
为缓解 CPU 和 I/O 设备速率不匹配的矛盾
- 缓和 CPU 和 I/O 设备速度不匹配的矛盾
- 减少 CPU 中断的频率,放宽对 CPU 响应时间的限制
- 解决数据粒度不匹配的问题
- 提高 CPU 与 I/O 设备并行性
# 单缓冲
- 非空不写
- 未满不读
# 双缓冲
# 循环缓冲
# 缓冲池
- 空缓冲队列
- 满输入缓冲队列
- 满输出缓冲队列