软件技术基础设备管理.ppt
2.5 设备管理,2.5.1 设备管理概述,外部设备:,计算机系统中除了中央处理机和主存储器外的其它设备称为外部设备。,设备管理就是对外部设备进行统一的管理,向用户提供简单而一致的方式访问各种I/O设备。,一、设备分类,按工作特点:,按资源分配方式:,按信息交换单位:,二、设备管理的任务与功能,按照设备类型和系统分配策略进行设备分配与回收,向用户提供统一的接口,实现设备驱动真正的I/O操作,缓冲区管理,实现虚拟设备管理,CPU,存储器,高速I/O设备,共享总线,低速I/O设备,设备控制器,微机I/O系统的结构,基于主存和通道的I/O系统,CPU,主存,通道,通道,通道,通道,某I/O设备,磁盘,磁带,通信设备,主存,可同时进行,控制,通道与CPU共享主存通道代替CPU完成与设备控制器的通信,1、什么是设备控制器,位于CPU与设备之间,接收CPU下达的输入、输出命令并控制具体设备实现操作。一个控制器可控制一个或多个I/O设备。存在形式为各种接口卡。,设备控制器,2、设备控制器功能,接收和识别命令;数据暂存、缓冲;监测设备状态。,数据接口、控制接口、状态接口,3、设备控制器与设备的接口,4、设备控制器组成,控制器与CPU的接口单元,控制器与设备接口单元,I/O逻辑单元,2.5.2 数据传送控制方式,设备管理的主要任务就是控制设备与CPU间的数据传递,主要有以下数传控制方式:,一、程序查询方式,由程序循环查询外部设备的状态,在外设进行数据处理时CPU只能等待。,二、中断控制方式,外部设备与CPU之间传递数据通过专门的中断请求信号来进行。I/O操作由程序发起,在操作完成时(如数据可读或已经写入)由外设向CPU发出中断,CPU完成数据的读写。,要求:专门的中断请求线、专门的中断标志位,优点:在外设进行数据处理时,CPU不必等待实现了让权等待。缺点:CPU每次处理的数据量少(通常以字节为单位),适于数据传输率较低的设备。,进程利用中断实现输入、输出流程:,三、直接内存访问方式(DMA),引入思想:减少CPU在数据传递过程中的干预,DMA控制器完成内存与外设的成批数据交换。优点:CPU只需干预I/O操作的开始和结束,而其中的一批数据读写无需CPU控制,适于高速设备。,由程序设置DMA控制器中的若干寄存器值(如内存始址,传送字节数),然后发起I/O操作;数据直接在DMA控制器控制下通过总线传递到内存中;在完成指定量的数据接收后,DMA控制器才向CPU产生中断;通过中断处理程序唤醒等待数据的进程;等待数据的进程经过调度处理输入的数据。,DMA过程:,不再每个字符传递后发中断,实现了块传递再中断,减少了CPU的占用时间,中断控制方式与DMA方式,CPU,总线,I/O设备,内存,中断,CPU,I/O设备,内存,DMA,中断:通知已传输完毕,四、通道方式,通过执行通道程序并行完成一系列输入输出过程,通道:,通道是一种特殊的处理机,具有执行I/O指令的能力,通过执行通道程序来控制I/O操作。,1、通道程序有自己的指令系统,是一个相对完整的过程。CPU只需向通道发出一条指令,通道便从内存中取出本次执行的通道程序并执行。2、通道之间可以并行执行,进一步减少了CPU对输入输出过程的干预。提高CPU与设备之间的并行性,提高资源利用率。3、主机具有一个或多个通道,一个通道可管理一个或多个设备控制器;通道和CPU共享一个主存,特点:,通道,设备控制器,设备控制器,设备,设备,设备,通道,设备控制器,设备,设备,主存,CPU,2.5.3 缓冲技术,作用:,解决CPU与I/O设备速度匹配问题,基本思想:,在内存中开辟一定的专用区域,作为CPU和I/O设备之间进行信息交流的工作区,缓冲区,缓冲区的组织,专用缓冲区:,为某台设备专门设置的,单独使用的缓冲区,公用缓冲区:,为多台或者全部设备设置的,共享的缓冲区,按使用方式划分:,按数量划分:,单缓冲区,双缓冲区,多缓冲区 循环缓冲,缓冲池:,由多个大小相等的缓冲区连接起来构成缓冲池,1.单缓冲区,在CPU和设备之间设置一个缓冲区,速度1,速度2,注意:,1.单缓冲区是临界资源,读写必须互斥访问。,2.单缓冲区只能实现匹配速度,不能实现并行操作。,2.双缓冲区,在CPU和设备之间设置两个缓冲区,设备1,设备2,CPU,提高了CPU与设备之间的并行度,多个缓冲区循环使用,类似循环队列,next_in,next_out,CPU,设备输入,3.循环缓冲,4.缓冲池,可供多个对象共享的公用缓冲区组成的缓冲池,缓冲区 1,缓冲区,缓 冲 体,缓冲区首部,数 据,缓冲池中的缓冲区根据使用情况划分为3种队列:,inq:满输入缓冲区队列,outq:满输出缓冲区队列,emptyq:空缓冲区队列,从设备输入的数据缓冲区队列,准备向设备输出的数据缓冲区队列,缓冲池操作(四种操作),设备输入数据到缓冲池,get empty buffer;fill data in buffer;put buffer in inq;,收容输入,用户从缓冲池读入数据,get buffer from inq;calculet data in buffer;put buffer back to emptyq,提取输入,用户向数据缓冲池输出数据,get buffer from outq;Send data;put buffer in emptyq;,收容输出,设备从缓冲池中读出输出数据并完成输出,get buffer from emptyq;fill data in buffer;put buffer outq;,提取输出,缓冲池,设备,CPU,缓冲池的组成,emptyq,inq,outq,收容输入,提取输出,提取输入,收容输出,设备,CPU,数据到达,取走数据,发送数据,取走发送,2.5.4 设备分配技术,设备分配:,按一定策略和原则为申请设备的进程分配设备,包括对设备、设备控制器、通道的分配。,分配原则:,1、保证申请设备的进程能分配到设备。,2、保证设备分配给该进程是安全的。,一、设备分配的数据结构,1、设备控制表DCT(Device Control Table),记录设备信息及设备的控制器表,每个设备一张,可动态更改,2、系统设备表SDT(System Device Table),记录系统中所有设备情况,一个系统只有一张每个设备在SDT中占一个表项,3、控制器表COCT(Controller Control Table),4、通道控制表CHCT(Channel Control Table),记录 I/O 控制器信息及通道控制表,记录通道信息,设备名,设备控制表,设备名,设备控制表,设备名,设备控制表,设备名,设备控制表,SDT,设备名,设备控制器,设备名,设备控制器,状态,状态,控制器名,通道控制表,状态,控制器名,通道控制表,状态,DCT,COCT,通道标识,状态,通道标识,状态,CHCT,申请,SDT,DCT,COCT,CHCT,P.149 图2.53,设备的分配过程:,二、设备分配应考虑的因素,1、设备的固有属性:独占(静态分配)、共享(动态分配),2、分配的算法:当申请设备的进程有多个、可用设备有多个时,3、设备分配的安全性:死锁,先申请的进程先满足FIFO;,按进程的优先级分配,安全分配:非请求和保持,CPU与设备串行工作,不安全分配:分配设备时应该进行安全性状态检测,4、逻辑设备与物理设备的独立性,用户使用逻辑设备,由系统控制具体的物理设备;,系统能根据用户提供的逻辑设备名找到相应的物理设备,2.5.5 虚拟设备技术(Spooling),其它,输入井,输出井,高速,高速,脱机:输入、输出是脱离主机完成的。,靠外围机的控制输入、输出设备与磁盘交换数据。,CPU只与高速磁盘(磁带)交换数据,,脱离主机进行,脱离主机进行,技术要点:,(1)多道程序并发执行,(2)一道程序模拟外围机的输入,将数据从设备输入到磁盘,(3)一道程序模拟外围机的输出,将数据从磁盘输出到设备,(4)其它程序与设备的通信和脱机方式一样:读写高速磁盘,(5)主机仍要控制外围设备“假脱机”,SPOOLing技术伪脱机技术,其它,输入井:外围计算机,输出井:外围计算机,高速,高速,用户程序,其它,硬盘,高速,高速,用户程序获得:高速输入 高速输出,模拟,模拟,2.5.6 I/O管理与控制,功能:,在分配程序完成设备分配之后进行,实现方式:,(1)为每一类设备设置一个I/O进程,灵活,(2)在整个系统中设置一个I/O进程,统一管理,(3)不设置进程而是提供模块以供用户及系统调用,减少进程数量,设备驱动的特性:,中转数据和控制:不是数据和控制的源端和目的端(应用程序和设备)与硬件特性密切相关:通常由硬件厂商提供向上屏蔽设备细节:不同类型设备通常其设备驱动程序接口不同,同类设备的接口相同。因此,同类设备的不同型号,只要更换设备驱动程序则可由OS使用。,设备驱动处理过程:,(1)解释CPU的I/O要求,检查合法性,(2)检测设备状态,(3)启动执行:填写设备控制器的寄存器,(4)启动I/O操作后阻塞,输出:等待设备发送结束中断,输入:等待设备数据到达中断,(5)中断处理,保护被中断进程CPU现场,转入对中断事件处理的程序,唤醒被阻塞的驱动程序,恢复被中断进程现场并继续执行,I/O系统层次模型体现设备独立性,UNIX的设备管理,UNIX的外设与特殊文件对应,由文件系统按文件管理方式进行管理,向上提供一个与文件系统统一的接口。,1.UNIX的I/O结构,无缓存I/O:在进程I/O区域与系统I/O模块间直接进行数据交换;有缓存I/O:有缓存I/O要经过系统的缓冲区管理机构;它分成系统缓冲区(system buffer caches)和字符队列(character queues)两种。,按设备I/O的不同情况,UNIX系统的I/O分成2种:,2.设备开关表(switch table),UNIX设备驱动程序通过相应的块设备开关表和字符设备开关表描述向上与文件系统的接口。开关表是每个设备驱动程序的一系列接口过程的入口表,给出了一组标准操作的驱动程序入口地址,文件系统可通过开关表中的各函数入口地址转向适当的驱动程序入口。,Windows NT的设备管理,NT的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请求包(IRP);核心态设备驱动程序:将I/O请求包转化为对硬件设备的特定控制请求;驱动程序支持例程:供设备驱动程序调用,以完成I/O请求;硬件抽象层I/O访问例程:隔离驱动程序与硬件平台,以提高可移植性(同体系结构上的二进制可移植和NT支持平台间的源代码可移植);,作业,什么是SPOOLing技术?它的作用是什么?举例说明SPOOLing技术的应用。操作系统如何实现应用程序与设备的独立性?P.164 习题30,