I/O系统是OS的主要组成部分,一种是用于管理外设的I/O设备,一种是用于存储数据,如磁盘驱动器和磁带机等各种存储设备。向下与硬件密切相关,向上与文件系统、虚拟存储系统和用户直接交互。
I/O系统管理的主要对象是I/O设备和相应的设备控制器,其主要任务是完成用户提出的I/O请求,提高I/O速率,提高设备的利用率,并能为更高层的进程方便的使用这些设备提供手段。
I/O系统的基本功能:
- 隐藏物理设备的细节
- 与设备无关性
- 提高处理机和I/O设备的利用率
- 对I/O设备进行控制
- 确保对设备的正确共享
- 错误处理
I/O软件的层次结构
用户软件层:与用户交互 | 产生I/O请求,格式化I/O,spooling |
设备独立性软件:用于实现用户程序与设备驱动器的统一接口、设备命名、设备的保护以及设备的分配与释放,同时为设备管理和数据传送提供必要的存储空间。 | 映射、保护、分块、缓冲、分配 |
设备驱动程序:与硬件直接相关,具体实现系统对设备发出的操作指令,驱动设备工作。 | 设置设备寄存器,检查状态 |
中断处理层序:保存被中断进程的cpu环境,转入相应的中断处理程序进行处理,处理完成再恢复被中断进程的现场后,返回到被中断的进程。 | |
硬件 | 执行I/O操作 |
I/O系统按照传输方式分类:
块设备接口:磁盘存储器和光盘存储器,虚拟存储系统。数据的存取和传输都是以数据块为单位的设备。传输速度快
流设备接口:又称字符设备接口,数据的存取和传输以字符为单位的设备。传输速度慢
网络通信接口:
设备控制器
I/O设备不是直接与cpu通信,而是通过设备控制器,通信包括三种通信信号:数据信号,控制信号,状态信号。
设备控制器的主要功能:控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换,接受cpu发来的命令,去控制I/O设备工作,使处理机能够从设备控制事务中解脱出来。
设备控制器的基本功能:
- 接收和识别命令
- 数据交换
- 标识和报告设备状态
- 地址识别
- 数据缓冲区
- 差错控制
I/O通道
cpu向通道发送一条I/O指令,通道收到I/O指令,便从内存中取出本次要执行的通道程序,然后执行该通道程序,仅当通道完成了规定的I/O任务之后,才向cpu发中断信号。