资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第四章 设备管理,设备管理:操作系统对除,CPU,和内存以外的所有,I/O,设备的管理。,I/O,设备,是计算机系统的重要资源,用户无权直接使用。,设备管理的一个重要任务,:按照一定的算法在各进程间调度和分配设备。,设备管理按照用户要求启动具体设备,完成数据传输操作,并且处理设备的中断。,4.1,设备管理概述,4.1.1,设备管理的基本任务和功能,1,设备管理的任务,选择和分配输入,/,输,出设备以便于进行数据传输操作。,控制输入,/,输出设备和,CPU,(或内存),之间交换数据。,为用户提供一个友好的透明接口。,提高设备和设备之间、,CPU,和设备之间以及进程和进程之间的并行操作度,以使操作系统获得最佳运行效率。,2,设备管理的目标,方便性:,指用户能独立于具体设备的复杂物理特性之外 而方便使用设备。,并行性:,应尽量提高,CPU,与,I/O,、,I/O,设备与,I/O,设备之间,的并行操作程度,主要利用的技术有:中断技术、,DMA,技术、通道技术和缓冲技术。,均衡性:均衡地使用设备。,独立性:指设备的,无关性,,,要求用户方便地操作逻辑设备,而具体的,I/O,物理设备由操作系统去实现。,3,设备管理的基本功能,(,1,)提供与进程管理系统的接口;,(,2,)进行设备分配;,(,3,)实现设备和设备、设备和,CPU,之间的并行操作;,(,4,)进行缓冲区管理。,4.1.2,设备的分类,1,、按设备的使用特性分类,(,1,)外存设备;,(,2,)输入输出设备;,(,3,)终端设备;,(,4,)脱机设备。,2,、按从属关系分类,(,1,),系统设备:指在操作系统启动过程中已经登记在系统中的标准设备。如键盘、显示器、打印机等。,(,2,),用户设备:指操作系统启动过程中未登记入系统的非标准设备。如绘图仪、扫描仪等。,3.,按传输速率分类,(,1,)低速设备:,指传输速率为每秒钟几个字符至数百个字节设备,如键盘、鼠标、语音输入等。,(,2,)中速设备,:,指传输速率为每秒钟数千个字节至数万个字节的设备,如针式打印机、激光打印机等。,(,3,)高速设备:,指传输速率为数兆字节的设备,如磁带机、磁盘机、光盘机等。,4.,按使用特性分类,(,1,)存储设备:,计算机用来保存各种信息的设备,如磁盘、磁带等。,(,2,),I/O,设备:,向,CPU,传输信息或输出,CPU,加工处理信息的设备。例如:键盘,显示器,(,1,)独占设备:,指在一段时间内只允许一个用户(进程)访问的设备,大多数低速的,I/O,设备。,如用户终端、打印机等属于这类设备。,因为独占设备属于临界资源,所以多个并发进程必须,互斥,地访问独占设备。,5.,按设备共享属性分类,(,2,)共享设备:,指在一段时间内允许多个进程同时访问的设备。,显然,共享设备必须是可寻址的和可随机访问的设备,典型的共享设备是磁盘。,(,3,)虚拟设备:,指通过虚拟技术将一台独占设备变换为若干台供多个用户(进程)共享的逻辑设备。一般可以利用假脱机(,SPOOLing,),技术实现虚拟设备。,(,1,)字符设备:,指处理信息的基本单位是字符的设备,如键盘、打印机、显示器是字符设备。,(,2,)块设备:,指处理信息的基本单位是数据块的设备,一般块的大小为,512B4KB,,,如磁盘、磁带等都是块设备。,6.,按信息交换单位分类,设备管理的功能,(,1,)设备分配。按照设备类型和相应的分配算法决定将,I/O,设备分配给哪一要求使用该设备的进程。凡未分配到所需设备的进程被放入一个等待队列。,(,2,)设备处理。设备处理程序实现,CPU,和设备控制器之间的通信。即,当,CPU,向设备控制器发出,I/O,指令时,设备处理程序应启动设备进行,I/O,操作,并能对设备发来的中断请求作出及时的响应和处理。,(,3,)实现其他功能。,包括对缓冲区的管理功能及实现设备独立性,。,4.1.3,设备的分配,1,设备分配时需考虑的因素,(,1,)设备的固有属性;,(,2,),I/O,设备的分配算法:,先请求先服务,、,优先级高者先服务,;,(,3,)设备分配的安全性;,(,4,),设备独立性。,设备独立性,设备独立性也称,设备无关性,:应用程序,所用设备,独立于具体使用的物理设备,。,为了实现设备独立性而引入了逻辑设备和物理设备两个概念。在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称,,程序执行时由系统完成逻辑设备到物理设备的映射,。,逻辑设备:指对某类物理设备的抽象,用户给物理设备的一个别名。,设备独立性的优点,(,1,),设备分配时的灵活性,,用户和物理外围设备无关,系统增减或变更外围设备时程序不必修改;,(,2,),实现,I/O,重定向,,例如,某台行式打印机发生故障 时,可用另一台替换,甚至可用磁带机或磁盘机等不同类型的设备代替,从而提高了系统的可靠性,增加了外围设备分配的灵活性,能更有效地利用外围设备资源,实现多道程序设计技术。,操作系统提供了设备独立特性后,程序员可利用逻辑设备进行行输入输出,而逻辑设备与物理设备之间的转换通常由操作系统的命令或语言来实现。,实现从逻辑设备名到物理设备名的变换,采用逻辑设备表(,Logical Unit Table,)来建立逻辑设备和物理设备之间的映射关系。,逻辑设备名,物理设备名,驱动程序入口地址,/dev/,tty,1,E123,/dev/print,2,35A6,.,逻辑设备表,设备分配的数据结构,OS,建立了一组反映系统设备状态的数据结构:设备控制表,DCT,、控制器控制表,COCT,、通道控制表,CHCT,以及系统设备表,SDT,。,表目,1,表目,2,表目,n,系统设备表,SDT,.,.,.,设备类型,设备标识,获得设备的进程,DCT,指针,.,.,.,.,.,.,DCT,、,COCT,、,CHCT,之间的关系,设备分配的数据结构,设备类型,设备标识,设备状态,COCT,指针,等待此设备,的进程表,设备控制表,DCT,重复执行,次数和时间,.,.,.,控制器标识,控制器状态,CHCT,指针,等待此设备,的进程表,控制器控制表,COCT,.,.,.,通道标识,通道状态,COCT,指针,等待此设备,的进程表,通道控制表,CHCT,.,.,.,设备管理的,3,种控制表,设备工作,系统设备表,SDT,是操作系统范围内的数据结构,记录操作系统中所拥有的全部,I/O,设备类型,每一类设备占用一个表目。每个表目包含若干项,项目数量和具体内容由操作系统确定。,工作原理:根据所请求的,I/O,设备,由系统状态表找到该设备的,DCT,,再由,DCT,的“与此设备相连的控制器表”项找到,COCT,的“与此控制器相连的通道表”找到,CHCT,,从而构成一条从主存到,I/O,设备的通路。若有一条通路可用,则在,DCT,、,COCT,、,CHCT,中将进程名(或,PCB,首址)登记在“正在使用该设备(控制器、通道)”的状态表目内;否则进行排队等候。,MT,的,DCT,集合,MT,DISC,系统设备表,SDT,与,DCT,的关系,.,.,.,设备类型,设备标识,获得设备的进程,DCT,指针,.,.,.,DCT,始址,系统设备表,SDT,CARD,DCT,始址,PRINT,DCT,始址,DCT,始址,4.2,数据传输控制方式,程序轮询,I/O,控制方式,中断,I/O,控制方式,DMA I/O,控制方式,通道,I/O,控制方式,4.2.1,程序直接控制方式,程序直接控制方式,是一种用程序直接控制,I/O,操作的方式。在这种方式下,计算机的,I/O,测试指令,通过测试一台设备的忙,/,闲标志,决定主存和外设之间是否要传输一个,字符,或一个,字,。,程序直接控制方式控制简单,也不需要多少硬件支持。,4.2.2,中断控制方式,为了减少程序直接控制方式中,CPU,等待时间以及提高系统的并行工作程度,引入中断控制方式来控制外围设备和内存与,CPU,之间的数据传输。中断机构引入之后,外围设备有了反映其自身状态的能力,仅当,I/O,操作正常或异常结束时才中断中央处理机,从而实现了一定程度的并行操作。,中断,1,.,基本概念:,中断是指计算机在执行期间,系统内发生了某一急需处理的事件,暂时中止,CPU,上现行程序的运行,转去执行相应的事件处理程序,待处理完毕后又返回到刚才暂停程序的被中断处继续执行的过程,。,中断是操作系统实现并发性的基础之一。,需要中断处理器正常工作的典型事件:,请求系统服务,实现并行工作,处理突发事件,满足实时要求,2.,中断的分类与优先级,中断的分类角度很多,比如,,IBM,中大型机操作系统,便按照中断事件的性质和激活的手段,将中断分成以下两类:,强迫性中断事件,不是正在运行的程序所期待的,而是由于某种事故或外部请求信息所引起的,具体分为:机器故障中断事件,程序性中断事件,外部中断事件,输入输出中断事件。,自愿性中断事件,正在运行的程序所期待的事件。比如,其对操作系统有某种需求,一旦机器执行到一条访管指令时,便自愿停止现行程序的执行而转入访管中断处理程序处理。,而,Windows2000/XP,则按照中断信号的来源,把中断分为外中断和内中断两类:,外中断,(,又称中断,),:指来自处理器和主存之外的中断。包括:电源故障中断、时钟中断、控制台中断、,I/O,中断等。,不同的中断具有不同的中断优先级,处理高一级中断时,往往会屏蔽部分或全部低级中断。,内中断,(,又称异常,),:指来自处理器和主存内部的中断。包括:通路校验错、主存奇偶错、非法操作码、地址越界、页面失效、调试指令、访管中断、算术操作溢出等各种程序性中断。,内中断是不能被屏蔽的,一旦出现应立即响应并加以处理,。,3.,中断处理过程(由中断装置和中断服务程序共同完成,教材,P127,):,CPU,响应中断。收到中断信号,,CPU,处理完当前指令响应中断,同时关中断。,保护被中断进程的运行现场。即未被硬件保护的一些必需的处理状态,如,PSW,、,PC,(或,IP,),等。,判断中断源。分析产生中断的原因根据中断源查询中断向量表,获得中断处理程序的入口地址,调出相应的中断处理程序。,执行中断处理程序。,退出中断。恢复被中断进程的现场,然后开中断。,4.2.3 DMA,方式,当进程要求设备输入数据时,,CPU,把准备存放输入数据的内存始址以及要传送的字节数分别送入,DMA,控制器中的内存地址寄存器和传送字节计数器,并把控制状态寄存器中的中断允许位和启动位置,1,,从而启动设备开始进行数据输入。,发出数据要求的进程进入等待状态,进程调度程序调度其他进程占用,CPU,。,输入设备不断地挪用,CPU,工作周期,将数据缓冲寄存器中的数据源源不断地写入内存,直到所要求的字节全部传送完毕。,DMA,控制器在传送字节数完成时通过中断请求发出中断信号,,CPU,在接收到中断信号后转中断处理程序进行相应处理。,中断处理结束时,,CPU,返回被中断进程继续执行。,DMA,方式与中断方式的主要区别,中断方式指在数据缓冲寄存器满之后发出中断请求,而,DMA,方式则是在所要求传输的数据块全部传送结束后发出中断请求。这就大减少了,CPU,进行中断处理的次数。,中断方式的数据传送是在中断处理时由,CPU,控制完成的。而,DMA,方式则不经过,CPU,而是在,DMA,控制器,的控制下完成的。这样排除了因并行操作设备过多时,CPU,来不及处理或因速度不匹配而造成数据丢失等现像。,4.2.4,通道方式,通道控制方式的数据输入处理过程:,当进程要求设备输入数据时。,CPU,发,start,指令指明,I/O,操作、设备号和对应通道。,对应通道接收到,CPU,发来的启动指令,start,之后,把存放在内存中的通道指令程序读出,设置对应设备的,I/O,控制器中的控制状态寄存器。,设备根据通道指令的要求,把数据送往内存中指定区域。,若数据传送结束,,I/O,控制器通过中断请求线发中断信号请求,CPU,做中断处理。,4.3,设备管理技术,1.,缓冲技术的基本实现思想,(1),在,CPU,和外设之间设立缓冲区,用以暂存,CPU,与外设之间交换的数据,从而缓和,CPU,与外设速度不匹配所产生的矛盾。,(2),其实,凡是数据到达和离去速度不匹配的地方均可采用缓冲技术。例如,,CPU,与内存之间也需要设置缓冲,只不过设在,cache,里。,2.,引入,缓冲的目的,(1),改善,CPU,与,I/O,设备之间速度不匹配的矛盾,(2),减少对,CPU,的中断频率,放宽对中断响应时间的限制,(3),提高,CPU,与,I/O,设备之间的并行性,3,.,缓冲的分类及使用,缓冲有硬件缓冲(设备寄存器)和软件缓冲(内存区)之分。后者容量大,使用灵活,又可从不同角度划分成多类。比如,有专用和通用之分,还可根据系统设置的缓冲区个数,将缓冲技术分为:,单缓冲、双缓冲、环形缓冲和缓冲池。,缓冲操作主要由,getbuffer,(),和,putbuffer,(),过程实现,它们之间有同步约束。,单缓冲区,用户进程,输入设备,缓冲区,操作系统,单缓冲示意图,双缓冲,用户进程,输入设备,缓冲区,1,操作系统,双缓冲示意图,缓冲区,2,双缓冲,用户进程,输入设备,缓冲区,1,操作系统,循环缓冲示意图,缓冲区,2,缓冲区,2,.,.,.,缓冲池,对于用于同时输入、输出的公用缓冲池包含,3,种类型缓冲区:空缓冲区、装满输入数据的缓冲区、装满输出数据的缓冲区。,将相同类型的缓冲区连成一个队列:空缓冲区队列、输入缓冲区队列、输出缓冲区队列。,收容输入数据的工作缓冲区,hin,;提取输入数据的工作缓冲区,sin,;收容输出数据的工作缓冲区,hout,;提取输出数据的工作缓冲区,sout,。,缓冲池,hin,hout,缓冲区,n,sout,缓冲区,1,sin,缓冲区,m,缓冲区,z,收容输入,收容输出,提取输入,提取输出,CPU,I/O,设备,缓冲池,缓冲池的工作缓冲区示意图,通道技术,1,通道功能,通道又称,I/O,处理机,它能完成主存储器和外设之间的信息传输,并与中央处理机并行操作。采用通道技术解决了,I/O,操作的独立性和各部件工作的并行性。,2,通道类型,字节多路通道,选择通道,数组多路通道,3,CPU,与通道的通信,当运行的程序要求数据传输时,,CPU,向通道发,I/O,指令,命令通道工作;,通道接收到,CPU,的,I/O,指令后,从内存中取出相应的通道程序,完成,I/O,操作;,当,I/O,操作完成(或出错),通道以中断方式中断,CPU,正在执行的程序,请求,CPU,的处理。,spooling,技术,1,SPOOLing,技,术,:,SPOOLing,(即外部设备联机并行操作),即,Simultaneous Peripheral Operation On-Line,的缩写,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。,2,SPOOLing,系统优点,将独占设备改造成共享设备,提高了,I/O,的速度,实现了虚拟设备的功能,spooling,技术,3,SPOOLing,系统主要包括以下三部分:,(,1,)输入井和输出井:在,磁盘,上开辟出来的两个存储区域。输入井模拟脱机输入时的磁盘,用于收容,I/O,设备输入的数据。输出井模拟脱机输入时的磁盘,用于收容用户程序的输出数据。,(,2,)输入缓冲区和输出缓冲区:在,内存,中开辟的两个缓冲区。输入缓冲区用于暂存有输入设备送来的数据,以后在传送到输出井。输出缓冲区用于暂存从输出井送来的数据,以后再传送到输出设备。,(,3,)输入进程和输出进程:输入进程模拟脱机输入时的外围控制机,将用户要求的数据有输入设备到输入缓冲区,再送到输入井。当,CPU,需要输入设备时,直接从输入井读入内存。输出进程模拟脱机输出时的外围控制机,把用户要求输入的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据,经过输出缓冲区送到输出设备上。,Spooling,系统,输入进程,输出进程,输出设备,输入设备,输入井,输出井,输入缓冲区,输出缓冲区,磁盘,内存,Spooling,系统示意图,假若进程打开了打印机特殊文件后几小时内无所事事,则其他进程什么都打印不了!解决方案:,创建值班进程,(,daemon,)、,SPOOLing,打印目录,进程首先生成要打印的文件,放入,SPOOLing,目录,值班进程:唯一获准使用打印机特殊文件的进程,,负责在打印机空闲时打印,SPOOLing,目录,里的文件。,通过禁止用户对特殊文件的直接使用,解决了上述打印机空占问题,提高了其使用效率。,SPOOLing,应用举例,(1),打印机,的,SPOOLing,值班(即守护或精灵)进程(,daemon,),SPOOLing,应用举例,(2),网络,的,SPOOLing,值班进程,网络文件传送,先把文件送到网络,spooling,目录,然后网络值班进程把它取出并传递到目标地址,Internet,电子邮件系统,在因特网上,发,Email,时,电子邮件发送程序,send,先将待发信件存入,spooling,电子邮件目录下,供以后传输。,注意,:,SPOOLing,只提高设备利用率,缩短用户程序执行时间,并不提高,CPU,利用率。,设备驱动,程序,(,device driver,),简称驱动程序(,driver,),是一个允许高级,(High level),计算机,软件,(,computer software,)与硬件(,hardware,)交互的程序,这种程序建立了一个硬件与硬件,或硬件与软件沟通的界面,经由主板上的总线(,bus,)或其它沟通子系统(,subsystem,)与硬件形成连接的机制,这样的机制使得硬件设备(,device,)上的数据交换成为可能。,4.4,设备驱动程序,(1),设备驱动程序,系统为每类设备编制设备驱动程序以控制,I/O,传输。,任务:主要负责接收和分析从设备分配转来的信息,把用户,I/O,请求转换为具体要求后,发送给设备控制器,启动设备执行。,设备驱动程序的处理过程:,1),将抽象,I/O,请求转为具体要求,2),检查,I/O,请求的合法性,3),读出和检查设备的状态,4),传送必要的参数,预置设备的初始状态,5),设置设备的工作方式(在有通道系统中,构造通道程序),6),启动设备进行,I/O,操作,7),响应来自设备的中断,(2)I/O,中断处理程序,处理来自设备或通道的正常或异常完成中断。,
展开阅读全文