【教学课件】第九章设备管理.ppt
第九章 设 备 管 理 第九章第九章 设备管理设备管理 9.1 9.1 设备管理概述设备管理概述9.2 9.2 数据传输控制方式数据传输控制方式9.3 9.3 中断技术中断技术9.4 9.4 缓冲技术缓冲技术9.5 9.5 磁盘驱动调度磁盘驱动调度9.6 9.6 设备分配设备分配第九章 设 备 管 理 9.1 设备管理概述设备管理概述设备分类设备分类设备管理的功能和任务设备管理的功能和任务设备控制器设备控制器9.1.1 设备分类设备分类1、按设备性质分类:、按设备性质分类:存储设备和输入输出设备存储设备和输入输出设备2、按设备从属关系:、按设备从属关系:系统设备和用户设备系统设备和用户设备3、按设备共享属性:、按设备共享属性:独享设备、共享设备和虚拟设备独享设备、共享设备和虚拟设备4、按信息交换单元:、按信息交换单元:块设备和字符设备块设备和字符设备第九章 设 备 管 理 9.1.2 设备管理的功能和任务设备管理的功能和任务设备管理的主要任务设备管理的主要任务:强调设备的独立性强调设备的独立性选择和控制设备与内存、中央处理器进行交换传输数据选择和控制设备与内存、中央处理器进行交换传输数据按照一定的算法把设备分配给对该设备提出请求的进程,按照一定的算法把设备分配给对该设备提出请求的进程,保证系统政策工作。保证系统政策工作。充分有效地使用设备,尽可能提高设备的并行操作程度,充分有效地使用设备,尽可能提高设备的并行操作程度,使使OS获得最佳的效率。获得最佳的效率。设备管理的功能:设备管理的功能:设备分配设备分配设备控制设备控制缓冲管理缓冲管理第九章 设 备 管 理 9.1.3 设备控制器设备控制器CPU内存磁盘驱动器磁盘控制器打印机打印机控制器其他控制器控制器设备接口控制器设备接口主机主机说明说明利用单总线把各种各样的设备联系起来了。设备控制器处于利用单总线把各种各样的设备联系起来了。设备控制器处于CPU和和I/O设备设备之间,它接收从之间,它接收从CPU发来的命令,并区控制发来的命令,并区控制I/O设备工作。其目的是使设备工作。其目的是使CPU从繁杂的设备控制事务中解脱出来。设备控制器应能接收和识别从繁杂的设备控制事务中解脱出来。设备控制器应能接收和识别CPU发来发来的各种命令,实现的各种命令,实现CPU与控制器,控制器与设备之间的数据交换,记录设备与控制器,控制器与设备之间的数据交换,记录设备状态供状态供CPU查询,还应能识别它所控制的每个设备的地址。因此,控制器中查询,还应能识别它所控制的每个设备的地址。因此,控制器中应设置控制器存放接收的命令及参数。应设置控制器存放接收的命令及参数。第九章 设 备 管 理 9.2 设备传输控制方式设备传输控制方式程序直接控制方式程序直接控制方式中断控制方式中断控制方式直接存储器存取方式直接存储器存取方式通道控制方式通道控制方式第九章 设 备 管 理 9.2.1 程序直接控制方式程序直接控制方式处理机对处理机对I/O的控制采用程序直接控制方式。当用户进程需要输入数据时,由处的控制采用程序直接控制方式。当用户进程需要输入数据时,由处理机向设备控制器发出一条理机向设备控制器发出一条I/O指令启动设备进行输入,在设备输入数据期间,指令启动设备进行输入,在设备输入数据期间,处理机通过循环执行测试指令不间断地检测设备状态寄存器的值,当状态寄存处理机通过循环执行测试指令不间断地检测设备状态寄存器的值,当状态寄存器的值显示设备输入完成时处理机将数据寄存器的数据取出,送入内存指定单器的值显示设备输入完成时处理机将数据寄存器的数据取出,送入内存指定单元,然后再启动设备去读下一个数据。反之,当用户进程需要向设备输出数据元,然后再启动设备去读下一个数据。反之,当用户进程需要向设备输出数据时,也必须同样发启动设备输出并等待输出操作完成。时,也必须同样发启动设备输出并等待输出操作完成。外围设备外围设备接收到接收到Start命令命令做接收或发送数据准备做接收或发送数据准备标志触发器置标志触发器置“Done”等待等待CPU的下一条指令的下一条指令准备完毕?准备完毕?是是CPU发Start命令等待执行下一条指令开始数据传送设备标志触发器为“Done”?否第九章 设 备 管 理 优点:优点:工作过程简单,不需要更多的硬件支持工作过程简单,不需要更多的硬件支持缺点:缺点:1.CPU和外围设备只能进行串行工作和外围设备只能进行串行工作2.CPU在一段时间内只能和一台外围设备交换数据信息,不能实现设备在一段时间内只能和一台外围设备交换数据信息,不能实现设备之间并行工作。之间并行工作。3.程序直接控制方式只适用于那些程序直接控制方式只适用于那些CPU执行速度较慢,而且外围设备较执行速度较慢,而且外围设备较少的系统。少的系统。第九章 设 备 管 理 9.2.2 中断控制方式中断控制方式就是为了减少就是为了减少CPU和外部设备进行传递信息时完全由和外部设备进行传递信息时完全由CPU来进行控制的这种局面来进行控制的这种局面而引入的。而引入的。在在I/O中断方式下,数据的输入按如下步骤操作。中断方式下,数据的输入按如下步骤操作。1.需要数据的进程通过需要数据的进程通过CPU发出启动外设输入数据的指令,该指令同时置发出启动外设输入数据的指令,该指令同时置状态寄存器的中断允许位。状态寄存器的中断允许位。2.在进程发出指令启动设备之后,该进程放弃在进程发出指令启动设备之后,该进程放弃CPU,等待输入完成。这时进等待输入完成。这时进程调度程序可以调度其他就绪进程占据程调度程序可以调度其他就绪进程占据CPU。3.当输入工作完成时,当输入工作完成时,I/O控制器通过中断请求向控制器通过中断请求向CPU发出中断信号。发出中断信号。CPU在接收到中断处理信号之后,转去执行设备中断处理程序。设备中断处在接收到中断处理信号之后,转去执行设备中断处理程序。设备中断处理程序把输入数据寄存器中的数据传到相应的位置上去。同时还把等待理程序把输入数据寄存器中的数据传到相应的位置上去。同时还把等待输入完成的那个进程唤醒,再返回到被中断的进程继续执行。输入完成的那个进程唤醒,再返回到被中断的进程继续执行。4.在以后的某个时刻,进程调度程序选中提出请求输入的进程,该进程从在以后的某个时刻,进程调度程序选中提出请求输入的进程,该进程从指定的内存单元中取出数据做进一步处理。指定的内存单元中取出数据做进一步处理。中断控制方式的优缺点:中断控制方式的优缺点:与程序直接控制方式相比,中断方式使与程序直接控制方式相比,中断方式使CPU的利用率大幅提高了。设备每输入的利用率大幅提高了。设备每输入/输出输出一个数据都要求中断一个数据都要求中断CPU,这样在一次数据传送过程中,中断发生次数较多,耗去大量这样在一次数据传送过程中,中断发生次数较多,耗去大量CPU处理时间。处理时间。第九章 设 备 管 理 9.2.3 直接存储器存取方式直接存储器存取方式在在DMA方式中,方式中,I/O控制器具有更强的功能。它除了具有上述中断功能外,还有一个控制器具有更强的功能。它除了具有上述中断功能外,还有一个DMA控制机构。在控制机构。在DMA控制器控制下,设备和主存之间可成批地进行数据交换,而控制器控制下,设备和主存之间可成批地进行数据交换,而不用不用CPU干预。这样大大减轻了干预。这样大大减轻了CPU的负担,也使的负担,也使I/O数据传送速度大大提高。数据传送速度大大提高。DMA方式下进行数据输入的过程如下:方式下进行数据输入的过程如下:1.当进程要求设备输入一批数据时,当进程要求设备输入一批数据时,CPU将准备存放输入数据的内存起始将准备存放输入数据的内存起始地址以及要传送的字节数分别送入地址以及要传送的字节数分别送入DMA控制器中的内存地址寄存器和传控制器中的内存地址寄存器和传送字节计数器;另外,还要将中断位和启动位置送字节计数器;另外,还要将中断位和启动位置“1”,以启动设备开始,以启动设备开始进行数据输入并允许中断。进行数据输入并允许中断。2.发出数据要求的进程进入等待状态,进程调度程序调度其他进程占据发出数据要求的进程进入等待状态,进程调度程序调度其他进程占据CPU.3.输入设备不断地挪用输入设备不断地挪用CPU工作周期,将数据寄存器中的数据写入内存,工作周期,将数据寄存器中的数据写入内存,直到所要求的字节全部传送完毕。直到所要求的字节全部传送完毕。4.DMA控制器在传送字节数完成时通过中断请求线发出中断信号,控制器在传送字节数完成时通过中断请求线发出中断信号,CPU收收到中断信号后转中断处理程序,唤醒等待输入完成的进程,并返回被中到中断信号后转中断处理程序,唤醒等待输入完成的进程,并返回被中断程序。断程序。5.在以后的某个时刻,进程调度程序选中提出请求输入的进程,该进程从在以后的某个时刻,进程调度程序选中提出请求输入的进程,该进程从指定的内存起始地址取出数据作进一步处理。指定的内存起始地址取出数据作进一步处理。第九章 设 备 管 理 DMA方式与中断的主要区别:方式与中断的主要区别:1.中断方式在每个数据传送完成后中断中断方式在每个数据传送完成后中断CPU,而,而DMA则是在所要求传送的则是在所要求传送的一批数据全部传送结束时中断一批数据全部传送结束时中断CPU.2.中断方式的数据传送是在中断处理时由中断方式的数据传送是在中断处理时由CPU完成,而完成,而DMA则是在则是在DMA控控制器的控制下完成。制器的控制下完成。9.2.4 通道控制方式通道控制方式1.字节多路通道字节多路通道强强调调在数据的在数据的传输过传输过程当中,以字程当中,以字节节作作为传输为传输数据的基数据的基本本单单位。位。2.选择通道选择通道选择选择一个固定的通道并一直一个固定的通道并一直为为它服它服务务。3.数数组组多路通道多路通道强强调调的是:数据的的是:数据的传输传输以一个数以一个数组为组为基本基本单单位。位。是专门用来输入和输出的处理机,它控制内存和设备直接进行数据交换。是专门用来输入和输出的处理机,它控制内存和设备直接进行数据交换。包括通道的地址字和状态字。包括通道的地址字和状态字。按信息交换方式,可以把通道分为:按信息交换方式,可以把通道分为:第九章 设 备 管 理 通道指令一般包含数据在内存中的地址,传送方向,数据块长度及通道指令一般包含数据在内存中的地址,传送方向,数据块长度及I/O设备的地址信息,设备的地址信息,特征信息。特征信息。操作码数据主存开始地址特征字节计数通道指令格式通道指令格式通道控制方式的数据输入过程如下:通道控制方式的数据输入过程如下:1.当进程要求输入数据时,当进程要求输入数据时,CPU发出启动指令指明发出启动指令指明I/O操作,设备号和对应操作,设备号和对应通道。通道。2.对应通道接收到对应通道接收到CPU发来的启动指令之后,把存放在内存中的通道指令发来的启动指令之后,把存放在内存中的通道指令程序读出,并执行通道程序、控制设备。程序读出,并执行通道程序、控制设备。3.如果数据如果数据传传送送结结束,就向束,就向CPU发发出中断出中断请请求。求。CPU收到中断信号后收到中断信号后转转中中断断处处理程序,理程序,唤唤醒等待醒等待输输入完成的入完成的进进程,并返回被中断程序。程,并返回被中断程序。4.在以后的某个在以后的某个时时刻,刻,进进程程调调度程序度程序选选中提出中提出请请求求输输入的入的进进程,程,该进该进程从程从指定的内存中起始地址取出数据,作指定的内存中起始地址取出数据,作进进一步一步处处理。理。通道控制方式的特点:通道控制方式的特点:CPU和通道是共享一段内存空间的,它们可以并行工作,和通道是共享一段内存空间的,它们可以并行工作,可以提高工作效率。可以提高工作效率。第九章 设 备 管 理 9.3 中断技术中断技术中断的基本概念中断的基本概念中断的分类与优先级中断的分类与优先级多中断多中断中断处理过程中断处理过程第九章 设 备 管 理 9.3.1 中断的基本概念中断的基本概念中断:系统对异步事件的响应。中断:系统对异步事件的响应。异步事件:无一定时序关系的随机发生的事件。异步事件:无一定时序关系的随机发生的事件。中断源:引起中断发生的事件称为中断源中断源:引起中断发生的事件称为中断源中断请求:中断源向中断请求:中断源向CPU发出的请求中断处理的信号。发出的请求中断处理的信号。中断响应:中断响应:CPU收到中断请求后转相应事件处理程序的过程称为中断响应。收到中断请求后转相应事件处理程序的过程称为中断响应。断点:发生中断时,刚执行完的那条指令就是中断的断点。断点:发生中断时,刚执行完的那条指令就是中断的断点。恢复点:断点的逻辑后继指令的单元号。恢复点:断点的逻辑后继指令的单元号。中断现场:指中断的那一时刻能确保程序继续运行的有关信息。中断现场:指中断的那一时刻能确保程序继续运行的有关信息。关中断:关中断:PSW的中断允许位的设置称为开中断,开中断和关中断均为了保证程序的中断允许位的设置称为开中断,开中断和关中断均为了保证程序 执行的原子性。执行的原子性。中断向量:存放的处理机状态字与中断处理程序入口地址一起构成中断向量。中断向量:存放的处理机状态字与中断处理程序入口地址一起构成中断向量。中断屏蔽:指系统用软件方式有选择地封锁部分中断而允许其他部分中断。中断屏蔽:指系统用软件方式有选择地封锁部分中断而允许其他部分中断。第九章 设 备 管 理 9.3.2 中断的分类与优先级中断的分类与优先级根据中断源把中断分为:根据中断源把中断分为:1、外中断:指来自处理机和内存之外的中断。、外中断:指来自处理机和内存之外的中断。2、内中断:指在处理机和内部产生的中断,也称为陷入或异常。、内中断:指在处理机和内部产生的中断,也称为陷入或异常。IBM-PC的中断分为可屏蔽中断、不可屏蔽中断、程序错误中断、软中断。的中断分为可屏蔽中断、不可屏蔽中断、程序错误中断、软中断。当同时出现多个相同级别的中断请求时,一般的采用如下的两种方法处理:当同时出现多个相同级别的中断请求时,一般的采用如下的两种方法处理:(1)固定的优先级固定的优先级(2)轮转法轮转法第九章 设 备 管 理 9.3.3 多中断多中断处理多个中断有处理多个中断有2种方法:种方法:1、在处理一个中断时,禁止再发生中断、在处理一个中断时,禁止再发生中断 优点:方法简单,因为所有中断都严格按顺序处理。优点:方法简单,因为所有中断都严格按顺序处理。缺点:没有考虑相对优先级和时间限制范围。缺点:没有考虑相对优先级和时间限制范围。2、定义中断优先级,允许高优先级的中断引发低优先级的中断处理程序自身的中断。、定义中断优先级,允许高优先级的中断引发低优先级的中断处理程序自身的中断。9.3.4 中断处理过程中断处理过程保护被中断进程现场保护被中断进程现场分析中断原因,查中断向量表取得中断处理程序的地址,以便转去执行相分析中断原因,查中断向量表取得中断处理程序的地址,以便转去执行相应的中断处理程序。应的中断处理程序。恢复被中断进程的现场,恢复被中断进程的现场,CPU继续执行原来的进程。继续执行原来的进程。第九章 设 备 管 理 9.4 缓冲技术缓冲技术缓冲技术的引入缓冲技术的引入缓冲的种类缓冲的种类缓冲池示例缓冲池示例第九章 设 备 管 理 9.4.1 缓冲技术的引入缓冲技术的引入缓冲的实现方法有缓冲的实现方法有2种:种:1、采用硬件缓冲器实现,例如、采用硬件缓冲器实现,例如I/O控制器中的数据缓冲器。控制器中的数据缓冲器。2、在内存划出一块存储区,专门用来临时存放输入、在内存划出一块存储区,专门用来临时存放输入/输出数据,这个区域称为缓冲区。输出数据,这个区域称为缓冲区。9.4.2 缓冲的种类缓冲的种类根据系统设置的缓冲区个数,可以将缓冲技术分为:根据系统设置的缓冲区个数,可以将缓冲技术分为:1、单缓冲;、单缓冲;2、双缓冲;、双缓冲;3、环形缓冲;、环形缓冲;4、缓冲池、缓冲池设一个缓冲池中有设一个缓冲池中有N个缓冲区,对其进行管理时,就会考虑到缓冲区互斥访问的个缓冲区,对其进行管理时,就会考虑到缓冲区互斥访问的问题。设定义描述资源的信号量问题。设定义描述资源的信号量buff,初值为初值为“N”,由于构成缓冲池的操作需要互斥,由于构成缓冲池的操作需要互斥进行,为此定义用于互斥的信号量进行,为此定义用于互斥的信号量mutex,初值为初值为“1”。第九章 设 备 管 理 系统中设有系统中设有2个缓冲区管理程序,分别用于缓冲区的分配和释放。个缓冲区管理程序,分别用于缓冲区的分配和释放。1.申请一个缓冲区申请一个缓冲区 P(buff);P(mutex);由链头取一个缓冲区分配;由链头取一个缓冲区分配;V(mutex);返回缓冲区指针;返回缓冲区指针;2.释放一个缓冲区释放一个缓冲区 P(mutex);将释放的缓冲区链到链头;将释放的缓冲区链到链头;V(mutex);V(buff);返回缓冲区指针;返回缓冲区指针;缓冲池属于操作系统空间,用户程序不能直接对其进行操作,只能通过缓冲池属于操作系统空间,用户程序不能直接对其进行操作,只能通过系统调用来间接地使用它们。系统调用来间接地使用它们。第九章 设 备 管 理 9.4.3 缓冲池示例缓冲池示例Hash(哈希)头缓冲头缓冲空闲队列空闲队列第九章 设 备 管 理 9.5 磁盘驱动调度磁盘驱动调度旋转延迟:等待相应扇区转到磁头下所需的时间。旋转延迟:等待相应扇区转到磁头下所需的时间。寻道时间:将磁臂移动到相应的柱面上所需的时间。寻道时间:将磁臂移动到相应的柱面上所需的时间。实际传输时间实际传输时间读写一个磁盘块的时间由三个因素决定读写一个磁盘块的时间由三个因素决定9.5.1 查找优化查找优化查找优化:就是减少平均寻道时间的策略。查找优化:就是减少平均寻道时间的策略。第九章 设 备 管 理 0191216343611.1、先来先服务策略、先来先服务策略(FCFS)例:例:一个具有一个具有40个柱面的磁盘。假设一个读柱面个柱面的磁盘。假设一个读柱面11上的一个数据块的请求到达,当对上的一个数据块的请求到达,当对柱面柱面11进行寻道时,又顺序到达了新的请求。要求寻道进行寻道时,又顺序到达了新的请求。要求寻道1、36、16、9、34、2,系统将这些请求进程插入到等待队列。当前请求(柱面系统将这些请求进程插入到等待队列。当前请求(柱面11)服务结束后,磁盘驱)服务结束后,磁盘驱动程序要选择下一个请求进行处理。动程序要选择下一个请求进行处理。第九章 设 备 管 理 2、最短寻道时间优先策略、最短寻道时间优先策略(SSF):就是当前所在的磁道离哪个磁道近就向哪个磁道移动就是当前所在的磁道离哪个磁道近就向哪个磁道移动01912163436.113、电梯算法、电梯算法(扫描算法扫描算法):就是具有方向性的就是具有方向性的SSF.01912163436.第九章 设 备 管 理 9.5.2 旋转优化旋转优化为减少旋转延迟为减少旋转延迟,对同一磁道上的连续读写信息进行合理分布称为旋转优化对同一磁道上的连续读写信息进行合理分布称为旋转优化例:例:考虑考虑10个数据块个数据块A,B,J存放在同一个磁道上,设每个磁道有存放在同一个磁道上,设每个磁道有10个扇区。如果个扇区。如果按按A,B,J顺序从顺序从0扇区开始依次存放。并且顺序处理这些数据。当磁盘旋转速扇区开始依次存放。并且顺序处理这些数据。当磁盘旋转速度为度为20毫秒,处理程序读出每个记录后花毫秒,处理程序读出每个记录后花4毫秒时间处理。则读出并处理数据块毫秒时间处理。则读出并处理数据块A后,将转到数据块后,将转到数据块D开始。所以,为了读出记录开始。所以,为了读出记录B,必须再转一周。,必须再转一周。问题:问题:1)处理)处理10个数据块的总时间为多少?个数据块的总时间为多少?2)如果采用旋转优化策略,按)如果采用旋转优化策略,按A,H,E,B,I,F,C,J,G,D顺序从顺序从0扇区开始依次扇区开始依次 存放,当读出数据存放,当读出数据A后,恰好转到数据块后,恰好转到数据块B的开始。按照这一方案,处的开始。按照这一方案,处 理理10个总数据块的时间为多少?个总数据块的时间为多少?ABCDJEFGIHAHEGBIFJCD第九章 设 备 管 理 9.6 设备分配设备分配实际上是作为用户来讲,怎么有效地分配自己所使用设备资源。强调的是设备实际上是作为用户来讲,怎么有效地分配自己所使用设备资源。强调的是设备的独立性。的独立性。9.6.1 设备分配中的数据结构设备分配中的数据结构为了实现对为了实现对I/O设备的管理和控制,需要对每台设备、通道、控制器的情况进行设备的管理和控制,需要对每台设备、通道、控制器的情况进行登记。设备分配程序依据这些信息进行设备分配。登记。设备分配程序依据这些信息进行设备分配。设备类型设备标识设备控制表指针设备类型设备标识设备忙闲标志COCT指针该等待队列队首该等待队列队尾控制器标识控制器忙闲标识CHCT指针该等待队列队首该等待队列队尾通道标识通道忙闲标识该等待队列队首该等待队列队尾第九章 设 备 管 理 9.6.2 设备分配策略设备分配策略1、静态分配和动态分配、静态分配和动态分配(1)静态分配静态分配:是在作业级进行的,用户作业开始执行之前由系统一次性分配是在作业级进行的,用户作业开始执行之前由系统一次性分配 该作业要求的全部设备,控制器和通道。该作业要求的全部设备,控制器和通道。(2)动态分配动态分配:是在进程执行过程中根据执行需要进行的设备分配。是在进程执行过程中根据执行需要进行的设备分配。2、I/O设备分配算法设备分配算法(1)先请求先服务先请求先服务(2)优先级高者优先优先级高者优先3、设备分配步骤、设备分配步骤(1)分配设备分配设备(2)分配控制器分配控制器(3)分配通道分配通道第九章 设 备 管 理 9.6.3 设备的使用性质设备的使用性质按照设备自身的使用性质,可以采用以下三种不同的分配方式按照设备自身的使用性质,可以采用以下三种不同的分配方式(1)独立分配策略独立分配策略(2)共享分配策略共享分配策略(3)虚拟分配策略虚拟分配策略第九章 设 备 管 理 9.7 虚拟设备虚拟设备Spooling系统主要包括以下系统主要包括以下3个部分个部分1.输入井和输出井:这是磁盘上开辟的2个存储区域。输入井模拟脱机输入时的磁盘,用于收容I/O设备输入的数据。输出井模拟脱机输出时的磁盘,用于收容用户程序的输出结果。2.输入缓冲区和输出缓冲区:这是在内存中开辟的2个缓冲区。输入缓冲区用于暂存由输入设备送来的数据以后再传送到输入井。输出缓冲区用于暂存从输出井送来的数据以后再传到输出设备。3.输入进程和输出进程:输入进程模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区再送到输入井,当CPU需要输入数据时直接从输入井读入内存。输出进程模拟脱机输出时的外围控制机,把用户要求输出的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上。输入缓冲区输出缓冲区输入设备输入设备输入进程输入进程输出进程输出进程磁盘磁盘输入井输出井输出设备输出设备