




已阅读5页,还剩125页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.1页,第五章设备管理,5.1设备管理概述5.2I/O系统5.3缓冲技术5.4独占设备的分配5.5磁盘管理5.6设备处理5.7虚拟设备5.8本章小结,.2页,5.1设备管理概述,现代计算机系统中配置了大量不同类型的外围设备,包括用于实现信息输入、输出和存储功能的设备以及相应的设备控制器,在有的大中型计算机中还设有输入/输出通道。在计算机系统中,通常把外围设备又称为I/O设备,这些设备的物理特性和操作方式有很大区别,在运行速度、控制方式、数据表示以及传送单位上存在着很大的差异。因此,计算机系统对外围设备的管理,是操作系统中最具有多样性和复杂性的部分。,.3页,5.1设备管理概述,1、外围设备的分类早期的计算机系统由于速度慢、应用面窄,外围设备主要以纸带、卡片等作为输入输出介质,相应的设备管理程序也比较简单,进入20世纪80年代以后,由于个人计算机、工作站以及计算机网络等的发展,外围设备开始走向多样化、复杂化和智能化。用户可以从不同的角度对外围设备进行分类。按照外围设备的从属关系,可以将它们分成系统设备和用户设备。按照工作特性可将外围设备分为存储设备和I/O设备两类。,.4页,5.1设备管理概述,2、设备管理的功能现代计算机系统要方便用户使用,为用户提供使用外围设备的统一界面、尽可能地提高输入/输出设备的使用效率,发挥系统的并行性。因此,设备管理的主要功能如下:实现对外围设备的分配与去配。实现外围设备的启动。实现对磁盘的驱动调度。实现设备处理。实现虚拟设备。,.5页,5.2I/O系统,通常把I/O设备及其接口线路、控制部件、通道以及管理软件统称为I/O系统。主存与外围设备之间的信息传输操作,称为I/O操作。多道程序设计技术引入后,I/O操作能力成为计算机系统综合处理能力及性能价格比的重要因素。,.6页,5.2.1输入/输出系统结构,典型的输入/输出系统具有四级结构:主机、通道、设备控制器和输入/输出设备,如图5-1所示。,.7页,5.2.1输入/输出系统结构,1.I/O设备I/O设备的种类繁多,其重要性能指标有:数据传输单位、数据传输速率和设备的共享属性等。用户从不同角度可以对I/O设备进行不同分类。(1)按传输速率分类按传输速率的高低,可以把I/O设备分为三类:第一类是低速设备,其传输速率仅为每秒钟几个字节到数百个字节,如键盘、鼠标等设备;第二类是中速设备,其传输速率在每秒钟数千个字节到数万个字节,如行式打印机、激光打印机等;第三类是高速设备,其传输速率在每秒钟数十万个字节到数十兆字节,如磁带机、磁盘机、光盘机等。,.8页,5.2.1输入/输出系统结构,(2)按信息交换的单位分类按设备与主存之间信息交换的物理单位可以将I/O设备分为两类。第一类是块设备,以块为单位与主存交换信息,属于有结构设备,如磁盘(每个盘块的大小为0.54KB)、磁带等。块设备的基本特征是传输速率较高,通常每秒钟为几兆位;可寻址,即允许对指定的块进行读/写操作;此外,在I/O操作时,常采用直接存储器访问(DMA)方式。第二类是字符设备,以字符为单位与主存交换信息,属于无结构设备。字符设备种类繁多,如交互式终端、打印机等。字符设备的基本特征是传输速率较低,通常每秒钟为几个字节到数千个字节;不可寻址,即不能指定输入时的源地址以及输出时的目标地址;在I/O操作时,常采用中断驱动方式。,.9页,5.2.1输入/输出系统结构,(3)按设备的共享属性分类按设备的共享属性可将设备分为三类。第一类是独占型设备,在一段时间内只能被一个作业独占使用,例如,输入机、磁带机和打印机等。独占型设备通常采用静态分配方式,即在一个作业执行前,将作业需要使用的这类设备分配给作业,在作业执行期间独占该设备,直到作业结束才释放。第二类是共享型设备,在一段时间内允许几个作业同时使用,例如,磁盘,对共享型设备允许多个作业同时使用,即一段时间内多个作业可以交替地启动共享设备,但在每一时刻仍只有一个作业占用。第三类是虚拟设备,通过虚拟技术用共享型设备来模拟独占型设备的工作。,.10页,5.2.1输入/输出系统结构,2.设备控制器(1)接口线路通常,外围设备并不是直接与CPU进行通信,而是与设备控制器通信。在设备与设备控制器之间有一个接口,通过数据线、控制线和状态线传输数据、控制和状态三种类型信号,如图5-2所示。,.11页,5.2.1输入/输出系统结构,(1)数据信号线数据信号线用于设备和设备控制器之间数据信号的传送。(2)控制信号线控制信号线作为设备控制器与I/O设备之间控制信号的传送通道。(3)状态信号线状态信号线用于传送指示设备当前状态的信号。设备的当前状态有正在读、正在写、设备已完成等。,.12页,5.2.1输入/输出系统结构,设备控制器位于CPU与设备之间,控制一个或多个I/O设备,以实现I/O设备和主机之间的数据交换。设备控制器既要与CPU通信,又要与设备通信,由它接受从CPU发出的命令,并控制I/O设备的工作,是CPU与I/O设备之间的接口,能有效地将CPU从设备控制事务中解脱出来。设备控制器分为两类:控制字符设备的控制器和控制块设备的控制器。设备控制器是一个可编址设备,它含有多少个设备地址,就可以连接多少个同类型设备,并且为它所控制的每一个设备分配了一个地址。微型计算机和小型计算机中的控制器,往往做成印制电路卡形式,常被称为接口卡,插入计算机,可控制一个、两个、四个或八个同类型设备。,.13页,5.2.1输入/输出系统结构,(2)设备控制器的基本功能设备控制器的基本功能包括以下几方面。接受和识别命令。设备控制器接受并识别CPU向控制器发出的多种不同命令。为此,在设备控制器中应具有相应的控制寄存器,用来存放接受的命令和参数,并对所接受的命令进行译码。数据交换。设备控制器实现CPU与控制器、控制器与设备之间的数据交换。CPU与控制器之间的数据交换是通过数据总线,由CPU并行地把数据写入控制器中,或从控制器中并行地读出数据。控制器与设备之间的数据交换,则是设备将数据输入到控制器,或从控制器传送到设备。为此,在控制寄存器中必须设置数据寄存器。,.14页,5.2.1输入/输出系统结构,表示和报告设备的状态。设备控制器应记录外围设备的工作状态。例如,仅当设备处于发送就绪状态时,CPU才能启动设备控制器从设备中读出数据。为此,在设备控制器中应设置一个状态寄存器,其中的每一位表示设备的某一种状态,CPU通过读入状态寄存器的值,可掌握该设备的当前状态,做出正确判断,发出操作指令。地址识别。为了识别不同的设备,系统中的每个设备都有一个惟一的地址,而设备控制器必须能够识别它所控制的每个设备的地址。例如,在IBMPC机中规定,硬盘控制器中寄存器的地址在32032F之中。为使CPU能向(或从)寄存器中正确写入(或读出)数据,必须做到正确识别。为此,在设备控制器中应配置地址译码器。,.15页,5.2.1输入/输出系统结构,数据缓冲。为了解决高速的CPU与慢速的I/O设备之间速度不匹配的问题,在设备控制器中必须设置缓冲器。差错控制。设备控制器还负责对由I/O设备传送来的数据进行差错检测。如果发现在传送中出现错误,则通常将差错检测码置位,并向CPU报告,为保证数据的正确性,CPU重新进行一次传送。,.16页,5.2.1输入/输出系统结构,(3)设备控制器的组成设备控制器一般由设备控制器与CPU接口、设备控制器与设备接口以及I/O逻辑三部分组成,如图5-3所示。,.17页,5.2.1输入/输出系统结构,设备控制器与CPU的接口。该接口通过数据线、地址线和控制线实现CPU与设备控制器之间的通信。数据线通常与数据寄存器、控制状态寄存器相连接。设备控制器与设备的接口。一个设备控制器可以有一个或多个设备接口,一个接口连接一台设备,在每个接口中都存在数据、控制和状态三种类型的信号。设备控制器中的I/O逻辑根据CPU发来的地址信号选择一个设备接口。I/O逻辑。设备控制器中的I/O逻辑用于实现对设备的控制。通过一组控制线与CPU交互,CPU利用该逻辑向控制器发出I/O命令;I/O逻辑对收到的命令进行译码。当CPU要启动一个设备时,一方面将启动命令发送给控制器;同时通过地址线把地址发送给控制器,由控制器的I/O逻辑对收到的地址进行译码,再根据所译出的命令对所选设备进行控制。,.18页,5.2.1输入/输出系统结构,3.通道为了获得CPU与外围设备之间更高的并行工作能力,也为了让种类繁多、物理特性各异的外围设备能以标准的接口连接到系统中,计算机系统在CPU与设备控制器之间增设了自成独立体系的通道结构,这不仅使数据的传送独立于CPU,而且对I/O操作的组织、管理及其处理也尽量独立,使CPU有更多的时间进行数据处理。通道又称输入/输出处理机。它具有执行I/O指令的能力,并通过执行通道程序来控制I/O操作,完成主存储器和外围设备之间的信息传送。采用通道技术主要解决了输入/输出操作的独立性和各部件工作的并行性,实现了外围设备与CPU之间的并行操作,通道与通道之间的并行操作,各个通道上的外围设备之间的并行操作,提高了整个系统效率。具有通道装置的计算机系统,主机、通道、设备控制器和设备之间采用四级连接,实施三级控制。通常,一个中央处理器可以连接若干通道,一个通道可以连接若干个控制器,一个控制器可以连接若干台设备。,.19页,5.2.1输入/输出系统结构,根据信息交换方式的不同,通道可分为三种类型:字节多路通道、数组选择通道和数组多路通道。(1)字节多路通道(ByteMultiplexorChannel)字节多路通道是一种按字节为单位以交叉方式工作的通道。它通常含有许多非分配型子通道,其数量可达数百个,每一个子通道连接一台I/O设备,并控制该设备的输入/输出操作,这些子通道按时间片轮转方式共享主通道,如图4-4所示。字节多路通道主要用于连接大量的低速外围设备,如软盘输入输出机、纸带输入输出机、卡片输入输入机、控制台打印机等设备。,.20页,5.2.1输入/输出系统结构,图5-4字节多路通道的工作原理,.21页,5.2.1输入/输出系统结构,(2)数组选择通道(BlockSelectorChannel)数组选择通道以块为单位成批传送数据。它只含有一个分配型子通道,在一段时间内只能执行一道通道程序,控制一台设备进行数据传送,致使当某台设备占用该通道后,便一直独占使用,即使无数据传送,通道被闲置,也不允许其它设备使用该通道,直至设备释放该通道。可见,数组选择通道可以连接多台高速设备,每次传送一批数据,传送速度高,但通道的利用率很低,如磁带机、磁盘机等设备。,.22页,5.2.1输入/输出系统结构,(3)数组多路通道(BlockMultiplexorChannel)数组多路通道是将数组选择通道传输速率高与字节多路通道能使各子通道(设备)分时并行操作的优点相结合而形成的一种新通道。它含有多个非分配型子通道,以分时方式同时执行几道通道程序,因而数组多路通道既具有很高的数据传输速率,又能获得令人满意的通道利用率。数组多路通道的实质是对通道程序采用多道程序设计技术的硬件实现。,.23页,5.2.1输入/输出系统结构,由于通道的成本高,在系统中通道数量有限,这往往成为I/O的瓶颈,造成整个系统的吞吐量降低。如图5-5所示单通路I/O系统,为了驱动设备1,必须连通控制器1和通道1,若通道1已被其他设备(如设备2,设备3或设备4)所占用或存在故障,则设备1无法启动,这就是由于通道不足而造成输入/输出操作中的“瓶颈”现象。解决“瓶颈”问题的最有效办法,便是增加设备到主机之间的通路而不增加通道,如图5-6所示,即把一个设备连接到多个控制器上,而一个控制器又连接到多个通道上,实现多路交叉连接,即使个别通道或控制器出现故障时,也不会使设备和存储器之间没有通路。多通路方式不仅解决了“瓶颈”问题,而且提高了系统的可靠性。,.24页,5.2.1输入/输出系统结构,图5-5单通路I/O系统,.25页,5.2.1输入/输出系统结构,图5-6多通路I/O系统,.26页,5.2.1输入/输出系统结构,在一个计算机系统中,由于外围设备种类繁多,为了获得更高的输入/输出效率,可能同时存在多种类型的通道。图5-7中示出了一个IBM-370系统的结构,它包括上述三种类型通道。,.27页,5.2.1输入/输出系统结构,4.总线系统计算机系统中的各个部件,如中央处理器、存储器以及各种I/O设备通过总线实现各种信息的传递,如图5-8所示。总线的性能通过总线的时钟频率、带宽和相应的总线传输速率等指标来衡量。随着计算机的CPU和主存速率的提高,字长的增加,以及新型设备的推出,不断地推动着总线的发展,由早期的ISA总线发展为EISA总线、VESA总线,以及现在广为流行的PCI总线。,.28页,5.2.2I/O控制方式,为了有效地实现物理I/O操作,必须通过硬件和软件技术,对CPU和I/O设备的职能进行合理的分工,以调节系统性能和硬件成本之间的矛盾。随着计算机技术的发展,I/O控制方式也在不断地发展。选择和衡量I/O控制方式有如下3条原则:(1)数据传输速度足够高,能满足用户的需要但又不丢失数据;(2)系统开销小,所需的处理控制程序少;(3)能充分发挥硬件资源的能力,使I/O设备尽可能忙,而CPU等待时间尽可能少。,.29页,5.2.2I/O控制方式,按照I/O控制器功能的强弱以及和CPU之间联系方式的不同,可以把I/O设备的控制方式分为四类:直接程序控制方式、中断驱动控制方式、直接存储器访问(DMA)控制方式和通道控制方式。I/O控制方式发展的目标是尽量减少主机对I/O控制的干预,把主机从繁杂的I/O控制事务中解脱出来,更多地进行数据处理,提高计算机效率和资源的利用率。它们之间的主要差别在于CPU与外围设备并行工作的方式不同,并行工作的程度不同。,.30页,5.2.2I/O控制方式,1直接程序控制方式直接程序控制方式由用户进程直接控制主存或CPU和外围设备之间的信息传送。通过输入/输出指令或询问指令测试I/O设备的忙/闲标志位,决定主存储器与外围设备之间是否交换一个字符或一个字。,.31页,5.2.2I/O控制方式,当用户进程需要输入数据时,通过CPU向控制器发出一条I/O指令,启动设备输入数据,同时把状态寄存器中的忙/闲状态busy置为“1”,用户进程进入测试等待状态,在等待过程中,CPU不断地用一条测试指令检查外围设备状态寄存器中的busy位,而外围设备只有在数据送入控制器的数据寄存器之后,才将该busy位置为“0”,于是处理器将数据寄存器中的数据取出,送入主存指定单元中,完成一个字符的输入/输出,接着进行下一个数据的输入/输出操作,如图5-9所示。直接程序控制方式虽然简单,不需要多少硬件的支持,但由于高速的CPU和低速的I/O设备之间的速度不匹配,因此,CPU与外围设备只能串行工作,使CPU的绝大部分时间都处于等待是否完成输入/输出操作的循环测试中,造成CPU的极大浪费,外围设备也不能得到合理的使用,整个系统的效率很低。直接程序控制方式只适合于CPU执行速度较慢,且外围设备较少的系统。,.32页,5.2.2I/O控制方式,2中断驱动控制方式为了减少程序直接控制方式中CPU的等待时间以及提高系统的并行程度,系统引入了中断机制。中断机制引入后,外围设备仅当操作正常结束或异常结束时才向中央处理机发出中断请求。在I/O设备输入每个数据的过程中,由于无须CPU干预,一定程度上实现了CPU与I/O设备的并行工作。仅当输入/输出完一个数据时,才需CPU花费极短的时间做中断处理,如图4-10所示。显然,这样可使CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。例如,从终端输入一个字符的时间约为100ms,而将字符送入终端缓冲区的时间小于0.1ms。若采用程序I/O控制方式,CPU约有99.9ms的时间处于等待中。采用中断驱动方式后,CPU可利用这99.9ms的时间去做其它事情,而仅用0.1ms的时间来处理由控制器发来的中断请求。可见,中断驱动方式可以成百倍地提高CPU的利用率。但是由于输入/输出操作直接由CPU控制,每传送一个字符或一个字,都要发生一次中断,仍然占用了大量的CPU处理时间,可以通过为外围设备增加缓冲寄存器存放数据,大大减少中断次数。,.33页,5.2.2I/O控制方式,图5-10中断驱动方式流程,.34页,5.2.2I/O控制方式,上述两种方法的特点都是以CPU为中心,数据传输通过一段程序来实现,软件的传输手段限制了数据传送的速度。而下面两种方式采用硬件的方法来实现I/O的控制。,.35页,5.2.2I/O控制方式,3直接存储器存取方式(DirectMemoryAccess,DMA)直接存储器存取方式又称DMA方式。为了进一步减少CPU对输入/输出的干预,防止并行操作设备过多CPU来不及处理或因速度不匹配而造成的数据丢失现象,而引入DMA控制方式。它不仅设有中断机构,而且增加了DMA控制机构。在DMA控制器的控制下,采用窃取或挪用总线控制权,占用CPU的一个工作周期把数据缓冲器中的数据直接送到主存地址寄存器所指向的主存区域中,在设备和主存之间开辟直接数据交换通道,成批地交换数据,而不必CPU的干预,DMA控制方式的工作流程如图5-11所示。该方式的特点有:数据传输以数据块为基本单位;所传送的数据从设备直接送入主存,或者从主存直接输出到设备上;仅在传送一个或多个数据块的开始和结束时,才需CPU的干预,而整块数据的传送则是在控制器的控制下完成。可见,DMA控制方式与中断驱动方式相比,减少了CPU对输入/输出的干预,进一步提高了CPU与I/O设备的并行操作程度。,.36页,5.2.2I/O控制方式,图5-11DMA控制方式,.37页,5.2.2I/O控制方式,DMA的操作全部由硬件实现,不影响CPU寄存器的状态。为了实现在主机与控制器之间成块数据的直接交换,在DMA控制器中设置了如下四类寄存器:(1)命令/状态寄存器CR,用于接收从CPU发来的I/O命令或有关控制信息,或设备的状态。(2)内存地址寄存器MAR,在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。(3)数据寄存器DR,用于暂存从设备到内存,或从内存到设备的数据。(4)数据计数器DC,存放本次CPU要读或写的字(节)数。DMA控制方式线路简单,价格低廉,适合高速设备与主存之间的成批数据传输,小型、微型机中的快速设备均采用这种方式,但其功能较差,不能满足复杂的输入/输出要求。,.38页,5.2.2I/O控制方式,4.通道控制方式(1)通道控制方式的引入通常,大型计算机需要连接大量的高速和低速设备,通道控制方式可以满足这个要求。通道控制方式将对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预,可以进一步减少CPU的干预程度。同时可实现CPU、通道和I/O设备三者的并行操作,从而更加有效地提高整个系统的资源利用率。例如,当CPU要完成一组相关的读(或写)操作及有关控制时,只需向I/O通道发送一条I/O指令,指出其所要执行的通道程序的首址和要访问的I/O设备,通道接收该指令后,通过执行通道程序便可完成CPU指定的I/O任务。,.39页,5.2.2I/O控制方式,(2)通道指令和通道程序通道程序规定了通道进行一次输入输出操作应执行的操作及顺序,由一系列通道指令(ChannelCommandWordCCW)所构成。通道程序在进程要求数据传送时由系统自动生成,通道指令一般包含被交换数据在主存中占据的位置、传送方向、数据块的长度以及被控制的I/O设备的地址信息、特征信息等。例如IBM系统的通道指令用双机器字表示,每条通道指令用8个字节表示,其格式如下所示:,0783132394063,.40页,5.2.2I/O控制方式,下面给出一个由三条通道指令所组成的简单通道程序。该程序的功能是要求在新的一页第4行的位置打印输出一行信息:“OperatingSystem”。假定用户要求输出的信息已经存放在主存L单元开始的区域中,连空格在内共16个字符。组织好的通道程序在主存K单元开始的区域中。其中,命令码07表示“对折页线”(即走到新的一页开始),命令码EF表示“走纸3行”(即走纸到第4行的位置),命令码F9表示“打印一行信息”,标识码60表示有后续命令。最后一条命令要求打印从L单元开始的16个字符,打印结束后本操作结束。,.41页,5.2.2I/O控制方式,.42页,5.2.2I/O控制方式,(3)I/O通道的启动与结束当进程提出I/O请求后,操作系统首先分配通道和外设,然后按照I/O请求编制通道程序并存入主存,将其起始地址送入通道地址寄存器(CAW),接着CPU发出“启动I/O”指令启动通道工作,启动成功后,通道逐条执行通道程序中的通道指令,控制设备实现I/O操作。CPU启动通道后,通道的工作过程如下。从主存固定单元取出通道地址寄存器(CAW),根据该地址从主存中取出通道指令,通道执行通道控制字寄存器(CCW)中的通道命令,将I/O地址送入CCW,发出读、写或控制命令,并修改CAW使其指向下一条通道指令地址。,.43页,5.2.2I/O控制方式,控制器接收通道发来的命令之后,检查设备状态,若设备不忙,则告知通道释放CPU,开始I/O操作。执行完毕后,如果还有下一条通道指令,则返回,否则转。通道完成I/O操作后,向CPU发出中断请求,CPU根据通道状态字了解通道和设备的工作情况,处理来自通道的中断。可见,只是在I/O操作的起始和结束时,通道向CPU发出I/O中断申请,把产生中断的通道号、设备号存入中断寄存器,同时形成通道状态字汇报情况,等待处理。CPU用极短的时间参与控制管理工作,其他时间则处理与I/O无关的操作。这样实现了CPU与通道、外围设备的并行操作,从而提高了整个系统的利用率。,.44页,5.3缓冲技术,计算机系统中各个部件速度的差异是显而易见的。为了缓解CPU与外围设备之间速度不匹配和负载不均衡的问题,为了提高CPU和外围设备的工作效率,增加系统中各部件的并行工作程度,在现代操作系统中普遍采用了缓冲技术。缓冲管理的主要职责是组织好缓冲区,并提供获得和释放缓冲区的手段。,.45页,5.3.1缓冲的引入,在操作系统中引入缓冲区的主要原因有:(1)缓和CPU与I/O设备间速度不匹配的矛盾高速的CPU与慢速I/O设备之间存在着速度差异很大,CPU是以微秒甚至微毫秒时间量级高速工作,而I/O设备则一般以毫秒甚至秒时间量级的速率工作。在不同阶段,系统各部分的负载往往很不平衡。例如,当作业需要打印大批量数据时,由于CPU输出数据的速度大大高于打印机的速度,因此CPU只能停下来等待,反之,在CPU计算时,打印机又因为无数据输出而处于空闲状态。设置缓冲区后,CPU可以把数据首先输出到输出缓冲区中,然后继续它的执行,同时打印机从缓冲区中取出数据缓慢打印,这样提高了CPU的工作效率,使设备尽可能均衡地工作。,.46页,5.3.1缓冲的引入,(2)减少对CPU中断频率,放宽对CPU中断响应时间的限制在数据通信中,如果仅有一位数据缓冲接收数据,则必须在每收到一位数据时便中断一次CPU,进行数据的处理,否则缓冲区内的数据将被新传送来的数据冲掉。若设置一个具有8位的缓冲器,则可使CPU被中断的频率降低为原来的1/8,如图5-12所示。这样减少了CPU的中断次数和中断处理时间。,.47页,5.3.1缓冲的引入,(3)提高CPU和I/O设备之间的并行性缓冲的引入可显著提高CPU与I/O设备之间的并行操作程度,提高系统的吞吐量和设备的利用率。根据I/O控制方式,缓冲的实现方法有两种:一是采用专用硬件缓冲器,例如I/O控制器中的数据缓冲寄存器;另外一种方法是在主存储器中划出一个具有n个单元的专用区域,以便存放输入/输出数据,主存缓冲区又称软件缓冲。对于不同的系统,可以采用不同类型的缓冲区机制。最常见的缓冲区机制有单缓冲机制、能实现双向同时传送数据的双缓冲机制,以及能供多个设备同时使用的公共缓冲机制等。,.48页,5.3.2单缓冲,单缓冲是在设备和处理器之间设置一个缓冲器,由输入和输出设备共用。设备和处理器交换数据时,先把被交换数据写入缓冲器,然后需要数据的设备或处理机从缓冲器中取走数据,如图5-13所示,由于缓冲器属于临界资源,所以输入设备和输出设备以串行方式工作,这样尽管单缓冲能匹配设备和处理机的处理速度,但是设备和设备之间并不能通过单缓冲达到并行操作。,.49页,5.3.2单缓冲,图5-13单缓冲工作示意图,.50页,5.3.3双缓冲,双缓冲机制又称为缓冲对换。双缓冲是为输入和输出设备设置两个缓冲区的缓冲技术。在设备输入数据时,可以把数据放入其中一个缓冲区中,在进程从缓冲区中取数据使用的同时,将输入数据继续放入另一个缓冲区中。当第一个缓冲区的数据处理完时,进程可以接着从另一个缓冲区中获得数据,同时,输入数据可以继续存入第一个缓冲区,如图5-14所示,仅当输入设备的速度高于进程处理这些数据的速度,两个缓冲区都存满时,造成输入进程等待。这样,两个缓冲区交替使用,使CPU和I/O设备的并行性进一步提高,但在输入/输出设备和处理进程速度不匹配时仍不能适应。,.51页,5.3.3双缓冲,显然,双缓冲只是一种说明设备和设备、CPU和设备之间并行操作的简单模型,由于计算机系统中的外围设备较多,而双缓冲也难以匹配设备和处理器的处理速度,所以,双缓冲并不能用于实际系统中的并行操作。在现代计算机系统中一般使用多缓冲或缓冲池结构。,.52页,5.3.4多缓冲,系统从主存中分配一组缓冲区组成多缓冲。多缓冲中的缓冲区是系统的公共资源,可供各个进程共享,并由系统统一分配和管理。多个缓冲区组织成循环缓冲形式,对于用作输入的循环缓冲,通常是提供给输入进程或计算进程使用,输入进程不断向空缓冲区输入数据,而计算进程则从中提取数据进行计算。循环缓冲如图5-15所示,其中每个缓冲区的大小相同,包括用于装输入数据的空缓冲区R,已装满数据的缓冲区G以及计算进程正在使用的现行工作缓冲区C,指针Nextg用于指示计算进程下一个可用缓冲区G,指针Nexti用于指示输入进程下次可用的空缓冲区R,指针Current用于指示计算进程正在使用的缓冲区C。,.53页,5.3.4多缓冲,在UNIX系统中,不论是块设备管理,还是字符设备管理,都是采用多缓冲技术。UNIX的块设备共设置了15个512字节的缓冲区;字符设备共设置了100个6字节的缓冲区。,.54页,5.3.5缓冲池,一组多缓冲仅适用于某个特定的I/O进程和计算进程,当系统较大时,需要设置若干组多缓冲,这不仅消耗大量的贮存空间,而且其利用率不高。为了提高缓冲区的利用率,公用缓冲池被广泛使用,它由多个可共享的缓冲区组成。对于既可用于输入又可用于输出的公用缓冲池,按其使用状况可以分成三种类型的缓冲区:空(闲)缓冲区;装满输入数据的缓冲区;装满输出数据的缓冲区。,.55页,5.3.5缓冲池,为了便于管理,可将相同类型的缓冲区链成一个队列,于是可形成以下三个队列:(1)由空缓冲区所链成的空缓冲队列emq。(2)由装满输入数据的缓冲区所链成的输入队列inq。(3)由装满输出数据的缓冲区所链成的输出队列outq,.56页,5.3.5缓冲池,在缓冲池中,有四种工作缓冲区,分别工作在收容输入、提取输入、收容输出和提取输出四种工作方式下,如图5-16所示。四个工作缓冲区为:用于收容设备输入数据的工作缓冲区hin;用于提取设备输入数据的工作缓冲区sin;用于收容CPU输出数据的工作缓冲区hout;用于提取CPU输出数据的工作缓冲区sout。,.57页,5.4独占设备的分配,在多道程序设计系统中,不允许用户直接启动外围设备,而必须由系统进行统一分配。当进程向系统提出I/O请求时,只要是可能和安全的,设备分配程序按照一定的策略,将设备分配给请求用户(进程),在有的系统中,还应分配相应的控制器和通道。,.58页,5.4.1设备的逻辑号和绝对号,计算机系统中配置了各种不同类型的外围设备,每一类型外围设备可以有若干台。为了对设备进行管理,计算机系统为每一台设备确定一个编号,以便区分和识别,这个编号称为设备的绝对号。在多道程序设计系统中,由于用户无法知道当前计算机系统中设备的使用状态,因此,一般用户不直接使用设备的绝对号,用户可以向系统说明所要使用的设备类型。至于实际使用哪一台设备,由系统根据该类设备的分配情况来决定。为了避免使用时产生混乱,用户可以在程序中对自己要求使用的若干台同类型设备给出编号。由用户在程序中定义的设备编号称为设备的逻辑号。,.59页,5.4.1设备的逻辑号和绝对号,这样,用户总是用“设备类、逻辑号”向系统提出使用设备的要求,而系统为用户分配一个绝对号设备供用户使用。逻辑设备名是用户命名的,可以更改,而物理设备名(地址)是系统规定的,是不可更改的。设备管理的功能之一就是将逻辑设备名映射为物理设备名。,.60页,5.4.2设备的独立性,设备的独立性也称设备的无关性,指应用程序独立于具体使用的物理设备,能有效地提高操作系统的可适应性和可扩展性。用户编制程序时,不必指明特定的设备,而是在程序中使用“设备类、相对号”定义的逻辑设备,程序执行时系统根据用户指定的逻辑设备转换成与其对应的具体物理设备,并启动该物理设备工作。于是,用户在编制程序时使用的设备与实际使用哪台设备无关,这种特性称为“设备的独立性”。具有设备独立性的计算机系统,在设备分配时具有:(1)设备分配灵活性强。(2)设备分配适应性强,易于实现I/O重定向。,.61页,5.4.2设备的独立性,设备驱动程序是一个与硬件(或设备)紧密相关的软件。为了实现设备的独立性,往往需要在设备驱动程序之上设置一层软件,称为设备独立性软件,其主要功能包括:(1)执行所有设备的公有操作这些公有操作包括:对独立设备的分配与回收;将逻辑设备名映射为物理设备名;对设备进行保护,禁止用户直接访问设备;缓冲管理;差错控制。由于在I/O操作中的绝大多数错误都与设备无关,所以I/O操作主要由设备驱动程序处理,而设备独立性软件只是处理那些设备驱动程序无法处理的错误。,.62页,5.4.2设备的独立性,(2)向用户层(或文件层)软件提供统一的接口虽然各种设备内部的具体操作各不相同,但它们向用户提供的接口却是相同的。例如,对各种设备的读操作,在应用程序众多使用read,而对各种设备的写操作,都使用write。,.63页,5.4.3独占设备的分配,设备分配方式有两种,即静态分配和动态分配。静态分配方式是在用户作业开始执行之前,由系统一次性分配该作业所要求的全部设备、控制器和通道。一旦分配之后,这些设备、控制器和通道就一直为该作业所占用,直到该作业被撤销。静态分配方式不会出现死锁,但是设备的使用效率低。独占型设备的分配采用静态分配策略。动态分配在进程执行过程中根据执行的需要进行分配。当进程需要设备时,通过系统调用指令向系统提出设备请求,由系统按照事先规定的策略给进程分配所需要的设备、控制器和通道,一旦使用完毕,便立即释放。动态分配方式有利于提高设备的利用率,但如果分配策略使用不当,则有可能造成进程死锁。,.64页,5.4.3独占设备的分配,为了实现设备分配,系统设置了设备控制表、控制器控制表、通道控制表和系统设备表等数据结构,记录相应设备或控制器的状态以及对设备或控制器进行控制所需要的信息。,.65页,5.4.3独占设备的分配,1.设备控制表系统为设备配置了一张设备控制表(DCT),用于记录设备的基本情况,包括设备类型、设备标识符、设备状态(好/坏,已/未分配,等待/不等待通道)、设备队列队首指针、与设备连接的控制器指针等。如图5-17所示。,.66页,5.4.3独占设备的分配,2.控制器控制表系统为每一个控制器设置一张控制表,称为控制器控制表(COCT),用于记录本控制器的使用状态以及与通道的连接情况等,如图5-18所示。该表在DMA方式的系统中是不存在的。,.67页,5.4.3独占设备的分配,3.通道控制表系统为每一个通道配置了一通道控制表(CHCT),如图5-19所示。,.68页,5.4.3独占设备的分配,4.系统设备表系统设备表(SDT)又称为设备类表。整个系统一张系统设备表,用于记录已被连接到系统中所有类型设备的基本情况,包括设备类型、设备标识符、拥有同类型设备的数量、DCT及设备驱动程序的入口地址等,如图5-20所示。,.69页,5.4.3独占设备的分配,5.逻辑设备表(LUT)为了实现设备的独立性,系统还必须设置一张逻辑设备表(LogicalUnitTable,LUT),用于将应用程序中使用的逻辑设备名映射为物理设备名。该表的每个表目包括逻辑设备名和物理设备名,如图5-21所示。在多用户系统中,系统为每个用户设置一张LUT,并将该表放入进程的PCB中。当进程用逻辑设备名请求分配I/O设备时,系统为之分配相应的物理设备,并在LUT中建立一个表目,填上应用程序中使用的逻辑设备名和系统分配的物理设备名。,.70页,5.4.3独占设备的分配,当进程提出I/O请求后,首先根据I/O请求中的设备名查找SDT,查找该类设备的DCT;再根据DCT中的设备状态字段,按照一定的算法,选择一台“好的且尚未分配的”设备进行分配,分配后修改设备类表中现存台数。把分配给作业的设备标志改成“已分配”且填上占用该设备的作业名和作业程序中定义的逻辑号,否则,将该进程的PCB插入设备等待队列。,.71页,5.4.3独占设备的分配,当系统将设备分配给请求进程后,再到DCT中找到与该设备连接的COCT,从COCT的状态字段中判断出是否可以将该控制器分配。若不可以,则将该进程的PCB挂在该控制器的等待队列上。通过COCT可找出与该控制器连接的CHCT。根据CHCT内的状态字段,判断出该通道是否可以进行分配。若忙,则将该进程的PCB挂在该通道的等待队列上。显然,进程只有在获得设备、控制器和通道三者之后,才能启动设备进行I/O操作。设备的分配流程如图5-22所示。,.72页,5.4.3独占设备的分配,.73页,5.5磁盘管理,磁盘存储器是一种高速、大容量的随机存储设备。现代计算机系统均配置了磁盘存储器,并以它为主存放大量的文件和数据。因此,了解磁盘的结构、空间管理和工作原理是十分必要的。,.74页,5.5.1磁盘结构,磁盘设备由一组盘组组成,可包括一张或多张盘片,每张盘片分正反两面,每面可划分成若干磁道,各磁道之间留有必要的间隙,每条磁道又分为若干个扇区,各扇区之间留有一定的空隙,每个扇区的大小相当于一个盘块大小。磁盘在存储信息之前,必须进行磁盘格式化。图5-23给出了温式硬盘中一条磁道格式化的情况。其中每条磁道含30个固定大小的扇区,每个扇区为600个字节,其中512个字节存储数据,其余字节用于存放控制信息,其中SYNCH作为该字段的定界符,具有特定的位图像;CRC用于段校验。,.75页,5.5.1磁盘结构,图5-23磁盘的格式化,.76页,在微机上配置的温盘和软盘一般采用移动磁头结构。一个盘组中所有盘片被固定在一根旋转轴上,沿着一个方向高速旋转。每个盘面配有一个读/写磁头,所有的读/写磁头被固定在移动臂上同时移动,如图5-24所示。,.77页,5.5.1磁盘结构,将磁头按从上到下次序编号,称为磁头号。每个盘面有许多磁道,磁头位置下各个盘面上的磁道处于同一个圆柱面上,称这些磁道组成了一个柱面。每个盘面上的磁道从0开始,由外向里顺序编号,通过移动臂的移动,读/写磁头可定位在任何一个磁道上,可见,移动磁头仅能以串行方式进行读/写。当移动臂移到某一个位置时,所有的读/写磁头处在同一个柱面上,盘面上的磁道号即为柱面号。每个盘面被划分成若干个扇区,沿与磁盘旋转相反的方向给个扇区编号,称为扇区号。为了减少移动臂移动花费的时间,系统存放信息时,并不是按盘面上的磁道顺序存满一个盘面后再存放到下一个盘面,而是按柱面顺序存放,当同一柱面上的磁道存满后,再存放到下一个柱面上。所以,磁盘存储空间的位置可以由三个参数决定:柱面号、磁头号和扇区号(每个参数均从“0”开始编号)。而磁盘空间的盘块按柱面(从0号柱面开始)、磁头、扇区顺序编号。,.78页,5.5.1磁盘结构,假定在磁盘存储器中用t表示每个柱面上的磁道数,用s表示每个磁道上的扇区数,则第i柱面号、j磁头号、k扇区号所对应的块号b可用如下公式确定:b=k+s(j+it)同样,根据块号也可以确定该块在磁盘上的位置。在上述假设下,每个柱面上有:st个磁盘块,为了计算第p块在磁盘上的位置,可以令d=st,则有:i柱面号=p/dj磁头号=(pmodd)/sk扇区号=(pmoddmods)第p块在磁盘上的位置就可以由i、j、k三个参数确定。,.79页,5.5.2磁盘空间的管理,磁盘空间被操作系统和其他用户共享,大量的信息存放在磁盘上,系统需要对磁盘空间进行分配与回收管理。磁盘空间的管理办法主要有(详细内容见第六章):1空闲块表法2空闲块链法3位示图法4成组链接法,.80页,5.5.3驱动调度,磁盘是目前使用最典型而又最广泛的一种块设备。任何一个对磁盘的访问请求,应给出访问磁盘的存储空间地址:柱面号、磁头号和扇区号。在启动磁盘执行输入/输出操作时,先把移动臂移动到指定的柱面,再等待指定的扇区旋转到磁头位置下,最后让指定的磁头进行读写,完成信息传送。启动磁盘完成一次输入/输出操作所花的时间包括:寻找时间、延迟时间和传送时间。寻找时间(SeekTime)磁头在移动臂带动下移动到指定柱面所花的时间。延迟时间(LatencyTime)指定扇区旋转到磁头下方位置所需的时间。传送时间(TransferTime)由磁头进行读/写,完成信息传送的时间。,.81页,5.5.3驱动调度,图5-25访问磁盘的操作时间,.82页,5.5.3驱动调度,磁盘属于共享型设备,在多道程序设计系统中,同时有若干个访问者请求磁盘执行输入/输出操作,为了保证信息的安全,系统在任一时刻只允许一个访问者启动磁盘执行操作,其余的访问者必须等待。一次输入/输出操作结束后,再释放一个等待访问者。为了提高系统效率,降低若干个访问者执行输入/输出操作的总时间(平均服务时间),增加单位时间内输入/输出操作的次数,系统应根据移动臂的当前位置选择寻找时间和延迟时间尽可能小的那个访问者优先得到服务。由于在访问磁盘时间中,“寻找时间”是机械运动时间,通常在几十毫秒时间量级。因此设法减小寻找时间是提高磁盘传输效率的关键。,.83页,5.5.3驱动调度,系统采用一定的调度策略来决定各个请求访问磁盘者的执行次序,这项工作称为磁盘的“驱动调度”,采用的调度策略称为“驱动调度算法”。对磁盘来说,驱动调度先进行“移臂调度”,以尽可能地减少寻找时间,再进行“旋转调度”,以减少延迟时间。,.84页,5.5.3驱动调度,1移臂调度根据访问者指定的柱面位置来决定执行次序的调度称为“移臂调度”,移臂调度的目标是尽可能地减少输入/输出操作中的寻找时间。常用的移臂调度算法有先来先服务调度算法、最短寻道时间优先调度算法、电梯调度算法、单向扫描算法和双向扫描算法等。,.85页,5.5.3驱动调度,(1)先来先服务调度算法FCFS(Firstcome,Firstserver)先来先服务调度算法是一种最简单的移臂调度算法。该算法只是根据访问者提出访问请求的先后次序进行调度,并不考虑访问者所要求访问的物理位置。此算法简单且公平。但由于未对寻道进行优化,移动臂来回地移动,致使寻道时间可能比较长。故先来先服务算法仅适合于磁盘I/O请求数目较少的场合。,.86页,5.5.3驱动调度,例如,现在读写磁头正在53号柱面上执行输入/输出操作,而访问者请求访问的柱面顺序为:98,183,37,122,14,124,65,67。图5-26给出了按先来先服务算法决定访问者执行输入/输出操作的次序,移动臂将来回地移动,读写磁头总共移动了640个柱面的距离。,.87页,5.5.3驱动调度,(2)最短寻找时间优先调度算法SSTF(ShortestSeekTimeFirst)最短寻找时间优先调度算法总是从若干请求访问者中挑选与当前磁头所在的磁道距离最近,使每次寻道时间最短的那个请求进行调度,而不管访问者到达的先后次序。该算法与先来先服务算法相比,大幅度地减少了寻找时间,从而缩短了为各请求访问者服务的平均时间,提高了系统效率。但它并未考虑访问者到来的先后次序,可能存在某进程由于距离当前磁头为之较远,致使该进程的请求被大大的推迟,即发生“饥饿”现象。,.88页,5.5.3驱动调度,图5-27给出了采用最短寻找时间优先算法决定访问者执行输入输出操作的次序,读写磁头总共的移动距离为236个柱面。,.89页,5.5.3驱动调度,(3)单向扫描调度算法单向扫描调度算法不论访问者的先后次序,总是从0号柱面开始向里扫描,依次选择所遇到的请求访问者;移动臂到达盘面的最后一个柱面时,立即带动读/写磁头快速返回到0号柱面,返回时不为任何请求访问者服务,返回0号柱面后再次进行扫描。该算法虽然考虑了移动臂的移动距离问题,但由于存在一趟空扫描,系统的效率并未得到大的提高。,.90页,5.5.3驱动调度,图5-28给出了采用单向扫描算法决定访问者执行输入输出操作的次序,读写磁头总共的移动距离为382个柱面。,.91页,5.5.3驱动调度,(4)双向扫描算法双向扫描调度算法从0号柱面开始向里扫描,依次选择所遇到的请求访问者;移动臂到达最后一个柱面时,调转方向从最后一个柱面向外扫描,依次选择所遇到的请求访问者。双向扫描算法解决了单向扫描算法中的一趟空扫描问题,减少了寻找时间,提高了系统的访问效率,但在每次扫描过程中必须从最外磁道扫描到最内磁道,有可能存在部分空扫描。,.92页,5.5.3驱动调度,图5-29给出了采用双向扫描算法决定访问者执行输入/输出操作的次序,读/写磁头总共的移动距离为321个柱面。,.93页,5.5.3驱动调度,(5)电梯调度算法“电梯调度”算法不仅考虑到请求访问者的磁头与当前磁头之间的距离,更优先考虑的是磁头当前的移动方向。总是从移动臂当前位置开始,沿着移动臂的移动方向选择距离当前移动臂最近的那个访问者进行调度,若沿移动臂的移动方向再无访问请求时,则改变移动臂的方向再选择,其目的是尽量减少移动臂移动时所花的时间。,.94页,5.5.3驱动调度,由图5-30可以看出,若当前移动臂由里向外移动时,读写磁头共移动了208个柱面的距离,如图5-30(a)所示;,.95页,5.5.3驱动调度,若当前移动臂由外向里移动时,则读写磁头共移动了299个柱面的距离,如图5-30(b)所示。,.96页,5.5.3驱动调度,“电梯调度”与“最短寻找时间优先”都是以尽量减少移动臂移动时所花的时间为目标,所不同的是:“最短寻找时间优先”不考虑移动臂的当前移动方向,总是选择距离当前读/写磁头最近的那个柱面的访问者,这样可能会导致某个进程发生“饥饿”现象,移动臂来回改变移动方向;而“电梯调度”算法总沿着移动臂的移动方向选择距离当前读/写磁头最近的那个柱面的访问者,仅当沿着移动臂的移动方向
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南宁代建合同范本
- 简短个人租房合同范本
- 门窗采购合同范本
- 路面硬化劳务合同范本
- 成人交友活动合同
- 合肥装潢公司合同范本
- 保险销售的合同范本
- 电缆敷设合同范本
- 工程小活合同范本
- 农具机械购销合同范本
- 2025年秋季新学期教学工作会议上校长讲话:扎根课堂、走近学生、做实教学-每一节课都值得全力以赴
- 2025年度船舶抵押贷款合同范本:航运融资与风险规避手册
- 2025年《药品管理法》试题(附答案)
- 2025年党建知识应知应会测试题库(附答案)
- 2025年新人教版小升初分班考试数学试卷
- 2025劳动合同范本【模板下载】
- 以课程标准为导向:上海市初中信息科技教学设计的探索与实践
- 2025年公共基础知识考试试题(附完整答案)
- 2025年海南省公安厅招聘警务辅助人员考试试题(含答案)
- 北川羌族自治县农业农村局北川羌族自治县测雨雷达建设项目环评报告
- 2025社区工作者必考试题库(含答案)
评论
0/150
提交评论