110/4/2019第5章设备管理设备管理是操作系统中最繁杂且与硬件关系最密切的部分。通过本章学习,读者应该掌握以下内容:数据传输方式中断技术缓冲技术设备分配技术设备独立性设备驱动210/4/20195.1.I/O系统5.2.I/O控制方式5.3.缓冲管理5.4.I/O软件5.5.设备分配5.6.磁盘存储器的管理310/4/2019设备管理的目标根据设备请求的情况,按照一定的算法,选择和分配输入输出设备以便进行数据传输操作;控制输入输入设备和CPU或内存之间交换数据,同时提高设备和设备之间、CPU和设备之间,以及进程和进程之间的并行操作度,以使操作系统获得最佳效率;为用户提供一个友好的透明接口,把用户和设备硬件特性分开,使得用户在编制应用程序时不必涉及具体设备,系统按用户要求控制设备工作。410/4/2019设备管理功能设备分配与回收缓冲管理设备处理虚拟设备510/4/20195.1.1I/O设备计算机系统的外围设备包括:显示器、键盘、纸带阅读器、纸带穿孔机、打印机、磁带、磁盘、光盘、激光打印机、绘图仪、图形数字化仪、鼠标器、声音输入、声音输出设备以及办公自动化设备等等,种类相当繁多,可从不同的角度对它们进行分类。5.1I/O系统610/4/2019系统设备:在操作系统生成时已配置好的的标准设备。如:键盘、显示器、打印机、磁盘等。用户设备:指系统设备之外的非标准设备,一般由用户提供设备及其处理程序,并通过适当的手段把它们纳入系统中,由系统实施管理。如:网卡、调制解调器、绘图仪等。1.设备的从属关系分类710/4/2019块设备:指以数据块为单位存储和传输数据的设备如磁盘、磁带等。字符设备:指以单个字符为单位来传送信息的设备。如键盘、显示器、打印机等。2.设备中的信息交换单位方式分类810/4/2019存储设备:它是计算机用来存储永久性信息的设备如,磁带、磁盘(软盘、硬盘)、光盘等。输入设备:将外部信息送给计算机的设备。如,键盘、鼠标、扫描仪、手写笔、数码相机、麦克风、游戏手柄等输出设备:将计算机加工后的信息传送给外界的设备。如,显示器、打印机、投影仪等。3.按设备的使用特性分类910/4/2019独占设备:这类设备在用户作业的整个运行期间必须为此用户所占有,即多个作业对某一外设的访问应该是互斥的,一旦系统将这类设备分配给某个作业,便由该设备独占,直至释放该资源。大多数低速I/O设备,如用户终端、打印机等共享设备:指在同一时间段内可以同时让几个作业使用的设备,当然,在某一时刻,该设备只能为一个作业服务。适应于高速设备,如磁盘虚拟设备:根据设备的使用性质来决定一台设备可以分给几个进程以提高该设备的使用率。如虚拟打印机4.按资源分配的角度分类1010/4/20191、按()分类可将设备分为块设备和字符设备。A.从属关系B.操作特性C.共享属性D.信息交换单位2、大多数低速设备都属于()设备。A.独占B.共享C.虚拟D.Spooling3、从资源分配的角度看,可以把设备分为独占设备、共享设备和虚拟设备,打印机属于________设备,而磁盘属于__________设备。1110/4/20195.1.2设备控制器1.设备控制器的概念设备控制器是CPU与外围设备之间的接口,是一个可编址设备,每一个地址对应一个设备。它接收从CPU发来的命令,并去控制输入输出设备的工作,使CPU从繁杂的设备控制事务中解脱出来,提高CPU的使用效率。1210/4/20192.作用:接收从CPU发来的命令,控制I/O设备工作3.功能:接收和识别命令数据交换地址识别标识和报告设备的状态差错控制1310/4/20194.设备控制器的组成(1).设备控制器与处理机的接口(2).设备控制器与设备的接口(3).I/O逻辑1410/4/2019I/O系统的结构CPU磁盘控制器存储器打印机控制器其他控制器一、微型机I/O系统:总线结构磁盘驱动器打印机1510/4/2019二、主机系统输入输出结构当主机所配置的输入输出设备较多时,特别是配有较多的高速外设时,采用总线型输入输出系统结构会加重CPU与总线的负担。因此,在这样的输入输出系统中不宜采用单总线结构,而是增加一级输入输出通道,用来代替CPU与各设备控制器进行通信,实现对控制器的控制。1610/4/20191710/4/20195.1.3I/O通道1、通道的引入为了提高计算机系统的运行效率,就要使CPU摆脱繁忙的I/O事务,而配置专门处理I/O事务的机构——通道。通道的引入是为了建立独立的I/O操作。它不仅要求数据传送独立于CPU,而且要求I/O操作的组织、管理、结束等也尽量独立,以保证CPU有更多的时间从事计算。这样就可以实现CPU计算和I/O操作的并行工作。1810/4/2019思考题一什么是通道?通道有哪些类型?1910/4/20192、I/O通道概念通道是一种硬件机构,又称I/O处理机。输入输出通道是指专门负责输入输出工作的处理器。它有自己的指令系统(包含数据传送指令和设备控制指令),独立执行自己的通道程序来实现内存与外设之间的数据传输,从而使系统获得CPU与外设并行处理的能力。2010/4/20193、通道的类型根据信息交换方式的不同,可把通道分成字节多路通道、数组多路通道和选择通道三种。(1)字节多路通道通常都含有许多非分配型子通道,其数量可以从几十到数百个,每一个子通道连接一台输入输出设备,这些子通道按时间片轮转方式共享主通道。字节多路通道连接低速或中速设备时,不会丢失信息。2110/4/2019选择通道的数据传送是按成批的方式进行的,故传送速率很高。(2)数据选择通道选择通道它适用于连接高速I/O设备,如磁带、磁盘等。选择通道只有一个分配型子通道,即这个子通道可以连接多台设备,但每次只能把子通道分配给一台设备使用。一旦分配给某台设备,子通道就被它独占,即使暂时出现空闲,也不允许其他设备利用该子通道。直到它被释放,再选择另一台设备为其服务。因此选择通道的利用率是很低的。2210/4/2019这种通道综合了字节多路通道分时并行工作和选择通道传输速率高的特点。它具有多个非分配型子通道,每个子通道连接一台中、高速I/O设备,如:磁带、磁鼓、磁盘等,因而通道所连接的几个设备可以并行工作。数组多路通道技术相当于通道程序的多道程序设计技术。(3)数组多路通道2310/4/2019CPU字节多路通道打印机1打印机2I/O控制器I/O控制器内存选择通道成组多路通道磁盘I/O控制器磁盘I/O控制器I/O控制器I/O控制器磁带磁带存在这三种通道的计算机系统的各硬件的连接关系如图所示:2410/4/2019思考题二设备管理中,什么是“瓶颈”现象?如何解决?2510/4/2019通道命令和通道程序通道有自己的指令系统,为了与CPU的指令相区别,通道的指令被称为“通道命令字”。通道命令字条数不多,主要涉及控制、转移、读、写及查询等功能。0783132474863每条通道命令由四个字段组成:(1)操作码(0~7):表示通道要执行的命令;(2)数据主存始址:表示本命令要访问的主存数据区的起始地址;(3)特征位(32~47,只使用了32~36位,其余未用):37~39位必须置0,否则认为通道命令错。2610/4/2019通道程序存放在内存中,由I/O指令启动执行。用户请求I/O时,CPU对通道的通信是向通道发出查询、启动和停止通道程序工作,而通道向CPU的通信则采用中断方式。其执行过程如图所示。2710/4/2019用户I/O请求查询设备忙闲?调用通道程序执行通道程序I/O操作完成,发中断请求CPU响应中断,进行结束处理以I/O指令启动通道结束通道工作进入设备请求队列,等待忙不忙通道程序的执行过程2810/4/20195、通道工作过程(1)当进程有I/O请求时,系统首先查询设备状态。若忙,进程进入设备请求队列等待;若闲,CPU发指令指明I/O操作、设备号和对应通道。(2)对应通道收到CPU发来的启动指令后,读出内存中的通道指令程序、设置对应设备的控制状态寄存器的初值。(3)设备按通道指令的求,把数据送往内存指定区域。(4)若传送结束,I/O控制器通过中断请求线发中断信号请求CPU做中断处理。(5)中断处理结束后,CPU返回到被中断进程处继续执行。(6)当进程调度程序选中这个已得到数据的进程后,才能进行加工处理。2910/4/2019思考题三通道的作用是什么?通道是一个独立于CPU的专管输入/输出控制的处理器,它控制内存与外部设备直接进行数据交换。它有自己的通道指令,这些通道指令受CPU启动,并在操作结束时向CPU发中断信号。通道方式进一步减轻了CPU的工作负担,增加了计算机系统的并行工作程度。3010/4/20195.1.4总线系统1、总线基本概念在计算机系统内各种子系统,如CPU、内存、I/O设备等之间,构建公用的信号或数据传输通道这种可共享的传输通道称为总线。3110/4/20192、总线的分类3210/4/2019当用户进程通过系统调用提出I/O请求时,从系统响应此请求开始,至系统完成用户要求的I/O操作,并唤醒相应的等待I/O完成的进程为止,这整个过程称为I/O控制过程。5.2I/O控制方式3310/4/2019I/O控制过程包括以下步骤:(1)响应I/O请求,为在具体物理设备上进行I/O操作做准备。包括将逻辑设备名转换为物理设备名(设备分配)、I/O请求的合法性等。(2)设备驱动,控制设备完成I/O操作,对每类设备分别设置不同的设备驱动程序。(3)中断处理,I/O操作完成之后,设备控制器向CPU发送中断信号,CPU响应后转向相应的中断处理程序进行善后处理。3410/4/2019I/O操作的控制方式一般有四种:查询方式中断方式直接内存存取方式通道方式它们的主要差别在于处理器和外设并行工作的方式和程度的不同。3510/4/2019查询方式是最简单的I/O控制方式。在设备控制器中有两个寄存器,一个是状态寄存器,由其中的一个状态位的值反映设备的忙或闲;另一个是数据缓冲寄存器。当设备启动时,状态寄存器的启动位为1,此时外设把数据送往数据缓冲寄存器,并将状态寄存器的状态位置1。CPU执行完一条指令后就测试状态位,如果为1,就把数据寄存器中的数据取到内存;若状态位为0,则再测试,直到状态寄存器的状态位为1,然后再读取数据。所以此种方式也称循环测试I/O方式5.2.1查询方式3610/4/2019就绪向设备控制器发读命令读设备控制器的状态检查状态从设备控制器中读入字向存储器中写字传送完成CPU-I/OCPU-内存I/O-CPU出错I/O-CPU完成下条指令未完成未就绪3710/4/2019步骤:(1)当用户需要输入数据时,由处理器向设备控制器发出一条输入输出指令,启动设备进行输入(2)当用户进程需要向设备输出数据时,也必须同样发出启动命令启动设备输出,并等待输出操作完成。特点:工作过程简单,CPU的利用率低。在要求不高的场合下常被采用,而且不能支持多道程序。程序直接控制方式适用于早期的无中断的计算机系统。3810/4/2019查询方式是主机向外设询问,而引入中断后,每当设备完成I/O操作,它便以中断请求方式主动向CPU汇报。因此,CPU一旦启动I/O设备后便可转去处理其他程序,仅在接到I/O中断信息请求时才花费极少时间去处理。5.2.2中断方式3910/4/20191、中断概念所谓中断,是指处理机在执行进程的过程中,由于某些事件的出现,中止当前进程的运行,转而去处理出现的事件,待处理完毕后返回原来被中断处继续执行或调度其他进程执行。2、中断源引起中断的事件称为中断源。(1)强迫性中断源硬件故障、程序性错误、外部事件、I/O中断事件(2)自愿性中断源4010/4/20193、步骤(1)进程需要数据时,将允许启动和允许中断的控制字写入设备控制状态寄存器中,启动该设备进行输入操作。