OS(十七):设备管理之 I/O系统
1、I/O设备
1.1、I/O设备类型
按设备的使用特性分类,存储设备 和 输入输出设备。
按传输速率分类:低速设备、中速设备、高速设备。
按信息交换分类:块设备,用于存储信息;字符设备,用户数据的输入和输出。
按设备的共享属性分类:独占设备、共享设备、虚拟设备。
1.2、设备与控制器之间的接口
设备与设备控制器通信,而不是直接与CPU通信,I/O设备中应该含有与设备控制器间的接口,接口中有三类信号:
数据信号线:用于设备和设备控制器之间传送数据信号;
控制信号线:由设备控制器向I/O设备发送控制信号时的通路;
状态信号线:用于传送指示设备当前状态的信号。
2、设备控制器
设备控制器是计算中的一个实体,主要职责是控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换,是CPU与I/O设备之间的接口,接收从CPU发来的命令,去控制I/O设备工作。
设备控制器可分为两类:控制字符设备的控制器、控制块设备的控制器。
2.1、设备控制器的基本概念
接收和识别命令:CPU可以向控制器发送多种不同的命令,设备控制器应该能接收并识别这些命令。
数据交换:CPU与控制器之间、控制器与设备之间的数据交换。
标识和报告设备的状态:记录设备的状态供CPU了解。
地址识别:系统中每一个设备都有一个地址,设备控制器必须能够识别它锁控制的每个设备的地址。
数据缓冲:I/O设备速率较低而CPU和内存的速率较高,在控制器中设置缓冲器,缓解速度不匹配的问题。
差错控制:设备控制器兼管对由I/O设备传送来的数据进行差错检测。
2.2、设备控制器的组成
设备控制器位于CPU和设备之间,既要与CPU通信,又要与设备通信,还要按CPU发来的命令去控制设备工作。
设备控制器与处理机的接口,实现CPU与设备控制器的通信。三类信号线:数据线、地址线和控制线。数据线与 数据寄存器 和 控制/状态寄存器 相连。
设备控制器与设备的接口,一个设备控制器上可连接一个或多个设备,控制器中的一个接口连接一台设备,每个接口中都存在数据、控制、状态三种类型的信号。
I/O逻辑:设备控制器中的I/O逻辑用于实现对设备的控制。
3、I/O通道
3.1、I/O通道(I/O Channel)设备的引入
I/O通道主要是为了建立独立的I/O操作,使数据的传送能独立于CPU,对I/O操作的阻止、管理及其结束处理也能独立,保证CPU有更多的时间进行数据处理。
I/O通道是一种特殊的处理机,具有执行I/O指令的能力,并通过执行通道(I/O)程序来控制I/O操作。
I/O通道的指令类型单一,通道与CPU共享内存,它没有自己的内存。
3.2、通道的类型
字节多路通道(Byte Multiplexor Channel):按字节交叉方式工作的通道,含有许多非分配型子通道,每一个子通道连接一台I/O设备,并控制该设备的I/O操作。子通道按时间片轮转方式共享主通道,不适于连接高速设备,
字节多路通道的工作原理:
数组选择通道(Block Selector Channel):连接多台高速设备,只含有一个分配型子通道,通道利用率低。
数组多路选择通道(Block Multiplexor Channel):将数组选择通道的传输速率与字节多路通道能使各子通道分时并行操作的优点结合而形成的一种新通道,高传输速率及通道利用率。
3.3、瓶颈问题
通道成本高昂,机器中设置的通道数量有限,往往回测还能够为I/O的瓶颈,造成整个系统吞吐量的下降。
解决此瓶颈问题:增加设备到主机间的通路,而不增加通道。