第五章设备管理•第一节输入输出系统•第二节输入输出控制方式•第三节缓冲管理•第四节设备分配•第五节设备处理•第六节磁盘存储管理第一节输入输出系统•I/O设备•设备控制器•I/O通道•总线系统I/O设备•I/O设备的类型–按传输速率分类:低速、中速、高速设备–按信息交换单位分类:块、字符设备–按设备的共享属性:独占、共享、虚拟设备•设备与控制器之间的接口–接口芯片、接口(电路)板(卡)–信号线:数据、控制、状态信号线设备控制器•基本功能–接收和识别来自CPU的各种命令–实现CPU与设备控制器、设备控制器与设备之间的数据交换–记录设备的状态供CPU查询–识别所控制的各个设备的地址•组成–设备控制器与处理机的接口–设备控制器与设备的接口–I/O逻辑设备控制器地址识别数据缓冲差错控制CPU与控制器接口控制器与设备接口数据线地址线控制线数据寄存器控制/状态寄存器I/O逻辑控制器与设备接口1控制器与设备接口n………数据状态控制数据状态控制I/O通道•通道的引入–建立独立的I/O操作,进一步减轻CPU的负担–I/O处理机,通过执行通道程序来控制I/O操作–与一般处理的区别1)指令类型单一,主要局限于与I/O操作相关的指令2)通道程序放在内存,即与CPU共享内存空间。•通道的类型–字节多路通道:多路分时复用一个主通道,多个子通道,子通道按时间片轮转法使用主通道,信息按字节传输–数组选择通道:只有一个子通道,由某台设备独占,数据成组(块)传送;–数组多路通道:上述两种技术的结合多个子通道,按数组方式传送数据具有较高的数据传输速率和通道利用率•“瓶颈”问题–通道资源有限,系统需要同时启动的设备可能较多;–解决方法:增加设备到主机间的通路。I/O通道存储器通道1通道2控制器1控制器2I/O设备1I/O设备2I/O设备3I/O设备4CPU总线系统•系统总线–连接CPU、存储器、I/O设备(接口)等的纽带;–总线的性能评价:时钟频率、带宽、传输速率。•ISA和EISA总线–ISA(IndustryStandardArchitecture),1984年,带宽:8位16位,最高传输速率:2~16Mbps,能连接12台设备。–EISA(ExtendedISA),1989年,带宽:32位,最高传输速率:32Mbps,能连接12台设备。•局部总线(LocalBus)–将多媒体卡、高速LAN网卡、高性能图形板等从ISA总线上卸下来,在通过局部总线控制器直接接到CPU总线上,使之与高速CPU总线相匹配。–VESA(VideoElectronicStandardAssociation),1991年,带宽:32位,最高传输速率:132Mbps,能连接2~4台设备,控制器中无缓冲;–PCI(PeripheralComponentInterface),1992年和1995年,V2.1支持带宽:64位,最高传输速率:500Mbps,能支持10种外设,有一个复杂的管理层,管理层中配有数据缓冲。第二节输入输出控制方式•程序I/O方式•中断驱动I/O方式•DMA控制方式•I/O通道控制方式将CPU从繁忙的I/O操作中解脱出来程序I/O方式•忙——等待方式–CPU向控制器发指令,启动I/O设备,同时把状态寄存器中的状态标志置1,busy=1;–然后不断地循环检测状态标志。•如果busy=1,说明I/O设备忙,CPU再进行下一轮检测;•如果busy=0,说明I/O操作结束,CPU执行下一条指令。中断驱动I/O方式•中断I/O驱动过程–启动:由CPU根据进程的I/O请求发出一条I/O命令;此后CPU继续执行其它进程,即CPU与外设并行工作。–I/O设备完成操作后,由控制器通过控制线向CPU发送一中断信号,由CPU检查I/O操作是否正确,……•中断驱动方式带来的优缺点–管理灵活、简单,系统效率高(CPU、I/O设备)。–设备与CPU(内存)之间的数据交换仍以字(节)为单位。DMA控制方式•DMA(DirectMemoryAccess)引入–在外围设备和内存之间开辟直接的数据交换通路。在该种控制方式中,设备控制器具有更强的功能,在它的控制下,设备和内存之间可以成批地进行数据交换,不用CPU的干预。减轻了CPU的负担,同时数据传输以块为单位,提高了数据传送速度。•DMA控制器的组成–命令/状态寄存器CR–内存地址寄存器MAR–数据寄存器DR–数据计数器DC•DMA工作过程(以磁盘数据读入为例)–CPU向磁盘控制器发送一条读命令到CR中,目标起始地址到MAR中,数据字节数到DC中,磁盘中的源地址到控制器的控制逻辑上;–启动DMA控制器进行数据传送(窃用总线周期),此后,CPU可以执行其它任务;–DMA控制器按照命令每传送一个字节,修改并检查DC和MAR中的数值(分别做-1和+1操作);–若DC中的值不为0,则继续传送下一个字节;为0,则发出一个中断请求。DMA与中断控制方式的区别•中断控制方式在每个数据传送完后都发中断•DMA是在所要求传送的一批数据都传送完后才发中断I/O通道控制方式•I/O通道控制方式的引入–进一步减少CPU对I/O操作的干预;–以多个数据块为单位进行数据传送;–一次传送多组数据到多个不同的内存区域。•通道程序–由一系列通道指令(通道命令)构成;–每条指令都包含:•操作码、内存地址、计数、通道程序结束位P、记录结束标志R操作PR计数内存地址Write0080813Write001401034Write01605830Write013002000Write002501650Write115002720通道程序实例第三节缓冲管理•缓冲的引入•单缓冲和双缓冲•循环缓冲•缓冲池解决CPU和I/O设备速度不匹配的矛盾缓冲的引入•缓和CPU与I/O设备间速度不匹配的矛盾•减少对CPU的中断频率,放宽对CPU中断响应时间的限制•提高CPU与I/O设备之间的并行性单缓冲和双缓冲•单缓冲•双缓冲(生产者---消费者)用户进程工作区缓冲区I/O设备输入传送用户进程工作区缓冲区2I/O设备缓冲区1循环缓冲(输入---计算)•循环缓冲的引入–同步进程速度不一致;–双缓冲无法完全解决。•循环缓冲的组成–多个缓冲区、多个指针•循环缓冲的使用–GetBuf()–ReleaseBuf()RGGGRC空缓冲区满缓冲区工作缓冲区缓冲池•缓冲池的引入–把专用循环缓冲变为公用缓冲区,以提高内存利用率。•缓冲池的组成(每个队列配备两个指针)–空闲缓冲(区)队列emq、F(emq)、L(emq)–输入缓冲(区)队列inq、F(inq)、L(inq)–输出缓冲(区)队列outq、F(outq)、L(outq)•缓冲区的四种工作方式–收容输入:收容输入设备的输入数据–提取输入:计算进程提取缓冲区中的数据使用–收容输出:计算进程输出结果数据到缓冲区–提取输出:输出设备提取缓冲区中的数据缓冲池收容输入提取输入提取输出收容输出hinsinsouthout用户程序输入设备输出设备第四节I/O软件•设备独立性软件•设备驱动程序一设备独立性•设备独立性的概念(设备无关性)–应用程序独立于具体使用的物理设备。–带来的好处•设备分配时的灵活性•易于实现I/O重定向:可以更换I/O操作的设备而不改程序。•设备独立性软件–位于驱动程序之上,驱动程序与设备有关。–主要功能:•执行所有设备的公有操作:分配与回收、逻辑名到物理设备的映射、设备的保护、缓冲管理、差错控制等•向用户层(或文件层)软件提供统一接口•逻辑设备名到物理设备名映射的实现–逻辑设备表(LogicalUnitTable)•用于将应用程序所使用的逻辑设备名映射为物理设备名。•表项:逻辑设备名、物理设备名、设备驱动程序入口地址等–LUT的设置问题•整个系统一张LUT,逻辑设备名要具有唯一性。•为每个用户设置一张LUT,并将该表放入PCB中;与系统设备表联合作用。二设备处理(驱动)接收上层软件发来的抽象要求,比如:Read、Write等命令,再把它们转化为具体要求发送给设备控制器,启动设备执行;同时,还负责把设备控制器发来的信号传送给上层软件。•设备驱动程序的功能和特点•设备驱动程序的处理过程•中断处理程序的处理过程设备驱动程序的功能和特点•设备驱动程序的功能–接收由I/O进程发来的命令和参数,转换为具体要求;–检查用户I/O请求的合法性,了解设备状态,传递或设置参数;–发出I/O命令,启动设备,或挂在相应的设备队列上;–及时响应由控制器或通道发来的中断请求;–对于设有通道的计算机系统,根据I/O请求自动构成通道程序。•设备驱动程序的特点–是指在请求I/O的进程与设备控制器之间的一个通信和转换程序。–与设备控制器和I/O设备的硬件特性紧密相关,因而对不同类型的设备应配置不同的驱动程序。–与I/O设备所采用的I/O控制方式紧密相关。–其中一部分必须用汇编语言书写。设备驱动程序的处理过程•将抽象要求转化为具体要求•检查I/O请求合法性•读出和检查设备的状态•传送必要的参数•工作方式的设置•启动I/O设备第五节设备分配•设备分配中的数据结构•设备分配时应考虑的因素•独占设备的分配程序•SPOOLing技术设备分配中的数据结构•设备控制表DCT–一台设备配置一张设备控制表,用于记录设备状态;–包含的字段:•设备类型type•设备标识符deviceid•设备状态:设备或与其相连的控制器/通道忙,状态为“1”;•设备队列队首指针:指向等待此设备的阻塞进程队列;•与设备连接的控制器的控制表指针:多条通路则对应多个指针;•重复执行次数或时间:允许通信重试的次数或延迟时间。•控制器控制表COCT–表项字段:控制器标识符、控制器状态、与控制器相连的通道表指针、控制器队列的队首指针、控制器队列的队尾指针。•通道控制表CHCT–表项字段:通道标识符、通道状态、与通道连接的控制器表首址、通道队列的队首指针、通道队列的队尾指针。•系统设备表SDT–记录系统中全部设备的状况;–表项字段:设备类型、设备标识符、设备控制表、设备驱动程序的入口地址等。设备分配时应考虑的因素•设备的固有属性–独占设备–共享设备–虚拟设备•设备分配算法–先来先服务–按优先级•设备分配中的安全性–安全分配方式进程发出I/O请求并得到响应后,就进入阻塞状态,一直等待I/O完成。特点:进程进展缓慢,但不会产生死锁–不安全分配方式进程在发出I/O请求后继续运行,需要时再发出其它的I/O请求,直至申请不到I/O设备而被迫阻塞。特点:进程进展迅速,但可能发生死锁方法:设备分配前,必须进行安全性检查独占设备的分配程序•基本的设备分配程序–分配设备:按照I/O请求的物理设备名,查找SDTDCT/设备状态字。若忙,阻塞;否则,分析安全性,安全,则分配;否则,阻塞。–分配控制器:再查DCTCOCT/状态字,控制器忙?阻塞;否则,分配该控制器给进程。–分配通道:再查COCTCHCT/状态字,通道忙?阻塞;否则,分配通道给进程。以上三者分配均成功,才算设备分配成功。•设备分配程序的改进原因:以物理设备名提出I/O请求,单通路的I/O结构,容易产生“瓶颈”现象。–增加设备的独立性:使用逻辑设备名请求I/O,依次查同类设备的DCT,仅当该类设备都忙时,才把进程挂在该类设备的等待队列上;如果有设备可用,继续分析安全性……–考虑多通路情况:得到设备后,依次检查与此设备相连的各个控制器,直到找到一个可用的为止;然后,依次检查与此控制器相连的各个通道,直到确定一个可用的通道位置;否则,需要阻塞进程。SPOOLing技术•什么是SPOOLing–即联机情况下的同时外围操作,称为“假脱机操作”,“后台”工作方式。(SimultaneausPeriphernalOperatingOn-Line)–利用SPOOLing技术,可将一台物理I/O设备虚拟为多台逻辑设备,从而允许多个用户共享使用一台物理设备;即利用高速的共享设备(磁盘)实现低速独占设备的共享使用的技术。•SPOOLing系统的组成–输入井和输出井–输入缓冲区和输出缓冲区–输入进程Spi和输