I/O 管理
完成:状态跟踪、设备存取、设备分配、设备控制。
I/O设备
- 按信息交换单位:
- 块设备:有结构设备:磁盘等。
信息交换以数据块为单位。 - 字符设备:无结构设备:打印机等,常采用中断I/O方式
信息交换以字符为单位。
- 块设备:有结构设备:磁盘等。
- 按传输速度:
- 低速设备:键盘、鼠标
- 中速设备:激光打印机
- 高速设备:磁盘机、光盘机。
I/O接口
位于CPU与设备之间,与CPU和设备通信。
-
三部分:
- 设备控制器与CPU接口:
- 设备控制器与设备接口:每个接口中存在 数据、控制、状态三类信号。
- I/O逻辑:控制设备。
-
设备控制器功能:①接收识别CPU命令(读写查等) ②数据交换 ③标识报告设备状态 方便CPU处理 ④识别地址 ⑤数据缓冲 ⑥差错控制
I/O端口
I/O端口指设备控制器中可以被CPU直接访问的寄存器:
- 数据寄存器:CPU与外设之间数据缓冲
- 状态寄存器:获取执行结果与设备的状态信息,告知CPU是否准备好
- 控制寄存器:由CPU写入,以便启动命令or更改设备模式。
实现CPU与I/O端口通信
两种方法
- 独立编址:每个端口分配一个I/O端口号。普通用户无法访问。
- 统一编址:内存映射I/O,每个端口唯一的内存地址
I/O控制方式
1 程序直接控制
CPU不断测试I/O设备状态,因为CPU中未采用中断机制。
2 中断驱动方式
允许I/O主动打断CPU的运行,请求服务-->解放CPU,CPU向其I/O控制器发送读命令后做别的事。
数据交换要经过CPU的寄存器
- I/O控制器从CPU接收一个读命令,从外设读数据,
- 读入I/O控制器的数据寄存器后,向CPU发中断信号,表示数据已准备好
- 等待CPU请求数据。
- I/O收到CPU发出的 取数据请求,数据放到总线传给CPU寄存器
- I/O完成
3 DMA方式
I/O设备与内存之间开辟直接数据交换通路,彻底解放CPU。
- 基本单位:数据块
- 只有开始和结束时需要CPU干预。
通道控制方式
I/O软件层次结构
- 用户层I/O软件:用户调用库函数
↕ - 设备独立性软件:①执行所有设备公有操作(。。。) ②向用户层提供统一接口
↕ - 设备驱动程序:具体实现系统对设备发出的操作指令
↕ - 中断处理程序:保存中断前CPU状态0-->处理中断-->恢复中断前状态
执行上下文切换等等
↕ - 硬件
设备独立性软件
I/O系统最高层软件
高速缓存与缓冲区
- 磁盘高速缓存:提高磁盘I/O速度。存放低速设备上的复制数据。(若高速缓存有 低速设备上一定有)
- 缓冲区:存放低速设备and高速设备之间传递的数据。
解决速度差距大的问题。