1/28操作系统第五章设备管理P160计算机外部设备:计算机系统中除CPU和内存储器外,用来向计算机输入和输出信息的所有设备和装置,称为计算机外部设备(也叫外围设备或I/O设备)如键盘、鼠标、显示器、打印机等。在现代计算机系统中有些设备既是I/O设备,也是存储设备。例如,软盘、硬盘等。(存储设备:用来存放各种信息的设备称为存储设备,例如,软盘、硬盘、光盘和磁带等;)2/28操作系统磁带机硬盘光盘绘图仪扫描仪键盘打印机常见外设3/28操作系统负责管理系统中所有的外部设备。设备管理1、进行设备分配——设备分配程序2、实现真正I/O操作——设备处理(驱动)程序3、实现其它功能——缓冲区管理用缓冲区提供CPU与I/O设备的速度匹配按照设备类型和系统分配策略进行设备分配与回收向用户提供统一的接口——屏蔽I/O操作的细节实现设备驱动——真正的I/O操作实现虚拟设备管理设备管理的功能4/28操作系统按传输速度低速设备:每秒几个字节至数百字节如:键盘、鼠标、语音的输入输出设备中速设备:每秒数千字节至数万字节如:行式打印机、激光打印机高速设备:每秒数百千字节以上如:磁带机、磁盘机、光盘机等5.1.1I/O设备分类5.1I/O系统I/O系统:是用于实现数据输入、输出及数据存储的系统。5/28操作系统按信息交换单位块设备:信息传输以块为单位(磁盘)用于存储信息;属于结构类型;如:磁盘,盘块大小为512B~4KB磁盘设备的基本特征是其传输速度较高,通常每秒钟为几兆位;可寻址,即对它可随机地读/写任一块。磁盘设备的I/O采用DMA方式。字符设备:信息传输以字符为单位(打印机)用于数据的输入和输出;属无结构类型;种类多,如交互式终端、打印机等。基本特征是其传输速率较低,通常为几个字节至数千个字节;另一特征是不可寻址,即输入/输出时不能指定数据的输入源地址及输出的目标地址。5.1.1I/O设备分类5.1I/O系统6/28操作系统5.1.1I/O设备分类5.1I/O系统按分配方式独占设备:临界资源(打印机)共享设备:可寻址、可随机访问(磁盘)虚拟设备:将独占设备虚拟为多台逻辑设备7/28操作系统2.设备与控制器之间的接口图5-1设备与控制器间的接口缓冲转换器控制逻辑信号数据数据信号线状态信号线控制信号线至设备控制器I/O设备在该接口中有三种类型的信号:数据信号:对输入是由设备发送给设备控制器的;对输出是由设备控制器所接收的比特流控制信号:是设备控制器发送给设备的、用于规定设备执行、读或写操作的信号状态信号:用于指示设备的当前状态。8/28操作系统1、什么是设备控制器位于CPU与设备之间,接收CPU下达的输入、输出命令并控制具体设备实现操作。分成两大类:用于控制字符设备的控制器用于控制块设备的控制器微型机和小型机中的控制器常做成印刷电路卡形式,称接口卡5.1.2设备控制器9/28操作系统1、什么是设备控制器位于CPU与设备之间,接收CPU下达的输入、输出命令并控制具体设备实现操作。6.1.3设备控制器接口解脱字符与块控制接口卡位于CPU与设备之间CPU从I/O控制中解脱存在形式两大类10/28操作系统2、设备控制器功能接收和识别命令——控制寄存器数据交换——数据寄存器标识和报告设备状态——状态寄存器地址识别——地址译码器数据缓冲差错控制11/28操作系统1、设备控制器与处理机的接口2、设备控制器与设备的接口3、I/O逻辑I/O逻辑控制器与设备接口1控制器与设备接口i数据寄存器控制/状态寄存器........数据线地址线控制线CPU与控制器接口控制器与设备接口数据状态控制数据状态控制P164图5-2设备控制器的组成3、设备控制器组成12/28操作系统3、I/O逻辑通过一组控制线与处理机交互。处理机利用他向控制器发送I/O命令。I/O逻辑对收到的命令进行译码。3、设备控制器组成13/28操作系统1、虽然设备控制器已能大大减少CPU对I/O的干预,但当主机所配置的外设很多时,CPU的负担仍然很重。为此,在CPU和设备控制器之间增设通道以建立独立的I/O操作。不仅数据的传送能够独立于CPU,也使得对I/O操作的组织、管理和结束处理尽量独立。2、通道是一种特殊的处理机,具有执行I/O指令的能力。通过执行通道程序来控制I/O操作。3、通道与一般的处理机又有所不同:其指令类型单一,即由于通道硬件比较简单,其所能执行的指令主要局限于与I/O操作有关的指令。主要为与I/O有关的指令;通道没有自己的内存,与CPU共享内存。6.1.4I/O通道14/28操作系统字节多路通道•含有非分配型子通道,其数量从几十到几百。每个子通道连接一台I/O设备。•子通道按时间片轮转方式共享主通道。•第一个子通道控制其I/O设备完成一个字节的交换后.便立即腾出字节多路通道(主通道),让给第二个子通道使用,依此类推,所有通道轮转一周后重返回。•只要扫描每个于通道的速度足够快,而连接到子通道上的设备的速率较小时,不丢数据。•连接低速或中速设备时.便不丢失信息。15/28操作系统1、字节多路通道以字节为单位;以“分时”方式服务于多个I/O设备——多路数据传送速率低,适于连接低速或中速设备通道类型:根据信息交换方式的不同可分为以下三类:控制器C控制器B控制器A控制器控制器NA1B1C1A2B2C2A1A2A3子通道AB1B2B3C1C2C3N1N2N3子通道B子通道C子通道NP187图5-3字节多路通道的工作原理图多个非分配型子通道,按时间片轮转方式共享主通道。16/28操作系统以数组为单位,可以连接多台高速设备只有一个分配型子通道,设备独占通道一段时间内只能执行一道通道程序控制一台设备进行数据传送。数据传送速率高,通道利用率低2、数组选择通道3、数组多路通道以数组为单位分时服务于多个设备数据传送速率高,通道利用率高将数组选择通道传输速率高和字节多路通道能使各子通道分时并行操作的优点相结合形成。17/28操作系统“瓶颈”问题I/O性能经常成为系统的瓶颈(1)CPU性能不等于系统性能响应时间也是一个重要因素(2)CPU性能越高,与I/O差距越大弥补:更多的进程(3)进程切换多,系统开销大通道价格昂贵,使机器中的通道数量势必较少,这往往使它成了I/O的瓶颈。解决“瓶颈”问题的最有效的方法,便是增加设备到主机间的通路而不增加通道。18/28操作系统通道1存储器通道2控制器2控制器1控制器3控制器4设备7设备6设备5设备4设备3设备2设备1“瓶颈”问题:单通路系统19/28操作系统多通路:解决“瓶颈”问题的方法(交叉连接)存储器通道2控制器2通道1控制器1I/O设备I/O设备I/O设备I/O设备多通路I/O系统在不增加通道的情况下,增加设备到主机间的通路:(把一个设备连接到多个控制器上,一个控制器又连接到多个通道上)20/28操作系统5.1.5总线系统将计算机系统中的各个子系统(CPU、内存、外设等)相互连接,且连接是共享的。在计算机系统中,各个功能部件都是通过总线交换数据。通常,主板上的一些用于扩充PC机功能的标准扩展插槽,就是我们所能见到的PC总线形式.优点:低成本(一线多用)灵活性(易于增加设备便于两个系统间共享外设)总线的缺点:本身形成了通讯瓶颈,限制I/O的吞吐量总线分类:数据总线、地址总线、控制总线总线带宽,用于衡量数据通信速度的快慢。定义为总线本身所能达到的最高传输速率,单位是兆字节每秒(MB/s)21/28操作系统CPU存储器磁盘控制器打印机控制器…其它控制器磁盘驱动器打印机系统总线图6.1总线型I/O系统结构5.1.5总线系统22/28操作系统系统总线的发展总线的速度对系统性能有着极大的影响。因此,总线被誉为是计算机系统的神经中枢。但相比CPU、显卡、内存、硬盘等功能部件,总线技术的提升步伐要缓慢得多。在PC发展的二十余年历史中,总线只进行三次更新换代,但它的每次变革都令计算机的面貌焕然一新。早期的PC总线和ISA总线PCI/AGP总线目前主流的PCIExpress、HyperTransport高速串行总线23/28操作系统早期的PC总线和ISA总线PC总线是最古老的总线之一,最早出现在IBM公司1981年推出的PC/XT电脑中,它基于8位结构的8088处理器,也被称为PC/XT总线,是第一种被认可为广泛标准的总线技术。PC总线沿用了三年多时间,直到1984年,IBM推出基于16位英特尔80286处理器的PC/AT电脑,系统总线才被16位的PC/AT总线所代替。而这个时候,PC产业已初具规模,加之IBM允许第三方厂商开发兼容产品,PC/AT总线规范也被逐渐标准化,并衍生出著名的ISA总线(IndustryStandardArchitecture,工业标准架构)。ISA总线最大数据传输率为8MBps和16MBps—今天来看这样的性能低得不可思议,但在当时8MBps的速率绰绰有余,完全可满足多个CPU共享系统资源的需要。ISA总线一直贯穿286和386SX时代,在当时,16位X86系统对总线性能并没有太高的要求。但在32位386DX处理器出现之后,16位宽度的ISA总线就遇到问题,总线数据传输慢使得处理器性能也受到严重的制约。康柏、惠普、AST、爱普生等九家厂商协同将ISA总线扩展到32位宽度,EISA(ExtendedIndustryStandardArchitecture,扩展工业标准架构)总线由此诞生24/28操作系统PCI/AGP总线、PCI-X总线PCI总线诞生于1992年。英特尔推出486处理器,这个时候,EISA总线成为瓶颈,因为CPU的速度已经明显高于总线速度。为了解决这个问题,英特尔公司提出32位PCI总线的概念,并迅速获得认可成为新的工业标准。1996年,3D显卡出现,揭开3D时代的序幕。由于3D显卡需要与CPU进行频繁的数据交换,而图形数据又往往较为庞大,PCI总线显得力不从心。英特尔在PCI基础上专门研发出一种专门针对显卡的总线标准,它就是大名鼎鼎的AGP总线(加速图形接口,AcceleratedGraphicsPort)。随着PC系统发生了巨大的变化,各个设备的接口速度暴涨,加上千兆网卡、磁盘阵列卡等高性能设备,原来的带宽早已成为严重的瓶颈。而服务器领域的千兆网卡、SCSI硬盘或SCSIRAID系统更是带宽占用大户,PCI总线根本无法满足要求。在这种背景下,开发彻底代替PCI的新一代总线势在必行。服务器厂商与PC厂商持有不同的看法,这也导致PCI-X和PCIExpress两大标准的同时出现—前者专门针对服务器/工作站领域,采用平滑升级的方式获得高性能,可以称为PCI技术的改良;而后者则是一种革命性的高速串行总线技术,主要用于PC系统中25/28操作系统PCIExpress、HyperTransport高速串行总线PCIExpress改良了基础架构,彻底抛离落后的共享结构,一个新的时代开始了。PCIExpress与并行体系的PCI没有任何相似之处,它采用串行方式传输数据,而依靠高频率来获得高性能,因此PCIExpress也一度被人称为“串行PCI”,很顺利就达到2.5GHz的超高工作频率。其次,PCIExpress采用全双工运作模式。第三,PCIExpress没有沿用传统的共享式结构,它采用点对点工作模式(PeertoPeer,也被简称为P2P),每个PCIExpress设备都有自己的专用连接,这样就无需向整条总线申请带宽,避免多个设备争抢带宽的糟糕情形发生,而此种情况在共享架构的PCI系统中司空见惯。HyperTransport是AMD自家提出的企业标准,设计目的是用于高速芯片间的内部联接.在基本工作原理上,HyperTransport与PCIExpress如出一辙,都是通过串行传输、高频率运作获得超高性能,但HyperTransport技术早于PCIExpress,后者其实是参照HyperTransport而设计的。26/28操作系统5.2I/O控制方式随着计算机技术的发展,I/O控制方式也在不断地发展。在早期的计算机系统中,是用程序I/O方式;