文章目录
I/O特点
设备分类
-
字符设备
- 以字节为单位顺序访问
- 通常使用文件访问接口和语义
-
块设备
- 均匀的数据块访问
- 通常使用I/O命令访问
- 原始I/O和文件系统接口
- 内存映射文件访问
-
网络设备
- 格式化的报文交换
- I/O命令
- send/receive 网络报文
- 通过网络接口支持多种协议
同步异步 I/O
- 阻塞I/O:wait
- 非阻塞I/O:do not wait
- 异步I/O:tell me later
I/O 结构
- 北桥 高速设备
- 南桥 I/O设备
设备寄存器
- CPU和I/O设备的接口
- 向CPU提供特殊指令和寄存器
I/O地址
- CPU用来控制I/O硬件
- 内存地址或端口号
- I/O指令
- 内存映射I/O
CPU与设备的通讯方式
轮询、中断、DMA
I/O指令
- 通过I/O端口号访问设备寄存器
- 特殊的CPU指令
- out 0x21,AL
内存映射I/O
- 设备的寄存器/存储被映射到内存地址空间中
- 通过内存 load/store 指令完成I/O操作
- MMU设置映射,硬件跳线或程序在启动时设置地址
内核I/O
I/O请求生命周期
I/O数据传输
程序控制I/O
- 通过CPU in/out load/store传输所有数据
- 特点
- 硬件简单,编程容易
- 消耗CPU时间和数据量成正比
DMA
- 设备控制器可直接访问系统总线
- 控制器与内存互相传输数据
- 特点
- 设备传输数据不影响CPU
- 需要CPU参与设置
直接寻址读取
I/O设备通知操作系统的方式
-
操作系统需要了解设备状态
- I/O操作完成时间
- I/O操作遇到的错误
-
两种方式
- CPU主动轮询:状态寄存器
- 设备中断
磁盘调度和缓存
TBD