您好,欢迎访问三七文档
重点难点:1、I/O控制方式2、缓冲管理3、设备独立性4、虚拟设备和spooling技术5、设备处理6、磁盘调度7、磁盘高速缓存和廉价磁盘冗余阵列RAID输入输出管理这一章是非重点。需要注意的地方是四种I/O控制方式和它们之间的对比,SPOOLING技术以及缓冲策略。可能的选择题点包括I/O设备的分类,I/O管理的目标与功能,应用结构,控制方式,I/O调度的相关概念,设备独立性相关的概念和原理,容错技术等。第7章设备管理本章目录7.1设备管理概述7.1.1I/O系统的组织结构7.1.2计算机设备的分类7.1.3设备管理的目标与功能7.1.4设备管理的数据结构7.2I/O的四种实现方式7.2.1程序轮询控制I/O7.2.2中断驱动I/O7.2.3直接内存访问I/O7.2.4通道管理I/O7.3缓冲、虚拟设备与SPOOLing技术7.3.1I/O缓冲7.3.2虚拟设备与SPOOLing技术7.4磁盘及磁盘的移臂调度策略7.4.1磁盘的格式化7.4.2磁盘的性能参数7.4.3磁盘的移臂调度策略7.4.4独立磁盘冗余阵列:RAID7.5Linux的I/O管理7.5.1Linux设备管理综述7.5.2Linux对字符设备的管理7.5.3Linux对块设备的管理7.5.4Linux的磁盘调度计算机除主机之外全部属外设7.1设备管理概述7.1.1I/O系统的组织结构控制器1.整个I/O结构分成三个层次:底层是具体的设备和硬件接口,中间是系统软件(与设备相关软件、与设备无关软件),最上面是用户程序。.打印机摄像机硬盘设备打印机控制器摄像机控制器磁盘控制器打印机驱动程序摄像机驱动程序磁盘驱动程序I/O接口程序硬件接口与设备相关软件与设备无关软件用户程序进程A进程B进程C进程N用户空间内核空间I/O设备一般由机械和电子两个部分组成。为了使设计更加模块化、更具通用性,也为了降低设计制作的成本,如今常把它们分开来处理:电子部分称作是“设备控制器”或“适配器”;机械部分仍被称作是“设备”。..设备控制器的一端与计算机连接,另一端与设备本身连接,如图所示。设备控制器上通常有连接器,由设备引出的电缆可以插入到该连接器中,完成与设备控制器的连接。很多设备控制器可同时连接2个、4个甚至8个相同的设备,它们将共享设备控制器里的I/O逻辑部件。数据寄存器控制/状态寄存器I/O逻辑部件设备控制器与I/O设备的接口i设备控制器与I/O设备的接口1设备控制器与I/O设备的接口2数据线地址线控制线数据状态控制数据状态控制数据状态控制CPU与设备控制器接口设备控制器与I/O设备接口CPU设备控制器除要将设备与计算机连接外,还有更为重要的任务是随时监视设备所处状态,实现对设备的控制与操作。..为能使CPU与设备控制器中的各寄存器进行通信,常采用两种方法(1)单独的I/O空间:设备控制器里每个寄存器都有一个I/O端口号,它们单独组成地址空间。计算机系统除了内存空间外,还有I/O端口地址空间。CPU将用不同的指令,完成对这两个空间的访问。(2)内存映射I/O:这时设备控制器里的每个寄存器没有特定的设备地址,而是与一个内存地址关联,这些地址不分配作他用。这种系统称为“内存映射I/O”。CPU将通过相同的指令,实现对整个内存空间的访问。设备驱动程序2.操作系统中与设备相关的设备管理软件是设备驱动程序,用于实现对具体设备的管理和操作;与设备无关部分的设备管理软件是一些系统调用,用来把用户的I/O请求导向到具体的设备驱动程序。..要让设备工作,必须访问设备控制器中的各种寄存器,这是通过编写的特定程序代码来实现的。这样的代码程序就是“设备驱动程序”。.在中断驱动I/O的情形下,设备驱动程序被分成两个部分,一部分用来完成对设备操作的初始化,另一部分是中断处理程序,用来处理设备操作的完成。.设备驱动程序通过访问设备控制器里的寄存器了解设备的各种工作状态,发出操作命令。设备驱动程序必须设计成是可重入的。I/O接口程序3.I/O接口程序是设备管理中与设备无关部分的软件,它接收用户对设备提出的I/O请求,然后负责把I/O请求转变成所需要的I/O命令,调用具体的设备驱动程序去执行,完成这个I/O请求。..I/O接口程序要为用户提供统一的设备命名方式。通常,系统是用主设备号和次设备号组成的逻辑设备名来为设备命名,主设备号指定设备的类型(于是确定了所要使用的设备驱动程序),次设备号作为参数传递给设备驱动程序,用来确定真正完成读写操作的设备。用户编程时不用实际的设备名而使用逻辑设备名,有利于I/O设备的故障处理,为I/O设备的分配增添了灵活性。称这种方法是设备管理中的“I/O设备无关性”。.返回目录7.1.2计算机设备的分类基于设备的从属关系1.系统设备:操作系统生成时就纳入系统管理范围的设备是系统设备,也称为“标准设备”。比如键盘、显示器、打印机和磁盘驱动器等。..用户设备:在完成任务过程中,用户特殊需要的设备为用户设备。由于这些是操作系统生成时未经登记的非标准设备,用户就要向系统提供使用该设备的有关程序(如设备驱动程序等);系统就要提供接纳这些设备的手段,以便将它们纳入系统来管理。基于设备的分配特性2..独享设备:这种设备的特点是一旦分配给某个用户进程使用,就必须等它们使用完后,才能重新分配给另一个用户进程使用,否则不能保证所传送信息的连续性,也可能会出现获得的结果混乱不清、无法辨认的局面。独享设备的使用具有排它性。.共享设备:这种设备的特点是可由几个用户进程“交替地”对它做信息的读/写操作。从宏观上看,它们都在同时使用该设备;从微观上看,每一时刻只有一个进程使用。共享设备必须是可寻址和可随机访问的。.虚拟设备:以大容量辅助存储器的支持,利用SPOOLing技术,把独享设备“改造”成为能被多个进程共享的I/O设备,以提高独享设备的利用率。实际上这种“共享”设备并不存在,是一种逻辑上、概念上的I/O设备,因此称它们为“虚拟设备”。磁带是一种严格按照信息存放的物理顺序进行定位与存取的存储设备。它是一种适于顺序存取的存储设备。磁带上每个记录间有所谓的“记录间隙(IRG)”。块设备:是指以独立寻址的数据块(比如一个扇区)为单位与内存进行信息交换的那些设备,也称为是“面向块”的设备。磁带、磁盘是块设备的典型代表。字符设备:是指以字符为单位与内存进行信息交换的那些设备,也称为是“面向字符”的设备。键盘、打印机是字符设备的典型代表。3.基于设备的传输特性..4.基于设备的工作特性.输入/输出设备:输入设备是计算机“感知”或“接触”外部世界的设备,用户通过输入设备把信息送到计算机系统内部;输出设备是计算机“通知”或“控制”外部世界的设备,计算机系统通过输出设备把处理结果告知用户。通常把它们称为“字符设备”。.存储设备:是指计算机永久保存信息的设备,可分为顺序访问存储设备和随机访问存储设备两种,它们都是面向块的。(1)记录1IRG记录2IRG记录3IRG记录4IRG记录5IRG(a)一个记录一个IRG记录1IRG记录2记录3记录4记录5IRG记录6记录7记录8记录9IRG记录10记录11记录12一块一块一块(b)一块(4个记录)一个IRG0(2)磁盘返回目录7.1.3设备管理的目标与功能1.设备管理的目标操作系统设备管理的目标之一是提高外部设备的利用率(合理利用、提高并行)..操作系统设备管理的目标之二是为用户提供便利、统一的使用界面。2.设备管理的功能.提供一组I/O命令(实质就是系统调用命令),以便用户进程能够在程序一级发出所需要的I/O请求,这就是用户使用外部设备的“界面”。.进行设备的分配与回收。在多道程序设计环境下,多个用户进程可能会同时对某一类设备提出使用请求。设备管理软件应根据一定的算法,决定把设备具体分给哪个进程使用;对那些已提出设备请求、但由于某种原因暂时未能分到的进程,应进行管理(如组成设备请求队列),按一定的次序等待;当某设备使用完毕后,设备管理软件应及时将其回收,如有用户进程正在等待使用,那么立即进行再分配。.对缓冲区管理。CPU的执行速度、访问内存的速度都较高,外部设备的数据传输速度则大都较低,产生了高速CPU与慢速I/O设备间速度不相匹配的矛盾。为此,系统往往在内存开辟一些区域称为“缓冲区”,CPU和I/O设备都通过这种缓冲区传递数据,以使设备与设备之间、设备与CPU之间的工作得到协调。.实现真正的I/O操作。程序中使用系统提供的I/O命令后,设备管理要按用户的具体请求,启动设备,通过设备驱动程序进行实际的I/O操作。完成后将结果通知用户进程。返回目录7.1.4设备管理的数据结构DCBiDCB1DCBnDCB表DCBi设备请求队列指针PCB1PCB2PCBn设备标识设备类型设备状态设备驱动程序起址其他设备请求队列为管理系统中的外部设备,操作系统为每台设备开辟一个存储区,随时记录系统中每台设备的基本信息和使用情况,这个存储区被称为“设备控制块(DCB)”。1..如图所示,左侧的“DCB表”表示系统中所有外部设备的DCB的集合;中间是对其中的第i个设备的DCB的放大,给出了DCB中可能有的一些表项。不难理解,随着系统的不同,DCB中所含的内容也不尽相同。若一个独享设备已分配给一个进程使用,那么继续对它发出I/O请求的其他进程就不可能立即得到它的服务。由于这些进程都是因为暂时得不到这个设备的服务而被阻塞的,所以应该排在与该设备有关的阻塞队列上,这个阻塞队列在操作系统的设备管理中被称为“设备请求队列”。..为管理设备,整个系统还有一张“系统设备表(SDT)”。系统初启时,每个标准的以及用户提供的外部设备,在该表中都有一个表项。在I/O处理过程中,系统从SDT得到设备的设备控制块DCB,然后从DCB得到有关该设备的信息。返回目录2.控制器控制表、通道控制表和系统设备表(c)系统SDT控制器标识符:controllerid控制器状态:忙/闲与控制器连接的通道表指针控制器队列的队首指针控制器队列的队尾指针通道标识符:channelid通道状态:忙/闲与通道连接的控制器表首址通道队列的队首指针通道队列的队尾指针(a)控制器表COCT(b)通道表CHCT表目1…表目i…设备类设备标识符DCT驱动程序入口3.设备的固有属性(1)独享设备:进程使用独占设备的过程:申请---》使用---》释放。•进程申请设备•系统分配设备•进程发送使用命令•系统将转到设备驱动模块完成一次I/O传输•进程释放设备•系统回收设备当进程的一次设备申请成功,直到发出释放命令期间,一直独占设备。(2)共享设备进程使用共享型设备不需要申请,当然也就不存在占用型或释放设备的问题,但是,I/O期间只能有一个进程使用设备,因此,进程使用共享设备之前,有一个隐含的申请命令,使用完毕以后,有一个隐含的释放命令,以实现一次基本的I/O传输期间的排他性,保证操作的正常进行。使用共享型设备的过程中,进程完全有可能进入阻塞等待状态。(3)虚拟设备:一台可虚拟设备是可共享的设备。(1)先来先服务根据某进程对某设备提出请求的先后次序,将这些进程排成一个设备请求队列,设备分配程序总是把设备分配给队首的进程(2)优先级高者优先根据进程优先级的高低,将优先级高的进程排在设备等待队列的前面,对与优先级相同的进程,则按照先来先服务的原则进行排队,设备分配程序总是把设备分配给排在队首的进程。设备分配中的安全性1)安全分配方式进程发出I/O请求后,即阻塞等待I/O操作完成。摒弃了“请求和保持”条件(死锁条件),设备分配安全。缺点:进程缓慢,cpu和I/O设备串行。2)不安全分配方式进程发出一个I/O请求后,还可再发出,直到请求设备已被另一个设备占用,进程才阻塞。可能具备“请求和保持”条件,可能死锁,不安全。可加入安全性计算(例:银行家算法)。优点:推进迅速。7.2.1程序循环控制I/O采用这种方式实现I/O,是基于设备只有设置状态寄存器中“忙”位的能力:“1”时表示该设备在工作,暂时不能接受新的I/O请求;“0”时表示设备空闲,可接受新的I/
本文标题:7设备管理课件
链接地址:https://www.777doc.com/doc-1305980 .html