您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 计算机操作系统_第5章_设备管理
1操作系统原理南京工业大学信息学院计算机系2005年9月计算机操作系统南京工业大学2第五章设备管理5.1I/O系统5.2I/O控制方式5.3缓冲管理5.4设备分配5.5设备处理5.6磁盘存储器管理2005年9月计算机操作系统南京工业大学35.1I/O系统定义:I/O系统是用于实现数据的输入、输出及数据存储的系统。包括:直接用于I/O和存储数据的设备相应的设备控制器和高速总线I/O通道(I/O专用处理机)——大、中型计算机系统中2005年9月计算机操作系统南京工业大学45.1.1I/O设备1.I/O设备的类型按输入输出特性分类输入型设备、输出型设备、存储型设备(一般为块设备)输入输出型设备可分为字符设备和块设备。按信息交换单位分类块设备——信息的存取以数据块为单位。用于存储信息。如,磁盘(常采用DMA方式)字符设备——信息的基本单位是字符。用于数据I/O。如,交换式终端(键盘、显示器)、打印机等。(中断驱动方式)按设备的共享属性分类独占设备、共享设备、虚拟设备按传输速率分类低速设备——几~几百字节/秒。键盘,鼠标等中速设备——几千~几万字节/秒。打印机高速设备——数百千~数十兆字节/秒。磁带机、磁盘机等2.设备与控制器之间的接口I/O设备一般由机械部件和电子部件两部分组成,通常将两部分分开,以提供更加模块化和通用化的设计。电子部件称作设备控制器。在个人电脑中,它经常以印刷电路板的形式出现,可以插入计算机的扩展槽中。通常设备并不直接与CPU通信,而是与设备控制器通信,故设备和设备控制器间应有接口,该接口中包含3类信号:数据信号、控制信号、状态信号。如图5-1所示。数据信号线——设备和控制器之间传送数据。控制信号线——规定了设备要执行的操作。如,读、写、磁头移动等操作。状态信号线——指示设备当前的状态。如,正在读(或写)、读(写)完成等。缓冲转换器控制逻辑控制器与设备接口数据信号线状态信号线控制信号线设备控制器I/O设备CPU总线图5-1设备与控制器间的接口2005年9月计算机操作系统南京工业大学65.1.2设备控制器作用:控制一个或几个I/O设备,实现I/O设备和计算机之间数据交换,它是CPU和I/O设备之间的接口。是可编址设备:控制一个设备时,有唯一的设备地址;连接多个设备时,则含有多个设备地址。常称接口卡。可处理2、4或8个同类设备。2005年9月计算机操作系统南京工业大学7设备控制器的基本功能接受和识别命令数据交换标识和报告设备的状态地址识别数据缓冲差错控制2005年9月计算机操作系统南京工业大学8设备控制器的组成由3部分组成,如图5-2所示。设备控制器与处理机的接口设备控制器与设备的接口I/O逻辑——用于实现对设备的控制。处理机利用I/O逻辑向控制器发送I/O命令;I/O逻辑对收到的命令进行译码(包括地址译码)2005年9月计算机操作系统南京工业大学95.1.3I/O通道(了解)1.I/O通道设备的引入I/O通道——是一种特殊的处理机,它具有执行I/O指令的能力,并且通过执行通道程序来控制I/O操作。引入目的:是使一些原来由CPU处理的I/O任务转由通道来承担。从而把CPU从繁忙的I/O任务中解脱出来。通道与CPU共享内存。2005年9月计算机操作系统南京工业大学105.1.3I/O通道2.通道类型可分3类:1)字节多路通道其工作原理如图5-3所示。不适于连接高速设备。2005年9月计算机操作系统南京工业大学11通道类型2)数组选择通道它虽然可以连接多台高速设备,但在一段时间内只能控制一台设备进行数据传送。(多个设备不能同时使用通道)——传送数据块3)数组多路通道是前面两种的结合。2005年9月计算机操作系统南京工业大学12瓶颈问题单通路I/O系统(如图5-4),通道成为瓶颈。在图5-4中,为了启动设备4,必须用通道1和控制器2,但若这两者已被设备3占用,必然无法启动设备4。类似地,…,这就是由于通道不足而造成的“瓶颈”现象。2005年9月计算机操作系统南京工业大学13瓶颈问题解决“瓶颈”问题的最有效方法,是增加通路而不增加通道。如图5-5所示。2005年9月计算机操作系统南京工业大学145.1.4总线系统由图5-6可以看出,计算机系统中的CPU、存储器、各种I/O设备之间的联系,都是通过总线来实现的。总线的性能(衡量指标):总线的时钟频率带宽传输速率总线的发展:ISA总线、EIAS总线VESA总线、PCI总线2005年9月计算机操作系统南京工业大学15ISA和EISA总线1)ISA(IndustryStandardArchitecture)总线1984年,为80286设计的。带宽8位最高传输速率2Mb/s能连接12台设备2)EISA(ExtendedISA)总线20世纪80年代末带宽16位最高传输速率32Mb/s能连接12台设备2005年9月计算机操作系统南京工业大学16局部总线(LocalBus)局部总线——是将多媒体卡、高速LAN网卡、高性能图形板等,从ISA总线上卸下来,再通过局部总线控制器直接连接到CPU总线上,使之与高速CPU总线相匹配,而打印机、FAX/Modem、CD-ROM等仍挂在ISA总线上。局部总线中较有影响的是VESA总线和PCI总线。1)VESA(VideoElectronicStandardAssociation)总线设计思想是低价位迅速占领市场90年代初推出,广泛用于486微机带宽32位最高传输速率132Mb/s。缺点:仅能连接2~4台设备;难于适应处理机速度的不断提高;不支持Pentium微机。2005年9月计算机操作系统南京工业大学17局部总线(LocalBus)2)PCI(PeripheralComponentInterface)总线随着Pentium系列芯片推出1992年,PCIV1.0规范——32位1995年,PCIV2.0规范——支持64位系统最多支持10种外设可以连接ISA、EISA等传统型总线,又可支持32位、64位系统2005年9月计算机操作系统南京工业大学185.2I/O控制方式5.2.1程序I/O方式忙-等待方式、查询方式——CPU极大浪费5.2.2中断驱动I/O控制方式使CPU和I/O设备并行工作。例如:设从终端输入一个字符约为100ms,而将字符送入缓冲区的时间为0.1ms,采用程序I/O方式,CPU约有99.9ms的时间在忙-等待中。采用中断驱动方式,CPU可利用这99.9ms的时间做其它事情,而仅用0.1ms时间处理中断请求。成百倍地提高CPU利用率。仍以字节为单位进行I/O的2005年9月计算机操作系统南京工业大学195.2.3直接存储器访问DMAI/O控制方式1.DMA(DirectMemoryAccess)控制方式的引入由于中断驱动方式仍以字节为单位进行I/O的,用于控制块设备时是极其低效的(中断频繁),故引入了…,以数据块为I/O单位,比中断驱动方式又成百倍地提高效率。进一步提高了CPU与I/O设备的并行操作程度。2005年9月计算机操作系统南京工业大学20DMA控制器的组成由3部分组成:主机与DMA控制器的接口DMA控制器与块设备的接口I/O控制逻辑CR——命令/状态寄存器,用于接收从CPU发来的I/O命令或控制信息,或设备的状态。MAR——内存地址寄存器。DR——数据寄存器。暂存从设备到内存,或从内存到设备的数据。DC——数据计数器。要读或写的字节数。3.DMA工作过程1)设置MAR和DC初值2)启动DMA传送命令3)挪用存储器周期传送数据字节4)存储器地址(MAR)增1,字节寄存器DC减15)若DC=0,表示传输结束,则进行6);否则转3)6)请求中断接上页图5-72005年9月计算机操作系统南京工业大学225.2.4I/O通道控制方式1.I/O通道控制方式的引入DMA,CPU每发出一条I/O指令,只能读(或写)一个连续的数据块。通道方式是DMA方式的发展。2.通道程序通道程序是由一系列通道命令(指令)所构成的。通道是通过执行通道程序,并与设备控制器共同实现对I/O设备的控制的。每条通道指令都包含下列诸信息:操作码,它规定了指令所执行的操作,如读、写、控制等内存地址计数,读(写)的字节数通道程序结束位P,P=1表示本指令是通道程序中最后一条指令记录结束标志R,R=0表示本指令与下一条指令所处理的数据是属于一个记录;R=1…2005年9月计算机操作系统南京工业大学235.3缓冲管理5.3.1缓冲的引入引入缓冲的目的:为了缓和CPU与I/O设备速度不匹配的矛盾减少对CPU的中断频率提高CPU和I/O设备的并行性5.3.2单缓冲和双缓冲1.单缓冲在块设备输入时,假定:从磁盘把一块数据输入到缓冲区的时间为T操作系统将该缓冲区数据送到用户区的时间为MCPU对这块数据处理(计算)时间为C由于T和C是可以并行的,故系统处理一块数据的时间可表示为Max(T,C)+M。2005年9月计算机操作系统南京工业大学242.双缓冲在设备输入时,先将数据送入第一个缓冲区,装满后便转向第二个缓冲区。此时操作系统可以从第一个缓冲区移出数据并送入用户进程,接着CPU对数据进行计算。若CT,因MT,系统处理一块数据的平均时间大约为Max(T,C),可使块设备连续输入;若CT,系统处理一块数据的平均时间大约为C+M,即M+Max(T,C),可使进程不必等待设备(CPU可以不停地计算)两台计算机之间的通信,双缓冲可实现全双工【例5-1】假定从磁盘把一块数据输入到单缓冲区的时间T为2000s,将缓冲区中数据传送到用户区的时间M为50s,而CPU对这块数据处理(计算)时间C为1500s,则系统对每块数据的处理时间为(3)s。如果将单缓冲改为双缓冲,则系统对每块数据的处理时间为(4)s。5.3.3循环缓冲1.循环缓冲的组成(1)多个缓冲区。可分3类:空缓冲区R满缓冲区G现行缓冲区C——正在使用的(2)多个指针。有3种:指针Nextg——指示计算进程下一个可用缓冲区G指针Nexti——指示输入进程下次可用缓冲区R指针Current——指示计算进程正在使用的缓冲区CRGGGGRNextiNextg123456RGGGCRNextiNextg123456Current2005年9月计算机操作系统南京工业大学262.循环缓冲区的使用(1)Getbuf过程计算进程要使用缓冲区时,调用Getbuf过程:将Nextg所指的缓冲区改为“现行”,用Current指向它,同时将Nextg指向下一个G缓冲区。输入进程要使用缓冲区时,调用Getbuf过程:将Nexti所指的缓冲区供给输入进程使用,同时将Nexti指向下一个R缓冲区。(2)Releasebuf过程计算进程把C缓冲区的数据提取完毕时,调用Releasebuf过程,将缓冲区G释放:将该缓冲区由现行缓冲区C改为空缓冲区R。输入进程把缓冲区装满时,调用Releasebuf过程,将该缓冲区释放,并改为满缓冲区G。2005年9月计算机操作系统南京工业大学273.循环缓冲区——进程同步Nexti指针追上Nextg指针。已无空缓冲区,输入进程阻塞——计算进程在Releasebuf时唤醒它。Nextg指针追上Nexti指针。计算进程快,已无满缓冲区。计算进程阻塞,直到输入进程用Releasebuf时唤醒它。2005年9月计算机操作系统南京工业大学285.3.4缓冲池上述缓冲区仅适用于特定的I/O进程和计算进程,因而它属于专用缓冲。当系统较大时,将会有许多这样的循环缓冲,这不仅要消耗大量的内存空间,而且利用率不高。为了提高缓冲区利用率,目前广泛流行缓冲池,在池中设置了多个可供若干进程共享的缓冲区。1.缓冲池的组成三种类型的缓冲区,分别构成三个队列:空缓冲队列emq。头指针F(emq),尾指针L(emq)输入队列in
本文标题:计算机操作系统_第5章_设备管理
链接地址:https://www.777doc.com/doc-3193752 .html