您好,欢迎访问三七文档
第五章设备管理5.1设备管理概述5.2I/O控制方式5.3缓冲管理5.4设备分配与设备处理程序5.5SPOOLing系统5.6磁盘存储器管理I/O设备是计算机系统的重要资源,用户无权直接使用。设备管理的一个重要任务:便是按照一定的算法在各进程间调度和分配设备。另外,设备管理还要按照用户要求启动具体设备,完成数据传输操作,并且处理设备的中断。还有如何利用虚拟技术使独享设备“变为”共享设备,使一台物理设备“变为”多台逻辑设备。5.1设备管理概述一、设备管理的分类1.按从属关系分类(1)系统设备:指在操作系统生成时已经登记在系统中的标准设备。如键盘、显示器、打印机等。(2)用户设备:指操作系统生成时未登记入系统的非标准设备。如鼠标、绘图仪、扫描仪等。2.按传输速率分类(1)低速设备:指传输速率为每秒钟几个字符至数百个字节设备,如键盘、鼠标、语音输入等。(2)中速设备:指传输速率为每秒钟数千个字节至数万个字节的设备,如针式打印机、激光打印机等。(3)高速设备:指传输速率为数兆字节的设备,如磁带机、磁盘机、光盘机等。3.按使用特性分类(1)存储设备:是计算机用来保存各种信息的设备,如磁盘、磁带等。(2)I/O设备:是向CPU传输信息或输出CPU加工处理信息的设备。例如:键盘,CRT(1)独占设备:指在一段时间内只允许一个用户(进程)访问的设备,大多数低速的I/O设备。如用户终端、打印机等属于这类设备。因为独占设备属于临界资源,所以多个并发进程必须互斥地访问独占设备。4.按设备共享属性分类(2)共享设备:指在一段时间内允许多个进程同时访问的设备。显然,共享设备必须是可寻址的和可随机访问的设备,典型的共享设备是磁盘。(3)虚拟设备:指通过虚拟技术将一台独占设备变换为若干台供多个用户(进程)共享的逻辑设备。一般可以利用假脱机(SPOOLing)技术实现虚拟设备。(1)字符设备:是指处理信息的基本单位是字符的设备,如键盘、打印机、显示器是字符设备。(2)块设备:是指处理信息的基本单位是字符块的设备,一般块的大小为512B~4KB,如磁盘、磁带等都是块设备。5.按信息交换单位分类二、设备管理的目标(1)提高设备的利用率。应尽量提高CPU与I/O设备之间的并行操作程度,主要利用的技术有:中断技术、DMA技术、通道技术和缓冲技术。(2)为用户提供方便、统一的界面。所谓方便,是指用户能独立于具体设备的复杂物理特性之外而方便使用设备。所谓统一,是指对不同的设备尽量使用统一的操作方式,例如各种字符设备用一种I/O操作方式。这就要求用户操作的是简便的逻辑设备,而具体的I/O物理设备有操作系统去实现,这种性能常常被称为设备的独立性。三、设备管理的功能(1)设备分配。按照设备类型和相应的分配算法决定将I/O设备分配给哪一要求使用该设备的进程。凡未分配到所需设备的进程被放入一个等待队列。(2)设备处理。设备处理程序实现CPU和设备控制器之间的通信。即当CPU向设备控制器发出I/O指令时,设备处理程序应启动设备进行I/O操作,并能对设备发来的中断请求作出及时的响应和处理。(3)实现其他功能。包括对缓冲区的管理功能及实现设备独立性。四、设备管理结构:1.逻辑I/O:抽象命令、网络协议栈、文件逻辑结构控制2.设备I/O:用户命令到设备操作序列转换,I/O缓冲3.调度和控制:•并发I/O访问调度•设备驱动•设备中断处理用户进程硬件5.2I/O控制方式程序轮询I/O控制方式中断I/O控制方式DMAI/O控制方式通道I/O控制方式在程序I/O方式中,由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费。在该方式中,CPU之所以要不断地测试I/O设备的状态,就是因为在CPU中无中断机构,使I/O设备无法向CPU报告它已完成了一个字符的输入操作。5.2.1程序I/O方式(Polling轮询方式)5.2.2中断驱动I/O控制方式在I/O设备输入每个数据的过程中,由于无须CPU干预,因而可使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理。可见,这样可使CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。例如,从终端输入一个字符的时间约为100ms,而将字符送入终端缓冲区的时间小于0.1ms。若采用程序I/O方式,CPU约有99.9ms的时间处于忙—等待中。采用中断驱动方式后,CPU可利用这99.9ms的时间去做其它事情,而仅用0.1ms的时间来处理由控制器发来的中断请求。可见,中断驱动方式可以成百倍地提高CPU的利用率。(a)程序I/O方式的流程(b)中断驱动方式的流程向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读入字向内存中写入字传送完毕?CPU→I/OI/O→CPU未就绪出错处理就绪I/O→CPUCPU→RAM未完完成执行下一条I/O指令向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读入字向内存中写入字传送完毕?CPU→I/OCPU做其它事中断I/O→CPU出错处理就绪I/O→CPUCPU→RAM未完完成执行下一条I/O指令5.2.3直接存储器访问DMAI/O控制方式1.DMA(DirectMemoryAccess)控制方式的引入中断驱动I/O方式虽然大大提高了主机的利用率,但是它以字(节)为单位进行数据传送,每完成一个字(节)的传送,控制器便要向CPU请求一次中断(做保存现场信息,恢复现场等工作),仍然占用了CPU的许多时间。这种方式对于高速的块设备的I/O控制显然是不适合。为了进一步减少CPU对I/O的干预,引入了直接存储器访问(DirectMemoryAccess)控制方式。直接存储器访问方式的特点是:①数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块;②所传送的数据是从设备直接送入内存的,或者相反;③仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。可见,DMA方式较之中断驱动方式,又是成百倍地减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。它需要使用一个专门的DMA控制器(DMAC)。DMAC中有控制、状态寄存器、传送字节计数器、内存地址寄存器和数据缓冲寄存器。2.DMA控制器的组成图5-8DMA控制器的组成DRMARDCCRI/O控制逻辑…主机—控制器接口控制器与块设备接口count内存CPU命令系统总线DMA控制器为了实现在主机与控制器之间成块数据的直接交换,必须在DMA(1)命令/状态寄存器CR。用于接收从CPU发来的I/O命令或有关控制信息,或设备的状态。(2)内存地址寄存器MAR。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。(3)数据寄存器DR。用于暂存从设备到内存,或从内存到设备的数据。(4)数据计数器DC。存放本次CPU要读或写的字(节)数。3.DMA工作过程图5-9DMA方式的工作流程设置AR和DC初值启动DMA传送命令挪用存储器周期传送数据字存储器地址增1字计数寄存器减1DC=0?请求中断在继续执行用户程序的同时,准备又一次传送否是DirectMemoryAccess(DMA)OperationofaDMAtransfer当DMA硬件控制磁盘与存储器之间进行信息交换时,每当磁盘把一个数据读入控制器的数据缓冲区时,DMA控制器取代CPU,接管地址总线的控制权,并按照DMA控制器中的存储器地址寄存器内容把数据送入相应的内存单元中。然后,DMA硬件自动地把传送字节计数器减1,把存储器地址寄存器加1,并恢复CPU对内存的控制权,DMA控制器对每一个传送的数据重复上述过程,直到传送字节计数器为“0”时,向CPU产生一个中断信号。5.3缓冲技术1.缓冲技术的基本实现思想:在CPU和外设之间设立缓冲区,用以暂存CPU与外设之间交换的数据,从而缓和CPU与外设速度不匹配所产生的矛盾。其实,凡是数据到达和离去速度不匹配的地方均可采用缓冲技术。例如,CPU与内存之间也需要设置缓冲,只不过设在cache里。2.引入缓冲的目的(1)改善CPU与I/O设备之间速度不匹配的矛盾(2)减少对CPU的中断频率,放宽对中断响应时间的限制(3)提高CPU与I/O设备之间的并行性3.缓冲的分类及使用缓冲有硬件缓冲(设备寄存器)和软件缓冲(内存区)之分。后者容量大,使用灵活,又可从不同角度划分成多类。比如,有专用和通用之分,还可根据系统设置的缓冲区个数,将缓冲技术分为:单缓冲、双缓冲、环形缓冲和缓冲池。缓冲操作主要由getbuffer()和putbuffer()过程实现,它们之间有同步约束。5.4设备分配及设备处理程序设备独立性设备分配设备处理1.设备独立性设备独立性是指用户程序所用设备与物理设备无关的特性,也称设备无关性。为此要求用户程序对I/O设备的请求不指定特定的设备,而采用逻辑设备名,程序执行时由系统完成逻辑设备到物理设备的映射,这很象程序对逻辑地址的使用。设备独立性带来的好处1)便于用户使用物理外围设备2)便于系统增减或变更外围设备3)便于实现I/O重定向;易于对付外设故障4)提高了设备分配的灵活性和利用率设备独立性的实现系统为每个进程设置一张“逻辑设备表LUT”,记录该进程所用逻辑设备对应的物理设备名和驱动程序入口地址。这是设备分配的一种结果记录,另外,设备分配还要修改全局性的“系统设备表”和“设备控制表”等数据结构。2.设备分配设备按共享属性可以分成独占设备、共享设备和虚拟设备三类相应的管理和分配外围设备的技术可分成:独占方式、共享方式和虚拟方式。设备分配思想当某进程向系统提出I/O请求时,设备分配程序按一定策略分配设备、控制器和通道,形成一条数据传输通路,以供主机和设备间信息交换。主要用于多通路系统,有静态分配和动态分配两种策略,而独占设备的分配还要考虑是否采用安全策略,共享设备分配要考虑调度性能。常用的I/O设备分配算法◆先来先服务◆优先级高者优先设备请求队列当多进程对同一设备提出I/O请求时,系统响应后,为它们分别建立I/O请求包,按先来先服务或者优先级高者优先的原则组织成设备请求队列。设备分配程序总是把设备首先分配给队首进程。具体分配是从设备类表或者系统设备表开始顺序查找相应的数据结构进行的,在单通路系统中多采用最先适应法,而在多通路系统中,则采用回溯策略。设备分配采用的数据结构:设备类表和设备表系统中拥有一张设备类表,每类设备对应于表中一栏,包括内容有:设备类、总台数、空闲台数、设备驱动程序入口和设备表起始地址等。每一类设备都有各自的设备表,用来登记这类设备中每一台设备的状态,包含的内容有:物理设备名、逻辑设备名、占有设备的进程号、已分配/未分配、好/坏等。采用通道结构的系统中设备分配采用的数据结构:系统设备表、通道控制表、控制器控制表和设备控制表系统建立一张系统设备表,记录配置在系统中的所有物理设备的情况。每个通道、控制器、设备各设置一张表,记录各自的地址(标识符)、状态(忙/闲)、等待获得此部件的进程队列指针、及一次分配后相互勾链的指针,以备分配和执行I/O时使用。具体内容如下:设备控制块DCB(设备控制表DCT)。每个设备一张表,记录本设备的使用情况,表目内容:设备类型、设备标识符、设备状态、与此设备相连的COCT、重复执行的次数或时间、等待队列的队首和队尾指针控制器控制块COCB(控制器控制表COCT)通道控制块CHCB(通道控制表CHCT)系统设备表SDT。整个系统一张表,记录系统中所有I/O设备的信息,表目包括:设备类型、设备标识符、设备驱动程序入口、DCT表指针等,是分配程序首先查找的数据结构。3.设备处理——即设备驱动(i)设备驱动程序系统为每类设备编制设备驱动程序以控制I/O传输任务:主要负
本文标题:新设备管理
链接地址:https://www.777doc.com/doc-1311662 .html