OperatingSystemPage12020/2/26OperatingSystemPage22020/2/26第五章设备管理I/O系统是计算机系统的重要组成部分I/O系统包括用于实现信息输入、输出和存储功能的设备和相应的控制器设备管理的基本任务是完成用户提出的I/O请求,提高I/O速率以及改善I/O的利用率设备管理的主要功能有缓冲区管理、设备分配、设备处理、虚拟设备及实现设备独立性OperatingSystemPage32020/2/26第五章设备管理I/O系统I/O控制方式缓冲管理设备分配设备处理磁盘存储器管理OperatingSystemPage42020/2/26I/O系统I/O设备设备控制器I/O通道总线系统OperatingSystemPage52020/2/26I/O设备I/O设备的类型按从属关系分类系统设备用户设备OperatingSystemPage62020/2/26I/O设备I/O设备的类型按传输速率分类低速设备每秒几个字节至数百字节键盘、鼠标、语音输入输出设备等中速设备每秒数千至数万字节行式打印机、激光打印机等高速设备每秒数百K至数十M字节磁盘机、磁带机、光盘机等OperatingSystemPage72020/2/26I/O设备I/O设备的类型按信息交换的单位分类块设备(BlockDevice)信息的存取总是以数据块为单位可寻址磁盘,每个盘块的大小为512B~4KB字符设备(CharacterDevice)基本单位是字符不可寻址交互式终端、打印机OperatingSystemPage82020/2/26I/O设备I/O设备的类型按资源分配角度分类(共享属性)独占设备多数低速设备属独占设备,如打印机共享设备可供多个进程同时访问,如磁盘虚拟设备通过虚拟技术将一台独占设备变换为若干个逻辑设备,供若干个进程同时使用临界资源OperatingSystemPage92020/2/26I/O设备I/O设备的类型按操作特性存储设备存储信息,如磁盘等I/O设备用来向CPU传送信息或输出加工处理后的信息,如显示器、打印机OperatingSystemPage102020/2/26I/O设备设备与控制器之间的接口数据信号线用于在设备和设备控制器之间传送数据信号控制信号线作为由设备控制器向I/O设备发送控制信号(规定设备应执行的操作)时的通路状态信号线用于传送指示设备当前状态的信号缓冲转换器控制逻辑信号数据数据信号线状态信号线控制信号线至设备控制器I/O设备OperatingSystemPage112020/2/26I/O系统I/O设备设备控制器I/O通道总线系统OperatingSystemPage122020/2/26设备控制器设备控制器是CPU与I/O设备之间的接口接收CPU发来的命令,控制一个或多个I/O设备工作,以实现I/O设备和计算机之间的数据交换,减轻CPU的负担设备控制器是一个可编址的设备设备控制器分类控制字符设备控制块设备OperatingSystemPage132020/2/26设备控制器基本功能接收和识别命令应有控制寄存器存放接受的命令和参数,并对其译码数据交换实现CPU与控制器、控制器与设备之间的数据交换,需设置数据寄存器标识和报告设备的状态:需设置状态寄存器地址识别识别所控制的设备,需设置地址译码器数据缓冲:解决I/O设备速率低的问题差错控制:对I/O设备发送的数据OperatingSystemPage142020/2/262.设备控制器的组成由于设备控制器处于CPU与设备之间,它既要与CPU通信,又要与设备通信,还应具有按照CPU所发来的命令去控制设备的工作功能。因此,现有的大多数控制器都是由以下三部分组成的:(1)设备控制器与处理机的接口。(2)设备控制器与设备的接口(3)I/O逻辑OperatingSystemPage152020/2/26设备控制器设备控制器的组成设备控制器与处理机的接口实现CPU与设备控制器之间通信三类信号线数据线:连接•数据寄存器:存放设备或CPU送来的数据•控制/状态寄存器:存放CPU送来的控制信息或设备的状态信息地址线控制线OperatingSystemPage162020/2/26设备控制器设备控制器的组成设备控制器与设备的接口一个设备控制器可连接一个或多个设备控制器中则有一个或多个设备接口接口中存在数据、控制、状态信号I/O逻辑根据处理机发来的地址信号选择一个设备接口OperatingSystemPage172020/2/26设备控制器设备控制器的组成I/O逻辑:实现对设备的控制处理机利用它向控制器发送I/O命令I/O逻辑对接受到的命令进行译码CPU发送同时启动命令及地址(通过地址线)发送给控制器,控制器的I/O逻辑对地址译码,在根据命令对所选设备进行控制OperatingSystemPage182020/2/26设备控制器设备控制器的组成数据寄存器控制/状态寄存器数据线I/O逻辑…控制器与设备接口1控制器与设备接口i数据状态控制数据状态控制…地址线控制线CPU与控制器接口控制器与设备接口OperatingSystemPage192020/2/26I/O系统I/O设备设备控制器I/O通道总线系统OperatingSystemPage202020/2/26I/O通道I/O通道(I/OChannel)设备的引入是一种特殊处理机,专门负责输入/输出工作有自己简单的指令系统,只有数据传送指令和设备控制指令主要目的是为了建立独立的I/O操作,使有关对I/O操作的组织、管理及其结束处理也独立于CPUCPU向I/O通道发送I/O命令,由通道执行程序通道与一般处理机的区别指令单一没有独立的内存OperatingSystemPage212020/2/26I/O通道通道类型字节多路通道(ByteMultiplexorChannel)以字节交换方式工作,分时并行操作主要用来连接多个中低速设备控制器A控制器B控制器C控制器D控制器N…A1A2A3…子通道AB1B2B3…子通道BC1C2C3…子通道CN1N2N3…子通道NA1B1C1…A2B2C2…设备OperatingSystemPage222020/2/26I/O通道通道类型数组选择通道(BlockSelectorChannel)以成组方式工作,高速传输数据可以连接多台高速设备仅含有一个分配型子通道,在一段时间内只能执行一个通道程序,控制一台I/O设备由设备独占使用,利用率较低OperatingSystemPage232020/2/26I/O通道通道类型数组多路通道(BlockMultiplexorChannel)将数组选择通道传输速率高和字节多路通道分时并行操作的优点相结合而形成的一种新通道它含有多个非分配型子通道,因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率OperatingSystemPage242020/2/26I/O通道瓶颈问题设备1设备2设备3设备4设备5设备6设备7控制器1控制器2控制器3控制器4通道1通道2存储器OperatingSystemPage252020/2/26I/O通道设备1控制器1控制器2通道1通道2存储器设备2设备3设备4OperatingSystemPage262020/2/26I/O系统I/O设备设备控制器I/O通道总线系统OperatingSystemPage272020/2/26总线系统在计算机系统中的各部件,如CPU、存储器以及各种I/O设备之间都是通过总线来联系CPU存储器磁盘控制器打印机控制器…其它控制器磁盘驱动器打印机系统总线OperatingSystemPage282020/2/26总线系统ISA和EISA总线ISA(IndustryStandardArchitecture)总线1984年为80286型微机设计带宽为8位最高传输速率为2Mb/sEISA(ExtendedISA)总线带宽为32位传输速率32Mb/sOperatingSystemPage292020/2/26总线系统局部总线(LocalBus)局部总线是指将多媒体卡、高速网卡、高性能图形板等从ISA总线上卸下来,再通过局部总线控制器直接接到CPU总线上VESA(VideoElectronicStandardAssociation)总线带宽32位最高传输速率为132Mb/sPCI(PeripheralComponentInterface)总线在CPU和外设间插入一复杂的管理层,用于协调数据传输和提供一致的接口OperatingSystemPage302020/2/26设备管理功能设备分配按设备类型和分配算法将I/O设备、控制器及通道分配给用户进程对不能得到资源的进程进行阻塞缓冲区管理在CPU和设备之间进行速度匹配设备的I/O操作生成通道程序并启动和控制通道完成I/O操作未设置通道的系统应对相应设备I/O进行必要的处理OperatingSystemPage312020/2/26第五章设备管理I/O系统I/O控制方式缓冲管理设备分配设备处理磁盘存储器管理OperatingSystemPage322020/2/26I/O控制方式程序I/O方式中断驱动I/O方式直接存储器访问DMAI/O控制方式I/O通道控制方式OperatingSystemPage332020/2/26程序I/O方式处理机对I/O设备的控制采用程序I/O(ProgrammedI/O)方式,或称为忙-等方式CPU通过I/O测试指令测试设备接口中的状态位,当为“忙”时则一直测试,当为“闲”时,可进行数据传送,每次传送一个字符CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中外设不能合理使用,也无法支持多道程序程序I/O方式向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读入字向存储器中写字传送完成?未就绪就绪出错CPU→I/OI/O→CPUI/O→CPUCPU→内存下条指令完成未完(a)程序I/O方式缺点:独占CPU,始终繁忙OperatingSystemPage352020/2/26I/O控制方式程序I/O方式中断驱动I/O方式直接存储器访问DMAI/O控制方式I/O通道控制方式OperatingSystemPage362020/2/26中断驱动I/O方式中断驱动(InterruptDriven)方式,即当某进程要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务设备控制器按命令要求去控制指定的I/O设备,完成后,通过中断向CPU发送一中断信号在I/O设备输入数据的过程中,无须CPU干预,每次传送一个字符中断驱动I/O方式向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读字向内存中写字传送完成?就绪出错CPU→I/OI/O→CPUI/O→CPUCPU→内存下条指令完成未完中断CPU(b)中断驱动方式做其它事•优点:提高了CPU的利用率(成百倍)•缺点:每I/O一个数据都要中断一次CPU,在一次数据传送中断多次,耗去大量CPU处理时间OperatingSystemPage382020/2/26中断驱动I/O控制方式在I/O设备输入每个数据的过程中,由于无须CPU干预,因而可使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理。可见,这样可使CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。例如,从终端输入一个字符的时间约为100ms,而将字符送入终端缓冲区的时间小于0.1ms。若采用程序I/O方式,CPU约有99.