第5章+设备管理(1-2).ppt_第1页
第5章+设备管理(1-2).ppt_第2页
第5章+设备管理(1-2).ppt_第3页
第5章+设备管理(1-2).ppt_第4页
第5章+设备管理(1-2).ppt_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章设备管理,5.1I/O系统5.2I/O控制方式5.3缓冲管理5.4设备分配5.5设备处理5.6磁盘存储器管理,设备管理的要点,管理对象:I/O设备、设备控制器和I/O通道;管理任务:完成用户提出的I/O请求,提高I/O效率和I/O设备的利用率(CPU、I/O社别设备之间并行);管理功能:设备分配、设备处理、缓冲管理、虚拟设备和实现设备的独立性等;管理难度:由于I/O设备种类繁多、操作特性和方式相差很大,且与硬件紧密相关,设备管理成为操作系统最复杂的组成部分;,5.1I/O系统,5.1.1I/O设备,1、I/O设备的类型,1)按传输速率分类,可将I/O设备分为三类:第一类是低速设备:传输速率每秒钟几个字节至数百个字节,典型设备有键盘、鼠标器、语音的输入和输出等设备第二类是中速设备:传输速率每秒钟数千个字节至数万个字节典型设备有行式打印机、激光打印机第三类是高速设备:传输速率在数几十万个字节至数十兆字节典型设备有磁带机、磁盘机、光盘机,I/O系统:用于实现数据的输入、输出和存储的系统。,2)按信息交换的单位分类,可将I/O设备分成两类:块设备(BlockDevice),主要特点:存取信息以数据块为单位。典型的块设备是磁盘,每个盘块的大小为512B4KB;可寻址,可随机地读/写任一块;磁盘设备的I/O常采用DMA方式;字符设备(CharacterDevice),主要特点:以字符为单位实施数据的I/O操作(纸带机、字符终端、键盘等),但现在大多数以某个长度的字符流记录为单位传送数据(显示器以桢为单位,打印机以行为单位);不可寻址:CPU不能对字符设备上的信息直接寻址和查找;,3)按设备的共享属性分类:可将I/O设备分为如下三类:独占设备:临界资源,串行使用。如打印机。共享设备:可在某一时间段内并发访问,但在某一时刻只能有一个进程访问,可寻址和随机访问是共享的基础;如磁盘。虚拟设备:使用虚拟技术将物理上的一台设备变为逻辑上的多台设备。共享打印机;4)按设备的使用特性分:存储设备输入输出设备,I/O设备一般由机械和电子两部分组成,通常将这两部分分开处理,以提供更加模块化、更加通用的设计。电子部分称作设备控制器或适配器(DeviceController或Adapter)。机械部分就是设备本身,通过电缆与控制器连接,而设备控制器插在系统主板的扩充插槽里与主机相连。,2、设备与控制器之间的接口,设备与控制器之间的接口,图5-1设备与控制器间的接口,数据信号线:在控制器与设备之间传输数据,设备产生的数据信号应经过转换器转换。控制信号线:由控制器向设备发送各种操作信号,如读、写等。状态信号线:传输设备的当前状态(如就绪、忙、故障等)信号。,5.1.2设备控制器,1.设备控制器的基本功能,设备控制器是CPU与I/O设备之间的接口(通信桥梁),CPU通过设备控制器来控制I/O设备完成各种I/O操作,并传输数据。接收和识别命令:CPU向设备控制器发送各种设备操作命令,应能接收和识别,因此也必须具备命令/控制寄存器;数据交换:在CPU与设备控制器、设备控制器与设备之间实现数据交换,前者通过数据总线并行传输,后者在控制器与设备之间传输。控制器应具备数据寄存器。,5.1.2设备控制器,1.设备控制器的基本功能,3)标识和报告设备的状态:控制器中必须设置一状态寄存器向CPU提供设备的工作状态;4)地址识别:系统中每一个设备都配有相应的地址,控制器应能识别设备地址和自己内部的寄存器地址;5)数据缓冲:控制器在高速的CPU和低速的设备之间交换数据信息,必须设置数据缓冲(数据寄存器),以实现数据通信速率的匹配;6)差错控制:检测设备传来数据的正确性,并及时向CPU报告数据传输错误。,2.设备控制器的组成:三部分,图5-2设备控制器的组成,图示说明,四种接口数据:存放实际要输入输出的数据地址:通常对块设备而言,存放设备的地址控制:存放对设备的控制命令状态:存放设备的状态信息三种信号线地址线:传送的是接口各类寄存器的地址;数据线:传送的是写入(或读出)各接口寄存器的内容;控制线:传送CPU对控制器的操作控制信息(读、写等),而非对设备的控制信息(在控制寄存器中),5.1.3I/O通道,1.I/O通道(I/OChannel)设备的引入,通道定义:I/O通道是一种为完成I/O操作任务而设置的特殊处理机。工作原理:为了减轻CPU对I/O设备(控制器)的繁重控制操作,在CPU和设备控制器之间设置一通道,代替CPU来控制和处理I/O操作。因此,I/O通道是一种特殊的处理机。工作过程:通道接收到CPU启动命令后,从内存中取出本次要执行的通道程序并执行,完成I/O操作时,通过中断报告CPU。I/O通道又与一般的处理机差异:一是其指令类型单一:通道硬件比较简单,其所能执行的命令主要局限于与I/O操作有关的指令;二是通道没有自己的内存,通道与CPU共享内存。,通道类型如下:,字节多路通道:以字节为单位传送数据,它主要用来连接大量的低速设备,如终端、打印机等。数组选择通道:以块为单位成批传送数据,具有传送速度高的特点,因而它被用来连接高速外部设备(如磁盘机等)。数组多路通道:以块为单位传送数据,主要用来连接中速块设备(如磁带机等)。它具有传送速率高和能分时操作不同的设备等优点,被广泛使用。数组多路通道和字节多路通道都具有“多路”的特点:一段时间内都可以交替执行多个设备的通道程序,宏观上使这些设备同时I/0;而选择通道一次只能执行一个设备的通道程序。所以,选择通道一次只能控制一台设备进行I/0操作。,2.通道类型,1)字节多路通道(ByteMultiplexorChannel),图5-3字节多路通道的工作原理,2)数组选择通道(BlockSelectorChannel),这种通道虽然可以连接多台高速设备,但由于它只含有一个分配型子通道,在一段时间内只能执行一道通道程序,控制一台设备进行数据传送,致使当某台设备占用了该通道后,便一直由它独占,而其它设备处于等待,直至该设备传送完毕释放该通道。可见,这种通道的利用率很低。,控制器1,控制器2,控制器n,子通道,主通道,3)数组多路通道(BlockMultiplexorChannel)数组多路通道是将数组选择通道传输速率高和字节多路通道能使各子通道(设备)分时并行操作的优点相结合而形成的一种新通道。它含有多个非分配型子通道,因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率。也正因此,才使该通道能被广泛地用于连接多台高、中速的外围设备,其数据传送是按数组方式进行的。,3.“瓶颈”问题:通道少、设备多,通路、通道被竞争共享。下图:,图5-4单通路I/O系统,图5-5多通路I/O系统,5.1.4总线系统,图5-6总线型I/O系统结构,计算机系统的硬件设备,包括CPU、内存、I/O设备等均以系统总线结构相连接,如下图所示。总线性能由总线时钟频率、带宽和传输速率来决定。,1.ISA和EISA总线1)ISA(IndustryStandardArchitecture)总线这是为了1984年推出的80286型微机而设计的总线结构。其总线的带宽为8位,最高传输速率为2Mb/s。之后不久又推出了16位的(EISA)总线,其最高传输速率为8Mb/s,后又升至16Mb/s,能连接12台设备。2)EISA(ExtendedISA)总线到80年代末期,ISA总线已难于满足带宽和传输速率的要求,于是人们又开发出扩展ISA(EISA)总线,其带宽为32位,总线的传输速率高达32Mb/s,同样可以连接12台外部设备。,2.局部总线(LocalBus),VESA(VideoElectronicStandardAssociation)总线带宽32位,最高数据传输速率为132Mb/s,缺点连接外设仅为2-4台2)PCI(PeripheralComponentInterface)总线目前广泛采用的是32-bit、33MHz的PCI总线,传输带宽达到了133MB/s(33MHzX32bit/8)。随着对更高性能的要求,1993年提出此了64-bit的PCI总线,后来又提出把PCI总线的频率提升到66MHz.,局部总线:为适应多媒体显示、通信和处理等高速数据传输设备要求、在设备与CPU之间直接建立总线,使他们能以与高速CPU可匹配的速率实施通信和数据传输。,加速图形接口(AcceleratedGraphicsPort),为了弥补PCI的不足(如3D显卡),Intel于1996年7月正式推出了AGP(加速图形接口,AcceleratedGraphicsPort)接口,这是显示卡专用的局部总线,是基于PCI2.1版规范并进行扩充修改而成,工作频率为66MHz,1X模式下带宽为266MB/S,是PCI总线的两倍。后来依次又推出了AGP2X、AGP4X,现在则是AGP8X,传输速度达到了2.1GB/S.,PCIExpress,2001年春季IDF期间,Intel公司宣布将会开发第三代输入输出技术(3GIO技术)来取代现有的PCI总线技术。同年8月份,PCI-SIG批准了代号为Arapahoe的3GIO标准。第二年的4月份,PCI-SIG和Arapahoe工作小组正式完成了3GIO的草案,并且将其正式命名为PCIExpress.2002年7月23日,PCI-SIG正式发布了PCIExpress1.0版规范。第三代I/O总线结构PCIExpress(3GIO)的出现就是一次革命,它不但能与原来的PCI设备兼容工作,还可以增强原有设备的性能。PCIExpress(3GIO)的特点就是高性能、高扩展性、高可靠性、很好的升级性以及低花费,它必然取代现在的PCI总线。PCI-E达到速率为10GB/s。,宗旨:尽量减少主机对I/O控制的干预,把主机从繁杂的I/O控制事务中解脱出来,以更多地去完成其数据处理任务。发展阶段:,5.2I/O控制方式,程序I/O方式,中断驱动方式,DMA方式,通道方式,5.2.1程序I/O方式,工作原理:当CPU启动设备控制器实施I/O设备输入、输出数据的同时,便置状态寄存器闲忙标志位为1;然后一直测试和等待状态标志位变为0,表示设备已完成本次字符数据输入或输出;若是输入数据,CPU此时可将输入好的数据从控制器数据寄存器中取出放入指定的内存单元。随后CPU重复上述步骤,再继续下一次数据的输入输出。因此,将程序I/O方式也称为忙等待方式。特点:CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费。关键是在CPU中无中断机构,使I/O设备无法向CPU报告它已完成了一个字符的输入操作。,忙等待,无中断机构,注意:每次读一个字节的数据。,5.2.2中断驱动I/O控制方式,控制原理:在引入中断方式中,当某进程需要I/O操作时,仅由CPU给设备控制器发出一条I/O指令,然后由控制器控制设备进行设备的I/O操作,而CPU返回继续执行其它任务,当设备完成I/O操作时,控制器才给CPU发出中断取走准备好的数据,并放入内存。随后,再继续重复进行I/O操作。特点:I/O操作无需CPU干预,可使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理。可见,这样可使CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。,中断控制的具体工作过程:1、当进程A要求I/O操作,由CPU向设备控制器发送I/O操作指令,将A进程变为等待状态,转进程调度,调度另一进程B;2、输入完成时,控制器发出中断,中断B进程执行,通过中断进入中断处理程序;3、在中断处理程序中把数据缓冲寄存器中的数取走,放入内存特定位置M,唤醒等待进程A,中断返回到B的断点继续执行。4、在以后的某个时刻OS调度调入进程A时,A从M取数处理。,CPU与I/O设备并行操作,中断驱动I/O方式特点:优点:同程序I/O方式相比,CPU利用率大大提高;缺点:如果设备较多时,中断次数会很多,使CPU的计算时间大大减少;缺点改进方式:为减少中断对CPU造成的负担,可采用DMA方式和通道方式。,5.2.3直接存储器访问DMAI/O控制方式,1、DMA(DirectMemoryAccess)控制方式的引入,DMA特点:数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块;所传送的数据是从设备直接送入内存的,或者相反;仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在DMA控制器的控制下完成的;DMA方式较之中断驱动方式,成百上千倍地减少CPU干预,进一步提高了CPU与I/O设备的并行操作程度。,中断:每传送一个字节,控制器就向CPU发一次中断!为有效减少中断的次数引入DMAI/O方式,目的提高CPU的处理效率。,2、DMA控制器的组成,图5-8DMA控制器的组成,为实现在内存储器与控制器之间成块数据的直接交换,DMA控制器中必须设置如下四类寄存器:命令/状态寄存器CR:用于接收从CPU发来的I/O命令或有关控制信息,或设备的状态;内存地址寄存器MAR:输入时,指定从设备传送到内存数据的起始目标地址;输出时,指定输出数据在内存的源地址。数据寄存器DR:用于暂存从设备到内存,或从内存到设备的数据;数据计数器DC:存放本次CPU要读或写的字(节)数。,设置MAR和DC初值,启动DMA传送命令,挪用CPU工作周期传送数据字到内存,存储器地址增1数据计数器减1,DC=0?,请求中断,N,Y,每当把磁盘一个数据字读入数据寄存器时,DMA控制器取代CPU接管地址总线的控制权。使CPU访问总线时速度会变慢。,DMA方式的工作流程,3、DMA工作过程,传送一个字节到数据寄存器,DMA方式与中断的主要区别:中断方式是在数据寄存器满后,发中断请求,CPU进行中断处理(取走或传送数据);DMA方式则是在所要求传送的数据块全部传送结束时要求CPU进行中断处理;大大减少了CPU进行中断处理的次数;中断方式的数据传送是由CPU控制完成的,而DMA方式则是在DMA控制器的控制下不经过CPU控制完成的。,问题:如果需要一次读多个离散的数据块且将他们分别传送到不同的内存区域,或相反时,如何处理?,1、I/O通道控制方式的引入通道是为实现一组数据块(可以是离散的)的传输而在DMA的基础上发展而来,目的是减少CPU对I/O操作的干预。通道是一个独立于CPU的专管输入输出控制的处理机,它控制设备与内存直接进行数据交换。它有自己的通道指令,并通过执行通道程序完成数据传输,在操作结束时向CPU发中断信号。,5.2.4I/O通道控制方式,配置通道的I/O系统结构,2、通道程序及其指令通道需要执行通道程序(指令序列)完成I/O操作;通道程序由一系列通道指令构成;每条通道指令包含:操作码、内存地址、计数、通道程序结束位P(P=1表示指令是通道程序最后一条)、记录结束标志R(R=0表示指令与下一条指令所处理的数据同属一个记录;R=1表示指示处理某记录后的最后一条指令。,5.3缓冲管理,实际问题:现实生活中,我们为了合理利用水资源在河流上修了很多水库或蓄水池;还有我们生活中常说“细水长流”等都是为了解决进、出速度不匹配的问题。缓冲在本质上是一种异步技术,或者说,缓冲经常是异步技术的实现前提。,5.3.1缓冲的引入原因,引入缓冲技术的主要原因为:缓和CPU与I/O设备间速度不匹配的矛盾:高速率的CPU和低速率的I/O设备进行数据交换,只有在引入缓冲区的前提下才能异步按照各自的速度工作;减少对CPU的中断频率,放宽对CPU中断响应时间的限制:例如远程通信过程中,如果使用1位、8位和2个8位作为缓冲区,可以减少CPU的中断次数,并延长相应中断的时间。提高CPU和I/O设备之间的并行性,提高系统资源的利用率。,图5-10利用缓冲寄存器实现缓冲,硬缓冲示例,补充:缓冲类型,硬件缓冲区:设在I/O设备或控制器内部的纯硬件缓冲区,例如打印机内部的硬件缓冲区、磁盘控制器上的硬件缓冲区等。软件缓冲区:软件缓冲区都是设在内存中,因此又称内存缓冲区,在目前的OS中广泛使用。,5.3.2单缓冲和双缓冲,1、单缓冲(SingleBuffer):每当进程发出一I/O请求时,OS在内存中为其分配一缓冲区实施数据交换,如下图a为磁盘数据块的输入与处理,图5-11单缓冲工作示意图,由于CPU与I/O设备并行,系统对每一数据块的处理时间约为Max(C,T)+M,如下图b。,单缓冲特点:单缓冲是OS提供的一种最简单的缓冲。当用户进程发出一个I/O请求时,OS便在主存中分配一个缓冲区;对于单缓冲,缓冲区属于临界资源,即不允许多个进程同时对一个缓冲区进行操作。因此,单缓冲虽然能匹配设备和CPU的处理速度,但无法实现设备与设备之间的并行操作。,2、双缓冲(DoubleBuffer):交替使用两个缓冲区使得输入/输出和计算处理交替进行,更能提高I/O操作和CPU处理效率。,图5-12双缓冲工作示意图,双缓冲区使得数据处理时间大约为max(T,C);若CT,设备连续输入;否则,CPU连续处理。,下图为双机通信时缓冲区的设置:单缓冲区和双缓冲区可实现的单工通信和双工通信结构,双缓冲特点:双缓冲提供两个缓冲区,可以实现设备与设备之间的并行操作。例如CPU可以把输出到打印机的数据放入一个缓冲区,然后又可以从另一个为终端设置的缓冲区中读入数据,实现CPU、打印机与终端的并行操作。双缓冲只是一种说明设备与设备、CPU与设备并行操作的简单模型,并不能用于实际系统中的并行操作:一是外设较多,二是CPU与设备间的速度用双缓冲难以匹配。,3、循环缓冲双缓冲区可以有效提高输入和输出速度相匹配的I/O设备并行执行效率,当速率相差加大时,将严重影响并行执行效率。多缓冲区:提高数据传输速率不匹配设备的并行执行效率;循环缓冲区:是由多个缓冲区(大小相等)组成的可同时用于输入和输出数据的循环缓冲区(队列)。,5.3.3循环缓冲,1、循环缓冲的组成:多个缓冲区组成的缓冲循环队列,解决速度差异较大的I/O操作,图5-14循环缓冲,R:空缓冲区G:已装满的缓冲区C:现行工作缓冲区,循环队列:三种指针都是顺时针移动!,2、循环缓冲区的使用,Getbuf过程。(2)Releasebuf过程。,计算进程:调用得到Nextg所指缓冲区,并置为Current,然后Nextg指向下一个G缓冲区。,输入进程:调用得到Nexti缓冲区,然后Nexti指向下一个R缓冲区。,计算进程:计算进程调用该过程,释放当前工作缓冲区成为R缓冲区。,输入进程:输入进程将以缓冲区装满时,调用该过程,释放此换缓冲区成为G缓冲区。,3.进程同步,Nexti指针追赶上Nextg指针:输入速度大于计算处理的速度,当全部R缓冲区都装满后,再申请将被阻塞;(2)Nextg指针追赶上Nexti指针:计算处理的速度大于输入速度,当全部G缓冲区用完后,再申请时将被阻塞。,注意:缓冲区三种指针都是顺时针旋转移动!将出现:,循环缓冲主要用于有同步(或称配合)关系的进程之间的数据缓冲。如生产者和消费者进程等,5.3.4缓冲池(BufferPool),1、缓冲池的组成:缓冲池是由可被公用(非专用)的多个缓冲区组成。对于既可用于输入又可用于输出的公用缓冲池,其中至少应含有以下三种类型的缓冲区:空(闲)缓冲区;装满输入数据的缓冲区;装满输出数据的缓冲区。为了管理上的方便,可将相同类型的缓冲区链成一个队列,于是可形成以下三个队列:空缓冲队列emq;输入队列inq;输出队列outq。,2.Getbuf过程和Putbuf过程及其同步操作,ProcedureGetbuf(type)/获取一缓冲区beginWait(RS(type);/队列同步信号量Wait(MS(type);/队列互斥信号量B(number):=Takebuf(type);/摘取一缓冲区Signal(MS(type);endProcedurePutbuf(type,number)/将指定缓冲区挂在队列中beginWait(MS(type);Addbuf(type,number);Signal(MS(type);Signal(RS(type);end,3、缓冲区的工作方式,图5-15缓冲区的工作方式,每一操作都涉及使用Getbuf和Putbuf对两个队列进行操作!,输入数据时调用Getbuf(emq)获取一空缓冲区作为收容输入工作区hin,随后调用Putbuf(inq,hin),计算进程调用Getbuf(inq)作为提取输入工作缓冲区sin,随后调用Putbuf(emq,sin),计算进程调用Getbuf(emq)作为收容输出工作缓冲区hout,随后调用Putbuf(outq,hout),输出数据时调用Getbuf(outq)获取一装满输出数据缓冲区作为提取输出工作区sout,随后调用Putbuf(emq,sout),5.4I/O软件,5.4.1I/O软件的设计目标和原则5.4.2中断处理程序5.4.3设备驱动程序5.4.4设备独立性软件5.4.5用户层的I/O软件,I/O软件总体设计目标:高效率。通用性。I/O软件总体设计要考虑的问题:与具体设备无关性。统一命名出错处理。缓冲技术设备的分配和释放I/O控制方式,I/O系统各层软件及其功能,5.4.2中断处理程序,中断处理程序的处理过程:唤醒被阻塞的驱动(程序)进程保护被中断进程的CPU环境转入相应的设备处理程序中断处理恢复被中断进程的现场,5.4.3设备驱动程序,设备驱动程序包括与设备相关的代码,它的工作是:把用户提交的逻辑I/O请求转化为物理I/O操作的启动和执行,如设备名转化为端口地址、逻辑记录转化为物理记录、逻辑操作转化为物理操作等。设备驱动程序从与设备无关的软件中接收抽象的I/O请求,一条典型的请求是读第n块。如果请求到来时驱动程序空闲,则立即执行。如果它正在处理另一条请求,它将该请求挂在等待队列中。,设备独立性概念设备独立性基本含义:用户程序独立于具体申请和使用的物理设备。实现方法:引入逻辑设备和物理设备概念,应用程序使用逻辑设备名申请和使用物理设备,而具体物理设备的分配和使用(逻辑设备到物理设备的转换)由系统实现,此即用户能独立于具体物理设备而方便的使用设备,也称为设备无关性。优点:设备分配时的灵活性;易于实现I/O重定向;,5.4.4设备独立性软件,设备独立性软件(设备驱动程序之上)功能1)对独立设备的分配与回收;2)设备命名:设备的逻辑名称与标识。3)设备保护:禁止用户直接访问设备。4)缓冲管理:对字符和块设备的缓冲区进行管理,提高I/O效率。5)将逻辑设备名映射为物理设备名:设备与控制器;6)报告错误信息:设备驱动程序处理不了的错误(重试几次操作后,仍有错误)。7)向用户提供使用设备的统一接口:逻辑层次上使用设备的方法和命令。,逻辑设备名到物理设备名映射的实现1逻辑设备表LUT:为实现设备的独立性,系统将设置一张逻辑设备表,存放进程使用逻辑名申请分配到的物理设备。,2逻辑设备表的设置问题整个系统中设置一张LUT每个用户设置一张LUT,5.4.5用户层的I/O软件,库例程实现的I/O系统调用I/O系统调用通常先是库例程调用非库例程实现的I/O系统调用spooling系统,I/O系统各层软件及其功能,2.控制器控制表、通道控制表和系统设备表,图5-17COCT、CHCT和SDT表,COntrollerControlTable,CHannelControlTable,5.4.2设备分配时应考虑的因素,1.设备的固有属性,独享设备。(2)共享设备。(3)虚拟设备。,2.设备分配算法,先来先服务。诸进程对某设备的I/O请求按先后顺序进入该设备的请求队列中,设备分配程序总是把设备先分配给队首进程(2)优先级高者优先。诸进程对某设备的I/O请求按优先级高低排在设备的请求队列中,3.设备分配中的安全性,安全分配方式2)不安全分配方式,P163,5.4.3设备独立性,1.设备独立性(DeviceIndependence)的概念为了提高OS的可适应性和可扩展性,在现代OS中都毫无例外地实现了设备独立性,也称为设备无关性。其基本含义是:应用程序独立于具体使用的物理设备。为了实现设备独立性而引入了逻辑设备和物理设备这两个概念。在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能,这非常类似于存储器管理中所介绍的逻辑地址和物理地址的概念。,在实现了设备独立性的功能后,可带来以下两方面的好处。1)设备分配时的灵活性2)易于实现I/O重定向,2.设备独立性软件,1)执行所有设备的公有操作这些公有操作包括:对独立设备的分配与回收;将逻辑设备名映射为物理设备名,进一步可以找到相应物理设备的驱动程序;对设备进行保护,禁止用户直接访问设备;缓冲管理,即对字符设备和块设备的缓冲区进行有效的管理,以提高I/O的效率;差错控制。由于在I/O操作中的绝大多数错误都与设备无关,故主要由设备驱动程序处理,而设备独立性软件只处理那些设备驱动程序无法处理的错误。,2)向用户层(或文件层)软件提供统一接口无论何种设备,它们向用户所提供的接口应该是相同的。例如,对各种设备的读操作,在应用程序中都使用read;而对各种设备的写操作,也都使用write。,3.逻辑设备名到物理设备名映射的实现,逻辑设备表2)LUT的设置问题,图5-18逻辑设备表,逻辑设备直接映射为物理设备,逻辑设备通过系统设备表映射为物理设备,5.4.4独占设备的分配程序,1.基本的设备分配程序,分配设备2)分配控制器3)分配通道,返回,2.设备分配程序的改进,增加设备的独立性2)考虑多通路情况,5.4.5SPOOLing技术,1.什么是SPOOLing(1)脱机输入、脱机输出技术:为了缓和CPU的高速性与I/O设备低速性间的矛盾而引入,利用了专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上;或者相反。(2)SPOOLing技术的基本思想:当系统中引入了通道(硬件)和多道程序技术(软件)后,利用其中的一道程序,来模拟脱机输入时的外围控制机功能,把低速I/O设备上的数据传送到高速磁盘上;再用另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。,SPOOLing技术的主要特点,(3)SPOOLing技术的主要特点:a、在主机的直接控制下,实现I/O(联机I/O)b、借助于通道,I/O操作与CPU对数据的处理同时进行,把这种在联机情况下实现的同时I/O外围操作称为SPOOLing(SimultaneausPeriphernalOperatingOn-Line),或称为假脱机操作。,SPOOLing系统示意图,2.SPOOLing系统的组成,图5-19SPOOLing系统的组成,需要保证SPOOLing输入和输出进程具有较高的运行优先权,3.共享打印机,共享打印机技术已被广泛地用于多用户系统和局域网络中。当用户进程请求打印输出时,SPOOLing系统同意为它打印输出,但并不真正立即把打印机分配给该用户进程,而只为它做两件事:由输出进程在输出井中为之申请一个空闲磁盘块区,并将要打印的数据送入其中;输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到请求打印队列上。,4.SPOOLing系统的特点(应该称功能更合适!),提高了I/O的速度。(2)将独占设备改造为共享设备。(3)实现了虚拟设备功能。,5.5设备处理,5.5.1设备驱动程序的功能和特点,1.设备驱动程序的功能,(1)接收由I/O进程发来的命令和参数,并将命令中的抽象要求转换为具体要求,例如,将磁盘块号转换为磁盘的盘面、磁道号及扇区号。(2)检查用户I/O请求的合法性,了解I/O设备的状态,传递有关参数,设置设备的工作方式。,(3)发出I/O命令,如果设备空闲,便立即启动I/O设备去完成指定的I/O操作;如果设备处于忙碌状态,则将请求者的请求块挂在设备队列上等待。(4)及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理。(5)对于设置有通道的计算机系统,驱动程序还应能够根据用户的I/O请求,自动地构成通道程序。,2.设备处理方式,(1)为每一类设备设置一个进程,专门用于执行这类设备的I/O操作.(2)在整个系统中设置一个I/O进程,专门用于执行系统中所有各类设备的I/O操作。(3)不设置专门的设备处理进程,而只为各类设备设置相应的设备处理程序(模块),供用户进程或系统进程调用。,3.设备驱动程序的特点,(1)驱动程序主要是指在请求I/O的进程与设备控制器之间的一个通信和转换程序。(2)驱动程序与设备控制器和I/O设备的硬件特性紧密相关,因而对不同类型的设备应配置不同的驱动程序。(3)驱动程序与I/O设备所采用的I/O控制方式紧密相关。(4)由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写。,5.5.2设备驱动程序的处理过程,将抽象要求转换为具体要求2.检查I/O请求的合法性3.读出和检查设备的状态4.传送必要的参数5.工作方式的设置6.启动I/O设备,图5-20中断现场保护示意图,图5-21中断处理流程,5.6磁盘存储器管理,5.6.1磁盘性能简述,1.数据的组织和格式,图5-22磁盘的格式化,2.磁盘的类型,1)固定头磁盘这种磁盘在每条磁道上都有一读/写磁头,所有的磁头都被装在一刚性磁臂中。通过这些磁头可访问所有各磁道,并进行并行读/写,有效地提高了磁盘的I/O速度。这种结构的磁盘主要用于大容量磁盘上。2)移动头磁盘每一个盘面仅配有一个磁头,也被装入磁臂中。为能访问该盘面上的所有磁道,该磁头必须能移动以进行寻道。可见,移动磁头仅能以串行方式读/写,致使其I/O速度较慢;但由于其结构简单,故仍广泛应用于中小型磁盘设备中。,3.磁盘访问时间,1)寻道时间Ts这是指把磁臂(磁头)移动到指定磁道上所经历的时间。该时间是启动磁臂的时间s与磁头移动n条磁道所花费的时间之和,即Ts=mn+s其中,m是一常数,与磁盘驱动器的速度有关,对一般磁盘,m=0.2;对高速磁盘,m0.1,磁臂的启动时间约为2ms。这样,对一般的温盘,其寻道时间将随寻道距离的增加而增大,大体上是530ms。,2)旋转延迟时间T这是指定扇区移动到磁头下面所经历的时间。对于硬盘,典型的旋转速度大多为5400r/min,每转需时11.1ms,平均旋转延迟时间T为5.55ms;对于软盘,其旋转速度为300r/min或600r/min,这样,平均T为50100ms。,平均旋转延迟时间=磁盘旋转一周时间的一半,3)传输时间Tt这是指把数据从磁盘读出或向磁盘写入数据所经历的时间。Tt的大小与每次所读/写的字节数b和旋转速度有关:,其中,r为磁盘每秒钟的转数;N为一条磁道上的字节数,当一次读/写的字节数相当于半条磁道上的字节数时,Tt与T相同,因此,可将访问时间Ta表示为:,1/r表示旋转一周的时间,1/r-NTt-b,1/2r表示平均旋转延迟时间,5.6.2磁盘调度,1.先来先服务FCFS(First-Come,FirstServed),图5-23FCFS调度算法,正在读或写100号磁道的期间,来了如右图所示的读写请求,这些请求排成队列,等待处理!,2.最短寻道时间优先SSTF(ShortestSeekTimeFirst),图5-24SSTF调度算法,3.扫描(SCAN)算法,1)进程“饥饿”现象,SSTF算法虽然能获得较好的寻道性能,但却可能导致某个进程发生“饥饿”(Starvation)现象。因为只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必须优先满足。对SSTF算法略加修改后所形成的SCAN算法,即可防止老进程出现“饥饿”现象。,2)SCAN算法,图5-25SCAN调度算法示例,4.循环扫描(CSCAN)算法,图5-26CSCAN调度算法示例,CSCAN对SCAN的改善:假设请求对磁道分布均匀,SCAN中磁头到头转向时,近磁头端的请求很少(因为磁头刚经过),此时请求总是密集分布在远离磁头的一端,而这些请求等待的时间却要长一些。针对这种情况,提出了CSCAN(相当于最外道与最内道循环相接),5.N-Step-SCAN和FSCAN调度算法,1)N-Step-SCAN算法在SSTF、SCAN及CSCAN几种调度算法中,都可能出现磁臂停留在某处不动的情况,例如,有一个或几个进程对某一磁道有较高的访问频率,即这个(些)进程反复请求对某一磁道的I/O操作,从而垄断了整个磁盘设备。我们把这一现象称为“磁臂粘着”(Armstickiness)。在高密度磁盘上容易出现此情况。N步SCAN算法是将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列。而每处理一个队列时又是按SCAN算法,对一个队列处理完后,再处理其他队列。当正在处理某子队列时,如果又出现新的磁盘I/O请求,便将新请求进程放入其他队列,这样就可避免出现粘着现象。当N值取得很大时,会使N步扫描法的性能接近于SCAN算法的性能;当N=1时,N步SCAN算法便蜕化为FCFS算法。,2)FSCAN算法FSCAN算法实质上是N步SCAN算法的简化,即FSCAN只将磁盘请求队列分成两个子队列。一个是由当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。在扫描期间,将新出现的所有请求磁盘I/O的进程,放入另一个等待处理的请求队列。这样,所有的新请求都将被推迟到下一次扫描时处理。,5.6.3磁盘高速缓存(DiskCache),1.磁盘高速缓存的形式,是指利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息。因此,这里的高速缓存是一组在逻辑上属于磁盘,而物理上是驻留在内存中的盘块。高速缓存在内存中可分成两种形式。第一种是在内存中开辟一个单独的存储

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论