您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 操作系统原理 ch8 设备管理
第八章设备管理概述I/O控制方式缓冲技术设备分配I/O进程控制设备驱动程序磁盘存储器管理概述1设备的分类2设备管理的目标3设备管理的功能和任务4设备管理数据结构1设备的分类1、按传输速率分低速设备:每秒几个到数百字节。如Modem中速设备:每秒数千到数万字节。如打印机高速设备:每秒数百K到数兆。如磁盘、磁带2、按信息交换的单位分类字符设备:I/O传输的单位是字节,如打印机、modem等。特征:速率较低、中断驱动。块设备:I/O传输的单位是块,如磁盘、磁带。特征:速率高(几兆)、可随机访问任一块、DMA方式驱动。3.按资源管理方式分类独占型设备:在任一段时间内最多有一个进程占用它,字符设备及磁带机属独占型设备。即临界资源。共享型设备:多个进程对它的访问可以交叉进行,除磁带机外的块设备属共享设备虚拟设备:在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚拟设备2设备管理的目标(1)、设备独立性所谓设备独立性:用户在编制程序时,使用逻辑设备名,由系统实现从逻辑设备到物理设备(实际设备)的转换。用户能独立于具体物理设备而方便的使用设备。两种类型的设备独立性独立于同一类设备中的某台具体设备。如果一个系统中有若干台相同的设备,用户编程时不指定使用哪一个具体的设备,而仅说明要使用哪一类设备,系统根据当前这一类设备的具体状况给用户分配一台具体的设备。用户不用关心他所使用的到底是哪一台设备。独立于不同类型的设备。例如有一程序要求输入信息,可以从各种不同类型的输入设备上给程序输入数据,则称该程序是独立于不同类型的输入设备的。又如在MS-DOS系统中,程序的I/O操作不必指出在哪台设备上进行,一般情况下是从键盘上输入数据,而在显示器上输出数据。但用户可以做一次联机操作命令Ctrl+P,则输出数据可以在打印机上打印出来。(2)、提高设备利用率提高设备的使用效率是操作系统设备管理的重要目标。为达到此目标除了要合理分配和使用外部设备外,还应努力提高设备同CPU的并行程度。与此有关的技术有:通道技术和缓冲技术。(3)、设备的统一管理外设的种类繁多,特性各异,主要差别反映在以下几个方面:速度:不同的设备处理和传递信息的速度差别甚大,如键盘每秒钟只能处理几个或几十个字符,而磁盘的处理速度可达几十MB/S传递单位:有的设备以字符为单位传递信息,如键盘。有的以字符块为单位传递信息,如磁盘。操作方法和特性:各种设备都有自己的特性和操作方法,如卡片机中的卡片不能倒退,磁带机可反绕,磁盘可随机存取。出错条件:各种设备的出错条件不同,有的可能产生奇偶错,打印机可能产生无纸错等。设备管理程序力图隐蔽上述各种设备的差别,向用户提供统一的设备使用接口,这会给系统的设计带来困难,但方便了用户。如UNIX系统把外设作为特别文件处理,把设备看作文件,用操作文件的方法来操作设备,这极大地方便了用户。这种设备管理方法无疑是个重大的突破。3设备管理的功能和任务设备管理是对计算机输入输出系统的管理,是操作系统中最具多样性和复杂性的部分。其主要任务是:(1)选择和分配输入输出设备以进行数据传输操作;(2)控制输入输出设备和CPU(或内存)之间交换数据;(3)为用户提供友好的透明接口,把用户和设备硬件特性分开,使得用户在编制应用程序时不必涉及具体设备,系统按用户要求控制设备工作。另外,这个接口还为新增加的用户设备提供一个和系统核心相连接的入口,以便用户开发新的设备管理程序;(4)提高设备和设备之间、CPU和设备之间,以及进程和进程之间的并行操作度,以使操作系统获得最佳效率。为了完成上述主要任务,设备管理程序一般要提供下述功能:(1)提供和进程管理系统的接口。当进程要求设备资源时,该接口将进程要求转达给设备管理程序;(2)进行设备分配。按照设备类型和相应的分配算法把设备和其他有关的硬件分配给请求该设备的进程,并把未分配到所请求设备或其他有关硬件的进程放入等待队列;(3)实现设备和设备、设备和CPU等之间的并行操作。这需要有相应的硬件支持。除了装有控制状态寄存器、数据缓冲寄存器等的控制器之外,对应于不同的输入输出(I/O)控制方式,还需要有DMA通道等硬件。从而,在设备分配程序根据进程要求分配了设备、控制器和通道(或DMA)等硬件之后,通道(或DMA)将自动完成设备和内存之间的数据传送工作,从而完成并行操作的任务。在没有通道(或DMA)的系统里,则由设备管理程序利用中断技术来完成上述并行操作;(4)进行缓冲区管理。一般来说,CPU的执行速度和访问内存速度都比较高,而外部设备的数据流通速度则低得多(例如键盘),为了减少外部设备和内存与CPU之间的数据速度不匹配的问题,系统中一般设有缓冲区(器)来暂放数据。设备管理程序负责进行缓冲区分配、释放及有关的管理工作。4设备管理数据结构1.设备控制表DCT(DeviceControlTable)设备控制表DCT反映设备的特性、设备和I/O控制器的连接情况。包括设备标识、使用状态和等待使用该设备的进程队列等。系统中每个设备都必须有一张DCT,且在系统生成时或在该设备和系统连接时创建,但表中的内容则根据系统执行情况而被动态地修改。DCT包括以下内容:(1)设备标识符,设备标识符用来区别设备。(2)设备类型,反映设备的特性,例如是终端设备、块设备或字符设备等。(3)设备地址或设备号,由计算机原理课可知,每个设备都有相应的地址或设备号。这个地址既可以是和内存统一编址的,也可以是单独编址的。(4)设备状态,指设备是处理工作还是空闲中。(5)等待队列指针,等待使用该设备的进程组成等待队列,其队首和队尾指针存放在DCT中。(6)I/O控制器指针,该指针指向该设备相连接的I/O控制器。2.系统设备表SDT(SystemDeviceTable)系统设备表SDT整个系统一张,它记录已被连接到系统中的所有物理设备的情况,并为每个物理设备设一表项。SDT的每个表项包括的内容有:(1)DCT指针,该指针指向有关设备的设备控制表。(2)正在使用设备的进程标识。(3)设备类型和设备标识符,该项的意义与DCT中的相同。SDT的主要意义在于反映系统中设备资源的状态,即系统中有多少设备,有多少是空闲的,而又有多少已分配给了哪些进程。3.控制器表COCT(COntrolerControlTable)COCT也是每个控制器一张,它反映I/O控制器的使用状态以及和通道的连接情况等(在DMA方式时,该项是没有的)。4.通道控制表CHCT(CHannelControlTable)该表只在通道控制方式的系统中存在,也是每个通道一张。CHCT包括通道标识符、通道忙/闲标识、等待获得该通道的进程等待队列的队首指针与队尾指针等SDT,DCT,COCT及CHCT如图所示。显然,一个进程只有获得了通道、控制器和所需设备三者之后,才具备了进行I/O操作的物理条件。数据结构表I/O控制方式1循环测试I/O方式2I/O中断方式3DMA方式4通道方式1循环测试I/O方式早期,I/O控制器是OS同硬件之间的接口。它有两个寄存器:数据缓冲寄存器、控制寄存器。控制寄存器有几个重要的信息位:启动位、完成位、忙位。CPU外部设备控制逻辑电路控制寄存器I/O控制器数据寄存器工作过程以输入为例1、把启动位置12、反复测试完成位,为0转2,为1转33、把数据从数据缓冲区中读走。浪费大量CPU时间2I/O中断方式I/O控制器能发中断。工作过程:1、把启动位置1,本进程(A)变为等待状态,转进程调度,调度另一进程B。2、输入完成时,控制器发出中断,中断B,通过中断进入中断处理程序。3、在中断处理程序中把数据缓冲寄存器中的数取走,放入内存特定位置M,唤醒等待进程A,中断返回到B的断点继续执行。4、在以后的某个时刻OS调度要求输入的进程A。A从M取数处理。分析同前相比,CPU利用率大大提高。缺点:每台设备每输入输出一个字节的数据都有一次中断。如果设备较多时,中断次数会很多,使CPU的计算时间大大减少。为减少中断对CPU造成的负担,可采用DMA方式和通道方式。3DMA方式控制器功能更强,除有中断功能外,还有一个DMA控制机构。在DMA控制器的控制下,设备同主存之间可成批交换数据,不用CPU干预。工作过程1、当进程要求输入时,把要求传送的内存始址(M)和要传的字节数送入DMA的内存地址寄存器和传送字数寄存器2、把启动位置1。设备开始工作。进程(A)挂起。调度另一进程(B)3、一批数据输入完成后,DMA中断B,转向中断处理程序。4、中断处理程序唤醒A,返回B的断点继续执行。5、以后OS调度A运行时,A从M处取数据处理。DMA方式与中断的主要区别中断方式是在数据缓冲寄存区满后,发中断请求,CPU进行中断处理DMA方式则是在所要求传送的数据块全部传送结束时要求CPU进行中断处理大大减少了CPU进行中断处理的次数中断方式的数据传送是由CPU控制完成的而DMA方式则是在DMA控制器的控制下不经过CPU控制完成的CPU向控制器发出启动DMA通知和有关参数控制器向内存发出询问请求访问内存(读、写)计数器减1结束否发中断NYDMA的实现流程4通道方式1、I/O系统结构在大型计算机系统中较为典型的I/O系统结构是主机、通道、控制器和外部设备。外部设备通常由机械的和电子的两部分组成,电子部分构成控制器,也叫适配器。一个控制器可交替地控制几台同类设备,例如一个磁盘控制器可以控制两台磁盘驱动器。在没有通道的计算机系统中,中央处理机是通过控制器控制I/O操作的。在采用了中断技术以后,中央处理机和外部设备已能在一定程度上并行工作,但每传一个信息单位(一个字节或一个字符块),就要插入一次中断处理,每次中断处理CPU少则要执行几十条指令,多则要执行上千条指令,当一个系统配置的设备较多时,I/O操作较为频繁的情况下,CPU可能完全陷入I/O处理,这样会大大地降低计算机系统的效率,解决的方法就是用到通道技术。为使中央处理机从繁忙的I/O处理中摆脱出来,现代大、中型计算机系统中设置了专门的处理I/O操作的处理机,并把这种处理机称为通道。通道在CPU的控制下独立地执行通道程序,对外部设备的I/O操作进行控制,以实现内存与外设之间成批的数据交换。通道=I/O处理机2、通道概念当完成CPU交给的任务后,向CPU发出中断信号,请求CPU的处理。这样就使得CPU基本上摆脱了I/O操作的处理工作,提高了CPU与设备之间的并行程序,从而提高了整个计算机系统的效率。通道程序是由通道指令组成,一个通道可以分时的方式执行几道程序。每道程序控制一台外部设备,因此每道通道程序称为子通道。3、通道的种类字节多路通道:字节多路通道是以字节为基本传输单位,当一子通道控制的某台外设交换了一个字节后,就转向下一个子通道,以控制下一台设备传送一个字节。这就实现了子通道的循环轮转,以达到多路控制的目的,字节多路通道主要用来控制低速、并且以字节为基本传送单位的设备。如打印机。选择通道:这种通道一次执行一个通道程序,控制一台设备连续地传送一批数据,当一个程序执行完后,才转向下一个程序。优点:传输速度高。缺点:一次只能控制一台设备进行I/O操作。它主要用来控制高速外设。如磁盘。选择通道数组多路通道:这种通道是上述两种通道的折中,可以分时的方式执行多道程序,每道程序可传送一组数据。它主要用于中速设备的控制。如磁带机。在一大型系统中可以同时存在这三种类型的通道以便控制各种不同类型的设备。4、通道指令和通道程序通道有它自己的指令系统,用这些指令编写的程序叫通道程序,通道只能执行通道程序,不可能执行用户进程。通道程序保存在内存中5、通道的工作过程某进程在运行过程中,若提出了I/O请求,则通过系统调用进入操作系统,系统首先为I/O操作分配通道和外设,然后按I/O请求生成通道程序并存入内存,把起始地址送入通道的首地址寄存器(CAW),接着CPU发出启动通道的指令。中央处理机启动通道后,通道的工作过程为:根据
本文标题:操作系统原理 ch8 设备管理
链接地址:https://www.777doc.com/doc-3350183 .html