18 I/O系统
I/O系统是计算机系统中的重要组成部分,是用于实现数据输入、输出以及数据存储的系统。该系统中包括用于实现信息输入输出和存储功能的相应控制设备,在大中型机中,还有设备控制器以及I/O通道。
1 I/O设备
I/O设备管理是操作系统设计中最凌乱也最具挑战性的部分。由于它包含了很多领域的不同设备以及与设备相关的应用程序,因此很难有一个通用且一致的设计方案。所以在理解设备管理之前,应该先了解具体的I/O设备类型。
1.1 按使用特性分类:
-
输入输出设备
用于同计算机用户之间交互的设备,如打印机、显示器、鼠标、键盘等。这类设备数据交换速度相对较慢,通常是以字节为单位进行数据交换。 -
存储设备
用于存储程序和数据的设备,如磁盘、磁带、光盘等。这类设备用于数据交换,速度较快,通常以多字节组成的块为单位进行数据交换。 - ** 网络通信设备**
用于与远程设备通信的设备,如各种网络接口、调制解调器等。其速度介于前两类设备之间。网络通信设备在使用和管理上与前两类设备也有很大不同。
1.2 按传输速率分类:
-
低速设备
传输速率仅为每秒几个到数百个字节的一类设备,如键盘、鼠标等。 -
中速设备
传输速率在每秒数千个字节至数万个字节的一类设备,如行式打印机、 激光打印机等。 -
高速设备
传输速率在数百个千字节至千兆字节的一类设备,如磁带机、磁盘机、 光盘机等。
1.3 按信息交换的单位分类:
-
块设备
由于信息的存取总是以数据块为单位,所以存储信息的设备称为块设备。它属于有结构设备,如磁盘等。磁盘设备的基本特征是传输速率较高,以及可寻址,即对它可随机地读/写任一块。 -
字符设备
用于数据输入/输出的设备为字符设备,因为其传输的基本单位是字符。它属于无结构类型,如交互式终端机、打印机等。它们的基本特征是传输速率低、不可寻址,并且在输入/输出时常釆用中断驱动方式。
1.4 按共享属性分类:
-
独占设备
在一段时间内只允许一个用户(进程)访问的设备,即临界资源。并发进程需要互斥地使用此类设备。设备的不当分配可能导致死锁。 -
共享设备
在一段时间内允许多个进程同时访问的设备。对于每一时刻而言,该类设备仍然只允许一个进程访问。共享设备必须是可寻址和随机访问的。共享设备不仅可以获得良好的设备利用率,还是实现文件系统和数据库的物质基础,例如磁盘。 -
虚拟设备
指通过虚拟技术(Spooling技术)将一台独占设备变换为若干台逻辑设备,供多个用户(进程)使用。
2 设备控制器
设备通常不与CPU直接通信,而是与设备控制器通信。后者的主要职责是控制一个的、或者多个I/O设备,以实现I/O设备与与计算机之间的信息交换。它是CPU与I/O设备之间的接口,接受从CPU发来的命令,并去控制I/O设备工作。
设备控制器由设备控制器与处理机接口、设备控制器与设备接口以及I/O逻辑三部分组成。其基本功能包括:
-
接收和识别命令
CPU可以向控制器发送多种不同的命令,设备控制器负责识别这些命令。 -
数据交换
指设备控制器与CPU之间、设备控制器与设备间的数据交换。 -
标识和报告设备的状态
控制器应记下设备的状态供CPU了解。 -
地址识别
系统中每个设备都应有独特的地址,设备控制器必须能够给设备它所控制的每个设备的地址。 -
数据缓冲
由于I/O设备速率较低,CPU和内存的速率却很高,因此需要在设备控制器中设置缓冲器。 -
差错控制
设备控制器还兼管对I/O设备传送来的数据进行差错检测。
3 I/O通道
虽然设备控制器能够大幅度减少CPU对I/O的干预,但CPU的负担仍然很重。为此,在CPU和设备控制器之间又增设了通道。
I/O通道是特殊的处理机,具有执行I/O指令的功能。其设置的目的是为了建立独立的I/O操作,不仅使数据的传送能力独立于CPU,而且希望有关对I/O操作的组织、管理以及结束处理尽量独立,以保证CPU有更多时间去处理其他事务。
I/O通道根据信息交换方式不同,分为:字节多路通道、数组选择通道、数据多路通道。数据多路通道以数组方式进行数据传送,解决了字节多路通道传输速率低、数组选择通道无法分时并行操作的缺点,具有较高的数据传输速率和令人满意的通道利用率。广泛地用于连接多台高、中速外围设备。
4 总线系统
在计算机中的各部件,如CPU、存储器以及各类I/O设备之间的联系都是通过总线实现的。其性能是通过总线的始终频率、带宽和相应的总线传输速率衡量的。
总线由早期的ISA总线,发展为EISA总线、VESA总线,进而发展为当前广为流行的PCI总线。