IO系统管理的主要对象是IO设备和相应的设备控制器。其主要作用是完成用户的IO请求,提高IO速率,以及提高设备的利用率,并为高层的进程提供方便的接口。
I/O系统的基本功能
一、方便用户使用I/O设备
1.隐藏物理设备细节
I/O设备通常有很多种类型,每一种又有传输方向、数据粒度、传输速度等不同特性,将这些复杂的细节隐藏,仅向上层暴露简单的接口。
2.与设备的无关性
用户不但要用抽象的I/O命令,还要能够使用现成的逻辑设备名称来控制选择I/O设备,并且添加新的设备驱动程序。
二、提高CPU和I/O设备利用率
1.提高设备利用率
尽可能让CPU和I/O设备并行执行
2.对I/O设备进行控制
- 轮询I/O设备的可编程I/O方式
- 中断I/O
- DMA直接存储器访问
- I/O通道
三、共享设备、系统有序执行
1.确保对设备的正确共享
独占设备:进程间互斥访问该类资源
共享设备:如磁盘,多个进程可交叉读写磁盘
2.错误处理
临时性错误:重试操作
持久性操作:向上层汇报
I/O系统的层次结构
1.用户层I/O软件
实现与用户的交互,用户可以直接调用此层提供的接口、函数等;
2.设备独立性软件
用于实现用户程序和设备驱动器的统一接口、设备命名、设备保护以及设备分配和释放等,同时为数据的传输提供必要的空间
3.设备驱动程序
与硬件直接相关,用于具体实现系统施加给硬件设备的指令
4.中断处理程序
保护被中断的CPU环境,转入中断处理程序,处理,返回恢复现场
I/O系统的接口
1.块设备接口
该接口反映了大部分磁盘存储器的本质特征,用于控制该类设备的输入输出。
(1)块设备:数据存取以块为单位
(2)隐藏了磁盘的二维结构:将二位的物理磁盘结构转换成一维的线性结构
(3)将抽象命令映射为低层操作:将上层的简单接口命令转换成底层能够识别的操作
2.流设备接口
又称字符设备接口。
(1)字符设备:数据存取以字符为单位
(2)get和put操作:字符设备不可寻址,只能采用顺序存取方式,通常带有一个缓冲区
(3)in-control指令:字符设备类型众多,为了以统一的方式处理,必需提供一个通用的指令,该指令包括的参数对应不同设备
3.网络通信接口
与网络协议和网络层次有关,操作系统要提供面向网络的各种接口。
(1)网络协议:UDP、TCP等
(2)网络体系结构:OSI七层模型,但实际上用的TCP/IP协议,只有五层