一.广义的IO设备
对CPU而言,凡是对CPU进行数据输入的都是输入设备;
对CPU而言,凡是CPU进行数据输出的都是输出设备。
1.1 按使用特性分类
存储设备 | 交互IO设备 |
---|---|
U盘、内存、磁盘 | 键盘、显示器、鼠标 |
1.2 按信息交换的单位分类
块(block)设备 | 字符(char)设备 |
---|---|
磁盘、SD卡 | 打印机、Shell中断 |
1.3 按设备的共享属性进行分类
独占设备 | 共享设备 | 虚拟设备 |
---|
1.4 按传输速率分类
高速设备 | 中速设备 | 低速设备 |
---|
二.IO设备的缓冲区
为了解决CPU与IO设备的速率不匹配,操作系统采取了两种方式,一种是之前所说的存储器的层次结构,另一种就是IO设备的缓冲区。
缓冲区可以减少CPU处理|O请求的频率,并且可以提高CPU与IO设备之间的并行性。
因为专用缓冲区只适用于特定的IO进程,当这样的IO进程比较多时,对内存的消耗也很大,所以操作系统划出可供多个进程使用的公共缓冲区,称之为缓冲池。
三.SPOOLing技术
SPOOLing技术是关于慢速字符设备如何与计算机主机交换信息的一种技术。
利用高速共享设备将低速的独享设备模拟为高速的共享设备。在逻辑上,系统为每一个用户都分配了一 台独立的高速独享设备。也是虚拟设备技术。
SPOOLing技术把同步调用低速设备改为异步调用。
技术特点:
- 在输入、输出之间增加了排队转储环节(输入井、输出井)
- SPOOLing负责输入(出)井与低速设备之间的调度
- 逻辑上,进程直接与高速设备交互,减少了进程的等待时间