首页 理论教育 计算机操作系统中的I/O系统

计算机操作系统中的I/O系统

时间:2023-11-06 理论教育 版权反馈
【摘要】:I/O系统是用于实现数据输入、输出及数据存储的系统。

计算机操作系统中的I/O系统

I/O系统是用于实现数据输入、输出及数据存储的系统。I/O系统硬件除包括I/O设备和外部存储设备外,还包括相应的设备控制器、总线和管理软件,在大中型计算机系统中,还需要配置I/O通道或I/O处理机。

6.1.1 I/O设备

1.设备的类型

计算机所管理的I/O设备的类型繁多,特性各异,操作方式区别很大,因此其对应的管理软件也不同,从而使操作系统的设备管理变得十分复杂。从操作系统的观点看,I/O设备重要的性能指标有:设备使用特性、数据传输速率、数据的传输单位、设备共享属性、设备的从属关系等。从不同角度对设备进行分类便于简化设备的管理,对于硬件特性相似的同一类型的设备可采用相同的管理程序或只做较少的改动。

1)按设备的使用特性分类

按设备的使用特性可将设备分为两类。一类是存储设备,也称外存或后备存储器、辅助存储器,是计算机系统存储信息的设备,如磁带机、磁盘机等。该类设备存取速度较内存慢,但容量比内存大得多,价格也相对便宜。另一类是I/O设备,又可分为输入设备、输出设备和交互式设备。输入设备用来接收外部信息,如键盘、鼠标、扫描仪、视频摄像、各类传感器等。输出设备用于将计算机加工处理后的信息向外输出,如打印机、绘图仪显示器、数字视频显示设备、音响输出设备等。交互式设备则是集成以上两类设备,利用输入设备接收用户命令信息,并通过输出设备(主要是显示器)同步显示用户命令以及命令执行的结果。

2)按传输速率分类

按传输速度的高低可将I/O设备分为三类。第一类是低速设备,指其传输速率仅为每秒几个字节至数百个字节的一类设备,典型的低速设备有键盘、鼠标器、语音输入和输出设备等。第二类是中速设备,是指其传输速率在每秒数千个字节至数十万个字节的一类设备,典型的中速设备有行式打印机、激光打印机等。第三类是高速设备,是指其传输速率在数百个千字节至千兆字节的一类设备,典型的高速设备有磁带机、磁盘机、光盘机等。

3)按信息交换的单位分类

按信息交换的单位可将I/O设备分成两类。第一类是块设备(block device),设备信息的交换是以数据块为单位进行,属于有结构设备。I/O存储设备一般为块设备,典型的块设备是磁盘,每个盘块的大小为512 B~4 KB。磁盘设备的基本特征是其传输速率较高,通常为每秒钟几兆位;另一特征是可寻址,可随机地读/写任一块;此外,磁盘设备的I/O通常采用DMA方式。第二类是字符设备(character device),用于数据的输入和输出,其基本单位是字符,属于无结构类型设备。字符设备的种类繁多,如交互式终端、打印机等。字符设备的基本特征是其传输速率较低,通常为几个字节至数千字节;另一特征是不可寻址,即输入输出时不能指定数据的输入源地址及输出的目标地址;此外,字符设备在I/O时,通常采用中断驱动方式。

4)按设备的共享属性分类

按设备的共享属性可将I/O设备分为以下三类:

(1)独占设备。是指在一段时间内只允许一个用户(进程)访问的设备,即临界资源。系统一旦把这类设备分配给了某进程后,便由该进程独占,直至用完释放,因此多个并发进程应互斥地访问这类设备,独占设备的分配有可能引起进程死锁。

(2)共享设备。是指在一段时间内允许多个进程同时访问的设备,但是对于同一时刻而言,该类设备仍然只允许一个进程访问,因此共享设备必须是可寻址的和可随机访问的设备。典型的共享设备是磁盘。共享设备不仅可获得良好的设备利用率,而且也是实现文件系统和数据库系统的设备基础。

(3)虚拟设备。是指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户(进程)同时使用。

5)按设备的从属关系分类

按设备的从属关系可把设备分为两类。第一类是系统设备,这类设备是在OS生成时就已配置好的各种标准设备,如鼠标、键盘、打印机以及存储设备等。第二类是用户设备,是由用户自己安装配置后由OS统一管理的设备,如图像系统中的图像设备、网络系统中的网板、实时系统中的A/D、D/A转换器等。

2.设备管理的功能和任务

设备管理是对计算机I/O系统的管理,其基本任务是完成用户提出的I/O请求,提高I/O速率以及提高I/O设备的利用率。

为了完成上述基本任务,设备管理需提供的主要功能如下:

(1)进行设备的分配与回收。按照设备的特性和相应的算法将设备进行合理分配,既要满足用户要求,又要提高系统效率,而且当用户不再使用这些设备时应及时收回。

(2)提供与进程管理系统的接口。现代计算机系统不允许用户直接管理外围设备,一方面是为了减轻用户的负担,另一方面是为了提高系统的可靠性。当进程要求设备资源时,该接口将进程要求转达给设备管理系统进行处理,实现设备的管理。

(3)实现设备与设备、设备与CPU等之间的并行操作。现代计算机系统都有自成独立系统的通道结构,进行内存和设备之间的信息传送。有了通道后,只要CPU发出启动通道工作的命令,通道接受后就自行控制外设与主存之间的数据传送,而CPU可继续执行其他程序,与通道并行工作。在没有通道的系统中,由设备管理程序利于中断技术完成上述并行操作。

(4)进行缓冲区管理。一般来说,CPU的执行速度和访问内存速度都高于I/O设备,为了缓和设备与CPU之间速度不匹配的矛盾,系统中一般设有缓冲区(器),设备管理程序要进行缓冲区的分配、释放及有关的管理工作。

(5)虚拟设备的实现。为了提高独占设备的利用率,用可共享的设备来模拟独占型设备,于是仿佛独占使用的设备变成了可共享的设备。通常把模拟的独占设备称为虚拟设备。它的存取速度就是用于模拟的共享设备的存取速度,比实际的被模拟的独占设备的存取速度高得多,有利于提高作业的执行速度。

6.1.2 设备控制器

I/O设备一般由机械电子两部分组成,通常是将这两部分分开处理,以提供更加模块化、更加通用的设计,其中机械部分就是设备本身,电子部分被称作设备控制器(device controller或adapter),因此设备并不直接与CPU进行通信,而是与设备控制器通信,设备控制器可以控制一个或多个I/O设备,以实现设备和计算机之间的数据交换。它接收从CPU发来的命令,去控制I/O设备工作,以使CPU从繁杂的设备控制事务中解脱出来。

设备控制器是一个可编址的设备,当它仅控制一个设备时,它只有一个唯一的设备地址;当控制器可控制多个设备时,则应含有多个设备地址,并使每一个设备地址对应一个设备。

设备控制器的复杂性因设备不同而异。设备控制器可分为两类:一类是用于控制字符设备的控制器;另一类是用于控制块设备的控制器。微型机和小型机中的控制器,常做成印刷电路卡形式插入计算机,也被称为接口卡。

1.设备控制器的基本功能

1)接收和识别CPU命令

CPU可以向控制器发送多种不同的命令,设备控制器应能接收并识别这些命令。因此在控制器中应具有相应的控制寄存器,用来存放接收的命令和参数,并对所接收的命令进行译码。

2)实现CPU与控制器之间、控制器与设备之间的数据交换

CPU与控制器之间的数据交换是通过数据总线,由CPU并行地把数据写入控制器,或从控制器并行地读出数据;控制器与设备之间的数据交换是设备将数据输入控制器,或从控制器传送给设备。因此在控制器中需要设置数据寄存器。

3)标识和报告设备的状态

设备控制器应能够记录设备的状态,供CPU了解。因此在控制器中需要设置状态寄存器,当CPU将读入该寄存器的内容后,便可了解该设备的状态。

4)设备地址识别

就像内存中的每一个单元都有一个地址一样,系统中的每一个设备也都有一个地址,而设备控制器必须能够识别它所控制的每个设备的地址。因此在控制器中应配置地址译码器。(www.xing528.com)

5)数据缓冲

由于I/O设备的速率较低而CPU和内存的速率很高,因此在控制器中必须设置数据缓冲器。在数据输出时,用于暂存由主机高速传来的数据,然后再以I/O设备的速率将缓冲器中的数据传送给I/O设备;在数据输入时,用于暂存从I/O设备送来的数据,当接收到一批数据后,再将缓冲器中的数据高速地传送给主机。

6)差错控制

设备控制器还负责对由I/O设备传送来的数据进行差错检测。若发现传送中出现了错误,通常是将差错检测码置位,并向CPU报告。CPU将本次传送来的数据作废,并重新进行一次传送,以保证数据输入的正确性。

2.设备控制器的组成

由于设备控制器位于CPU与设备之间,它既要与CPU通信,又要与设备通信,还应具有按照CPU所发来的命令去控制设备工作的功能,因此现有的大多数控制器都是由以下三部分组成的。

1)设备控制器与CPU的接口

该接口用于实现CPU与设备控制器之间的通信,有三类信号线(数据线、地址线和控制线)和两类寄存器(数据寄存器、控制/状态寄存器)。

2)设备控制器与设备的接口

一个设备控制器可以连接一个或多个设备,相应地,控制器中便有一个或多个设备接口。每个接口连接一台设备。每个接口中都存在数据、控制和状态三种类型的信号线。控制器中的I/O逻辑根据CPU发来的地址信号去选择一个设备接口。

3)I/O逻辑

设备控制器中的I/O逻辑用于实现对设备的控制。它通过一组控制线与CPU交互,CPU利用该逻辑向控制器发送I/O命令;I/O逻辑对收到的命令进行译码。每当CPU要启动一个设备时,一方面将启动命令发送给控制器,同时通过地址线把地址发送给控制器,由控制器的I/O逻辑对收到的地址进行译码,并根据所译出的命令对所选设备进行控制。设备控制器的组成如图6-1所示。

图6-1 设备控制器的组成

6.1.3 I/O通道

1.I/O通道(I/O channel)设备的引入

虽然在CPU与I/O设备之间增加了设备控制器后已能大大减少CPU对I/O设备的干预,但当主机所配置的外设很多时,CPU的负担仍然很重。因此在大中型计算机系统中,在CPU和设备控制器之间又增设了通道设备。通道又称I/O处理器,是一个独立于CPU的专管I/O控制的处理机,它控制设备与内存直接进行数据交换,有自己的通道指令,这些指令由CPU启动,并在操作结束时向CPU发中断请求。

在设置了通道后,I/O操作过程如下:CPU在执行主程序时遇到I/O请求,则它启动指定通道上选址的外围设备,一旦启动成功,CPU只需向通道发送一条I/O指令,通道在收到该指令后,从内存中取出本次要执行的通道程序,开始控制外围设备进行操作,此时CPU就可执行其他任务并与通道并行工作,仅当通道完成了规定的I/O任务后,才向CPU发中断信号,CPU才停止当前工作,转向处理I/O操作结束事件。因此通道是一种特殊的处理机,它具有执行I/O指令的能力,通过执行通道程序来控制I/O操作,完成主存储器和设备之间的数据传送,能与CPU并行地执行操作。由通道管理和控制I/O操作,大大减少了设备和CPU的逻辑联系,解决了I/O操作的独立性和各部件工作的并行性,从而把CPU从琐碎的I/O操作中解放出来。通道的引入,外围设备和CPU可实现并行操作,通道和通道之问可实现并行操作,各通道上的外围设备也能实现并行操作,提高整个系统的数据I/O效率。

2.通道类型

由于外围设备的类型较多,且其传输速率相差很大,因而通道也具有多种类型。根据信息交换方式的不同,通道可分成以下三种类型。

1)字节多路通道(byte multiplexor channel)

字节多路通道是一种以字节为传输单位、按时间片轮换工作的通道,主要用来连接大量的低速外围设备,如终端、打印机。该通道通常都含有几十到数百个子通道,每个子通道连接一台I/O设备,按时间片轮转方式共享主通道,当第一个子通道控制其I/O设备完成一个字节的交换后,便腾出主通道,让给第二个子通道使用;当第二个子通道完成一个字节的交换后,把主通道让给第三个子通道,以此类推;当所有子通道轮转一遍后,重新返回到由第一个子通道使用主通道。这样,只要字节多路通道扫描每个子通道的速率足够快,而连接到子通道上的设备的速率不是太高时,便不致丢失信息。

2)数组多路通道(block multiplexor channel)

数组多路通道是以块为单位,分时交叉方式工作的通道,具有传输速度快和分时并行操作不同设备的优点,能获得令人满意的通道利用率。主要用来连接中速块设备,如磁带机。

3)选择通道(block selector channel)

数组多路通道和字节多路通道都可以分时执行不同的通道指令程序。而选择通道以块为单位传送数据,但一次只能执行一个通道指令程序,因此这种通道虽然可以连接多台高速设备,但在一段时间内只能控制一台设备进行数据传送,致使当某台设备占用了该通道后,便一直由它独占,即使它无数据传送,通道被闲置,也不允许其他设备使用该通道,直至该设备传送完毕释放该通道,可见,这种通道的利用率低。不过选择通道具有传送速度高的特点,用来连接以块为单位成批传送数据的高速设备,如磁盘机。

一个计算机系统中可根据需要选择适当的类型进行设置,由三种类型通道组成的数据传送控制结构如图6-2所示。

图6-2 通道方式的数据传送控制结构

3.I/O系统结构中的“瓶颈”现象

如图6-2所示,在I/O系统中通常一个通道连接多个设备控制器,每个设备控制器又连接多台设备,即便系统中有多个通道设备,每个设备与主机之间的数据传输通道也只有一条,这种结构的系统被称为单通道I/O系统,其结构如图6-3所示,在单通道I/O系统中如果需要启动某设备时,控制该设备进行数据交换的控制器或通道被其他设备占用,设备便无法启动,从而会造成整个系统吞吐量下降。如图6-3所示,如果要启动设备4,则要用通道1和控制器2,若这两者之一已被其他设备占用,则无法启动。这种现象就是由于通道或控制器不足引起的“瓶颈”现象,从而导致系统的吞吐量下降。

图6-3 单通道I/O系统

图6-4 多通道I/O系统

解决上述“瓶颈”问题的有效方法是增加设备到主机间的通道,形成多通道I/O系统,这是解决单通道系统吞吐低的有效方法,而不是增加通道和设备控制器,如图6-4所示。多通道I/O系统把一个设备连接到多个控制器上,而一个控制器又连接到多个通道上。图中的设备1、2、3和4,都有4条通往存储器的通道。多通道方式不仅解决了控制器或通道少造成的系统吞吐量下降的问题,而且提高了系统的可靠性,因为个别通道或控制器的故障不会使设备和存储器之间没有通道。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈