您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 《操作系统原理》 第8章 设备管理
第8章设备管理主讲:房道伟Daowei_fang@163.com计算机操作系统在现代计算机系统中,为了实现与外界间的信息交往,更好地方便用户使用计算机,一般都配置了一系列各种类型的外围设备,例如:键盘,打印机,显示器,磁带机,卡片机,磁盘,磁鼓等。这些外围设备,由于其构造和物理特性各异,故在应用方式上风格各不相同,在管理方法上也有决然差别。为了有效地完成对各类外围设备的管理,更好地提高外设资源的利用率,并在用户面前提供一种方便、统一的接口界面,在操作系统的设备管理子系统中,承担了各种设备的分配、管理及I/O操作控制任务。让用户使用的设备与系统中实际连接的物理设备分离开,使用户在不需要了解底层设备资源的状况下,就可以采用逻辑设备名方便地使用外围设备,而逻辑设备到物理设备的转换工作则由系统自己完成。本章所涉及的内容,主要是针对在现代计算机系统中,为充分合理利用各类设备资源而采起的各种分配管理策略,以及与之有关的各类技术问题,作出进一步的深入讨论,弄清设备管理中的各功能是如何实现的。在学习中,应以设备的类型划分为基础,正确区分独占资源与共享资源的不同管理办法,并对虚拟设备的任务是什么,通道技术、缓冲技术、中断技术起什么作用,数据在I/O系统中的传输方式有几种等方面的概念有一清晰的认识,对设备管理的一般原理和方法形成全面、总体的了解。8.1设备类型和设备管理子系统的功能8.2设备管理中的两种支撑技术8.3I/O系统中数据的传输控制8.4设备分配8.5共享设备的驱动调度8.6虚拟设备8.1设备类型和设备管理子系统的功能8.1.1设备类型在计算机系统中,除了作为操作处理时使用的CPU以及存储信息时用的存储器之外,还有一类比较重要的硬件资源——I/O设备。I/O设备是计算机与外界进行信息交换的装置,因此,在各种类型的计算机中都配置有一定数量的I/O设备,这些设备可以从不同的角度进行分类。常见的有下列几种:存储设备输入输出设备终端设备脱机设备外围设备磁带机硬盘光盘绘图仪扫描仪键盘打印机1.以设备的隶属关系划分:1)系统设备(SystemDevice):这类设备属于计算机中最基本的标准配置设备,常常在操作系统启动时自动完成设备的登录。如打印机、键盘、显示器和磁盘驱动器等都属于这种类型的设备。2)用户设备(UserDevice):这类设备属于非标准配置,可由用户根据实际需要连入系统,在使用之前通过运行对应的驱动程序进行安装、登录。如绘图仪、扫描仪等。2.按信息组织方式划分:1)字块设备(BlockDevice):这种设备也称为存储型设备,在其上信息的组织、安排,都以块为单位进行,在进行存取访问时,也是以块进行计量的。常见的有磁盘驱动器、磁带机、磁鼓等。2)字符设备(CharacterDevice):字符设备上的信息,是以字符为单位来组织安排的,这类设备也称为输入/输出型设备.在信息存取调用时,都是以字符为单位来访问的。如键盘、纸带输入机、磁卡机等属于该类型设备。3.从资源分配角度进行划分1)独占设备(IndependenceDevice):一次只允许分给一个用户作业使用的设备。设备一旦被分出去后,在作业的整个执行期间都被单独占用,别的作业不能与之共用,必须等占用释放后才可再用。而且,这类设备如果分配不当,可能会造成死锁。多数是一些慢速设备,如磁卡机、打印机、A/D、D/A转换器等。2)共享设备(ShareDevice):一次可以允许多个作业同时进行访问的设备。各作业在执行期间内,可以交替分时地对共享设备进行占用。它是一个作业还未撤离设备,另一个作业便可使用的设备。常见的有磁盘、磁鼓等。3)虚拟设备(VirtualDevice):严格来讲,虚拟设备是一种设备管理的技术。采用该技术可以使慢速独占设备的使用方式变为共享设备的使用方式,以利于独占设备使用效率的提高。在现代计算机系统中,主要采用了SPOOLING系统来实现以完成此功能。8.1.2设备管理子系统的主要功能设备管理属于操作系统中最烦琐、最具复杂性的部分。为了有效的提高系统中设备的效率,在设备管理中不仅涉及了I/O中断、缓冲及通道技术,而且还包括了各种类型设备的分配、启动以及虚拟设备等多方面的管理。为了对物理特性各异的设备,在调用时具有统一的格式和界面,以方便用户,在设备管理中应追求如下的目标:(1)建立方便、一致的用户界面(2)尽量使CPU与外围设备、外设与外设之间的并行处理能力提高(3)充分发挥I/O设备的效率为实现目标要求,作为设备管理子系统,应具备以下功能:1)完成设备的分配和回收。对类型不相同的设备,采取不同的分配策略将设备及其它相关的硬件分配给申请设备的进程,对当前不能分配资源的进程,应将它们排到对应的等待队列中。进程使用完设备后,系统应及时收回。2)实现缓冲区的管理。CPU的运行速度往往高于外设的处理速度,为了缓解两者间的矛盾,使外设与CPU在处理速度上尽量匹配,系统通过设置缓冲区来完成此任务。缓冲区的分配、回收及管理工作由设备管理部分实现.3)控制I/O设备的启动。在计算机中,为保证设备调用的灵活性和可靠性,并使用户负担减轻,设备的启动由系统自己完成,不允许用户直接启动设备。4)进行I/O事件的中断处理。具有通道的计算机系统中,I/O操作的控制是由通道执行通道程序来实现的。通道与CPU的协调操作依靠I/O中断信号来指挥,当I/O中断信号出现时,设备管理负责I/O中断事件的处理。5)管理共享设备的驱动调度。共享设备在使用上允许多个作业交替启动占用不同的区域,故对它们不能预分配,用时才分。这使分配变为什么时候为谁服务的问题,即驱动调度问题。6)提供虚拟设备。为提高独占设备的利用率,用共享设备模拟独占设备,使独占设备的使用变为共享使用。为达到此目的,在设备管理中提供了一个SPOOLING系统。8.2设备管理中的两种支撑技术8.2.1缓冲技术在设备管理中,采用通道技术,虽可以实现CPU与外设的并行工作方式,但CPU的速度一般总是比外设快许多。为了进一步改善CPU与外设之间的速度不匹配的矛盾,解决通道占用时的阻塞现象,提高CPU通道及外设设备之间的并行性,延长CPU对中断的响应时间,减少CPU的中断次数,有效地延长设备使用时间,并有效解决物理记录大小与逻辑记录大小不一致的问题,在操作系统中引入了缓冲技术。1、缓冲技术的实现原理当某个进程进行数据输出操作时,先将数据送入缓冲区,当缓冲区满时再将缓冲区的内容送到输出设备上;反之,当一个进程完成输入操作时,先将输入设备上的数据送入缓冲区,当缓冲区满时,再由CPU将数据取走。在缓冲管理中必须建立缓冲区,缓冲区的设定有两种方式:可以采用专门的硬件方法来实现缓冲,但会增加硬件成本,除了在关键的地方采用少量必要的硬件缓冲器外,在许多操作系统中都采用另一种称为软件缓冲的方式,即从主存空间中划定出一个特殊的内存区域作为缓冲区。单缓冲是在系统的CPU与外设之间只设立一个缓冲区,输入与输出操作全部经该缓冲区来完成。当输入设备占用缓冲区时,输出设备必须处于等待状态;而当输出设备正在缓冲区将数据取走时,输入设备也必须等待,其工作方式是串行完成的。此时,缓冲区成了可共享的临界资源,必须互斥占用,不可能实现并行工作。单缓冲的结构如图8-18-1单缓冲cpu缓冲区输入设备输出设备2.双缓冲管理由于单缓冲不能实现并行处理,为避免单缓冲造成的设备利用率不高的状况,可引入双缓冲技术,为输入或输出分配两个缓冲区(如图x-2),并让两个缓冲区交替工作,就可以形成并行操作的方式。当输入或是输出时,外设先占用一个缓冲区,等当该缓冲区满后,再转去占用另一个缓冲区,同时第一个缓冲区中的数据可被取走,缓冲区可以释放,当另一个缓冲区满后,设备又可转过来占用被释放的缓冲区。这样交替占用的缓冲区,可以使CPU与外设间的并行度进一步提高。x-2双缓冲双缓冲不可能彻底解决在实际系统中的并行操作,由于计算机中配备有多种外围设备,CPU与外设的速度匹配全部由双缓冲来承担是不能胜任的。为此,必须使用多缓冲或是缓冲池结构来解决并行问题。下面举一个例子来说明双缓冲的使用。有一批卡片要从卡片机上读如,然后再从打印机上输出,系统设置了两个缓冲区buf1h和buf2,它们用于从卡片机上接受数据,恰当时交打印机输出。假定卡片机的速度为1000卡/分,打印机的速度为1000行/分,先将一卡读入buf1,当打印buf1内容时,将下一张卡送入buf2;当打印完缓冲区buf1的内容后,又启动下一张卡送入buf1,同时buf2的内容又被送去打印。反复重复上述过程,直到结束(如图)。3.多缓冲及缓冲池管理双缓冲技术提高了I/O设备的并行度,但由于在计算机系统中,CPU的速度总是比外设快得多,真正要实现CPU与外设的并行操作,双缓冲技术还不能达到要求,为此,在计算机中都采用多缓冲或缓冲池结构。多缓冲是把主存中的多个缓冲区组织成两部分,一部分用于做输入缓冲区,另一部分作为输出缓冲区。缓冲池则是将多个缓冲区连接成一个完整的区域,其中每个区既可以作为输入又可以作为输出用。多缓冲及缓冲池是系统中的共享资源,可供各进程使用,由系统统一分配和管理。它的使用必须互斥地进行。下面讨论的是缓冲池的管理方式。缓冲池是若干缓冲区的集合,每一个缓冲区有两部分:一部分是标识缓冲器的缓冲首都(如图8-10),另一部分是保存信息的缓冲体。缓冲区在缓冲池内按使用情况链接成三条队列:空闲缓冲区队列,输入缓冲区队列及输出缓冲区队列。空闲缓冲区队列:由空闲缓冲区连接而成,用em指针指向队首。输入缓冲区队列:由装满输入数据的缓冲区连接而成,用in指针指向队首。输出缓冲区队列:由装满输出数据的缓冲区连接而成,用out指针指向队首.图8..9就是缓冲池的构成。缓冲首部缓冲池缓冲池的工作原理如下:系统开始启动时,所有缓冲区全部排入em队列中。当有输入任务时,收容输入进程执行读数操作时,自动从em队列的队首取下一空闲缓冲区,将输入数据装入其中,待满后排入in队列尾部。并对em队列长度和in队列长度作减一、加一操作。当有输出任务时,收容输出进程从em队列中取下一个空闲缓冲区,将输出数据装入,满后排入队列尾部。让em队列长度和out队列长度作减一、加一操作。当系统要从输入缓冲区为用户进程取数时,由提取输入进程从in队列中取出一缓冲区,将其中的数据复制到用户指定的区域。并将该缓冲区排如em队列的尾部,同时,in队列数减一,em队列数加一。当系统要从输出缓冲区输出数时,由提取输出进程从out队列中取出一缓冲区,将其中的数据送给输出设备进行操作。然后将该缓冲区排如em队列的尾部,同时,out队列数减一,em队列数加一。图8.11为缓冲区工作方式。收容输入缓冲池提取提取输入收收容输出提取输出缓冲池的工作方式273用户程序14.缓冲的作用1)很好地解决了CPU与I/O设备速度不匹配的问题,使信息得以在系统中平滑传输。2)提高了CPU、通道和设备之间的并行性,从而使系统的资源利用率及吞吐量增高。3)减少了系统的中断次数,降低了CPU的开销。8.3I/O系统中数据的传输控制在一个完整的I/O系统内,包含了I/O设备、设备控制器、通道及相关的管理软件。由于计算机应用领域的拓宽,使得信息的输入输出工作量加大,I/O操作在计算机中占由了重要的地位。好的I/O控制方式,不但有利于提高计算机中CPU与外围设备的并行处理效率,而且还可以形成多种外设间的并行操作。特别是在多通道程序设计环境下,I/O操作控制能力已经成为计算机系统综合处理能力的重要构成因素。一般选取衡量I/O控制方式的好坏时应考虑如下因素:1)信息传输效率尽量高,以形成大的吞吐量。2)I/O系统资源利用率好,实现资源的均衡使用。3)尽量减少CPU用于进行I/O处理的开销,使CPU效率得以充分发挥。为此,按照I/O数据传输控制能力的强弱程度,以及CPU与外设并行处理程度的不同。常将I/O系统中信息的传输控制方式分为四类:1)程序直接控制方式(CPU直接询问方式)2)中断方式3)DMA方式4)通道方式这四种方式代表了
本文标题:《操作系统原理》 第8章 设备管理
链接地址:https://www.777doc.com/doc-3291118 .html