OperatingSystemPage12020/1/20OperatingSystemPage22020/1/20第五章设备管理I/O系统是计算机系统的重要组成部分I/O系统包括用于实现信息输入、输出和存储功能的设备和相应的控制器设备管理的基本任务是完成用户提出的I/O请求,提高I/O速率以及改善I/O的利用率设备管理的主要功能有缓冲区管理、设备分配、设备处理、虚拟设备及实现设备独立性OperatingSystemPage32020/1/20第五章设备管理I/O系统I/O控制方式缓冲管理设备分配设备处理磁盘存储器管理OperatingSystemPage42020/1/20I/O系统I/O设备设备控制器I/O通道总线系统OperatingSystemPage52020/1/20I/O设备I/O设备的类型按信息交换的单位分类块设备(BlockDevice)信息的存取总是以数据块为单位可寻址磁盘,每个盘块的大小为512B~4KB字符设备(CharacterDevice)基本单位是字符不可寻址交互式终端、打印机OperatingSystemPage62020/1/20I/O设备I/O设备的类型按资源分配角度分类(共享属性)独占设备多数低速设备属独占设备,如打印机共享设备可供多个进程同时访问,如磁盘虚拟设备通过虚拟技术将一台独占设备变换为若干个逻辑设备,供若干个进程同时使用临界资源OperatingSystemPage72020/1/20设备控制器设备控制器是CPU与I/O设备之间的接口接收CPU发来的命令,控制一个或多个I/O设备工作,以实现I/O设备和计算机之间的数据交换,减轻CPU的负担设备控制器是一个可编址的设备设备控制器分类控制字符设备控制块设备OperatingSystemPage82020/1/20设备管理功能设备分配按设备类型和分配算法将I/O设备、控制器及通道分配给用户进程对不能得到资源的进程进行阻塞缓冲区管理在CPU和设备之间进行速度匹配设备的I/O操作生成通道程序并启动和控制通道完成I/O操作未设置通道的系统应对相应设备I/O进行必要的处理OperatingSystemPage92020/1/20第五章设备管理I/O系统I/O控制方式缓冲管理设备分配设备处理磁盘存储器管理OperatingSystemPage102020/1/20I/O控制方式程序I/O方式中断驱动I/O方式直接存储器访问DMAI/O控制方式I/O通道控制方式OperatingSystemPage112020/1/20程序I/O方式处理机对I/O设备的控制采用程序I/O(ProgrammedI/O)方式,或称为忙-等方式CPU通过I/O测试指令测试设备接口中的状态位,当为“忙”时则一直测试,当为“闲”时,可进行数据传送,每次传送一个字符CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中外设不能合理使用,也无法支持多道程序OperatingSystemPage122020/1/20I/O控制方式程序I/O方式中断驱动I/O方式直接存储器访问DMAI/O控制方式I/O通道控制方式OperatingSystemPage132020/1/20中断驱动I/O方式中断驱动(InterruptDriven)方式,即当某进程要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务设备控制器按命令要求去控制指定的I/O设备,完成后,通过中断向CPU发送一中断信号在I/O设备输入数据的过程中,无须CPU干预,每次传送一个字符OperatingSystemPage142020/1/20I/O控制方式程序I/O方式中断驱动I/O方式直接存储器访问DMAI/O控制方式I/O通道控制方式OperatingSystemPage152020/1/20DMA方式特点数据传输的基本单位是数据块所传送的数据是从设备直接送入内存的,或者相反仅在传送一个或多个数据块的开始和结束时才需CPU干预除了具有中断机构外,还增加了DMA控制器数据传送方向、存放数据的内存地址及传送数据长度需CPU控制每个设备需配置一个DMA控制器OperatingSystemPage162020/1/20DMA方式DMA与中断方式的主要区别中断方式在每个数据传送完后中断CPU,DMA方式则是在所要求传送的一批数据全部传送完时中断CPU中断方式的数据传送时在中断处理时由CPU控制完成的,而DMA则是在DMA控制下完成的DMA方式的局限性:传送方向、始址、长度等由CPU控制,一个设备一个DMA,成本高OperatingSystemPage172020/1/20I/O控制方式程序I/O方式中断驱动I/O方式直接存储器访问DMAI/O控制方式I/O通道控制方式OperatingSystemPage182020/1/20I/O通道控制方式I/O通道控制方式的引入与DMA类似,是以内存为中心的数据交换方式进一步减少了CPU的干预,把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预一个通道控制多台设备CPU仅在I/O操作的开始和结束时花费少量时间处理与I/O有关的工作可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率OperatingSystemPage192020/1/203.“瓶颈”问题图5-4单通路I/O系统设备1设备2设备3设备4设备5设备6设备7控制器1控制器2控制器3控制器4通道1通道2存储器OperatingSystemPage202020/1/20图5-5多通路I/O系统I/O设备控制器1控制器2通道1通道2存储器I/O设备I/O设备I/O设备OperatingSystemPage212020/1/20第五章设备管理I/O系统I/O控制方式缓冲管理设备分配设备处理磁盘存储器管理OperatingSystemPage222020/1/20缓冲管理缓冲的引入单缓冲和双缓冲循环缓冲缓冲池(BufferPool)OperatingSystemPage232020/1/20缓冲的引入缓和CPU与I/O设备间速度不匹配的矛盾数据到达速率与其离去速率不同减少对CPU的中断频率,放宽对CPU中断响应时间的限制1位缓冲9.6Kb/s(a)中断CPU的频率为9.6Kb/s,每100s中断一次CPUCPU必须在100s内响应,否则数据会被冲掉8位缓冲寄存器送内存9.6Kb/s(b)中断CPU的频率降低为9.6Kb/8OperatingSystemPage242020/1/20缓冲的引入8位缓冲寄存器9.6Kb/s送内存(c)提高CPU和I/O设备之间的并行性提高系统的吞吐量和设备的利用率每800s中断一次CPUOperatingSystemPage252020/1/20缓冲管理缓冲的引入单缓冲和双缓冲循环缓冲缓冲池(BufferPool)OperatingSystemPage262020/1/20设备分配设备分配中的数据结构设备分配时应考虑的因素设备独立性独占设备的分配程序SPOOLing技术OperatingSystemPage272020/1/20设备处理I/O系统层次结构OperatingSystemPage282020/1/205.4.4设备独立性设备独立性(DeviceIndependence)的概念定义:是指用户在编制程序时所使用的设备与实际使用的设备无关。即应用程序独立于具体使用的物理设备为了实现设备独立性而引入了逻辑设备和物理设备这两个概念在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称系统须具有将逻辑设备名称转换为某物理设备名称的功能,这非常类似于存储器管理中所介绍的逻辑地址和物理地址的概念OperatingSystemPage292020/1/20设备独立性设备独立性的优点设备分配时的灵活性系统可将该逻辑设备类中的任一台分配给进程使用所有设备均占用时才阻塞易于实现I/O重定向所谓I/O重定向,指用于I/O操作的设备可以更换,而不必改变应用程序如调试程序时输出到屏幕,而实际应用时改为输出到打印机OperatingSystemPage302020/1/20设备独立性设备独立性软件设备驱动程序是一个与硬件(或设备)紧密相关的软件。设备驱动程序一方面可以定制以适合各种设备,另一方面也提供了一组标准接口。设备驱动程序的作用是为内核I/O子系统隐藏设备控制器之间的差异为了实现设备独立性,必须在设备驱动程序上设置一层软件,称为设备独立性软件OperatingSystemPage312020/1/20设备独立性逻辑设备名到物理设备名映射的实现逻辑设备表(LgicalUnitTable)用于实现将应用程序中的逻辑设备名映射为物理设备名逻辑设备名物理设备名驱动程序入口地址/dev/tty/dev/printer3510242046………逻辑设备名/dev/tty/dev/printer…系统设备表指针35(a)(b)LUT的设置可采取两种方式:①整个系统设置一张LUT。不允许在LUT中具有相同的逻辑设备名,这就是要求所有用户不使用相同的逻辑设备名。②为每个用户设置一张LUT。用户建立一个进程,同时也为之建立一张LUT。OperatingSystemPage322020/1/205.5设备分配设备分配中的数据结构设备分配时应考虑的因素设备独立性独占设备的分配程序SPOOLing技术OperatingSystemPage332020/1/205.4.1设备分配中的数据结构1.设备控制表DCT2.控制器控制表COCT3.通道控制表CHCT4.系统设备表SDTOperatingSystemPage342020/1/205.5.1设备分配中的数据结构1.设备控制表DCT设备类型type设备标识符:deviceid设备状态:等待/不等待忙/闲指向控制器表COCT的指针重复执行次数或时间设备队列的队首指针DCT1DCT2DCTn设备控制表集合每个设备一张,记录本设备的情况正使用,则忙标志置1;若与其相连的控制器或通道忙,则等待标志置1请求本设备未满足的进程PCB队列OperatingSystemPage352020/1/205.5.1设备分配中的数据结构2.控制器控制表、通道控制表控制器标识符:controllerid控制器状态:忙/闲与控制器连接的通道表指针控制器队列的队首指针控制器队列的队尾指针通道标识符:channelid通道状态:忙/闲与通道连接的控制器表首址通道队列的队首指针通道队列的队尾指针(a)控制器表COCT(b)通道表CHCT一个控制器一张一个通道一张OperatingSystemPage362020/1/205.5.1设备分配中的数据结构系统设备表SDT系统设备表SDT表目1…表目i…设备类设备标识符DCT驱动程序入口整个系统一张,记录已被连接到系统中的所有物理设备的情况OperatingSystemPage372020/1/205.5设备分配设备分配中的数据结构设备分配时应考虑的因素设备独立性独占设备的分配程序SPOOLing技术OperatingSystemPage382020/1/205.5.2设备分配时应考虑的因素1.设备的固有属性独占性一段时间内,只允许一个进程独占,大多数低度速I/O设备都属于独享设备共享性允许多个进程同时共享,如磁盘、磁鼓之类的外存储器,既具有很能大的存储容量,其定位操作的时间又短可虚拟性独占设备经某种技术处理,改造成虚拟设备,把一台输入机虚拟为几台“虚拟”的输入机。例如:为了提高设备