第五章设备管理第五章设备管理5.2I/O控制方式5.3缓冲管理5.4I/O软件5.5设备分配5.6磁盘存储器管理5.1I/O系统5.1I/O系统引述在计算机系统中,除了处理机和存储器外,还有用于实现信息输入、输出和存储的设备,以及相应的设备控制器,I/O通道或I/O处理机等。设备管理的对象主要是I/O设备,另外还有设备控制器和I/O通道。设备管理的基本任务完成用户提出的I/O请求,提高I/O速率以及提高I/O设备的利用率。I/O设备种类多,且特性和操作方式相差很大,使得设备管理成为OS中最繁杂且与硬件最紧密相关的部分。I/O性能经常成为系统性能的瓶颈。5.1I/O系统5.1.1I/O设备1、I/O设备的类型(1)按使用特性分类存储设备:如磁盘。输入/输出设备:»输入:如键盘、鼠标、扫描仪、摄像头、传感器»输出:如打印机显示器、音响输出。(2)按传输速率分类低速设备:速度每秒几字节至数百个字节»如键盘、鼠标器、语音的输入输出等设备。中速设备:每秒数千个字节至数十万个字节»如行式打印机、激光打印机等。高速设备:每秒数百个千字节至千兆字节»如磁带机、磁盘机、光盘机等。5.1I/O系统5.1.1I/O设备1、I/O设备的类型(3)按信息交换的单位分类块设备:以数据块为单位存取信息,如磁盘。»传输速率高几兆位每秒,可寻址字符设备:以字符为单位存取信息,如键盘、打印机等。»传输速率低,几百至几千字节,不可寻址,常采用中断驱动方式进行输入输出。(4)按共享属性分类独占设备:一段时间内存只允许一个进程访问的设备。共享设备:一段时间内允许多个进程同时访问的设备。虚拟设备:通过虚拟技术将一台独占设备变幻成多台逻辑设备,供多个进程同时使用。5.1I/O系统5.1.1I/O设备2、I/O设备与控制器之间的接口通常,设备并不是直接与CPU进行通信,而是与设备控制器通信。因此,在设备与设备控制器之间应有一接口。数据信号线:传输数据信号控制信号线:发送控制信号,规定设备执行的操作状态信号线:指示设备当前状态信号缓冲转换器控制逻辑信号数据数据信号线状态信号线控制信号线至设备控制器I/O设备5.1I/O系统5.1.2设备控制器1、基本概念设备控制器是CPU与I/O设备间的接口设备控制器接收从CPU发来的命令,并控制I/O设备工作,使处理机从繁杂的设备控制事务中解脱出来。设备控制器常做成印刷电路卡形式,称为接口卡,如显卡、声卡等。设备控制器可控制一个或多个同类I/O设备。5.1I/O系统5.1.2设备控制器2、基本功能(1)接收和识别命令(2)数据交换(3)标识和报告设备的状态(4)地址识别(5)数据缓冲(6)差错控制5.1I/O系统5.1.2设备控制器3、设备控制器的组成设备控制器处于CPU与设备之间,它既要与CPU通信,又要与设备通信,还应具有按照CPU所发来的命令去控制设备工作的功能。由以下三部分组成:设备控制器与CPU的接口设备控制器与设备的接口I/O逻辑设备控制器CPU设备1设备i…5.1I/O系统5.1.2设备控制器3、设备控制器的组成数据寄存器控制/状态寄存器数据线I/O逻辑…控制器与设备接口1控制器与设备接口i数据状态控制数据状态控制…地址线控制线CPU与控制器接口控制器与设备接口设备控制器设备1设备iCPU…5.1I/O系统5.1.3I/O通道1、I/O通道的引入虽然在CPU与I/O设备之间增加了设备控制器,但当外设很多时,CPU的负担仍很重。为此,在CPU和设备控制器之间又增设了I/O通道。其目的是使一些原来由CPU处理的I/O任务转由通道来承担,从而进一步把CPU从繁杂的I/O任务中解脱出来。I/O通道是一种特殊的处理机,专门负责数据的输入输出操作。具有执行I/O指令的能力,I/O指令用来控制I/O操作。5.1I/O系统5.1.3I/O通道2、I/O通道的类型字节多路通道主通道以字节为单位传送数据,多个子通道与每个设备连接,子通道按时间片轮转方式共享主通道。抢占式。数组选择通道主通道按数组方式传送数据,只有一个子通道连接设备,子通道非抢占式使用通道传输数据。数组多路通道主通道按数组方式传送数据,多个子通道与设备连接,子通道按时间片轮转方式共享主通道。5.1I/O系统5.1.3I/O通道2、I/O通道的类型字节多路通道的工作原理控制器A控制器B控制器C控制器D控制器N…A1A2A3…子通道AB1B2B3…子通道BC1C2C3…子通道CN1N2N3…子通道NA1B1C1…A2B2C2…设备5.1I/O系统5.1.3I/O通道3、“瓶颈”问题由于通道价格昂贵,致使机器中所设置的通道数量势必较少,这又往往使它成为I/O的瓶颈,进而造成整个系统吞吐量的下降。设备1设备2设备3设备4设备5设备6设备7控制器1控制器2控制器3控制器4通道1通道2存储器5.1I/O系统5.1.3I/O通道3、“瓶颈”问题解决方案:增加设备到主机间的通路而不增加通道。I/O设备控制器1控制器2通道1通道2存储器I/O设备I/O设备I/O设备5.1I/O系统5.1.4总线系统计算机系统中的各部件,如cpu、存储器及各种I/O设备之间的联系,都是通过总线实现的。CPU存储器磁盘控制器打印机控制器…其它控制器磁盘驱动器打印机系统总线5.1I/O系统5.1.4总线系统与主板连接的接口主要ISA、EISA、VESA、PCI、AGP等几种。ISA和EISA总线带宽窄、速度慢,VESA总线扩展能力差,这三种总线已经被市场淘汰。现在常见的是PCI和AGP接口。PCI总线接口,以1/2或1/3的系统总线频率工作,如果要在处理图像数据的同时处理其它数据,那么流经PCI总线的全部数据就必须分别地进行处理,这样势必存在数据滞留现象,在数据量大时,PCI总线就显得很紧张。AGP接口可以解决这个问题,它是一种专用的显示接口,具有独占总线的特点,只有图像数据才能通过AGP端口,数据传输率高。5.1I/O系统5.1.4总线系统5.1I/O系统5.1.4总线系统5.1I/O系统5.1.4总线系统第五章设备管理5.2I/O控制方式5.3缓冲管理5.4I/O软件5.5设备分配5.6磁盘存储器管理5.1I/O系统5.2I/O控制方式随着计算机技术的发展,I/O控制方式也在不断地发展。I/O控制方式的发展经历了以下四个阶段:5.2.1程序I/O方式5.2.2中断驱动I/O控制方式5.2.3直接存储器访问(DMA)I/O控制方式5.2.4I/O通道控制方式5.2I/O控制方式5.2.1程序I/O方式又称忙—等待方式。在该方式中,由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费。5.2I/O控制方式5.2.2中断驱动I/O控制方式在I/O设备输入每个数据过程中,无须CPU干预,可使CPU与I/O设备并行工作。仅当传输完一个数据时,才需CPU花极短时间处理中断。这样可使CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。这种方式适用于打印机、键盘等以字符为单位传送的字符设备。5.2I/O控制方式5.2.3直接存储器访问(DMA)I/O控制方式虽然中断驱动I/O比程序I/O方式更有效,但它是以字(节)为单位进行I/O的,若将这种方式用于块设备的I/O,显然将会是极其低效的。为进一步减少CPU对I/O的干预,引入了直接存储器访问(DirectMemoryAccess)方式。DMA控制方式适用于磁盘等块设备的I/O。5.2I/O控制方式5.2.3直接存储器访问(DMA)I/O控制方式特点①数据传输的基本单位是数据块;②所传送的数据是从设备直接送入内存的,或者相反;③仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。可见,DMA方式较之中断驱动方式,又是成百倍地减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。5.2I/O控制方式5.2.3直接存储器访问(DMA)I/O控制方式DMA控制器的组成①主机与DMA控制器的接口;②DMA控制器与块设备的接口;③I/O控制逻辑;DRMARDCCRI/O控制逻辑...主机—控制器接口控制器与块设备接口count内存CPU命令系统总线DMA控制器5.2I/O控制方式5.2.3直接存储器访问(DMA)I/O控制方式DMA从处理器那里取得控制权,通过系统总线在主存和设备之间传输数据DMA使用“周期挪用技术”挪用一个总线周期来传输数据,使得CPU的执行变得慢了。5.2I/O控制方式5.2.4I/O通道控制方式采用DMA方式可一次性读取一个数据块的内容,但当我们需要一次去读多个数据块且将它们分别传送到不同的内存区域时,则需要CPU进行多次中断来处理。I/O通道方式是DMA方式的发展,可一次完成多个数据块的读/写及有关的控制和管理,期间不需要CPU的干预,从而实现CPU、通道、I/O设备三者并行操作,提高系统资源利用率。例如,当CPU要完成一组相关的读(或写)操作及有关控制时,只需向I/O通道发送一条I/O指令,以给出其所要执行的通道程序的首址和要访问的I/O设备,通道接到该指令后,通过执行通道程序便可完成CPU指定的I/O任务。第五章设备管理5.2I/O控制方式5.3缓冲管理5.4I/O软件5.5设备分配5.6磁盘存储器管理5.1I/O系统5.3缓冲管理5.3.1缓冲的引入目的(1)缓和CPU与I/O设备间速度不匹配的矛盾。(2)减少对CPU的中断频率,放宽对CPU中断响应时间的限制。(3)提高CPU和I/O设备之间的并行性。缓冲技术单缓冲双缓冲循环缓冲缓冲池5.3缓冲管理5.3.2单缓冲和双缓冲1、单缓冲单缓冲是OS提供的最简单的一种缓冲形式。每当一个用户进程发出一I/O请求时,操作系统便在主存中为之分配一缓冲区。在块设备输入时,缓冲区用于暂存块设备输入的一块数据;在字符设备输入时,缓冲区用于暂存用户输入的一行数据。5.3缓冲管理5.3.2单缓冲和双缓冲1、单缓冲系统对每一块数据的处理时间表示为Max(C,T)+M。工作区处理(C)缓冲区传送(M)输入(T)I/O设备(a)T1M1C1T2M2C2T3M3C3T4t(b)用户进程5.3缓冲管理5.3.2单缓冲和双缓冲2、双缓冲为了加快输入、输出速度和提高设备利用率,又引入了双缓冲工作方式,也称为缓冲对换(BufferSwapping)方式。在设备输入时,先将数据输入第一缓冲区,装满后便转向第二缓冲区。此时操作系统可从第一缓冲区中移出数据送用户进程区,接着由CPU对数据进行计算。5.3缓冲管理5.3.2单缓冲和双缓冲2、双缓冲在双缓冲时,系统处理一块数据的时间可粗略地认为是Max(C,T)。工作区用户进程缓冲区1缓冲区2I/O设备T1(缓冲1)M1C1M2C2M3C3T2(缓冲2)T3(缓冲3)M4C4T4(缓冲4)(a)(b)5.3缓冲管理5.3.2单缓冲和双缓冲2、双缓冲当两台机器之间通信时,如果采用单缓冲技术,它们之间的任一时刻都只能实现单方向的数据传输。为了实现双向数据传输,必须在两台机器中都设置两个缓冲区。缓冲区缓冲区A机B机(a)单缓冲发送缓冲区接收缓冲区接收缓冲区发送缓冲区A机B机(b)双缓冲5.3缓冲管理5.3.3循环缓冲当输入、输出或生产者--消费者的速度相差甚远时,双缓冲的效果则不够理想,但可以增加缓冲区数量而使情况有所改善。因此,引入了多缓冲,并将多缓冲组织成循环缓冲形式。5.3缓冲管理5.3.3循环缓冲循环缓冲的组成多个缓冲区:每个缓冲区大小相同,分成三类:空缓冲区R、已装满数据的缓冲区G、现行工作缓冲区C多个指针Nextg