资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,7,章 设备管理,7.1,设备管理概述,7.1.1 I/O,系统的组织结构,7.1.2,计算机设备的分类,7.1.3,设备管理的目标与功能,7.1.4,设备管理的数据结构,7.2 I/O,的四种实现方式,7.2.1,程序轮询控制,I/O,7.2.2,中断驱动,I/O,7.2.3,直接内存访问,I/O,7.2.4,通道管理,I/O,7.3,缓冲、虚拟设备与,SPOOLing,技术,7.3.1,I/O,缓冲,7.3.2,虚拟设备与,SPOOLing,技术,7.4,磁盘及磁盘的移臂调度策略,7.4.1,磁盘的格式化,7.4.2,磁盘的性能参数,7.4.3,磁盘的移臂调度策略,7.4.4,独立磁盘冗余阵列:,RAID,7.1,设备管理概述,7.1.1 I/O,系统的组织结构,整个,I/O,结构分成三个层次:底层是具体的设备和硬件接口,中间是系统软件(与设备相关软件、与设备无关软件),最上面是用户程序。,.,打印机,摄像机,硬盘,设备,打印机控制器,摄像机控制器,磁盘控制器,打印机,驱动程序,摄像机,驱动程序,磁盘,驱动程序,I/O,接口程序,硬件接口,与设备,相关软件,与设备,无关软件,用户程序,进程,A,进程,B,进程,C,进程,N,用户,空间,内核,空间,7.1,设备管理概述,7.1.1 I/O,系统的组织结构,.,I/O,设备一般由机械和电子两个部分组成。,为了使设计更加模块化、更具通用性,也为了降低设计制作的成本,如今常把它们分开来处理:电子部分称作是,“,设备控制器,”,或,“,适配器,”,;机械部分仍被称作是,“,设备,”,。,设备控制器的一端与计算机连接,另一端与设备本身连接设备控制器上通常有连接器,由设备引出的电缆可以插入到该连接器,完成与设备控制器的连接。很多设备控制器可同时连接多个设备,它们将共享设备控制器里的,I/O,逻辑部件。,数据寄存器,控制,/,状态,寄存器,I/O,逻辑,部件,设备控制器,与,I/O,设备,的接口,i,设备控制器,与,I/O,设备,的接口,1,设备控制器,与,I/O,设备,的接口,2,数据线,地址线,控制线,数据,状态,控制,数据,状态,控制,数据,状态,控制,CPU,与设备控制器接口,设备控制器与,I/O,设备接口,CPU,设备控制器除要将设备与计算机连接外,还有更为重要的任务是随时监视设备所处状态,实现对设备的控制与操作。,.,.,.,为能使,CPU,与设备控制器中的各寄存器进行通信,常采用两种方法,单独的,I/O,空间:设备控制器里每个寄存器都有一个,I/O,端口号,它们单独组成地址空间。计算机系统除了内存空间外,还有,I/O,端口地址空间。,CPU,将用不同的指令,完成对这两个空间的访问。,内存映射,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.,系统设备:操作系统生成时就纳入系统管理范围的设备是系统设备,也称为,“,标准设备,”,。比如键盘、显示器、打印机和磁盘驱动器等。,.,.,用户设备:在完成任务过程中,用户特殊需要的设备为用户设备。由于这些是操作系统生成时未经登记的非标准设备,用户就要向系统提供使用该设备的有关程序(如设备驱动程序等);系统就要提供接纳这些设备的手段,以便将它们纳入系统来管理。,.,7.1.2,计算机设备的分类,基于设备的分配特性,2.,.,独享设备:这种设备的特点是一旦分配给某个用户进程使用,就必须等它们使用完后,才能重新分配给另一个用户进程使用,否则不能保证所传送信息的连续性,也可能会出现获得的结果混乱不清、无法辨认的局面。独享设备的使用具有排它性。,.,共享设备:这种设备的特点是可由几个用户进程,“,交替地,”,对它做信息的读,/,写操作。从宏观上看,它们都在同时使用该设备;从微观上看,每一时刻只有一个进程使用。共享设备必须是可寻址和可随机访问的。,.,虚拟设备:以大容量辅助存储器的支持,利用,SPOOLing,技术,把独享设备,“,改造,”,成为能被多个进程共享的,I/O,设备,以提高独享设备的利用率。实际上这种,“,共享,”,设备并不存在,是一种逻辑上、概念上的,I/O,设备,因此称它们为,“,虚拟设备,”,。,块设备:是指以独立寻址的数据块(比如一个扇区)为单位与内存进行信息交换的那些设备,也称为是,“,面向块,”,的设备。磁带、磁盘是块设备的典型代表。,字符设备:是指以字符为单位与内存进行信息交换的那些设备,也称为是,“,面向字符,”,的设备。键盘、打印机是字符设备的典型代表。,3.,基于设备的传输特性,.,.,返回目录,磁带是一种严格按照信息存放的物理顺序进行定位与存取的存储设备。它是一种适于顺序存取的存储设备。磁带上每个记录间有所谓的,“,记录间隙(,IRG,),”,。,4.,基于设备的工作特性,.,输入,/,输出设备:输入设备是计算机,“,感知,”,或,“,接触,”,外部世界的设备,用户通过输入设备把信息送到计算机系统内部;输出设备是计算机,“,通知,”,或,“,控制,”,外部世界的设备,计算机系统通过输出设备把处理结果告知用户。通常把它们称为,“,字符设备,”,。,.,存储设备:是指计算机永久保存信息的设备,可分为顺序访问存储设备和随机访问存储设备两种,它们都是面向块的。,(1),记,录,1,IRG,记,录,2,IRG,记,录,3,IRG,记,录,4,IRG,记,录,5,IRG,(a),一个记录一个,IRG,记,录,1,IRG,记,录,2,记,录,3,记,录,4,记,录,5,IRG,记,录,6,记,录,7,记,录,8,记,录,9,IRG,记,录,10,记,录,11,记,录,12,一块,一块,一块,(b),一块,(4,个记录,),一个,IRG,0,(2),磁盘,返回目录,7.1.3,设备管理的功能,设备管理的功能,.,提供一组,I/O,命令(实质就是系统调用命令),以便用户进程能够在程序一级发出所需要的,I/O,请求,这就是用户使用外部设备的,“,界面,”,。,.,进行设备的分配与回收。在多道程序设计环境下,多个用户进程可能会同时对某一类设备提出使用请求。设备管理软件应根据一定的算法,决定把设备具体分给哪个进程使用;当某设备使用完毕后,设备管理软件应及时将其回收,如有用户进程正在等待使用,那么立即进行再分配。,.,对缓冲区管理。,CPU,的执行速度、访问内存的速度都较高,外部设备的数据传输速度则大都较低,产生了高速,CPU,与慢速,I/O,设备间速度不相匹配的矛盾。为此,系统往往在内存开辟一些区域称为,“,缓冲区,”,,,CPU,和,I/O,设备都通过这种缓冲区传递数据。,.,实现真正的,I/O,操作。程序中使用系统提供的,I/O,命令后,设备管理要按用户的具体请求,启动设备,通过设备驱动程序进行实际的,I/O,操作。完成后将结果通知用户进程。,返回目录,7.1.4,设备管理的数据结构,DCB,i,DCB1,DCB,n,DCB,表,DCB,i,设备请求队列指针,PCB1,PCB2,PCB,n,设备标识,设备类型,设备状态,设备驱动程序起址,其他,设备请求队列,设备控制块(,DCB,),.,.,有些进程都是因为暂时得不到这个设备的服务而被阻塞的,所以应该排在与该设备有关的阻塞队列上,这个阻塞队列在操作系统的设备管理中被称为,“,设备请求队列,”,。,.,.,整个系统还有一张,“,系统设备表(,SDT,),”,。系统初启时,每个标准的以及用户提供的外部设备,在该表中都有一个表项。在,I/O,处理过程中,系统从,SDT,得到设备的设备控制块,DCB,,然后从,DCB,得到有关该设备的信息。,返回目录,7.2.1,程序循环控制,I/O,采用这种方式实现,I/O,,是基于设备只有设置状态寄存器中,“,忙,”,位的能力:,“,1,”,时表示该设备在工作,暂时不能接受新的,I/O,请求;,“,0,”,时表示设备空闲,可接受新的,I/O,请求。只有,CPU,不断地去测试,“,忙,”,位,才能判断该设备是工作或空闲。,7.2 I/O,的四种实现方式,.,read(device,),数据区,“,读,”,系统调用命令,“,写,”,系统调用命令,命令寄存器,状态寄存器,数据寄存器,设备控制器,硬件接口,系统接口,用户程序,.,如图所示给出了程序循环控制,I/O,的,“,读,”,操作执行情形,具体步骤如下:,(1),用户进程程序对某个设备提出读请求。,(2),CPU,执行设备驱动程序,测试设备状态寄存器中的忙位。如果设备忙,就不断进行循环测试,直等到设备空闲。,(3),驱动程序重新设置忙位,把输入命令存入设备控制器的命令寄存器,启动设备开始工作。,(4),这时,设备去做,I/O,,驱动程序仍不断测试忙位,等待,I/O,操作的完成。,(5),驱动程序将数据寄存器中的数据内容读到用户指定的位置,完成读操作。,返回目录,7.2.2,中断驱动,I/O,中断机制下,硬件有条中断请求线(,IRL,)。,CPU,执行完指令后,就去检查,IRL,。检测到有设备控制器通过中断请求线发出了信号,,CPU,就去执行中断处理程序,判定中断原因,进行必要的处理,再让,CPU,返回中断以前的执行状态。,.,.,read(device,),数据区,命令寄存器,状态寄存器,数据寄存器,设备控制器,硬件接口,系统接口,设备状态表,设备驱动程序,设备处理程序,中断处理程序,在利用中断的情况下,设备驱动程序由进行,I/O,操作初始化、启动设备工作的设备驱动程序和,I/O,完成后做善后处理的设备处理程序组成。系统维护一张,“,设备状态表,”,,表项里记录一个设备发生中断,时的有关信息。,这时,I/O,的,“,读,”,操作执行情形如图所示。,.,返回目录,为减少中断对,CPU,造成的负担,对系统中的一些高速,I/O,设备以及成组交换数据的情形,可采用直接内存访问,I/O,的方式,把,I/O,的主要任务交给一个专用的、名为,DMA,的控制器去完成。,7.2.3,直接内存访问,I/O,.,1.,直接内存访问,I/O,的含义,.,DMA,是,“,直接内存访问,”,的意思。,DMA,独立于,CPU,工作,在它控制下的设备,可直接和内存进行信息传送,其间无需,CPU,做任何干预。,.,7
展开阅读全文