操作系统理论 第六章(输入输出系统)—第二节(I/O设备和设备控制器)

本文详细阐述了计算机操作系统中I/O设备的分类、设备控制器的功能与结构,以及I/O通道的作用和类型,特别是针对字节多路通道、数组选择通道和数组多路通道的区别。同时讨论了I/O通道作为瓶颈的问题及其解决方案。
摘要由CSDN通过智能技术生成

写在前面:

  1. 本系列笔记主要以《计算机操作系统(汤小丹…)》为参考,大部分内容出于此书,笔者的工作主要是挑其重点展示,另外配合下方视频链接的教程展开思路,在笔记中一些比较难懂的地方加以自己的一点点理解(重点基本都会有标注,没有任何标注的难懂文字应该是笔者因为强迫症而加进来的,可选择性地忽略)。
  2. 视频链接:操作系统(汤小丹等第四版)_哔哩哔哩_bilibili

一、I/O设备

1、I/O设备的类型

(1)按使用特性分类:

①存储设备,也称外存、辅存,是用以存储信息的主要设备,该类设备存取速度较内存慢,但容量却大得多,价格也便宜。

②I/O设备,又可分为输入设备、输出设备和交互式设备。输入设备用来接收外部信息,如键盘、鼠标、扫描仪、视频摄像等;输出设备用于将计算机处理后的信息送向处理机外部的设备,如打印机、绘图仪等;交互式设备则是指集成的上述两类设备,主要是显示器,用于同步显示用户命令以及命令执行的结果。

(2)按传输速率分类:

①低速设备,其传输速率仅为每秒钟几个字节至数百个字节,典型的低速设备有键盘、鼠标器。

②中速设备,其传输速率在每秒钟数千个字节至数十万个字节,典型的中速设备有行式打印机、激光打印机等。

③高速设备,其传输速率在数十万字节至千兆字节,典型的高速设备有磁带机、磁盘机、光盘机等。

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

①块设备:用于存储信息,对于信息的存取总是以数据块为单位。

②字符设备:用于数据的输入和输出,基本单位是字符。

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

①独占设备,进程应互斥地访问这类设备,即系统一旦把这类设备分配给了某进程后,便由该进程独占,直至用完释放。

②共享设备,是指在一段时间内允许多个进程同时访问的设备(某一时刻只允许一个进程访问)。

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

2、设备与控制器之间的接口

        通常设备并不是直接与CPU进行通信,而是与设备控制器通信,因此在I/O设备中应含有与设备控制器间的接口,在该接口中有三种类型的信号,各对应一条信号线。

        ①数据信号线:这类信号线用于在设备和设备控制器之间传送数据信号。对输入设备而言,由外界输入的信号经转换器转换后,所形成的数据通常先送入缓冲器中,当数据量达到一定的比特(字符)数后,再从缓冲器通过一组数据信号线传送给设备控制器;对输出设备而言,则是将从设备控制器经过数据信号线传送来的一批数据先暂存于缓冲器中,经转换器作适当转换后,再逐个字符地输出。

        ②控制信号线:这是作为由设备控制器向I/O设备发送控制信号时的通路,该信号规定了设备将要执行的操作。

        ③状态信号线:该信号线用于传送指示设备当前状态的信号。设备的当前状态有正在读(或写)、设备已读(写)完成并准备好新的数据传送。

二、设备控制器

1、概述

(1)设备控制器的主要功能是控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换,它是CPU与I/O设备之间的接口,接收从CPU发来的命令,去控制I/O设备工作,使处理机能够从繁杂的设备控制事务中解脱出来。

(2)设备控制器是一个可编址的设备,当它仅控制一个设备时,它只有一个唯一的设备地址;若控制器可连接多个设备,则应含有多个设备地址,每一个设备地址对应一个设备。

(3)可把设备控制器分成两类,一类是用于控制字符设备的控制器,另一类是用于控制块设备的控制器。

2、设备控制器的基本功能

(1)接收和识别命令。设备控制器能接收并识别处理机发来的多种命令,在控制器中具有相应的控制寄存器,用来存放接收的命令和参数,并对所接收的命令进行译码。

(2)数据交换。设备控制器可实现CPU与控制器之间、控制器与设备之间的数据交换,对于前者,是通过数据总线,由CPU并行地把数据写入控制器,或从控制器中并行地读出数据,对于后者,是设备将数据输入到控制器,或从控制器传送给设备。为此,在控制中须设置数据寄存器。

(3)标识和报告设备的状态。控制器应记下设备的状态供CPU了解,为此在控制器中应设置一状态寄存器,用其中的每一位反映设备的某一种状态,当CPU将该寄存器的内容读入后,便可了解该设备的状态。

(4)地址识别。就像内存中的每一个单元都有一个地址一样,系统中的每一个设备也都有一个地址,设备控制器必须能够识别其所控制的每个设备的地址。此外,为使CPU能向(或从)寄存器中写入(或读出)数据,这些寄存器都应具有唯一的地址,控制器应能正确识别这些地址。为此,在控制器中应配置地址译码器。

(5)数据缓冲区。由于I/O设备的速率较低,而CPU和内存的速率却很高,故在控制器中必须设置一缓冲区。在输出时,用此缓冲区暂存由主机高速传来的数据,然后才以与I/O设备所匹配的速率将缓冲器中的数据传送给I/O设备;在输入时,缓冲区则用于暂存从I/O设备送来的数据,待接收到一批数据后,再将缓冲区中的数据高速地传送给主机。

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

3、设备控制器的组成

(1)设备控制器与处理机的接口。该接口用于实现CPU与设备控制器之间的通信,在该接口中共有三类信号线,分别是数据线、地址线和控制线。数据线通常与两类寄存器相连接,第一类是数据寄存器,在控制器中可以有一个或多个数据寄存器,用于存放从设备送来的数据(输入),或从CPU送来的数据(输出);第二类是控制状态寄存器,在控制器中可以有一个或多个这类寄存器,用于存放从CPU送来的控制信息或设备的状态信息。

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

(3)I/O逻辑。I/O逻辑用于实现对设备的控制,它通过一组控制线与处理机交互,处理机利用该逻辑向控制器发送I/O命令。每当CPU要启动一个设备时,一方面将启动命令发送给控制器,另一方面又同时通过地址线把地址发送给控制器,由控制器的I/O逻辑对收到的地址进行译码,再根据所译出的命令对所选设备进行控制

三、I/O通道

1、I/O通道设备的引入

        引入I/O通道的主要目的是为了建立独立的I/O操作,不仅使数据的传送能独立于CPU,而且也希望有关对I/O操作的组织、管理及其结束处理尽量独立,以保证CPU有更多的时间去进行数据处理,或者说其目的是使一些原来由CPU处理的I/O任务转由通道来承担,从而把CPU从繁杂的I/O任务中解脱出来。

        在设置了通道后,CPU只需向通道发送一条I/O指令,通道在收到该指令后,便从内存中取出本次要执行的通道程序然后执行该通道程序,仅当通道完成了规定的I/O任务后,才向CPU发中断信号

        I/O通道是一种特殊的处理机,与一般的处理机不同,主要表现在以下两个方面:

        ①指令类型单一,这是由于通道硬件比较简单,其所能执行的命令,主要局限于与I/O操作有关的指令。

        ②通道没有自己的内存,通道所执行的通道程序是放在主机的内存中的,换言之,是通道与CPU共享内存。

2、通道类型

(1)字节多路通道:

①这是一种按字节交叉方式工作的通道,它通常都含有许多非分配型子通道,其数量可从几十到数百个,每一个子通道连接一台I/O设备,并控制该设备的I/O操作。

②这些子通道按时间片轮转方式共享主通道,当第一个子通道控制其I/O设备完成一个字节的交换后,便立即腾出主通道,让给第二个子通道使用,当第二个子通道也完成一个字节的交换后,同样也把主通道让给第三个子通道,依此类推。当所有子通道轮转一周后,重又返回来由第一个子通道去使用字节多路主通道,这样,只要字节多路通道扫描每个子通道的速率足够快,而连接到子通道上的设备的速率又不是太高,便不致丢失信息。

③这种通道适用于连接低速或中速设备,如打印机、中端等,但不适于连接高速设备。

(2)数组选择通道:

        数组选择通道虽然可以连接多台高速设备,但由于它只含有一个分配型子通道,在一段时间内只能执行一道通道程序,控制一台设备进行数据传送,致使当某台设备占用了该通道后,便一直由它独占,即使是它无数据传送,通道被闲置,也不允许其它设备使用该通道,直至该设备传送完毕释放该通道。可见,这种通道的利用率很低。

(3)数组多路通道:

        数组多路通道是将数组选择通道传输速率高和字节多路通道能使各子通道(设备)分时并行操作的优点相结合而形成的一种新通道,它含有多个非分配型子通道,因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率,也正因此,才使该通道能被广泛地用于连接多台高、中速的外围设备,其数据传送是按数组方式进行的。

3、瓶颈问题

(1)由于通道价格昂贵,致使机器中所设置的通道数量势必较少,这往往又使它成了I/O的瓶颈,进而造成整个系统吞吐量的下降。

(2)解决“瓶颈”问题的最有效的方法便是增加设备到主机间的通路而不增加通道,换言之,就是把一个设备连接到多个控制器上,而一个控制器又连接到多个通道上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zevalin爱灰灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值