第5章设备管理_第1页
第5章设备管理_第2页
第5章设备管理_第3页
第5章设备管理_第4页
第5章设备管理_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

第5章设备管理

教学要点

本章主要内容包括设备管理的任务和功能,设备管理的硬件组织与软件组织,设备管理中的缓冲技术,设备分配和设备驱动程序的处理,磁盘存储管理。应重点掌握设备管理中的缓冲技术,设备驱动程序的设计,掌握设备无关性的概念,设备分配与回收算法。

第五章设备管理计算机系统中,“设备”是指除中央处理器和主存以外的所有设备。这些设备常称为外部设备或I/O设备。设备管理的对象主要是I/O设备,还可能涉及到设备控制器和I/O通道。设备管理的基本任务是完成用户提出的I/O请求,提高I/O速率以及提高I/O设备的利用率。设备管理的主要功能:缓冲区管理、设备分配、设备处理、虚拟设备及实现设备独立性等。第五章设备管理5.1I/O系统5.2I/O控制方式5.3缓冲管理5.4设备分配5.5设备处理5.6磁盘存储器管理5.1I/O系统I/O系统是用于实现数据输入、输出及数据存储的系统。在I/O系统中,除了需要直接用于I/O和存储信息的设备外,还需要有相应的设备控制器和高速总线。有的大中型计算机系统中,还配置了I/O通道或I/O处理机。5.1I/O系统5.1.1I/O设备1.I/O设备的类型1)按传输速率分类按传输速度的高低,可将I/O设备分为三类。第一类是低速设备,这是指其传输速率仅为每秒钟几个字节至数百个字节的一类设备。属于低速设备的典型设备有键盘、鼠标器、语音的输入和输出等设备。第二类是中速设备,这是指其传输速率在每秒钟数千个字节至数万个字节的一类设备。典型的中速设备有行式打印机、激光打印机等。第三类是高速设备,这是指其传输速率在数百千个字节至数十兆字节的一类设备。典型的高速设备有磁带机、磁盘机、光盘机等。2)按信息交换的单位分类

可将I/O设备分成两类。第一类是块设备(BlockDevice),这类设备用于存储信息。由于信息的存取总是以数据块为单位,故而得名。它属于有结构设备。典型的块设备是磁盘,每个盘块的大小为512B~4KB。磁盘设备的基本特征是其传输速率较高,通常每秒钟为几兆位;另一特征是可寻址,即对它可随机地读/写任一块;此外,磁盘设备的I/O常采用DMA方式。第二类是字符设备(CharacterDevice),用于数据的输入和输出。其基本单位是字符,故称为字符设备。属于无结构类型。字符设备种类繁多,如交互式终端、打印机等。字符设备基本特征是其传输速率低,通常为几个字节到几千字节;另一特征是不可寻址,即输入输出时不能制定数据的输入源地址及输出的目标地址。此外,字符设备在输入/输出时,常采用中断驱动方式。3)按设备的共享属性分类这种分类方式可将I/O设备分为如下三类:独占设备。(2)共享设备。(3)虚拟设备。2.设备与控制器之间的接口设备不是直接与CPU进行通信,而是与设备控制器通信。图5-1设备与控制器间的接口设备控制器主要职责是控制一个或多个I/O设备,以实现I/O设备和计算机之间的信息交换。它接收从CPU发来的命令,并去控制I/O设备工作,以使处理机从繁杂的设备控制事务中解脱出来。为了实现设备的通用性和互换性,控制器和设备之间应采用标准接口,如SCSI(小型计算机系统接口)或IDE(集成设备电子器件)接口。设备控制器上一般都有一个接线器,可以通过电缆和标准接口相联接,它可以控制2个、4个或8个同类设备。对于个人计算机和小型计算机系统来说,由于它们的I/O系统比较简单,所以CPU与控制器之间的通信采用单总线模型,而大型主机则采用通道模型。5.1.2设备控制器CPU存储器磁盘控制器打印机控制器其它控制器磁盘驱动器打印机系统总线……图单总线型I/O系统结构内存I/O通道1I/O通道2控制器控制器控制器控制器设备设备图5.2具有通道的I/O系统结构5.1.2设备控制器1.设备控制器的基本功能1)接收和识别命令(控制寄存器)2)数据交换(数据寄存器)3)标识和报告设备的状态(状态寄存器)4)地址识别(地址译码器)5)数据缓冲(缓冲器)6)差错控制⑴设备控制器与CPU的接口。该接口用于实现设备控制器与CPU之间的通信,其中有三类信号线:

数据线、地址线、控制线。数据线通常与两类寄存器相连接:

①数据寄存器。②控制/状态寄存器。

⑵设备控制器与设备的接口。在一个设备控制器上可以连接一台或多台设备。相应地,在控制器中就有一个或多个设备接口,一个接口连接一台设备,在每个接口中都有数据、控制和状态三种类型的信号:

①数据信号。②控制信号。③状态信号。

2.设备控制器的组成图5-2设备控制器的组成(3)I/O逻辑用于对I/O的控制.通过一组控制线与CPU交互。CPU利用该逻辑向控制器发送I/O命令;I/O逻辑对接收到的命令进行译码。每当CPU要启动一个设备时,一方面要将启动命令送给控制器;另一方面又同时通过地址线把地址送给控制器。由控制器的I/O逻辑对收到的地址进行译码,再根据译出的命令对所选的设备进行控制。1.通道及通道与CPU间的通信在CPU与设备控制器之间增设通道,主要目的是为建立独立的I/O操作,把CPU从繁杂的I/O任务中解脱出来。通道又称I/O处理机,是一个独立于CPU的专管输入/输出控制的处理机,它具有执行I/O指令的能力,并通过执行通道(I/O)程序来控制设备与内存直接进行数据交换。有了通道之后,CPU与通道之间的关系是主从关系,CPU是主设备,通道是从设备,这样采用通道方式实现数据传输的过程如下:当运行的程序要求传输数据时,CPU向通道发I/O指令,命令通道开始工作,CPU就可以进行其它数据处理;通道接收到CPU的I/O指令后,从内存中取出相应的通道程序,通过执行通道程序完成I/O操作;当I/O操作完成(或出错)时,通道以中断方式中断CPU正在执行的程序,请求CPU的处理。5.1.3I/O通道2.通道类型按信息交换方式可分为以下三种类型:⑴字节多路通道它含有多个非分配型子通道,每个子通道连接一台I/O设备,这些子通道以字节为单位按时间片轮转方式共享主通道。每次子通道控制外设交换完一个字节后,便立即让出字节多路通道,以便让另一个子通道使用。当所有子通道轮转一周后,就又返回来由第一个子通道去使用字节多路通道。字节多路通道不适于连接高速设备。1)字节多路通道(ByteMultiplexorChannel)图5-3字节多路通道的工作原理(2)

数组选择通道(BlockSelectorChannel)它按成组方式进行数据传送,每次以块为单位传送一批数据,所以传输速度很快,主要用于连接高速外围设备,如磁盘等。但由于它只含一个分配型子通道,在一段时间内只能执行一个通道程序,控制一台设备进行数据传送,致使当某台设备占用了该通道后,便一直独占,直至它传送完毕释放该通道,其它设备才可使用。通道利用率低。(3)数组多路通道(BlockMultiplexorChannel)

数组选择通道虽有很高的传输速率,但它却每次只允许一个设备传输数据。

数组多路通道是将数组选择通道传输速率高和字节多路通道能使各子通道(设备)分时并行操作的优点相结合而形成的一种新通道。它含有多个非分配型子通道,因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率。也正因此,才使该通道能被广泛地用于连接多台高、中速的外围设备,其数据传送是按数组方式进行的。20以字节交叉方式控制设备传输信息慢速设备2慢速设备3字节多路通道慢速设备1成组多路通道快速设备1快速设备2快速设备3快速设备i以数据块分时方式控制设备传输信息数据选择通道快速设备1快速设备2快速设备j以数据块独占方式控制设备3.通道的类型图5-5多通路I/O系统3.“瓶颈”问题图5-4单通路I/O系统由于通道价格昂贵,机器中所设置的通道数量必然较少,这就使通道成了I/O的瓶颈,造成整个系统吞吐量的下降。5.2I/O控制方式5.2.1程序I/O方式

在程序I/O方式中,由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费。在该方式中,CPU之所以要不断地测试I/O设备的状态,就是因为在CPU中无中断机构,使I/O设备无法向CPU报告它已完成了一个字符的输入操作。图5-7程序I/O和中断驱动方式的流程5.2.2中断驱动I/O控制方式在I/O设备输入每个数据的过程中,由于无须CPU干预,因而可使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理。可见,这样可使CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。例如,从终端输入一个字符的时间约为100ms,而将字符送入终端缓冲区的时间小于0.1ms。若采用程序I/O方式,CPU约有99.9ms的时间处于忙—等待中。采用中断驱动方式后,CPU可利用这99.9ms的时间去做其它事情,而仅用0.1ms的时间来处理由控制器发来的中断请求。可见,中断驱动方式可以成百倍地提高CPU的利用率。5.2.3直接存储器访问DMAI/O控制方式该方式的特点是:①数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块;②所传送的数据是从设备直接送入内存的,或者相反;③仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。可见,DMA方式较之中断驱动方式,又是成百倍地减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。5.2.4I/O通道控制方式1.I/O通道控制方式的引入I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。同时,又可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。例如,当CPU要完成一组相关的读(或写)操作及有关控制时,只需向I/O通道发送一条I/O指令,以给出其所要执行的通道程序的首址和要访问的I/O设备,通道接到该指令后,通过执行通道程序便可完成CPU指定的I/O任务。2.通道程序通道通过执行通道程序,与设备控制器共同实现对I/O设备的控制。通道程序由一系列通道指令构成。通道指令与一般的机器指令不同,在它的每条指令中都包含如下信息:操作码。(2)内存地址。(3)计数。(4)通道程序结束位P。(5)记录结束标志R。操作PR计数内存地址WRITE0080813WRITE001401034WRITE01605830WRITE013002000WRITE002501850WRITE11250720下图是由6条通道指令所构成的简单的通道程序。该程序的功能是将内存中不同地址的数据,写成多个记录。5.3缓冲管理5.3.1缓冲的引入缓和CPU与I/O设备间速度不匹配的矛盾。(2)减少对CPU的中断频率,放宽对CPU中断响应时间的

限制。(3)提高CPU和I/O设备之间的并行性。图5-10利用缓冲寄存器实现缓冲仅有一位缓冲区CPU每100μs内就得予以响应加一个8位缓冲器CPU被中断频率会降低1/8再加一个8位缓冲器CPU被中断频率又降低1/85.3.2单缓冲和双缓冲1.单缓冲(SingleBuffer)操作系统提供的一种最简单的缓冲形式。单缓冲指当一个进程发出一I/O请求时,操作系统便在主存中为之分配一个缓冲区,用来临时存放输入/输出数据。由于单缓冲只设置一个缓冲区,那么在某一时刻该缓冲区只能存放输入数据或输出数据,而不能既是输入数据又是输出数据,否则会引起缓冲区中数据的混乱。2双缓冲

双缓冲指在操作系统中为某一设备设置两个缓冲区,当一个缓冲区中的数据尚未被处理时可使用另一个缓冲区存放从设备读入的数据,以此来进一步提高CPU和外设的并行程度。如下图(a)所示为双缓冲示意图。A、B为两个缓冲区。AB用户进程操作系统I/O设备图

双缓冲示意图图5-13双机通信时缓冲区的设置任何时候只能单向传送双向传送时,每机必备两个缓冲区5.3.3循环缓冲

当输入与输出的速度基本相配时,采用双缓冲能获得较好的效果。但若两者的速度相差较大,双缓冲效果则不够理想。由此引入多缓冲机制,可将多个缓冲组织成循环缓冲形式。循环缓冲的组成:(1)多个缓冲区。作为输入的缓冲区分三种:装输入数据的空缓冲区R、已装满数据的缓冲区G以及计算进程正在使用的缓冲区C。(2)多个指针。作为输入的缓冲区设置3个指针:指示计算进程下一个可用缓冲区Nextg、指示输入进程下次可用空缓冲区R指针Nexti,计算进程正在使用的缓冲区C的指针Current。图5-14循环缓冲5.3.4缓冲池(BufferPool)循环缓冲仅适用于某特定的I/O进程和计算进程,它们属于专用缓冲。当系统较大时,会有许多这样的循环缓冲,当缓冲区到达一定数量时,对系统性能的提高微乎其微,甚至会使系统性能下降。

为了提高缓冲区的利用率,目前广泛流行公用缓冲池,在池中设置多个可供若干进程共享的缓冲区。即缓冲池是将多个大小相同的缓冲区连接起来统一进行管理。操作系统与用户进程将轮流地使用各个缓冲区,以改善系统性能。5.3.4缓冲池(BufferPool)1.缓冲池的组成对于既可用于输入又可用于输出的公用缓冲池,其中至少应含有以下三种类型的缓冲区:

①空闲缓冲区;②装满输入数据的缓冲区;③装满输出数据的缓冲区。

为了管理上的方便,可将相同类型的缓冲区链成一个队列,形成以下三个队列:(1)空缓冲队列emq.(2)输入队列inq。(3)输出队列outq。除了上述三个队列外,还具有四种工作缓冲区:用于收容输入数据的工作缓冲区。

用于提取输入数据的工作缓冲区。

用于收容输出数据的工作缓冲区。

用于提取输出数据的工作缓冲区。2.缓冲池管理的基本操作Getbuf过程和Putbuf过程Getbuf(type):

用于从type所制定的队列的队首摘下一个缓冲区。Putbuf(type,number):用于将由参数number所指示的缓冲区挂在type队列上。3.缓冲池的工作方式图5-15缓冲区的工作方式

缓冲池工作在收容输入、提取输入、收容输出和提取输出四种方式下:①收容输入工作方式(输入进程需要输入数据时)②提取输入工作方式(计算进程需要输入数据时)③收容输出工作方式(计算进程需要输出数据时)④提取输出工作方式(输出进程需要输出数据时)5.4设备分配5.4.1设备分配中的数据结构在进行设备分配时所需的数据结构主要有:设备控制表DCT(DeviceControlTable)控制器控制表COCT(ControllerControlTable)通道控制表CHCT(ChannelControlTable)系统设备表SDT(SystemDeviceTable)5.4设备分配5.4.1设备分配中的数据结构系统为每一个设备都配置了一张设备控制表DCT,用来记录设备的特性、设备和I/O控制器的连接情况以及设备的分配和使用情况。它主要包括以下内容:①设备标识符。②设备类型。③设备地址。④设备状态。⑤与设备连接的控制器表指针。⑥等待该设备的进程队列。⑦重复执行次数或时间。⑧其它信息,如一些释放信息等。1.设备控制表DCT5.4设备分配5.4.1设备分配中的数据结构1.设备控制表DCT设备类型设备标识符设备状态:忙/闲等待/不等待与此设备连接的控制器控制表指针等待此设备的进程表指针重复执行的次数和时间其他DCT1DCT2……DCTi……设备控制表集合与此设备连接的COCT与此控制器连接的CHCT0与此控制器连接的CHCT0设备A的DCT控制器B的COCT通道D的CHCT通道E的CHCT控制器C的COCT图DCT和COCT、CHCT的连接正在使用该设备的进程等待该设备的进程表BCD设备A的DCTPCBB-PCBC-PCBD-PCB图DCT和PCB的连接2.控制器控制表、通道控制表和系统设备表图COCT、CHCT和SDT表5.4.2设备分配时应考虑的因素系统在分配设备时,应考虑的因素有:设备的固有属性。设备分配算法。设备分配的安全性。设备独立性491.设备的属性设备的属性是指该设备是适合某进程独占使用,还是适合几个进程共享使用。(1)独占设备的分配在该进程占用这个设备期间,即使设备空置不用,也不能再让别的进程使用。对于独占设备应该采用独占分配策略,即在将一台设备分配给某个进程后,便一直由该进程独占,直至该进程完成并释放设备为止。按照独占分配的策略,对独占设备有两种分配方式:一种是静态分配方式一种是动态分配方式50静态分配方式安全性好,不会出现死锁,但设备的利用率低。静态分配方式动态分配方式静态分配方式是用户作业开始运行之前,由系统一次分配该作业所要求的全部设备、控制器和通道。一旦分配之后,这些资源就一直为该作业占用,直到该作业被撤消。动态分配方式是指在进程运行过程中根据需要进行分配。当进程需要使用设备时,通过系统调用向操作系统提出设备请求,再由系统按规定的策略进行分配。一旦传送完成,便立即释放。动态分配有利于提高设备的利用率,但是在分配策略不好时有可能造成进程死锁。51(2)共享设备的使用共享设备大多是高速、大容量的直接存取存储设备。这类设备不必分配,采用共享的策略,由若干个用户进程同时使用。用户对共享设备的使用,一般以文件方式存取。通过文件系统可以实现按文件名来存取共享设备上的信息。(3)虚拟设备的使用因为虚拟设备已属于共享设备,因而也可采用共享策略,让多个进程同时使用。通过快速的共享方式的设备,把一台低速物理独占设备改造成为若干台虚拟的同类设备。从用户观点看,每个用户都感到是系统为自己提供了一台物理设备似的。节目录522.设备分配算法设备的分配原则,除了与设备的属性有关外,还与系统采用的算法有关。一般采用两种算法:先请求先服务优先级高者优先这就是先来先服务的方法。当有多个进程对同一个设备提出I/O请求时,或者是在同一设备上进行多次传送时,系统按进程提出I/O请求的先后顺序,将进程的I/O请求命令排成I/O请求队列。当该设备空闲时,系统从队首取下一个I/O请求消息,将设备分配给发出这个请求命令的进程。53这种算法将I/O请求队列中的I/O请求按照发出此I/O请求的进程的优先级由高至低进行排序。系统在设备空闲时,总是从队首取下最高优先级进程发出的I/O请求进行设备分配。这与进程调度的优先算法是一致的。即进程的优先级高,它的I/O请求优先级也优先予以满足,显然有助于该进程尽快完成,从而尽早释放它所占有的系统资源。对于优先级相同的I/O请求,则按先请求先服务的原则排队。设备的分配原则,除了与设备的属性有关外,还与系统采用的算法有关。一般采用两种算法:先请求先服务优先级高者优先和进程调度算法比较少了什么?为什么?和进程调度比较少了轮转法。独占设备不能被中断呀!2.设备分配算法543.设备分配的安全性为了提高设备的利用率,现代操作系统的设备分配大都采用了动态分配方式。从进程运行的安全性出发产生了两种设备分配方式:(1)安全的分配方式在这种分配方式中,每当进程以命令形式发出I/O请后,便进入阻塞状态,直到其I/O操作完成时才被唤醒。在采用这种分配方式时,一个进程只能提出一个I/O请求,一旦进程获得某个设备后便阻塞、使它不可能再请求其它任何资源,而它运行时又不保持任何资源。因此,这种分配方式使得死锁产生的四个必要条件之一的“请求和保持”条件就不会成立,因而分配是安全的。55这种分配方式的优点是程序的编制更为方便。另一个优点是设备分配安全,不会产生死锁现象。其缺点是进程和I/O设备之间是串行工作,进程推进缓慢。(2)不安全的分配方式为了加快推进速度,使CPU和I/O设备能并行工作,应使某些进程以命令形式发出I/O请求之后,仍可继续进行,需要时又可发出第二个I/O请求、第三个I/O请求。仅当进程所请求的设备已被另一进程占用时,进程才进入阻塞状态。这种分配方式的优点是一个进程可同时操作多个设备,从而使进程推进迅速。缺点是分配不安全,有可能产生死锁现象。节目录5.4.3设备独立性

1.设备独立性(DeviceIndependence)的概念为了提高操作系统的可扩展性和适应性,人们提出了设备独立性(即设备无关性)的概念。其含义是:用户编写的

应用程序独立于具体使用的物理设备,即使设备更换了,

应用程序也不用改变。为了实现设备独立性而引入了逻辑设备和物理设备的概念。

所谓逻辑设备是实际物理设备属性的抽象,它并不局限于

某个具体设备。在应用程序中,使用逻辑设备名称来请

求使用某类设备;而系统在实际执行时,还必须使用物理

设备名称。因此,系统须具有将逻辑设备名称转换为某物

理设备名称的功能。设备独立性的功能可带来以下两方面的好处:

1)设备分配时的灵活性

当应用程序(进程)以物理设备名称来请求使用指定的某台设备时,如果该设备已经被占用,而此时尽管还有几台其它相同的设备正在空闲,该进程仍然阻塞。但如进程以逻辑设备名称请求某类设备时,系统可立即将该类设备中的任一台分配给进程,仅当所有此类设备已全部分配完毕时,进程才会阻塞。

2)易于实现I/O重定向

当调试一个程序时,可将程序的输出送屏幕显示;而在调试完成后,如需要打印程序的输出结果,系统只要将逻辑设备对应的物理输出设备由显示器改为打印机即可,而不必修改应用程序。5.4.4SPOOLing技术1.什么是SPOOLing为了缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输入、脱机输出技术。该技术是利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上;或者相反。

5.4.5SPOOLing技术1.什么是SPOOLing在多道程序的环境下,利用多道程序中的一道或两道程序来模拟外围控制机,把低速I/O设备上的数据传送到高速磁盘上或把数据从磁盘传送到低速输出设备上。这样,便可在主机的直接控制下,实现脱机输入、输出功能。此时的外围操作与CPU对数据的处理同时进行,我们把这种在联机情况下实现的同时外围操作称为SPOOLing(SimultaneausPeriphernalOperatingOn-Line),或称为假脱机操作。2.SPOOLing系统的组成输入井和输出井。是在磁盘上开辟的两个大存储空间,输入井是模拟脱机输入时的磁盘,用于暂存I/O设备输入的数据;输出井是模拟脱机输出时的磁盘,用于暂存用户程序的输出数据。输入缓冲区和输出缓冲区。在内存中开辟的两个缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井。输出缓冲区用于暂存从输出井送来的数据,以后再传送给输出设备。输入进程SPi和输出进程SPo。Spi模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区再送到输入井,当CPU需要输入数据时,直接从输入井读入内存;Spo模拟脱机输出时的外围控制机,把用户要求输出的数据,先从内存送到输出井,待输出设备空闲,再将输出井中的数据经过输出缓冲区送到输出设备上。2.SPOOLing系统的组成图5-19SPOOLing系统的组成3.共享打印机将一台独享打印机改造为可供多个用户共享的打印机,是应用SPOOLing技术的典型实例。共享打印机技术已被广泛地用于多用户系统和局域网络中。当用户进程请求打印输出时,SPOOLing系统同意为它打印输出,但并不真正立即把打印机分配给该用户进程,而只为它做两件事:①由输出进程在输出井中为之申请一个空闲磁盘块区,并将要打印的数据送入其中;②输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到请求打印队列上。若打印机空闲,输出程序从请求打印队首取表,将要打印的数据从输出井传送到内存缓冲区,再进行打印,直到打印队列为空。633、共享打印机4.SPOOLing系统的特点提高了I/O的速度。从对低速I/O设备进行的I/O操作变为对输入井或输出井的操作,如同脱机操作一样,提高了I/O速度,缓和了CPU与低速I/O设备速度不匹配的矛盾.

(2)将独占设备改造为共享设备。设备并没有分配给任何进程.在输入井或输出井中,分配给进程的是一个存储区和建立一张I/O请求表.(3)实现了虚拟设备功能。多个进程同时使用一独享设备,而对每一进程而言,都认为自己独占这一设备,不过,该设备是逻辑上的设备.5.5设备处理设备处理程序通常又称为设备驱动程序,它是I/O进程与设备控制器之间的通信程序。其主要任务是接收上层软件发来的抽象要求,如read或write命令,再把他转换为具体要求后,发送给设备控制器,启动设备去执行;此外,它也将设备控制器发来的信号传送给上层软件。由于驱动程序与硬件密切相关,每一类设备都应配置一种驱动程序,也可为功能类似的多类设备配置一个驱动程序。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设备的硬件特性紧密相关,因而对不同类型的设备应配置不同的驱动程序。(3)驱动程序与I/O设备所采用的I/O控制方式紧密相关。常用的I/O控制方式是中断驱动和DMA方式,两种控制方式下的驱动程序也不同。(4)由于驱动程序与硬件紧密相关,因而其中一部分必须用汇编语言书写。目前许多驱动程序的基本部分已固化在ROM中。5.5.2设备驱动程序的处理过程不同类型的设备有不同的设备驱动程序,但大体可分成两部分,除了有能够驱动I/O设备工作的驱动程序外,还需设备中断处理程序,以处理I/O完成后的工作。启动设备之前,设备驱动程序的处理过程如下:将抽象要求转换为具体要求2.检查I/O请求的合法性3.读出和检查设备的状态4.传送必要的参数5.工作方式的设置6.启动I/O设备5.5.3中断处理程序的处理过程处理过程如下:唤醒被阻塞的驱动(程序)进程2.保护被中断进程的CPU环境3.转入相应的设备处理程序4.中断处理恢复被中断进程的现场图5-20中断现场保护示意图图5-21中断处理流程I/O操作完成后,驱动程序必须检查本次I/O操作中是否发生了错误,并向上层软件汇报,最终向调用者报告本次I/O的执行情况。I/O软件5.6磁盘存储器管理5.6.1磁盘性能简述数据的组织和格式包括一个或多个盘片,每个盘片分两面,每面分成若干磁道(500~2000),每条磁道上存储相同数目的二进制位,每条磁道又分成若干小扇区(10~100)。为在磁盘上存储数据,必须先将磁盘格式化。图5-22磁盘的格式化2.磁盘的类型常见分类:硬盘和软盘、单片盘和多片盘、固定头磁盘和移动头磁盘。1)固定头磁盘这种磁盘在每条磁道上都有一读/写磁头,所有的磁头都被装在一刚性磁臂中。通过这些磁头可访问所有各磁道,并进行并行读/写,有效地提高了磁盘的I/O速度。这种结构的磁盘主要用于大容量磁盘上。

2)移动头磁盘每一个盘面仅配有一个磁头,也被装入磁臂中。为能访问该盘面上的所有磁道,该磁头必须能移动以进行寻道。可见,移动磁头仅能以串行方式读/写,致使其I/O速度较慢;但由于其结构简单,故仍广泛应用于中小型磁盘设备中。3.磁盘访问时间磁盘设备工作时,以恒定速率旋转。为了读或写,磁头必须移动到所要求的磁道上,并等待所要求的扇区的开始位置旋转到磁头下,然后开始读写数据。

1)寻道时间Ts这是指把磁臂(磁头)移动到指定磁道上所经历的时间。该时间是启动磁臂的时间s与磁头移动n条磁道所花费的时间之和,即Ts=m×n+s其中,m是一常数,与磁盘驱动器的速度有关,对一般磁盘,m=0.2;对高速磁盘,m≤0.1,磁臂的启动时间约为2ms。这样,对一般的温盘(温切斯特),其寻道时间将随寻道距离的增加而增大,大体上是5~30ms。2)旋转延迟时间Tτ这是指定扇区移动到磁头下面所经历的时间。对于硬盘,典型的旋转速度大多为5400r/min,每转需时11.1ms,平均旋转延迟时间Tτ为5.55ms;对于软盘,其旋转速度为300r/min或600r/min,这样,平均Tτ为50~100ms。3)传输时间Tt

这是指把数据从磁盘读出或向磁盘写入数据所经历的时间。Tt的大小与每次所读/写的字节数b和旋转速度有关:其中,r为磁盘每秒钟的转数;N为一条磁道上的字节数,当一次读/写的字节数相当于半条磁道上的字节数时,Tt与Tτ相同,因此,可将访问时间Ta表示为:5.6.2磁盘调度1.先来先服务FCFS(First-Come,FirstServed)图5-23FCFS调度算法优点:公平、简单,每个进程的请求都能依次得到处理。缺点:未对寻道进行优化,平均寻道时间可能较长。FCFS算法仅适用于请求磁盘I/O的进程数目较少的场合。2.最短寻道时间优先SSTF(ShortestSeekTimeFirst)图5-24SSTF调度算法3.扫描(SCAN)算法1)进程“饥饿”现象SSTF算法虽然能获得较好的寻道性能,但却可能导致某个进程发生“饥饿”(Starvation)现象。因为只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必须优先满足。对SSTF算法略加修改后所形成的SCAN算法,即可防止老进程出现“饥饿”现象。2)SCAN算法(电梯调度算法)图5-25SCAN调度算法示例4.循环扫描(CSCAN)算法图5-26CSCAN调度算法示例5.6.3磁盘高速缓存(DiskCache)1.磁盘高速缓存的形式

是指利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息。因此,这里的高速缓存是一

温馨提示

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

评论

0/150

提交评论