您好,欢迎访问三七文档
1第七章I/O设备管理2本章内容7.1I/O设备管理概述7.2I/O系统7.3I/O软件7.4设备分配与回收7.5缓冲管理7.6磁盘存储管理37.1I/O设备管理概述7.1.1I/O设备的分类I/O设备的类型繁多,从OS观点看,其重要的性能指标有:设备使用特性、数据传输速率、数据的传输单位、设备共享属性等。因而可从不同角度对它们进行分类。1)按设备的使用特性分类按设备的使用特性,可将设备分为两类。存储设备,也称外存或后备存储器、辅助存储器输入/输出设备47.1.1I/O设备的分类2)按传输速率分类按传输速度的高低,可将I/O设备分为三类。第一类是低速设备,这是指其传输速率仅为每秒钟几个字节至数百个字节的一类设备。属于低速设备的典型设备有键盘、鼠标器、语音的输入和输出等设备。第二类是中速设备,这是指其传输速率在每秒钟数千个字节至数十万个字节的一类设备。典型的中速设备有行式打印机、激光打印机等。第三类是高速设备,这是指其传输速率在数百个千字节至千兆字节的一类设备。典型的高速设备有磁带机、磁盘机、光盘机等。57.1.1I/O设备的分类3)按信息交换的单位分类按信息交换的单位,可将I/O设备分成两类。块设备(BlockDevice),这类设备用于存储信息。由于信息的存取总是以数据块为单位,故而得名。它属于有结构设备。典型的块设备是磁盘,字符设备(CharacterDevice),用于数据的输入和输出。其基本单位是字符,故称为字符设备。它属于无结构类型。字符设备的种类繁多,如交互式终端、打印机等。67.1.1I/O设备的分类4)按设备的共享属性分类(1)独占设备。这是指在一段时间内只允许一个用户(进程)访问的设备,即临界资源。独占设备的分配有可能引起进程死锁。(2)共享设备。这是指在一段时间内允许多个进程同时访问的设备。当然,对于每一时刻而言,该类设备仍然只允许一个进程访问。典型的共享设备是磁盘。(3)虚拟设备。这是指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户(进程)同时使用。77.1I/O设备管理概述7.1.2I/O设备的差异性87.1I/O设备管理概述7.1.3I/O设备管理的任务和功能I/O设备管理是操作系统中最具多样性和复杂性的部分,其主要任务如下:①为并发执行的多个进程分配I/O设备,完成数据传输任务。②控制I/O设备的数据传输。③为用户提供一个友好的透明接口,把用户和设备硬件特性分开。④提高设备和设备之间、CPU和设备之间的并行执行程度,以期使系统资源获得最佳使用效率。97.1I/O设备管理概述7.1.3I/O设备管理的任务和功能为了完成上述主要任务,I/O设备管理程序一般要提供下述功能。①设备分配功能。②设备映射功能。③提供与进程管理系统的接口,实现设备驱动。④实现设备和设备、设备和CPU等之间的并行操作。⑤进行I/O缓冲区管理。107.2I/O系统7.2.1I/O系统结构1.大型机I/O系统结构11“瓶颈”问题由于通道价格昂贵,致使机器中所设置的通道数量势必较少,这往往又使它成了I/O的瓶颈,进而造成整个系统吞吐量的下降。解决“瓶颈”问题的最有效的方法,便是增加设备到主机间的通路而不增加通道。127.2.1I/O系统结构1.大型机I/O系统结构137.2.1I/O系统结构2.微型机I/O系统结构147.2.2设备控制器设备控制器的基本结构157.2.3I/O控制方式1.查询等待控制方式早期的计算机系统中,由于无中断机构,处理机对I/O设备的控制采取程序I/O(ProgrammedI/O)方式,或称为忙—等待方式,即在处理机向控制器发出一条I/O指令启动输入设备输入数据时,要同时把状态寄存器中的忙/闲标志busy置为1,然后便不断地循环测试busy。当busy=1时,表示输入机尚未输完一个字(符),处理机应继续对该标志进行测试,直至busy=0,表明输入机已将输入数据送入控制器的数据寄存器中。于是处理机将数据寄存器中的数据取出,送入内存指定单元中,这样便完成了一个字(符)的I/O。接着再去启动读下一个数据,并置busy=1。161.查询等待控制方式172.中断控制方式现代计算机系统中,都毫无例外地引入了中断机构,致使对I/O设备的控制,广泛采用中断驱动(InterruptDriven)方式,即当某进程要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务。设备控制器于是按照该命令的要求去控制指定I/O设备。此时,CPU与I/O设备并行操作。下图(b)示出了中断驱动方式的流程。在I/O设备输入每个数据的过程中,由于无需CPU干预,因而可使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理。提高了整个系统的资源利用率及吞吐量。182.中断控制方式193.DMA控制方式(1)DMA(DirectMemoryAccess)控制方式的引入虽然中断驱动I/O比程序I/O方式更有效,但须注意,它仍是以字(节)为单位进行I/O的,每当完成一个字(节)的I/O时,控制器便要向CPU请求一次中断。如果将这种方式用于块设备的I/O,显然是极其低效的。为了进一步减少CPU对I/O的干预而引入了直接存储器访问方式。该方式的特点是:数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块;203.DMA控制方式所传送的数据是从设备直接送入内存的,或者相反;仅在传送一个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。可见,DMA方式较之中断驱动方式,又是成百倍地减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。213.DMA控制方式(2)DMA控制器的组成22(2)DMA控制器的组成为了实现在主机与控制器之间成块数据的直接交换,必须在DMA控制器中设置如下四类寄存器:(1)命令/状态寄存器(CR)。用于接收从CPU发来的I/O命令,或有关控制信息,或设备的状态。(2)内存地址寄存器(MAR)。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。(3)数据寄存器(DR)。用于暂存从设备到内存,或从内存到设备的数据。(4)数据计数器(DC)。存放本次CPU要读或写的字(节)数。23(3)DMA工作过程我们以从磁盘读入数据为例,来说明DMA方式的工作流程。当CPU要从磁盘读入一数据块时,便向磁盘控制器发送一条读命令。该命令被送到其中的命令寄存器(CR)中。同时,还须发送本次要将数据读入的内存起始目标地址,该地址被送入内存地址寄存器(MAR)中;本次要读数据的字(节)数则送入数据计数器(DC)中,还须将磁盘中的源地址直接送至DMA控制器的I/O控制逻辑上。然后,启动DMA控制器进行数据传送,以后,CPU便可去处理其它任务。此后,整个数据传送过程便由DMA控制器进行控制。244.通道方式(1)I/O通道控制方式的引入虽然DMA方式比起中断方式来已经显著地减少了CPU的干预,但CPU每发出一条I/O指令,也只能去读(或写)一个连续的数据块。当一次去读多个数据块且将它们分别送到不同的内存区域,或者相反时,则须由CPU发出多条I/O指令才能完成。I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预。同时,又可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。254.通道方式I/O通道是一种特殊的处理机,它具有执行I/O指令的能力,并通过执行通道(I/O)程序来控制I/O操作。但I/O通道又与一般的处理机不同,主要表现在以下两个方面:一是其指令类型单一;二是通道没有自己的内存,与CPU共享内存。264.通道方式(1)通道类型①字节多路通道(ByteMultiplexorChannel)这是一种按字节交叉方式工作的通道。它通常都含有许多非分配型子通道,每一个子通道连接一台I/O设备,并控制该设备的I/O操作。这些子通道按时间片轮转方式共享主通道。只要字节多路通道扫描每个子通道的速率足够快,而连接到子通道上的设备的速率不是太高时,便不致丢失信息。下图示出了字节多路通道的工作原理。它所含有的多个子通道A,B,C,D,E,…,N,…分别通过控制器各与一台设备相连。假定这些设备的速率相近,且都同时向主机传送数据。设备A所传送的数据流为A1A2A3…;设备B所传送的数据流为B1B2B3…27图字节多路通道的工作原理控制器A控制器B控制器C控制器D控制器N…A1A2A3…子通道AB1B2B3…子通道BC1C2C3…子通道CN1N2N3…子通道NA1B1C1…A2B2C2…设备…把这些数据流合成后(通过主通道)送往主机的数据流为A1B1C1D1…A2B2C2D2…A3B3C3D3…。284.通道方式②数组选择通道(BlockSelectorChannel)字节多路通道不适于连接高速设备,这推动了按数组方式进行数据传送的数组选择通道的形成。这种通道虽然可以连接多台高速设备,但由于它只含有一个分配型子通道,在一段时间内只能执行一道通道程序,控制一台设备进行数据传送,致使当某台设备占用了该通道后,便一直由它独占,即使是它无数据传送,通道被闲置,也不允许其它设备使用该通道,直至该设备传送完毕释放该通道。可见,这种通道的利用率很低。294.通道方式③数组多路通道(BlockMultiplexorChannel)数组选择通道虽有很高的传输速率,但它却每次只允许一个设备传输数据。数组多路通道是将数组选择通道传输速率高和字节多路通道能使各子通道(设备)分时并行操作的优点相结合而形成的一种新通道。它含有多个非分配型子通道,因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率。也正因此,才使该通道能被广泛地用于连接多台高、中速的外围设备,其数据传送是按数组方式进行的。304.通道方式数组多路通道317.3I/O软件7.3.1I/O软件的设计目标I/O软件设计时主要考虑以下几个问题:(1)独立性I/O软件一般分为4层,它们分别是中断处理程序、设备驱动程序、与设备无关的系统软件和用户级软件。分层时的细节处理依赖于系统目标,并没有严格的划分。只要有利于独立性这一目标,操作系统设计者可在结构上作出不同的安排。(2)统一命名(3)出错处理(4)同步(阻塞)—异步(中断驱动)传输327.3I/O软件7.3.2I/O软件层次331.中断处理程序中断是指计算机在执行期间,系统内发生非正常或非预期的急需处理事件,使得CPU暂时中断正在执行的进程,而转去执行相应的事件处理程序,处理完毕后返回中断处继续执行原进程或者调度新进程执行。狭义上讲,中断指外部中断。外部中断包括I/O设备发出的I/O中断、其他外部信号中断(例如用户按下ESC键)、各种定时器引起的时钟中断、调试程序中设置断点引起的调试中断等342.设备驱动程序设备驱动程序又称设备处理程序,其主要任务是把用户提交的逻辑I/O请求转化为物理I/O操作的启动和执行,如将设备名转化为端口地址、逻辑记录转化为物理记录、逻辑操作转化为物理操作等,并将由设备控制器发送来的信号传递给上层软件。设备驱动程序是I/O进程与设备控制器之间的通信程序,它包括了所有与设备相关的代码,由于它常以进程形式存在,所以也简称为设备驱动进程352.设备驱动程序设备驱动程序主要具有以下几个功能:①将接收到的抽象要求转换为具体要求。②检查用户I/O请求的合法性,了解I/O设备的状态,传递I/O操作的有关参数。③发出I/O命令,启动分配到的I/O设备,完成指定的I/O操作。④及时响应由控制器或通道发来的中断请求,并根据中断请求的类型(正常、异常结束的中断或其他类型中断)调用相应的中断处理程序进行处理。⑤对于设置通道的计算机系统,设备驱动程序还应能根据用户的I/O请求,自动构造通道程序,通道通过执行通道程序来完成相
本文标题:第七章IO设备管理
链接地址:https://www.777doc.com/doc-1314425 .html