第四章设备管理本章要点•设备管理的主要功能、模型•I/O子系统的组成、结构•设备的控制、I/O控制•设备的类型•设备分配•I/O缓冲技术•虚拟设备与SPOOLing系统•磁盘设备的管理4.1设备管理概述设备管理的主要功能设备分配设备映射设备驱动I/O缓冲区的管理设备分配•多道程序系统中的设备不允许用户直接使用,而是由操作系统统一调度和控制。•设备分配功能是设备管理的基本任务。•设备分配程序按照一定的策略,为申请设备的用户进程分配设备,记录设备的使用情况设备管理的主要功能设备分配设备映射设备驱动I/O缓冲区的管理设备映射•为了提高应用软件对运行平台的适应能力,方便实现应用软件I/O重定向,大多数现代操作系统均支持应用软件对设备的无关性,即通常所说的设备无关性,或者设备独立性。—设备无关性:应用软件所引用的、用于实现I/O操作的设备与物理I/O系统中实际安装的设备没有固定的联系。设备映射•逻辑设备和物理设备—逻辑设备是指,应用软件所引用的用于实现I/O操作的设备。—物理设备则指,物理I/O系统中实际安装的设备。•从应用软件的角度看,逻辑设备是一类物理设备的抽象。从操作系统设备管理程序的角度看,物理设备则是某种逻辑设备的实例。设备映射•如果某系统支持设备无关性,那么该系统中应用软件所引用的逻辑设备与实际安装的物理设备没有固定的联系。•事实上,在应用软件运行期间,操作系统的设备管理程序必须将该应用软件对逻辑设备的引用转换成对相关物理设备的引用。•设备管理的这种功能称为逻辑设备到物理设备的映射功能,简称设备映射功能。设备管理的主要功能设备分配设备映射设备驱动I/O缓冲区的管理设备驱动•又称设备处理,指对物理设备进行控制,以实现真正的I/O操作。•设备驱动的主要任务是:接收上层软件发来的抽象服务请求,例如读/写命令,再把它转换为具体要求,通过一系列的I/O指令,控制设备完成请求的操作;同时,设备驱动程序还将设备发来的有关信号传送给上层软件,例如设备是否已损坏等。设备驱动•设备驱动程序与硬件密切相关,应为每一类设备配置一种驱动程序。•设备驱动程序一般由设备开发厂商根据操作系统的要求组织编写,操作系统仅对与设备驱动的接口提出要求,一般不负责具体设备驱动程序的编写。•有时候,某些硬件无法在某种操作系统中使用,原因很可能就是没有专门的或通用的设备驱动程序,或者设备驱动程序设计有问题,使得设备无法正常工作。设备管理的主要功能设备分配设备映射设备驱动I/O缓冲区的管理I/O缓冲区的管理•为了缓和处理机与外部设备间速度不匹配的矛盾,提高处理机和外部设备间的并行性,现代操作系统大都在设备管理部分引入了缓冲技术。•通常,缓冲区是指内存中的若干区域,用于缓存进程与外部设备间的数据传输。又称为I/O缓冲区。•I/O缓冲区管理的任务是:组织I/O缓冲区,并为使用者提供获得和释放I/O缓冲区的手段。通用设备管理分层模型•将设备管理功能模块分为设备硬件无关以及设备硬件相关两个层次。•设备硬件无关层主要实现:I/O缓冲区管理以及设备映射功能。该层与设备用法有关,与设备硬件无关。•一般地,根据设备的用法,该层也可视作虚拟存储系统、文件系统或通信系统的一部分。通用设备管理分层模型•设备硬件相关层将设备硬件无关层与设备硬件隔离开来。•从设备硬件无关层的角度看,设备硬件相关层为其提供了一个相对简洁的I/O功能接口;该接口屏蔽了设备硬件复杂的操作细节。•从设备硬件相关层的内部看,该层主要实现设备驱动功能。毫无疑问,该层与设备硬件密切相关。通用设备管理分层模型用户进程设备硬件无关层设备硬件相关层设备硬件支持中断的设备管理模型用户进程设备硬件内核中断管理模块I/O请求IOCS资源等待队列I/O等待队列设备驱动程序启动过程|继续过程设备中断4.2计算机I/O子系统的组成总线型I/O系统的结构处理机I/O设备I/O设备I/O设备I/O设备I/O设备系统总线内存通道型I/O系统的结构处理机I/O设备I/O设备I/O通道I/O通道系统总线内存I/O通道I/O设备I/O设备I/O设备I/O设备具有控制器的I/O系统结构•传统的设备=机械部分+电子部分•电子部分在系统的控制下驱动机械部分运转,完成I/O操作。•由于设备中电子部分比机械部分的速度快得多。为了降低硬件成本,将电子部分从设备中分离出来作为一个独立的部件,这就是控制器。•分离之后的设备仅由机械部分构成,一个控制器可与多个设备相连,交替地或分时地控制与其相连的设备。例如,磁盘控制器可以控制多个磁盘驱动器。具有控制器的I/O系统结构处理机控制器I/O设备I/O通道系统总线内存I/O通道控制器I/O设备控制器控制器I/O设备I/O设备I/O设备I/O设备设备的控制—设备的寻址与操作•从处理机的角度看,各种外部设备可以看作是由一组设备寄存器组成的。•常见的设备寄存器有:操作方式寄存器、命令寄存器、数据寄存器、状态寄存器等。•为了使CPU能够寻址这些设备寄存器,硬件平台引入了I/O端口地址的概念。设备的控制—设备的寻址与操作•I/O端口地址的编址方式有两种:(1)将设备寄存器与内存物理单元统一编址;(2)独立于内存物理地址为设备寄存器编址。•无论一个设备是否由多个控制器控制,或者一个控制器控制了多少个设备,每一个设备都能通过这些寄存器的地址唯一确定。设备的控制—即插即用•随着外部设备种类增加,设备间极可能发生冲突。即,设备使用的中断号、DMA、内存地址、端口地址可能因相同或重叠而导致设备无法正常工作。•手工调整这些设备的相关参数要求用户具有较多的计算机硬件知识,并对系统配置的硬件有较全面的了解。设备的控制—即插即用•顾名思义是指,插上了就可使用,不需要用户进行其它设置。•“即插即用”技术取消了跳线和软件配置程序,当用户插入一个“即插即用”适配卡或设备时,“即插即用”功能就可以自动进行检测,配置相应的接口参数,并安装相应的驱动程序。设备的控制—即插即用•对已安装硬件的自动和动态识别—包括系统初始安装时、两次系统启动之间以及运行时发生的硬件事件(如笔记本的对接/分离以及设备的插入/拔出)的响应;•配合操作系统分配/再分配硬件资源•加载相应的驱动程序。—当系统中加入新设备时,如果操作系统中没有集成相应设备的驱动程序,则会要求用户指定驱动程序的位置并完成驱动程序的安装。设备驱动程序•设备驱动程序一般由设备制造商提供,不包含在操作系统中。•但是,为了方便用户,操作系统软件包中通常会集成提供标准的、通用的或者流行的、常用设备厂商的设备驱动程序供用户选择。•从系统分层的观点来讲,设备驱动程序可以是操作系统的一部分,也可以被认为是硬件设备的一部分。I/O控制方式—程序I/O方式•在早期的计算机系统中,由于没有中断装置,处理机对于I/O设备的控制采取程序I/O方式•也称忙等待方式或循环测试方式。•对于读操作,这种方式的基本工作过程为:①处理机向设备(或设备控制器)发出一条I/O指令启动设备、输入数据,同时将状态寄存器中的“忙”标志置为1。②处理机不断地循环测试忙标志,直到忙标志变为0;③处理机通过I/O读指令将数据从数据寄存器中取出,送入内存中指定单元;④若数据已读完,则结束本过程,否则转①,继续读下一个数据。•在程序I/O方式中,由于处理机的速度非常快,而设备的速度相对较慢,使得处理机的绝大部分时间都处于等待设备完成数据I/O的循环测试中,造成对CPU的极大浪费。I/O控制方式—中断I/O方式•对于读操作,中断方式的基本工作过程为:①处理机向设备(或设备控制器)发出一条I/O指令,启动设备,输入数据;②处理机完成其它工作,设备准备数据;③当设备准备好数据并将数据存入数据寄存器,向处理机发中断信号,告之数据已准备好;④处理机响应中断请求,从数据寄存器中将数据取出,送入内存的指定单元;⑤若数据已读完,结束。否则,转①,继续。•中断方式控制I/O的优点在于,设备与处理机并行,提高了处理机的利用率。性能优于程序控制I/O方式。I/O控制方式—DMA方式•中断I/O比程序I/O方式高效,但以字/字节为传输单位。每完成一个字/字节的传输,设备均要向CPU请求一次中断。•对于块设备而言,这种方式的效率还是显得有些低下。因为,频繁的、大量的中断所累积的开销很大。•为了进一步减少处理机对I/O事务的干预,出现了DMA(DirectMemoryAccess)直接存储器访问方式。DMA的特点•数据传输的基本单位是数据块;•数据直接从设备送入内存,或者直接从内存送入设备;•仅在传送一个或多个数据块的开始和结束时,才需要处理机的干预。•与中断方式相比,DMA方式大大减少了数据I/O对处理机的占用,进一步提高了处理机的利用率,提高了处理机和I/O设备的并行操作能力。I/O控制方式—I/O通道方式•通道相当于一个功能单纯的处理机,专门用于处理I/O操作。通道有自己的运控部件和指令系统,但没有专门的内存,而是通过“周期窃用”方式与主机共享内存。•通道通过执行通道程序来完成I/O操作。—通道程序是通道指令的有序序列,它由系统中的输入/输出进程根据用户进程的I/O要求来确定,可以是事先编制好的程序段,也可以动态产生。通道程序以及需要与设备交换的数据均放置在内存中。I/O控制方式—I/O通道方式•一条通道指令可以传送一组数据,一个通道程序可以传送多组数据。多组数据全部传送完毕后(即一个通道程序执行完毕),才向处理机发出一次中断。•通道不仅可以传送数据,更重要的是它还完成对设备的控制。在通道的协助下,主机只需发出一个启动通道、执行通道程序的指令即可。主机仅与通道直接通信,不必考虑设备的具体控制以及如何完成数据传送等问题,从而大大减轻了主机的负担。4.3设备分类设备类型•根据外部设备的用途不同,可以将其分为输入/输出型设备与存储型设备;•根据外设传输的基本数据单位不同,可以将设备分为块型设备与字符型设备;•按照资源管理的方式不同,可以将设备分为独占型设备和共享型设备。输入/输出型VS存储型设备•输入/输出型设备:键盘、鼠标、显示器、读卡机、扫描仪、打印机、绘图仪、数码相机等。•存储型设备:磁带机、磁鼓机、磁盘机等。可用作输入,也可以用作输出。主要用于长期保存信息,但需要管理其上的存储空间。•可以在存储设备上可以建立文件系统,有组织、有结构地长期存储信息。块型设备VS字符型设备•块型设备通常就是存储型设备。这类设备由若干长度相同的块构成。•一块的长度通常为2n个字节,如256B、512B、1024B等。对这类设备来说,块是存储分配的基本单位,也是I/O传输的基本单位。•字符型设备通常就是输入/输出型设备。这类设备I/O传输的基本单位是字节。独占型VS共享型设备•独占型设备包括所有的字符型设备及磁带机。—任意时间段内最多只能被一个进程占用。—使用时,进程首先向系统申请,可能进入阻塞状态。当设备可用时,唤醒一个等待进程。使用完毕以后,进程必须释放设备。•共享型设备包括除磁带机以外的所有块型设备。—I/O传输单位:块—宏观上,一个共享型设备可以被多个进程同时占用;微观上,多个进程交替使用同一设备。—进程使用这类设备时,无须申请或释放设备,也不存在某个进程占用设备的问题。4.4设备分配•分配:设备、控制器和通道•需要记录与他们相关的信息。包括:资源标识、物理连接情况、占有进程、等待进程等。•具体实现时,可以将其分为设备控制块、控制器控制块和通道控制块。•这些控制块中包含的信息在不同的系统中会有所不同设备控制块UCB(UnitControlBlock)设备标识设备状态相连的控制器重试次数(I/O出错时的重试次数)占有设备的进程设备等待队列(指向等待本设备的等待队列)通路待队列(使用设备时需要申请相应的通路)控制器控制块CUCB控制器标识控制器状态相连的通道相连的设备占有控制器的进程通道控制块CCB通道标识通道状态相连的控制器占有通道的进程设备无关性•为了实现设备的无关性,操作系统要求进程申请设备时,应当指明所需设备的类别(或者逻辑设备名),不能指定某一设备的具体编号。•系统根据进程的请求以及资源