好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

操作系统PPT电子课件教案第九章外围设备管理(外围).ppt

152页
  • 卖家[上传人]:汽***
  • 文档编号:588846907
  • 上传时间:2024-09-09
  • 文档格式:PPT
  • 文档大小:1.90MB
  • / 152 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • n 引言引言n 数据传输控制方式数据传输控制方式 n 中断技术中断技术 n 缓冲技术缓冲技术 n设备分配设备分配nI/OI/O进程控制进程控制 n设备驱动程序设备驱动程序 第九章第九章 设备管理(外围)设备管理(外围) 外设的特点外设的特点 种类多种类多 差异大差异大( (控制和速度控制和速度) ) 外设管理目的包括外设管理目的包括 外设资源的控制外设资源的控制 外设资源的共享外设资源的共享 提高外设资源的利用率提高外设资源的利用率简介简介 9.1 9.1 引言引言 I/OI/O设备设备管理的重要性管理的重要性 外部设备类型和特征外部设备类型和特征 设备管理的目的和功能设备管理的目的和功能 外设管理结构外设管理结构 1 1、、I/OI/O管理的重要性管理的重要性n I/OI/O设备就像计算机系统的五官和四肢设备就像计算机系统的五官和四肢n I/OI/O性能经常成为系统性能的瓶颈性能经常成为系统性能的瓶颈nCPUCPU性能不等于系统性能性能不等于系统性能 响应时间也是一个重要因素响应时间也是一个重要因素nCPUCPU性能越高,与性能越高,与I/OI/O差距越大差距越大 弥补:更多的进程弥补:更多的进程n进程切换多,系统开销大进程切换多,系统开销大 1 1、、 I/OI/O管理的重要性管理的重要性n操作系统庞大复杂的原因之一是:资源多、操作系统庞大复杂的原因之一是:资源多、杂,并发,均来自杂,并发,均来自I/OI/On理解理解I/OI/O的工作过程与结构是理解操作系统的工作过程与结构是理解操作系统的工作过程与结构的关键的工作过程与结构的关键nI/OI/O技术很实用技术很实用n与其他功能联系密切,特别是文件系统与其他功能联系密切,特别是文件系统 2 2、外部设备类型和特征、外部设备类型和特征人机交互设备:视频显示设备、键盘、鼠人机交互设备:视频显示设备、键盘、鼠标、打印机标、打印机与计算机或其他电子设备交互的设备:磁与计算机或其他电子设备交互的设备:磁盘、磁带、传感器、控制器盘、磁带、传感器、控制器计算机间的通信设备:网卡、调制解调器计算机间的通信设备:网卡、调制解调器 按交互对象分类按交互对象分类 按交互方向分类按交互方向分类 输入(可读):键盘、扫描仪输入(可读):键盘、扫描仪 输出(可写):显示设备、打印机输出(可写):显示设备、打印机 输入输入/ /输出(可读写):磁盘、网卡输出(可读写):磁盘、网卡 按外设特性分类按外设特性分类n数据传输率:低速数据传输率:低速( (如键盘如键盘) )、中速、中速( (如打印机如打印机) )、、高速高速( (如网卡、磁盘如网卡、磁盘) )n信息组织特征:单个字符或数据块信息组织特征:单个字符或数据块字符设备字符设备( (如打印机如打印机) ):通常的输入输出型设备,:通常的输入输出型设备,以以字符为单位存储、传输信息;不可寻址字符为单位存储、传输信息;不可寻址块设备块设备( (如磁盘如磁盘) )::以数据块为单位存储、传输信息。

      以数据块为单位存储、传输信息可寻址可寻址 按使用特性对外部设备的分类按使用特性对外部设备的分类 从程序使用角度分类从程序使用角度分类 逻辑设备逻辑设备: : 用户程序中使用的设备用户程序中使用的设备 物理设备:实际完成物理设备:实际完成I/OI/O操作的设备操作的设备 按资源分配角度分类按资源分配角度分类独占设备独占设备在一段时间内只能有一个进程使用的设备,一般为低速在一段时间内只能有一个进程使用的设备,一般为低速I/OI/O设备如打印机,磁带等如打印机,磁带等共享设备共享设备在一段时间内可有多个进程共同使用的设备,多个进程以交在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高如硬盘)叉的方式来使用设备,其资源利用率高如硬盘)虚设备虚设备在一类设备上模拟另一类设备,常用共享设备模拟独占设备在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚设备,用高速设备模拟低速设备,被模拟的设备称为虚设备. .(实例:(实例:SPOOLingSPOOLing技术,利用虚设备技术技术,利用虚设备技术——用硬盘模拟用硬盘模拟输入输出设备)输入输出设备) 3 3 、外设管理的目的和功能、外设管理的目的和功能 1)外设管理目的)外设管理目的提高效率:提高提高效率:提高I/OI/O访问效率,匹配访问效率,匹配CPUCPU和多和多种不同处理速度的外设种不同处理速度的外设方便使用:方便用户使用,对不同类型的设方便使用:方便用户使用,对不同类型的设备统一使用方法,协调对设备的并发使用备统一使用方法,协调对设备的并发使用方便控制:方便方便控制:方便OSOS内部对设备的控制:增加内部对设备的控制:增加和删除设备,适应新的设备类型和删除设备,适应新的设备类型 2 2)) 设备管理功能设备管理功能提供设备使用的用户接口:命令接口和编程提供设备使用的用户接口:命令接口和编程接口接口设备分配和释放:使用设备前,需要分配设设备分配和释放:使用设备前,需要分配设备和相应的通道、控制器。

      备和相应的通道、控制器设备的访问和控制:包括并发访问和差错处设备的访问和控制:包括并发访问和差错处理(虚拟设备)理(虚拟设备)I/OI/O缓冲和调度:目标是提高缓冲和调度:目标是提高I/OI/O访问效率访问效率 3 3)设备管理的任务)设备管理的任务选择和分配输入输出设备以进行数据传输选择和分配输入输出设备以进行数据传输操作操作控制输入输出设备和控制输入输出设备和CPUCPU之间数据交换之间数据交换为用户提供一个友好的用户接口,使得用为用户提供一个友好的用户接口,使得用户在使用和编程时不需要了解硬件特性户在使用和编程时不需要了解硬件特性提高设备和设备之间、提高设备和设备之间、CPUCPU和设备之间、进和设备之间、进程和进程之间的并行操作度程和进程之间的并行操作度 5 5、、 外部管理结构外部管理结构User ProcessLogical I/ODevice I/OScheduling & Control(Device Driver)HardwareCommunications Architecture 5 5、、 外部管理结构外部管理结构逻辑逻辑I/OI/O::逻辑设备逻辑设备( (也称为虚拟设备也称为虚拟设备) )实体,不涉及实体,不涉及实际的设备控制;实际的设备控制;n针对用户接口,提供抽象的命令,如:针对用户接口,提供抽象的命令,如:Open, Close, Open, Close, Read, WriteRead, Write。

      n针对通信设备,则是通信体系结构如网络协议栈;针对通信设备,则是通信体系结构如网络协议栈;n针对文件存储设备,是文件系统的逻辑结构控制;针对文件存储设备,是文件系统的逻辑结构控制;设备设备I/OI/O::逻辑设备与物理设备间的过渡协调机构逻辑设备与物理设备间的过渡协调机构n用户命令到设备操作序列的转换用户命令到设备操作序列的转换nI/OI/O缓冲:提高缓冲:提高I/OI/O效率 5 5、外部管理结构、外部管理结构调度和控制:物理设备控制实体;直接面对调度和控制:物理设备控制实体;直接面对硬件设备的控制细节这部分通常体现为设硬件设备的控制细节这部分通常体现为设备驱动程序备驱动程序n并发并发I/OI/O访问调度访问调度n设备控制和状态维护设备控制和状态维护n中断处理中断处理 9.2 数据传送控制方式数据传送控制方式 ((I/O I/O 控制技术)控制技术)* *是本章重点内容之一,也是考点是本章重点内容之一,也是考点设备管理任务之一-控制设备和内存或设备管理任务之一-控制设备和内存或CPUCPU之之间的数据传送间的数据传送外围设备与内存间常用的数据传送控制方式:外围设备与内存间常用的数据传送控制方式:n程序直接控制方式程序直接控制方式n中断控制方式中断控制方式nDMADMA方式方式n通道方式通道方式 评价数据传送控制方式的原则评价数据传送控制方式的原则数据传输速度足够高,能满足用户的需数据传输速度足够高,能满足用户的需要但又不丢失数据要但又不丢失数据系统开销小,所需的处理控制程序少系统开销小,所需的处理控制程序少能充分发挥硬件资源的能力,使得能充分发挥硬件资源的能力,使得I/OI/O设备尽量忙,而设备尽量忙,而CPUCPU等待时间少等待时间少 9.2.1 9.2.1 程序直接控制方式程序直接控制方式概念:概念:I/OI/O操作由程序发起,并等待操操作由程序发起,并等待操作完成。

      数据的每次读写通过作完成数据的每次读写通过CPUCPU 1 1、程序控制、程序控制I/O(programmed I/O)I/O(programmed I/O)处理过程处理过程 2 2、程序控制缺点、程序控制缺点在外设进行数据处理时,在外设进行数据处理时,CPUCPU只能等待只能等待CPUCPU与外设只能串行工作与外设只能串行工作 只适用于只适用于CPUCPU执行速度较慢,且外围设备较执行速度较慢,且外围设备较少的系统少的系统 9.2.2 9.2.2 中断驱动方式中断驱动方式 ( Interrupt-driven I/O )( Interrupt-driven I/O )概念:概念:I/OI/O操作由程序发起,在操作完成操作由程序发起,在操作完成时(如数据可读或已经写入)由外设向时(如数据可读或已经写入)由外设向CPUCPU发出中断,通知该程序数据的每发出中断,通知该程序数据的每次读写通过次读写通过CPUCPU 1 1、中断控制方式的传送结构、中断控制方式的传送结构 2 2 、中断驱动方式处理过程、中断驱动方式处理过程 3 3、中断方式特点、中断方式特点优点优点 在外设进行数据处理时,在外设进行数据处理时,CPUCPU不必等待,不必等待,可以继续执行该程序或其他程序。

      可以继续执行该程序或其他程序缺点缺点 CPUCPU每次处理的数据量少(通常不超过几每次处理的数据量少(通常不超过几个字节),只适于数据传输率较低的设备个字节),只适于数据传输率较低的设备 9.2.3 9.2.3 直接存储访问方式直接存储访问方式 ( DMA, Direct ( DMA, Direct Memory Access )Memory Access ) 由程序设置由程序设置DMADMA控制器中的若干寄存器值控制器中的若干寄存器值(如内存始址,传送字节数),然后发起(如内存始址,传送字节数),然后发起I/OI/O操操作,而后者完成内存与外设的成批数据交换,作,而后者完成内存与外设的成批数据交换,在操作完成时由在操作完成时由DMADMA控制器向控制器向CPUCPU发出中断发出中断优点:优点:CPUCPU只需干预只需干预I/OI/O操作的开始和结束,操作的开始和结束,而其中的而其中的一批数据一批数据读写无需读写无需CPUCPU控制,适于高控制,适于高速设备 1 1、、I/OI/O控制器结构控制器结构DataDataCountCountDataDataRegisterRegisterAddressAddressRegisterRegisterControlControlLogicLogicDMA RequestDMA RequestDMA AcknowledgeDMA AcknowledgeInterruptInterruptReadReadWriteWriteAddress LinesAddress LinesData LinesData Lines 2 2、、DMADMA方式的传送结构方式的传送结构 DMADMA方式的数据传送处理过程方式的数据传送处理过程 3 3、、DMADMA工作原理工作原理存放输入数据的内存起始地址、要传送存放输入数据的内存起始地址、要传送的字节数送入的字节数送入DMADMA控制器的内存地址寄存控制器的内存地址寄存器和传送字节计数器器和传送字节计数器, ,中断允许位和启动中断允许位和启动位置成位置成1 1,启动设备,启动设备发出传输要求的进程进入等待状态发出传输要求的进程进入等待状态, ,执行执行指令被暂时挂起,进程调度其他进程占指令被暂时挂起,进程调度其他进程占据据CPUCPU 输入设备不断窃取输入设备不断窃取CPUCPU工作周期,数据不工作周期,数据不断写入内存断写入内存传送完毕,发出中断信号传送完毕,发出中断信号CPUCPU接到中断信号转入中断处理程序处理接到中断信号转入中断处理程序处理中断处理结束,中断处理结束,CPUCPU返回原进程或切换到返回原进程或切换到新的进程新的进程DMADMA工作原理工作原理 窃取总线控制权窃取总线控制权nDMADMA((I/OI/O处理器)和处理器)和CPUCPU共享主存储器和总共享主存储器和总线,因此会出现通道和线,因此会出现通道和CPUCPU同时争相访问主同时争相访问主存的情况。

      存的情况n因此给通道和因此给通道和CPUCPU规定了不同的有限次序;规定了不同的有限次序;通常通常CPUCPU被规定为最低优先级被规定为最低优先级n在微机中,系统总线的使用是在在微机中,系统总线的使用是在CPUCPU控制之控制之下的,当下的,当I/OI/O处理器要求使用总线时,向处理器要求使用总线时,向CPUCPU发出请求总线的信号,发出请求总线的信号,CPUCPU就把总线使就把总线使用权暂时转让给用权暂时转让给I/OI/O处理器 DMADMA执行的时机执行的时机处理器周期处理器周期 处理器周期处理器周期 处理器周期处理器周期 处理器周期处理器周期 处理器周期处理器周期 处理器周期处理器周期指令周期指令周期时间时间取指令取指令指令解码指令解码取操作数取操作数执行指令执行指令保存结果保存结果进程中断进程中断DMA断点断点中断点中断点CPUCPU恰好在它需要使用总线之前被挂起,即暂停一个总线周期恰好在它需要使用总线之前被挂起,即暂停一个总线周期 DMADMA方式与中断方式的主要区别方式与中断方式的主要区别n中断方式是在数据缓冲寄存器满后,发中断请求,中断方式是在数据缓冲寄存器满后,发中断请求,CPUCPU进行中断处理进行中断处理; ;n DMA DMA方式则是在所要求传送的数据块全部传送结束方式则是在所要求传送的数据块全部传送结束时要求时要求CPUCPU进行中断处理,中间只是暂停一个进行中断处理,中间只是暂停一个CPUCPU周周期期n 大大减少了大大减少了CPUCPU进行中断处理的次数进行中断处理的次数n中断方式的数据传送是由中断方式的数据传送是由CPUCPU控制完成的控制完成的n DMADMA方式则是在方式则是在DMADMA控制器的控制下不经过控制器的控制下不经过CPUCPU控制控制完成的,因此避免了因速度不匹配而造成数据丢失完成的,因此避免了因速度不匹配而造成数据丢失的现象。

      的现象DMADMA硬件比较复杂)硬件比较复杂) DMADMA特点特点优点优点::CPU只需干预只需干预I/O操作的开始和结束,操作的开始和结束,而其中的一批数据读写无需而其中的一批数据读写无需CPU控制,适于控制,适于高速设备高速设备缺点缺点::DMA方式对外围设备的管理和某些操方式对外围设备的管理和某些操作仍由作仍由CPU控制;多个控制;多个DMA控制器的同时控制器的同时使用显然会引起内存地址的冲突并使得控制使用显然会引起内存地址的冲突并使得控制过程进一步复杂化过程进一步复杂化 控制器按照指定存储器地址,把第一个字节送入主存控制器按照指定存储器地址,把第一个字节送入主存然后,按指定字节数进行数据传送然后,按指定字节数进行数据传送每当传送一个字节后,字节计数器值减每当传送一个字节后,字节计数器值减1 1,直到字节计数器等于,直到字节计数器等于0 0此时,控制器引发中断,通知操作系统,操作完成此时,控制器引发中断,通知操作系统,操作完成CPUCPU提供提供: : 被读取块磁盘地址被读取块磁盘地址 目标存储地址目标存储地址 待读取字节数待读取字节数 整块数据读进缓冲区整块数据读进缓冲区 核准校验核准校验 DMADMA工作示例(以硬盘为例)工作示例(以硬盘为例) 9.2.4 9.2.4 通道控制方式通道控制方式是可以执行程序的、负责且只负责操纵输入输出设是可以执行程序的、负责且只负责操纵输入输出设备的、功能简单专用的、低速、低性能的、造价低备的、功能简单专用的、低速、低性能的、造价低的专用处理机。

      的专用处理机负责管理设备与内存之间的数据传送的负责管理设备与内存之间的数据传送的一切一切工作CPUCPU只是命令只是命令I/OI/O处理器处理器执行主存中的执行主存中的I/OI/O程序当整个整个I/OI/O程序执行完成后,程序执行完成后,CPUCPU被被I/OI/O模块中断模块中断1. 1. 通道(通道(I/OI/O处理机)定义(处理机)定义(见教材见教材P230P230)) 2. 2. 通道控制器通道控制器(Channel Controller)(Channel Controller) 有自己的专用存储器有自己的专用存储器 可以执行由通道指令组成的通道程序可以执行由通道指令组成的通道程序 可以进行较为复杂的可以进行较为复杂的I/OI/O控制,如网卡信道控制,如网卡信道访问控制访问控制 通道程序通常由操作系统所构造,放在内通道程序通常由操作系统所构造,放在内存里 通道指令通道指令n引入目的引入目的:在通道控制方式中,:在通道控制方式中,I/OI/O控制器中没有传控制器中没有传送字节计数器和内存地址寄存器送字节计数器和内存地址寄存器n通道指令内容通道指令内容:被交换数据的内存地址、传送方向、:被交换数据的内存地址、传送方向、数据块长度、被控制数据块长度、被控制I/OI/O设备的地址信息、特征信息设备的地址信息、特征信息等等n通道指令格式通道指令格式n操作码(操作码( 读、写或控制)、通道指令结束标志、读、写或控制)、通道指令结束标志、 记记录结束标志、计数段(数据块长度)、内存地址段录结束标志、计数段(数据块长度)、内存地址段n通道指令实例通道指令实例 write 0 0 250 1850write 0 0 250 1850 write 1 1 250 720 write 1 1 250 720 3. 3. 引入通道的目的与优点引入通道的目的与优点目的目的为了为了使使CPUCPU从从I/OI/O事务中解脱出来,同时为了提事务中解脱出来,同时为了提高高CPUCPU与设备,设备与设备之间的并行工作能力。

      与设备,设备与设备之间的并行工作能力 优点优点执行一个通道程序可以完成几批执行一个通道程序可以完成几批I/OI/O操作 通道方式的数据传送结构通道方式的数据传送结构 DMADMA和通道数据传输方式区别和通道数据传输方式区别nDMADMA:数据的传输方向、存放数据的内存地:数据的传输方向、存放数据的内存地址和传送的数据块长度由址和传送的数据块长度由CPUCPU控制控制n通道方式:数据的传输方向、存放数据的内通道方式:数据的传输方向、存放数据的内存地址和传送的数据块长度由通道本身完成存地址和传送的数据块长度由通道本身完成nDMADMA控制器只能控制一台控制器只能控制一台DMADMA设备,而一个通设备,而一个通道控制器可以控制多个通道设备道控制器可以控制多个通道设备 4. 4. 通道分类通道分类选择通道选择通道(selector channel)(selector channel)::可以连接多可以连接多个外设,而一次只能访问其中一个外设个外设,而一次只能访问其中一个外设成组多路通道成组多路通道(Block multiplexor channel)(Block multiplexor channel)::可以并发访问多个外设,同时连接多个中可以并发访问多个外设,同时连接多个中速块设备。

      速块设备字节多路通道:多个字符设备字节多路通道:多个字符设备 1) 1) 字节多路通道字节多路通道字节多路通道以字节为单位传输信息,它可以字节多路通道以字节为单位传输信息,它可以分时地执行多个通道程序当一个通道程序控分时地执行多个通道程序当一个通道程序控制某台设备传送一个字节后,通道硬件就控制制某台设备传送一个字节后,通道硬件就控制转去执行另一个通道程序,控制另一台设备传转去执行另一个通道程序,控制另一台设备传送信息送信息主要连接以字节为单位的低速主要连接以字节为单位的低速I/OI/O设备如打设备如打印机,终端印机,终端 字节多路通道的工作原理字节多路通道的工作原理 字节多路通道的工作原理字节多路通道的工作原理 2) 2) 选择通道选择通道选择通道是以成组方式工作的,即每次传送选择通道是以成组方式工作的,即每次传送一批数据一批数据,,故传送速度很高选择通道在一段时间内只能执行一个故传送速度很高选择通道在一段时间内只能执行一个通道程序,只允许一台设备进行数据传输通道程序,只允许一台设备进行数据传输选择通道选择通道当这台设备数据传输当这台设备数据传输完成后,再选择与通完成后,再选择与通道连接的另一台设备,道连接的另一台设备,执行它的相应的通道执行它的相应的通道程序程序主要连接磁盘,磁带等高速主要连接磁盘,磁带等高速I/OI/O设备设备 3) 3) 成组多路通道成组多路通道它结合了选择通道传送速度高和字节多路通道能进它结合了选择通道传送速度高和字节多路通道能进行分时并行操作的优点。

      行分时并行操作的优点它先为一台设备执行一条通道指令,然后自动转接,它先为一台设备执行一条通道指令,然后自动转接,为另一台设备执行一条通道指令为另一台设备执行一条通道指令主要连接高速设备主要连接高速设备对于连接多台磁盘机的数组多路通道,它可以启动对于连接多台磁盘机的数组多路通道,它可以启动它们同时执行移臂定位操作,然后,按序交叉地传它们同时执行移臂定位操作,然后,按序交叉地传输一批批数据输一批批数据数据多路通道实际上是对通道程序采用多道程序设数据多路通道实际上是对通道程序采用多道程序设计的硬件实现计的硬件实现 3) 3) 成组多路通道成组多路通道 硬件连接结构 3) 3) 成组多路通道成组多路通道通道:通道:执行通道程序,向控制器发出命令,并执行通道程序,向控制器发出命令,并具有向具有向CPUCPU发中断信号的功能发中断信号的功能 一旦一旦CPUCPU发出指发出指令,启动通道,则通道独立于令,启动通道,则通道独立于CPUCPU工作一个通工作一个通道可连接多个控制器,一个控制器可连接多个道可连接多个控制器,一个控制器可连接多个设备,形成树形交叉连接设备,形成树形交叉连接主要目的主要目的是启动外设时:是启动外设时:n 提高了控制器效率提高了控制器效率n 提高可靠性提高可靠性n 提高并行度提高并行度 3) 3) 成组多路通道成组多路通道 设备、控制器、通道、内存之间的关系设备、控制器、通道、内存之间的关系(单通道单通道I/O系统系统) 3) 3) 成组多路通道成组多路通道 设备、控制器、通道、内存之间的关系(多通道设备、控制器、通道、内存之间的关系(多通道I/OI/O系统,交系统,交叉连接叉连接) ) 通道控制方式数据输入处理过程通道控制方式数据输入处理过程n当进程要求设备输入数据时,当进程要求设备输入数据时,CPUCPU发发StartStart指令指明指令指明I/OI/O操作、设备号和对应通道;操作、设备号和对应通道;n对应通道接收到对应通道接收到CPUCPU发来的启动指令发来的启动指令StartStart之后,把之后,把存放在内存中的通道指令程序读出,设置对应设备存放在内存中的通道指令程序读出,设置对应设备的的I/OI/O控制器中的控制状态寄存器;控制器中的控制状态寄存器;n设备根据通道指令的要求,把数据送往内存中指定设备根据通道指令的要求,把数据送往内存中指定区域;区域;n若数据传送结束,若数据传送结束,I/OI/O控制器通过中断请求线发出控制器通过中断请求线发出中断信号请求中断信号请求CPUCPU做中断处理;做中断处理;n中断处理结束后中断处理结束后CPUCPU返回被中断进程处继续执行。

      返回被中断进程处继续执行 从从CPUCPU执行的角度描述通道控制执行的角度描述通道控制 9.3 9.3 中断技术中断技术n在计算机工作中,存在多种情况需要计算机在计算机工作中,存在多种情况需要计算机停下正在处理的事件,转而去执行一些特殊停下正在处理的事件,转而去执行一些特殊事件事件n中断的基本概念中断的基本概念n中断的分类和优先级中断的分类和优先级n软中断软中断n中断处理过程中断处理过程 9.3.1 9.3.1 中断处理概念中断处理概念n中断:指计算机在执行期间,系统内发生任何中断:指计算机在执行期间,系统内发生任何非寻常的或非预期的紧急处理事件,使得非寻常的或非预期的紧急处理事件,使得CPUCPU暂时中断当前正在执行的程序而转去执行相应暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程中断处继续执行或调度新的进程执行的过程n中断源:引起中断发生的事件中断源:引起中断发生的事件n中断请求:中断源向中断请求:中断源向CPUCPU发出的请求中断处理发出的请求中断处理信号信号n中断响应:中断响应:CPUCPU收到中断请求后转相应的事件收到中断请求后转相应的事件处理程序处理程序 9.3.1 9.3.1 中断处理概念中断处理概念n禁止中断:将禁止中断:将CPUCPU内部的处理机状态字内部的处理机状态字PSWPSW的中断的中断允许位清除,从而不允许允许位清除,从而不允许CPUCPU相应中断,所以又称相应中断,所以又称为关中断;为关中断;n开中断:设置中断允许位,或称为打开中断允许开中断:设置中断允许位,或称为打开中断允许位位n中断请求、关中断和开中断等都是由硬件实现中断请求、关中断和开中断等都是由硬件实现n中断屏蔽:指在中断请求产生后,系统用软件方中断屏蔽:指在中断请求产生后,系统用软件方式有选择地封闭部分中断而允许其余部分的中断式有选择地封闭部分中断而允许其余部分的中断仍能得到响应仍能得到响应n最高优先级的中断不管计算机处理何种状态,必最高优先级的中断不管计算机处理何种状态,必须能够立即响应的,例如电源中断,机器必须及须能够立即响应的,例如电源中断,机器必须及时响应,无法中断。

      时响应,无法中断 9.3.2 9.3.2 中断的分类和优先级中断的分类和优先级中断分类中断分类n根据中断源产生的条件,分为外中断和根据中断源产生的条件,分为外中断和内中断内中断n外中断:除了外中断:除了CPUCPU和内部存储器产生的中和内部存储器产生的中断,包括所有外围设备产生的中断,从断,包括所有外围设备产生的中断,从狭义上称为中断狭义上称为中断n内中断(又称为陷阱内中断(又称为陷阱traptrap),由),由CPUCPU和内和内存产生的中断存产生的中断 9.3.2 9.3.2 中断的分类和优先级中断的分类和优先级n中断源按照轻重缓急程度进行级别划中断源按照轻重缓急程度进行级别划分,在分,在UNIXUNIX系统中分为系统中分为8 8级,中断源优级,中断源优先级固定;先级固定;nCPUCPU的处理机状态字的处理机状态字PSWPSW动态设置优先动态设置优先级级n中断源请求能否得到响应取决于和中断源请求能否得到响应取决于和PSWPSW的优先级比较,高于则能做出响应的优先级比较,高于则能做出响应 1 1、中断(软中断)和陷阱(内中断区别)、中断(软中断)和陷阱(内中断区别)n陷阱通常由处理机正在执行的现行指令引起,陷阱通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起;而中断则是由与现行指令无关的中断源引起;n陷阱处理程序提供的服务为当前进程所用,陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是;而中断处理程序提供的服务则不是;nCPUCPU在相应完一条指令之后,下一条指令开在相应完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中可以始之前响应中断,而在一条指令执行中可以响应陷阱。

      响应陷阱 9.3.4 9.3.4 中断处理过程中断处理过程 9.3.4 9.3.4 中断处理具体过程中断处理具体过程nCPUCPU检查相应中断条件是否满足;检查相应中断条件是否满足;n如果如果CPUCPU相应中断,则相应中断,则CPUCPU关中断,使其进入不关中断,使其进入不可再次响应中断的状态;可再次响应中断的状态;n保存被中断进程现场;保存被中断进程现场;n分析中断原因,挑用中断处理子程序;分析中断原因,挑用中断处理子程序;n执行中断处理子程序;执行中断处理子程序;n退出中断,恢复被中断进程的现场或调度新进退出中断,恢复被中断进程的现场或调度新进程占据处理机;程占据处理机;n开中断,开中断,CPUCPU继续执行继续执行 从从CPUCPU处理角度描述中断处理处理角度描述中断处理I/OI/O请求请求 9.4 9.4 缓冲技术缓冲技术缓冲区缓冲区CPU外设外设 基本思想:基本思想:在在CPUCPU和外设之间设置缓冲区,用于暂存和外设之间设置缓冲区,用于暂存CPUCPU与外设之间交换的数据,从而缓和与外设之间交换的数据,从而缓和CPUCPU与外设速度与外设速度不匹配的矛盾。

      不匹配的矛盾 缓冲技术引言缓冲技术引言缓冲区是在缓冲区是在内存或其它存储区内存或其它存储区中开辟一块中开辟一块存储空间包括输入缓存和输出缓存存储空间包括输入缓存和输出缓存分为专用缓存(为一个设备独占,如键盘分为专用缓存(为一个设备独占,如键盘缓存)和公用缓存(为多个设备公用)缓存)和公用缓存(为多个设备公用)缓冲技术可提高外设利用率,尽可能使外缓冲技术可提高外设利用率,尽可能使外设处于忙状态;但有一个限制:进程的设处于忙状态;但有一个限制:进程的I/OI/O请求不能超过外设的处理能力请求不能超过外设的处理能力 9.4.1 9.4.1 引入缓冲技术的目的引入缓冲技术的目的匹配匹配CPUCPU或用户应用进程与外设的不同处理速度或用户应用进程与外设的不同处理速度减少对减少对CPUCPU的中断次数的中断次数提高提高CPUCPU和和I/OI/O设备之间以及各个设备之间以及各个I/OI/O设备之间的处设备之间的处理并行性理并行性缓冲区所在的位置:内存,控制器或外设这些在缓冲区所在的位置:内存,控制器或外设这些在不同位置的缓冲区组合在一起,构成多级缓冲机制不同位置的缓冲区组合在一起,构成多级缓冲机制。

      n硬件缓冲器,如硬件缓冲器,如I/oI/o控制器中的数据缓冲寄存器控制器中的数据缓冲寄存器n在内存画出一个具有在内存画出一个具有n n个单元的专用缓冲区个单元的专用缓冲区软件缓冲)(软件缓冲) 1 1、如果没有缓冲区、如果没有缓冲区设备直接向进程地址空间传送数据,则进程要么忙等待,要么阻设备直接向进程地址空间传送数据,则进程要么忙等待,要么阻塞如果用忙等待方式,则浪费大量如果用忙等待方式,则浪费大量CPUCPU时间;时间;如果是阻塞方式,则进程阻塞在设备的如果是阻塞方式,则进程阻塞在设备的I/oI/o请求队列中这时系请求队列中这时系统有可能将进程交换出主存统有可能将进程交换出主存‘‘如果在进程被交换出主存以前,设备已开始为它进行数据传输,如果在进程被交换出主存以前,设备已开始为它进行数据传输,由于正在传输数据的页面是被锁住的,所以尽管进程被交换出去,由于正在传输数据的页面是被锁住的,所以尽管进程被交换出去,但该页面仍被锁在主存不会被交换出去但该页面仍被锁在主存不会被交换出去进程可以完成进程可以完成I/O,I/O,而重新被交换进主存;如果进程被交换出去时,而重新被交换进主存;如果进程被交换出去时,设备还没有为进程开始传输数据,于是整个进程地址空间全交换设备还没有为进程开始传输数据,于是整个进程地址空间全交换出主存。

      出主存这样这样发生死锁发生死锁因为进程被阻塞于设备因为进程被阻塞于设备I/oI/o队列,而设备有要为队列,而设备有要为它开始的它开始的I/OI/O请求服务,互相等待请求服务,互相等待 2 2、如果有缓冲区、如果有缓冲区进程在那个设备提出进程在那个设备提出I/OI/O请求前,先请求分配请求前,先请求分配一个缓冲区,然在再在设备一个缓冲区,然在再在设备I/OI/O请求队列中排请求队列中排队;当设备为该进程的队;当设备为该进程的I/OI/O请求服务时,设备请求服务时,设备并不需要进程一定在主存中,因为只向该进并不需要进程一定在主存中,因为只向该进程的缓冲区中传送数据数据传送完成后,程的缓冲区中传送数据数据传送完成后,中断处理程序唤醒该进程,将缓冲区中的数中断处理程序唤醒该进程,将缓冲区中的数据读入进程在主存的地址空间中进行处理据读入进程在主存的地址空间中进行处理 9.4.2 9.4.2 缓冲的种类缓冲的种类单缓冲单缓冲(single buffer)(single buffer)::一个缓冲区,一个缓冲区,CPUCPU和外设和外设轮流使用,一方处理完之后接着等待对方处理轮流使用,一方处理完之后接着等待对方处理。

      双缓冲双缓冲(double buffer)(double buffer)::两个缓冲区,两个缓冲区,CPUCPU和外设和外设都可以连续处理而无需等待对方要求都可以连续处理而无需等待对方要求CPUCPU和外设的和外设的速度相近速度相近多缓冲多缓冲(circular buffer)(circular buffer)::多个缓冲区,多个缓冲区,CPUCPU和外和外设的处理速度可以相差较大将多个缓冲区连接起设的处理速度可以相差较大将多个缓冲区连接起来组成两部分,一部分专门由于输入,另一部分专来组成两部分,一部分专门由于输入,另一部分专门用于输出门用于输出缓冲池缓冲池:把多个缓冲区连接起来统一管理,该缓冲:把多个缓冲区连接起来统一管理,该缓冲区既可以用于输入也可用以输出区既可以用于输入也可用以输出 7.3.3 7.3.3 缓冲池管理缓冲池管理(buffer pool)(buffer pool)n三种缓冲区队列:三种缓冲区队列:n 空闲缓冲区,空闲缓冲区,n 输入缓冲区,输入缓冲区,n 输出缓冲区输出缓冲区n四种操作:四种操作: 设备输入,设备输入, CPUCPU读入,读入, 设备输出,设备输出, CPUCPU写出。

      写出n上述操作访问各个缓冲区队列时,需要进行相应的上述操作访问各个缓冲区队列时,需要进行相应的互斥操作互斥操作是一种双方向缓冲技术;缓冲区整体利用率高是一种双方向缓冲技术;缓冲区整体利用率高 1 1、缓冲池的结构、缓冲池的结构n缓冲池由多个缓冲区组成;一个缓冲区由两缓冲池由多个缓冲区组成;一个缓冲区由两部分组成:部分组成:n缓冲首部:用来标识该缓冲器和用于管理的缓缓冲首部:用来标识该缓冲器和用于管理的缓冲首部,设备管理通过其管理缓冲区;冲首部,设备管理通过其管理缓冲区;n缓冲体:用于存放数据缓冲体:用于存放数据 缓冲区首部组成缓冲区首部组成 2、缓冲池中缓冲区队列类型n按其使用情况进行划分为如下:按其使用情况进行划分为如下: 3、缓冲池中缓冲区分类三种缓冲区队列:三种缓冲区队列: 空闲缓冲区,空闲缓冲区, 输入缓冲区,输入缓冲区, 输出缓冲区输出缓冲区n空白缓冲区:可以使用的没有数据的空白缓冲区:可以使用的没有数据的n输入缓冲区:装满输入数据的输入缓冲区:装满输入数据的n输出缓冲区:装满输出数据的输出缓冲区:装满输出数据的n工作缓冲区:系统或用户进程从以上三种缓工作缓冲区:系统或用户进程从以上三种缓冲区队列中取出缓冲区进行操作冲区队列中取出缓冲区进行操作 工作缓冲区分类(来自缓冲池)工作缓冲区分类(来自缓冲池)n用于收容设备输入数据的收容输入缓冲区用于收容设备输入数据的收容输入缓冲区hinhinn用于提取设备输入数据的提取输入缓冲区用于提取设备输入数据的提取输入缓冲区sinsinn用于收容用于收容CPUCPU输出数据的收容输出缓冲区输出数据的收容输出缓冲区houthoutn用户提取用户提取CPUCPU输出数据的提取输出缓冲区输出数据的提取输出缓冲区soutsout图图9.119.11缓冲池的工作缓冲区缓冲池的工作缓冲区 2、缓冲池管理、缓冲池管理缓冲池管理的操作缓冲池管理的操作n取缓冲区取缓冲区take_buf(typetake_buf(type) ):从缓冲队列中按一定:从缓冲队列中按一定选取原则取出一个缓冲区;选取原则取出一个缓冲区;n插入插入add_buf(type,numberadd_buf(type,number):):把缓冲区按一定的把缓冲区按一定的选取原则插入到相应的缓冲区队列选取原则插入到相应的缓冲区队列n申请缓冲区申请缓冲区get_buf(type,work_bufget_buf(type,work_buf) ):进程申请:进程申请缓冲区缓冲区n缓冲区放入缓冲队列缓冲区放入缓冲队列put_buf(type,work_bufput_buf(type,work_buf) ):: 缓冲池工作过程缓冲池工作过程n详细内容见书本详细内容见书本P238页页 伪码描述管理缓冲池伪码描述管理缓冲池 9.5 9.5 设备分配设备分配由于外设资源的有限,需解决进程间的外设共由于外设资源的有限,需解决进程间的外设共享问题,以提高外设资源的利用率。

      设备分配享问题,以提高外设资源的利用率设备分配是对进程使用外设过程的管理有两种作法:是对进程使用外设过程的管理有两种作法: 在进程间切换使用外设,如键盘和鼠标;在进程间切换使用外设,如键盘和鼠标; 通过一个虚拟设备把外设与应用进程隔开,通过一个虚拟设备把外设与应用进程隔开,只由虚拟设备来使用设备只由虚拟设备来使用设备 9.5 9.5 设备分配设备分配n 设备分配数据结构设备分配数据结构n 设备分配原则设备分配原则n设备分配设备分配方式方式n 假脱机技术假脱机技术 9.5.1 9.5.1 设备分配数据结构设备分配数据结构设备控制表设备控制表系统设备表系统设备表控制器控制表控制器控制表通道控制表通道控制表 1 1、设备控制表、设备控制表(DCT, Device Control Table)(DCT, Device Control Table)n概念:每个设备一张,描述设备特性和状态反概念:每个设备一张,描述设备特性和状态反映设备的特性、设备和控制器的连接情况映设备的特性、设备和控制器的连接情况n组成内容:组成内容:n设备标识符,用来区别不同设备设备标识符,用来区别不同设备n设备类型。

      反映设备的特性设备类型反映设备的特性n设备地址或设备号既可以和内存统一编址,也可单设备地址或设备号既可以和内存统一编址,也可单独编址n设备状态指设备是出于工作状态还是空闲设备状态指设备是出于工作状态还是空闲n等待队列指针等待使用该设备的进程组成的队列等待队列指针等待使用该设备的进程组成的队列nI/OI/O控制器指针指向该设备相连接的控制器指针指向该设备相连接的I/OI/O控制器控制器 2 2、系统设备表、系统设备表(SDT, System Device Table)(SDT, System Device Table)n概念概念:系统内一张,反映系统中设备资源的:系统内一张,反映系统中设备资源的状态,记录所有设备的状态及其设备控制表状态,记录所有设备的状态及其设备控制表的入口n组成内容组成内容nDCTDCT指针指向有关设备的设备控制表指针指向有关设备的设备控制表n正在使用设备的进程正在使用设备的进程n设备类型和设备标识符设备类型和设备标识符n设立的意义:能够反映系统中设备资源的状设立的意义:能够反映系统中设备资源的状态态 3 3、控制器控制表和通道控制表、控制器控制表和通道控制表控制器控制表控制器控制表(COCT, (COCT, COntrollerCOntroller Control Control Table)Table):每个设备控制器一张,描述:每个设备控制器一张,描述I/OI/O控制控制器的配置和状态。

      如器的配置和状态如DMADMA控制器所占用的中断控制器所占用的中断号、号、DMADMA数据通道的分配数据通道的分配通道控制表通道控制表(CHCT, (CHCT, CHannelCHannel Control Table) Control Table):每个通道一张,描述通道工作状态每个通道一张,描述通道工作状态 4 4、各表间的关系、各表间的关系系统设备表系统设备表表项1 ……表项i……设备类型设备标识获得设备的进程号DCT指针设备控制表(设备控制表(DCT))设备类型设备标识设备忙/闲标记COCT指针设备等待队列首指针设备等待队列尾指针控制器控制表控制器控制表COCT控制器标识控制器忙/闲标记CHCT指针控制器等待队列首指针控制器等待队列尾指针通道控制表通道控制表CHCT通道标识通道忙/闲标记COCT指针通道等待队列首指针通道等待队列尾指针 9.5.2 9.5.2 设备分配原则设备分配原则与设备分配有关的设备属性:与设备分配有关的设备属性:n 独享设备:打印机等;独享设备:打印机等;n 共享设备:磁盘、网卡等;共享设备:磁盘、网卡等; 合理使用外设合理使用外设( (公平和避免死锁公平和避免死锁) ) 提高设备利用率。

      提高设备利用率 应用程序与设备无关(详见书本应用程序与设备无关(详见书本P241P241)) 1 1、、 设备分配方式设备分配方式 静态分配 不会出现死锁; 设备利用率不高; 动态分配 有利于提高设备利用率 需要考虑死锁问题两种分配方式各有优缺点 1 1)静态分配)静态分配n特点:在用户作业开始执行之前,由系统特点:在用户作业开始执行之前,由系统一次分配该作业所要求的全部设备、控制一次分配该作业所要求的全部设备、控制器和通道这些设备一直为该作业所占用,器和通道这些设备一直为该作业所占用,直到该作业被撤销直到该作业被撤销n优势:不会出现死锁优势:不会出现死锁n缺点:设备利用率低缺点:设备利用率低 2 2)动态分配)动态分配n特点:在进程执行过程中根据执行需要进行特点:在进程执行过程中根据执行需要进行分配设备进程需要设备,通过系统调用命分配设备进程需要设备,通过系统调用命令项系统提出设备请求,由系统按照事先规令项系统提出设备请求,由系统按照事先规定的策略给进程分配所需要的设备,一旦用定的策略给进程分配所需要的设备,一旦用完立即释放完立即释放n优势:有利于提高设备的利用率优势:有利于提高设备的利用率n缺点:容易造成死锁缺点:容易造成死锁 2 2、设备动态分配策略、设备动态分配策略针对特定的设备采用特定的分配策略针对特定的设备采用特定的分配策略先来先服务先来先服务(FCFS)(FCFS):按:按I/OI/O请求的先后顺序,排请求的先后顺序,排成成I/OI/O请求命令队列,队首指向被请求设备的请求命令队列,队首指向被请求设备的DCTDCT;按;按FCFSFCFS分配设备;分配设备;基于优先级:依据进程的优先级,指定基于优先级:依据进程的优先级,指定I/OI/O请求请求的优先级,排成不同优先级队列;按优先级高的优先级,排成不同优先级队列;按优先级高低分配设备;低分配设备; 3、设备分配算法、设备分配算法 3 3、设备分配算法、设备分配算法 9.5.4 9.5.4 假脱机技术假脱机技术 利用假脱机技术利用假脱机技术( (SPOOLingSPOOLing, Simultaneous Peripheral , Simultaneous Peripheral Operation On Line, Operation On Line, 也称为虚拟设备技术也称为虚拟设备技术) )可把独享设备转变成可把独享设备转变成具有共享特征的虚拟设备,从而提高设备利用率。

      具有共享特征的虚拟设备,从而提高设备利用率独享设备经常会成为系统中的独享设备经常会成为系统中的“瓶颈瓶颈”资源资源进程在占用设备的整个期间,并不经常使用该设备进程在占用设备的整个期间,并不经常使用该设备引入:在多道批处理系统中,专门利用一道程序(引入:在多道批处理系统中,专门利用一道程序(SPOOLingSPOOLing程序)来完成对设备的程序)来完成对设备的I/OI/O操作无需使用外围操作无需使用外围I/OI/O处理机Application AApplication BSPOOLingProgramDeviceVirtual I/OActual I/O 1 1、、 假脱机原理假脱机原理nSPOOLingSPOOLing程序和外设进行数据交换,可以称为程序和外设进行数据交换,可以称为““实际实际I/O”I/O”一方面,一方面,SPOOLingSPOOLing程序预先从外设输入数据并加以缓冲,程序预先从外设输入数据并加以缓冲,在以后需要的时候输入到应用程序;另一方面,在以后需要的时候输入到应用程序;另一方面,SPOOLingSPOOLing程序接受应用程序的输出数据并加以缓冲,在以后适当的程序接受应用程序的输出数据并加以缓冲,在以后适当的时候输出到外设。

      输入时候输出到外设输入spoolspool和输出和输出spoolspool))n在在SPOOLingSPOOLing程序中,需要管理两级缓冲区:内存缓冲区和快程序中,需要管理两级缓冲区:内存缓冲区和快速外存上的缓冲池,后者可以暂存多批速外存上的缓冲池,后者可以暂存多批I/OI/O操作的较多数据操作的较多数据n应用程序进行应用程序进行I/OI/O操作时,只是和操作时,只是和SPOOLingSPOOLing程序交换数据,程序交换数据,可以称为可以称为" "虚拟虚拟I/O"I/O"这时虚拟这时虚拟I/OI/O实际上是从实际上是从SPOOLingSPOOLing程程序的缓冲池中读出数据或把数据送入缓冲池,而不是跟实序的缓冲池中读出数据或把数据送入缓冲池,而不是跟实际的外设进行际的外设进行I/OI/O操作 2 2、优点、优点高速虚拟高速虚拟I/OI/O操作:应用程序的虚拟操作:应用程序的虚拟I/OI/O比比实际实际I/OI/O速度提高,缩短应用程序的执行时速度提高,缩短应用程序的执行时间另一方面,程序的虚拟间另一方面,程序的虚拟I/OI/O操作时间和操作时间和实际实际I/OI/O操作时间分离开来。

      操作时间分离开来实现对独享设备的共享:由实现对独享设备的共享:由SPOOLingSPOOLing 程序程序提供虚拟设备,可以对独享设备提供虚拟设备,可以对独享设备依次共享依次共享使用 3 3、举例、举例打印机设备和可由打印机管理器管理的打印作业打印机设备和可由打印机管理器管理的打印作业队列如:如:Windows NTWindows NT中,应用程序直接向针式打印中,应用程序直接向针式打印机输出需要机输出需要1515分钟,而向打印作业队列输出只需分钟,而向打印作业队列输出只需要要1 1分钟,此后用户可以关闭应用程序而转入其分钟,此后用户可以关闭应用程序而转入其他工作,在以后适当的时候由打印机管理器完成他工作,在以后适当的时候由打印机管理器完成1515分钟的打印输出而无需用户干预分钟的打印输出而无需用户干预 9.6 I/O9.6 I/O控制控制I/OI/O控制的引入控制的引入I/OI/O控制功能控制功能I/OI/O控制的实现控制的实现设备的控制过程设备的控制过程设备控制过程的实现方式设备控制过程的实现方式I/OI/O软件的组成软件的组成 9.6.1 I/O9.6.1 I/O控制的引入控制的引入n引入目的(见教材引入目的(见教材P242P242))n概念:从用户进程的输入输出请求开始,给概念:从用户进程的输入输出请求开始,给用户进程分配设备和启动有关设备进行用户进程分配设备和启动有关设备进行I/OI/O操作,以及在操作,以及在I/OI/O操作完成之后响应中断,操作完成之后响应中断,进行善后处理位置的整个系统控制过程进行善后处理位置的整个系统控制过程 9.6.2 I/O9.6.2 I/O控制功能控制功能图图9.14 I/O9.14 I/O控制的功能控制的功能 I/O控制功能子模块介绍控制功能子模块介绍nI/OI/O请求处理模块:请求处理模块:n设备分配处理模块设备分配处理模块n缓冲区管理模块缓冲区管理模块n中断原因分析中断原因分析n唤醒中断处理程序唤醒中断处理程序 1 1、、 设备的控制过程设备的控制过程转换:将抽象的命令转换为具体的一定次序的指令转换:将抽象的命令转换为具体的一定次序的指令合法性检查:检查合法性检查:检查I/OI/O操作请求的合法性操作请求的合法性可用性检查:检查控制器和设备的状态,判断是否可用性检查:检查控制器和设备的状态,判断是否可用可用参数设置:设置控制器和设备的参数,包括构造必参数设置:设置控制器和设备的参数,包括构造必要的通道程序要的通道程序启动启动I/OI/O::向控制器或设备发起向控制器或设备发起I/OI/O操作操作中断处理:提供必要的中断处理例程,以便中断处理:提供必要的中断处理例程,以便I/OI/O完完成时调用成时调用依据用户的控制命令对外设进行控制,并返回结果。

      控依据用户的控制命令对外设进行控制,并返回结果控制过程可分为以下制过程可分为以下6 6步:步: 2 2 、、 设备控制过程的实现方式设备控制过程的实现方式作为应用进程的一部分执行:与程序控制作为应用进程的一部分执行:与程序控制I/OI/O相对应,难以对外设发出的中断作实相对应,难以对外设发出的中断作实时响应时响应作为系统进程执行:每类设备一个进程,作为系统进程执行:每类设备一个进程,或整个系统一个进程处理各类设备或整个系统一个进程处理各类设备不设进程,作为不设进程,作为OSOS核心中的设备驱动程序核心中的设备驱动程序 3 3、、 I/OI/O软件的设计目标软件的设计目标有效性:有效性: I/OI/O操作一般是系统瓶颈,很大程操作一般是系统瓶颈,很大程度上影响系统的性能和吞吐量因此要改善度上影响系统的性能和吞吐量因此要改善I/OI/O的的有效性,最为重要的是磁盘的有效性,最为重要的是磁盘的I/OI/O性能性能(如:进程等待(如:进程等待I/OI/O操作-操作-> >等待-等待-> >交换新交换新进程)进程)通用性:设备种类、特点和性能千差万别;通用性:设备种类、特点和性能千差万别;要求能够以一种一致的方式来管理所有设备要求能够以一种一致的方式来管理所有设备-一致的外部接口-一致的外部接口 3 3、、 I/OI/O软件的设计目标软件的设计目标在设计在设计I I//O O软件时的一个关键概念是设备独立性。

      用软件时的一个关键概念是设备独立性用户在编写使用软盘或硬盘上文件的程序时,无需为不户在编写使用软盘或硬盘上文件的程序时,无需为不同的设备类型而修改程序就可以使用同的设备类型而修改程序就可以使用与设备独立性密切相关的是统一命名这一目标一个与设备独立性密切相关的是统一命名这一目标一个文件或一个设备的名字只应是一个简单的字符串或一文件或一个设备的名字只应是一个简单的字符串或一个整数,不应依赖于设备个整数,不应依赖于设备出错处理是出错处理是I I//O O软件的另一个目标一般来说,数据软件的另一个目标一般来说,数据传输中的错误应尽可能地在接近硬件层上处理传输中的错误应尽可能地在接近硬件层上处理最后一个问题是可共享设备和独占设备的处理问题最后一个问题是可共享设备和独占设备的处理问题 3 3、、 I/OI/O软件的分层思想软件的分层思想–较低层软件要使较高层软件独立于硬件的特性较低层软件要使较高层软件独立于硬件的特性–较高层软件则要向用户提供一个友好的、清晰较高层软件则要向用户提供一个友好的、清晰的、简单的、功能更强的接口的、简单的、功能更强的接口 4 4、、 I/OI/O系统的层次结构及每层的主要功能系统的层次结构及每层的主要功能进行进行I/O调用,格式化调用,格式化I/O; Spooling命名,保护,阻塞,缓冲,命名,保护,阻塞,缓冲,分配分配建立设备寄存器;检查状态建立设备寄存器;检查状态当当I/O结束时,唤醒驱动器结束时,唤醒驱动器执行执行I/O操作操作 4 4、、 I/OI/O系统的层次结构及每层的主要功系统的层次结构及每层的主要功能能用户进程层执行输入输出系统调用,用户进程层执行输入输出系统调用,对对I/OI/O数据进行格式化,为假脱机输入数据进行格式化,为假脱机输入/ /输出作准备输出作准备独立于设备的软件实现设备的命名、独立于设备的软件实现设备的命名、设备的保护、成块处理、缓冲技术和设备的保护、成块处理、缓冲技术和设备分配;设备分配;( (逻辑逻辑I/O)I/O) 4 4、、 I/OI/O系统的层次结构及每层的主要功能系统的层次结构及每层的主要功能设备驱动程序设置设备寄存器、检查设设备驱动程序设置设备寄存器、检查设备的执行状态备的执行状态中断处理程序负责中断处理程序负责I I//O O完成时,唤醒设完成时,唤醒设备驱动程序进程,进行中断处理备驱动程序进程,进行中断处理硬件层实现物理硬件层实现物理I I//O O的操作的操作 4 4、、 中断处理程序中断处理程序每个进程在启动一个每个进程在启动一个I I//O O操作后阻塞操作后阻塞直到直到I I//O O操作完成并产生一个中断由操作完成并产生一个中断由操作系统接管操作系统接管CPUCPU后唤醒该进程为止后唤醒该进程为止 9.6.3 I/O9.6.3 I/O控制的实现控制的实现n作为请求作为请求I/OI/O操作的进程一部分实现操作的进程一部分实现n作为当前进程的一部分实现作为当前进程的一部分实现nI/OI/O控制由专门的系统进程控制由专门的系统进程—I/O—I/O进程完成进程完成n每类(个)设备设一专门的每类(个)设备设一专门的I/OI/O进程,该进程只能在系进程,该进程只能在系统状态下执行统状态下执行n整个系统设一整个系统设一I/OI/O进程,全面负责系统的数据传送工作进程,全面负责系统的数据传送工作n每类设备设一个专门的每类设备设一个专门的I/OI/O进程,可在核心态又可在用进程,可在核心态又可在用户态执行户态执行 9.7 9.7 设备驱动程序设备驱动程序设备驱动程序是驱动物理设备和设备驱动程序是驱动物理设备和DMADMA或或I/OI/O控制器等直控制器等直接进行接进行I/OI/O操作的操作的子程序的集合子程序的集合。

      他们负责完成设置他们负责完成设置相应设备有关寄存器的值,启动设备进行相应设备有关寄存器的值,启动设备进行I/OI/O操作,操作,指定操作的类型和数据流向等指定操作的类型和数据流向等一般一般,,设备驱动程序的任务设备驱动程序的任务是接收来自与设备无关的是接收来自与设备无关的上层软件的抽象请求,并执行这个请求上层软件的抽象请求,并执行这个请求与设备密切相关的代码放在设备驱动程序中,每个设与设备密切相关的代码放在设备驱动程序中,每个设备驱动程序处理一种设备类型备驱动程序处理一种设备类型 1 1、、设备驱动程序的功能设备驱动程序的功能设备驱动程序负责向设备的各种控制器发出命令,设备驱动程序负责向设备的各种控制器发出命令,并监督它们正确执行,进行必要的错误处理每并监督它们正确执行,进行必要的错误处理每一个控制器都设有一个或多个设备寄存器,用来存一个控制器都设有一个或多个设备寄存器,用来存放向设备发送的命令和参数放向设备发送的命令和参数对各种可能的有关设备排队、挂起、唤醒等操作进对各种可能的有关设备排队、挂起、唤醒等操作进行处理行处理执行确定缓冲区策略执行确定缓冲区策略进行比寄存器级接口更高的一些特殊处理,如代码进行比寄存器级接口更高的一些特殊处理,如代码转换、转换、ESCESC处理等处理等 确定是否发请求确定是否发请求: : 若设备空闲,则立即相应请求,若设备空闲,则立即相应请求,否则将请求按一定策略排队否则将请求按一定策略排队确定发什么:确定发什么:执行一条执行一条I/OI/O请求的第一步,是将请求的第一步,是将该请求转换成更具体的形式。

      如对于磁盘,计算该请求转换成更具体的形式如对于磁盘,计算所请求块的物理地址,检查驱动电机是否在转,所请求块的物理地址,检查驱动电机是否在转,检测存取臂是否定位在正确的柱面总之,必须检测存取臂是否定位在正确的柱面总之,必须确定需要哪些控制器命令以及命令的执行顺序确定需要哪些控制器命令以及命令的执行顺序2、、 设备驱动程序的内部策略设备驱动程序的内部策略 2 2、设备驱动程序的内部策略、设备驱动程序的内部策略发布命令发布命令发后处理:发后处理:发出一条或多条命令后,系统发出一条或多条命令后,系统有两种处理方式:驱动程序被阻塞,直到有两种处理方式:驱动程序被阻塞,直到中断处理时将它解除阻塞为止;而在其它中断处理时将它解除阻塞为止;而在其它情况下,命令执行不必延迟就很快完成,情况下,命令执行不必延迟就很快完成,不必阻塞不论哪种方式,结束后进行错不必阻塞不论哪种方式,结束后进行错误检查 2 2、、 设备驱动程序的内部策略设备驱动程序的内部策略n中断时被调用的驱动程序的事后处理中断时被调用的驱动程序的事后处理n检查结果状态和传送结果数据:如果正确,驱动程检查结果状态和传送结果数据:如果正确,驱动程序可令数据流向与设备无关的软件序可令数据流向与设备无关的软件n可能的错误处理:他返回一些错误状态信息,汇报可能的错误处理:他返回一些错误状态信息,汇报给他的调用者。

      给他的调用者n可能的唤醒:如果有因为等待此操作结束而阻塞的可能的唤醒:如果有因为等待此操作结束而阻塞的进程,则唤醒之进程,则唤醒之n可能启动下一个可能启动下一个I/OI/O请求,或者因为无请求而阻塞:请求,或者因为无请求而阻塞:倘若有其他请求在排队,则可以挑选一个请求加以倘若有其他请求在排队,则可以挑选一个请求加以启动,若没有,该驱动程序则阻塞起来,等候下一启动,若没有,该驱动程序则阻塞起来,等候下一请求的到来请求的到来 9.8 9.8 设备独立的软件设备独立的软件虽然I/O软件中一部分是设备专用的,但大部分软件是与设备无关的设备驱动程序与设备独立软件之间的确切界限是依赖于具体系统的 9.8 9.8 设备独立的软件设备独立的软件与设备无与设备无关的软件关的软件的功能的功能独立于设备的软独立于设备的软件的基本任务是件的基本任务是实现所有设备都实现所有设备都需要的功能,并需要的功能,并且向用户级软件且向用户级软件提供一个统一的提供一个统一的接口接口 9.8 9.8 设备独立的软件设备独立的软件统一命名:独立于设备的软件负责把设备的符号统一命名:独立于设备的软件负责把设备的符号名映射到相应的设备驱动程序上。

      名映射到相应的设备驱动程序上设备保护设备保护: :系统如何防止无权存取设备的用户存取系统如何防止无权存取设备的用户存取设备呢?设备呢?UNIXUNIX中同文件保护一样,设置中同文件保护一样,设置rwxrwx提供与设备无关的逻辑块:不同的磁盘可以采用提供与设备无关的逻辑块:不同的磁盘可以采用不同的扇区尺寸向较高层软件掩盖这一事实并不同的扇区尺寸向较高层软件掩盖这一事实并提供大小统一的块尺寸,这正是设备独立软件的提供大小统一的块尺寸,这正是设备独立软件的一个任务它可将若干扇区合成一个逻辑块这一个任务它可将若干扇区合成一个逻辑块这样,较高层的软件只与抽象设备打交道,独立于样,较高层的软件只与抽象设备打交道,独立于物理扇区的尺寸而使用等长的逻辑块物理扇区的尺寸而使用等长的逻辑块 9.8 9.8 设备独立的软件设备独立的软件缓冲技术缓冲技术存储设备的块分配:操作系统设置空闲块表或位图,存储设备的块分配:操作系统设置空闲块表或位图,查找空闲块的算法与设备无关查找空闲块的算法与设备无关独占独占设备分配设备分配和释放:能满足则打开成功,否则打开和释放:能满足则打开成功,否则打开失败失败出错处理出错处理:一般地,出错处理是由设备驱动程序完成,:一般地,出错处理是由设备驱动程序完成,但是有些错误不是由输入输出设备的错误造成的,如但是有些错误不是由输入输出设备的错误造成的,如由于磁盘块受损而不能再读,驱动程序重读几次后,由于磁盘块受损而不能再读,驱动程序重读几次后,仍然有错,则放弃重读并通知与设备无关的软件仍然有错,则放弃重读并通知与设备无关的软件 9.8 9.8 设备独立的软件设备独立的软件尽管大部分尽管大部分I I//O O软件都包含在操作系统中,但软件都包含在操作系统中,但仍有一小部分是由与用户程序连接在一起的库仍有一小部分是由与用户程序连接在一起的库过程,甚至完全由运行于核外的程序构成。

      系过程,甚至完全由运行于核外的程序构成系统调用,包括统调用,包括I I//O O系统调用,通常由库过程实系统调用,通常由库过程实现,如:现,如: Count = Count = write(fd,buffer,nbyteswrite(fd,buffer,nbytes););这些过程所做的工作只是将系统调用时所用的这些过程所做的工作只是将系统调用时所用的参数放在合适的位置,由其它的参数放在合适的位置,由其它的I I//O O过程实际过程实际实现真正的操作实现真正的操作 9.9 9.9 磁盘设备管理磁盘设备管理 磁盘I/O访问时间的组成 磁盘I/O调度策略 磁盘缓存置换算法CPUCPU和内存的访问速度比磁盘要快若干个数量级,和内存的访问速度比磁盘要快若干个数量级,磁盘系统的性能对整个系统的性能有重要影响,磁盘系统的性能对整个系统的性能有重要影响,磁盘设备管理的目标就是提高磁盘系统的性能磁盘设备管理的目标就是提高磁盘系统的性能 9.6 9.6 磁盘设备管理磁盘设备管理 9.6 9.6 磁盘设备管理磁盘设备管理 9.6.1 9.6.1 磁盘磁盘I/OI/O访问时间的组成访问时间的组成n柱面定位时间:柱面定位时间:磁头移动到指定柱面的机械运动时磁头移动到指定柱面的机械运动时间间n旋转延迟时间:旋转延迟时间:磁盘旋转到指定扇区的机械运动时磁盘旋转到指定扇区的机械运动时间;它与磁盘转速相关,如:软盘转速可为间;它与磁盘转速相关,如:软盘转速可为600rpm(600rpm(每分钟转速每分钟转速) ),硬盘可为,硬盘可为3600rpm3600rpmn数据传送时间:数据传送时间:从指定扇区读写数据的时间从指定扇区读写数据的时间 9.6.1 9.6.1 磁盘磁盘I/OI/O访问时间的组成访问时间的组成由于柱面定位时间在访问时间中占主要部分,由于柱面定位时间在访问时间中占主要部分,合理组成磁盘数据的存储位置可提高磁盘合理组成磁盘数据的存储位置可提高磁盘I/OI/O性能。

      性能当一个进程读磁盘上一个大的连续分配文件当一个进程读磁盘上一个大的连续分配文件时,尽管看起来对磁盘的访问请求很多,但由时,尽管看起来对磁盘的访问请求很多,但由于各信息块链在一起,磁头的移动距离却很小,于各信息块链在一起,磁头的移动距离却很小,而链接文件和索引文件的数据块可能会散布在而链接文件和索引文件的数据块可能会散布在整个盘上,使磁盘的磁臂大幅度移动,整个盘上,使磁盘的磁臂大幅度移动,I/OI/O负负担加重 9.6.1 9.6.1 磁盘磁盘I/OI/O访问时间的组成访问时间的组成 例子:读一个例子:读一个128KB128KB大小的文件大小的文件(1)(1)文件由文件由8 8个连续磁道个连续磁道( (每个磁道每个磁道3232个扇区个扇区) )上的上的256 256 个扇区构成:个扇区构成:20ms+(7.3ms+16.7ms)*8=220ms;20ms+(7.3ms+16.7ms)*8=220ms;其中,柱面定位时间为其中,柱面定位时间为20ms20ms,,旋转延迟时间为旋转延迟时间为7.3ms7.3ms,,3232扇区数据传送时间为扇区数据传送时间为16.7ms16.7ms;;(2)(2)文件由文件由256256个随机分布的扇区构成:个随机分布的扇区构成:(20ms+7.3ms+0.5ms)*256=7373ms;(20ms+7.3ms+0.5ms)*256=7373ms;其中,其中,1 1扇区数据传送时间为扇区数据传送时间为0.5ms0.5ms;;随机分布时的访问时间为连续分布时的随机分布时的访问时间为连续分布时的33.533.5倍。

      倍 7.6.2 7.6.2 磁盘磁盘I/OI/O调度策略调度策略 有有若若干干个个访访问问者者请请求求磁磁盘盘执执行行输输入入输输出出操操作作,,应应先先让让哪哪一一个个访访问问者者完完成成操操作作??((为为了了保保证证信信息息的的安安全全,,系系统统在在任任一一时时刻刻只只允允许许一一个个访访问问者者启启动动磁磁盘盘执执行行输输入输出操作,其余的访问者必须等待入输出操作,其余的访问者必须等待当当多多个个访访盘盘请请求求在在等等待待时时,,采采用用一一定定的的策策略略,,对对这这些些请请求求的的服服务务顺顺序序调调整整安安排排,,旨旨在在降降低低平平均均磁磁盘盘服服务时间,达到公平、高效务时间,达到公平、高效公平:一个公平:一个I/OI/O请求在有限时间内满足请求在有限时间内满足高效:减少设备机械运动所带来的时间浪费高效:减少设备机械运动所带来的时间浪费1. 1. 问题的提出问题的提出 2. 2. 磁盘调度考虑的问题磁盘调度考虑的问题为为了了提提高高系系统统效效率率,,降降低低若若干干个个访访问问者者执执行行输输入入输输出出操操作作的的总总时时间间((平平均均服服务务时时间间)),,增增加加单单位位时时间间内内的的输输入入输输出出操操作作次次数数,,应应根根据据移移动动臂臂的的当当前前位位置置使使寻寻找找时时间间和和延延迟迟时时间间尽尽可可能能小小的的那那个个访访问问者者优优先先得到服务。

      得到服务一一次次访访盘盘时时间间 = = 寻寻道道时时间间+ +旋旋转转延延迟迟时时间间+ +存存取取时时间间(1) (1) 减少寻道时间(活动头磁盘)减少寻道时间(活动头磁盘)(2) (2) 减少延迟时间(固定头磁盘)减少延迟时间(固定头磁盘) 3. 3. 磁盘调度算法-移臂调度磁盘调度算法-移臂调度 先进先出算法先进先出算法 优先级算法优先级算法 后进先出算法后进先出算法 短查找时间优先算法短查找时间优先算法 扫描扫描(SCAN)(SCAN)算法算法 循环扫描循环扫描(C-SCAN)(C-SCAN)算法算法 N N步扫描步扫描(N-step-SCAN)(N-step-SCAN)算法算法 双队列扫描双队列扫描(FSCAN)(FSCAN)算法算法 3. 3. 磁盘调度算法-移臂调度磁盘调度算法-移臂调度先进先出先进先出(FIFO, First In First Out)(FIFO, First In First Out)算法算法原理:磁盘原理:磁盘I/OI/O执行顺序为磁盘执行顺序为磁盘I/OI/O请求的先后请求的先后顺序该算法的特点是公平性;在磁盘该算法的特点是公平性;在磁盘I/OI/O负载较轻且负载较轻且每次读写多个连续扇区时,性能较好。

      每次读写多个连续扇区时,性能较好缺点:效率不高,缺点:效率不高,未考虑访问者要求访问的物未考虑访问者要求访问的物理位置,理位置,相临两次请求可能会造成最内到最外相临两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时的柱面寻道,使磁头反复移动,增加了服务时间,对机械也不利;间,对机械也不利; 3. 3. 磁盘调度算法-移臂调度磁盘调度算法-移臂调度先进先出先进先出(FIFO, First In First Out)(FIFO, First In First Out)算法算法n 例:假设磁盘访问序列:例:假设磁盘访问序列: 9898,,183183,,3737,,122122,,1414,,124124,,6565,,6767读写头起始位置:读写头起始位置:5353安排磁头服务序列安排磁头服务序列计算磁头移动总距离(道数)计算磁头移动总距离(道数) 3. 3. 磁盘调度算法-移臂调度磁盘调度算法-移臂调度 先进先出先进先出(FIFO, First In First Out)(FIFO, First In First Out)算法算法 3. 3. 磁盘调度算法-移臂调度磁盘调度算法-移臂调度 优先级算法优先级算法依据进程优先级来调整磁盘依据进程优先级来调整磁盘I/OI/O请求的执请求的执行顺序。

      行顺序该算法反映进程在系统的优先级特征,该算法反映进程在系统的优先级特征,目标是系统目标的实现,而不是改进磁盘目标是系统目标的实现,而不是改进磁盘I/OI/O性能 3. 3. 磁盘调度算法-移臂调度磁盘调度算法-移臂调度 后进先出(LIFO, Last In First Out)算法后产生的磁盘I/O请求,先执行该算法是基于事务系统中顺序文件中磁盘I/O的局部性特征,相邻访问的位置也相邻它的问题在于系统负载重时,可能有进程的磁盘I/O永远不能执行,处于饥饿状态 3. 3. 磁盘调度算法-移臂调度磁盘调度算法-移臂调度短查找时间优先短查找时间优先(SSTF, Shortest Service Time (SSTF, Shortest Service Time First)First)算法算法考虑磁盘考虑磁盘I/OI/O请求队列中各请求的磁头定位位置请求队列中各请求的磁头定位位置,选择从当前磁头位置出发,移动最少的磁盘,选择从当前磁头位置出发,移动最少的磁盘I/OI/O请求该算法的目标是使每次磁头移动时间最少该算法的目标是使每次磁头移动时间最少它不一定是最短平均柱面定位时间,但比它不一定是最短平均柱面定位时间,但比FIFOFIFO算法有更好的性能。

      算法有更好的性能对中间的磁道有利,可能会有进程处于饥饿对中间的磁道有利,可能会有进程处于饥饿状态不公平:未考虑访问者到来的先后次序不公平:未考虑访问者到来的先后次序 3. 3. 磁盘调度算法-移臂调度磁盘调度算法-移臂调度短查找时间优先短查找时间优先(SSTF, Shortest Service Time First)(SSTF, Shortest Service Time First)算法算法 3. 3. 磁盘调度算法-移臂调度磁盘调度算法-移臂调度 扫描(SCAN)算法-电梯式算法n选择在磁头前进方向上从当前位置移动最少的磁盘选择在磁头前进方向上从当前位置移动最少的磁盘I/OI/O请求执行,没有前进方向上的请求时才改变方请求执行,没有前进方向上的请求时才改变方向n该算法是对该算法是对SSTFSSTF算法的改进,磁盘算法的改进,磁盘I/OI/O较好,且没较好,且没有进程会饿死有进程会饿死nSSTFSSTF不考虑臂的移动方向,可能导致移动臂来回改不考虑臂的移动方向,可能导致移动臂来回改变移动方向,速度相对较慢相比之下,电梯调度变移动方向,速度相对较慢相比之下,电梯调度算法是一种简单、实用且高效的调度算法,但是,算法是一种简单、实用且高效的调度算法,但是,实现时除了要记住读写磁头的当前位置外,还必须实现时除了要记住读写磁头的当前位置外,还必须记住移动臂的移动方向。

      记住移动臂的移动方向 3. 3. 磁盘调度算法-移臂调度磁盘调度算法-移臂调度 扫描扫描(SCAN)(SCAN)算法-电梯式算法算法-电梯式算法 3. 3. 磁盘调度算法-移臂调度磁盘调度算法-移臂调度 扫描扫描(SCAN)(SCAN)算法-电梯式算法算法-电梯式算法 3. 3. 磁盘调度算法-移臂调度磁盘调度算法-移臂调度 循环扫描(C-SCAN)算法(单向扫描算法)n在一个方向上使用扫描算法,当到达边沿时直接移动在一个方向上使用扫描算法,当到达边沿时直接移动到另一沿的第一个位置到另一沿的第一个位置n总是从总是从0 0号柱面开始向里扫描,依次选择所遇到的访问号柱面开始向里扫描,依次选择所遇到的访问者;移动臂到达最后一个柱面时,立即带动读写磁头者;移动臂到达最后一个柱面时,立即带动读写磁头快速返回到快速返回到0 0号柱面,返回时不为任何访问者服务,返号柱面,返回时不为任何访问者服务,返回后再次进行扫描回后再次进行扫描单向反复地扫描,将磁盘各磁道视为一个环形缓冲区,首尾相单向反复地扫描,将磁盘各磁道视为一个环形缓冲区,首尾相连,最后一个磁道与第一个磁道相连连,最后一个磁道与第一个磁道相连n该算法可改进扫描算法对中间磁道的偏好。

      实验表明,该算法可改进扫描算法对中间磁道的偏好实验表明,该算法在中负载或重负载时,磁盘该算法在中负载或重负载时,磁盘I/OI/O性能比扫描算法性能比扫描算法好 3. 3. 磁盘调度算法-移臂调度磁盘调度算法-移臂调度 N N步扫描步扫描(N-step-SCAN)(N-step-SCAN)算法算法n把磁盘把磁盘I/OI/O请求队列分成长度为请求队列分成长度为N N的段,的段,每次使用扫描算法处理每次使用扫描算法处理这这N N个请求当个请求当N=1N=1时,该算法退化为时,该算法退化为FIFOFIFO算法n该算法的目标是改进前几种算法可能在该算法的目标是改进前几种算法可能在多磁头系统中出现磁头静止在一个磁道多磁头系统中出现磁头静止在一个磁道上,导致其它进程无法及时进行磁盘上,导致其它进程无法及时进行磁盘I/OI/O 3. 3. 磁盘调度算法-移臂调度磁盘调度算法-移臂调度 双队列扫描(FSCAN)算法:n把磁盘I/O请求分成两个队列,交替使用扫描算法处理一个队列,新生成的磁盘I/O请求放入另一队列中n该算法的目标与N步扫描算法一致 4. 4. 磁盘调度算法磁盘调度算法-旋转调度-旋转调度根据延迟时间来决定执行次序的调度称根据延迟时间来决定执行次序的调度称为为““旋转调度旋转调度””。

      即:当移动臂定位后,即:当移动臂定位后,决定同一柱面访问者的执行次序?从减决定同一柱面访问者的执行次序?从减少输入输出操作总时间为目标考虑,应少输入输出操作总时间为目标考虑,应优先选择延迟时间最短的访问者进行服优先选择延迟时间最短的访问者进行服务 4. 4. 磁盘调度算法磁盘调度算法-旋转调度-旋转调度进行旋转调度时应分析下列情况:进行旋转调度时应分析下列情况:((1 1)) 若若干干等等待待访访问问者者请请求求访访问问同同一一磁磁道道上上的不同扇区的不同扇区2 2)) 若若干干等等待待访访问问者者请请求求访访问问不不同同磁磁道道上上的不同编号的扇区的不同编号的扇区3 3)) 若若干干等等待待访访问问者者请请求求访访问问不不同同磁磁道道上上具有相同编号的扇区具有相同编号的扇区 4. 4. 磁盘调度算法磁盘调度算法-旋转调度-旋转调度对对于于前前两两种种情情况况,,旋旋转转调调度度总总是是让让首首先先到到达达读读写写磁磁头头位位置置下下的的扇扇区区先先进行传送操作进行传送操作对对于于第第三三种种情情况况,,这这些些扇扇区区同同时时到到达达读读写写磁磁头头位位置置下下,,旋旋转转调调度度可可任任意选择一个读写磁头进行传送操作。

      意选择一个读写磁头进行传送操作 5. 5. 交叉存放方式交叉存放方式n磁盘数据的存取:磁盘块-内部缓冲区-内存当数据从磁盘块传送至内存时,后续扇区中的数据将从磁头下通过但控制器一般不能同时进行输入输出,因在数据块传输的这段时间里,从磁头下通过的扇区的信息丢失n因此,应将数据以交叉方式存放,块间应间隔的扇区数与数据从磁盘传送到内存的速度有关 5. 5. 交叉存放方式交叉存放方式03145276n每磁道有每磁道有8 8个扇区,每扇区有个扇区,每扇区有512512字节,旋转速度为字节,旋转速度为30003000转转/ /分n假定磁头已在要读取信息的磁道上,假定磁头已在要读取信息的磁道上,0 0扇区旋转到磁头下需要扇区旋转到磁头下需要1/21/2转,且设备对应的控制器不能同时进行输入输出转,且设备对应的控制器不能同时进行输入输出n在数据从控制器传送到内存的这段时间内,从磁头下通过的扇在数据从控制器传送到内存的这段时间内,从磁头下通过的扇区数为区数为2 2n问:依次读出一个磁道上的所有扇区需要多少时间?其数据传问:依次读出一个磁道上的所有扇区需要多少时间?其数据传输速度为多少?输速度为多少? 例:例:有一个交叉存放信息有一个交叉存放信息的磁盘,信息在其上的存放的磁盘,信息在其上的存放方法如图所示。

      方法如图所示 5. 5. 交叉存放方式交叉存放方式n从从图中可知,信息块之间的间隔为图中可知,信息块之间的间隔为2 2个扇区n旋转速度:旋转速度:30003000转转/ /分,即分,即20ms/20ms/转转n读一个扇区需要时间:读一个扇区需要时间:20/8=2.5ms20/8=2.5msn读一个扇区并将扇区数据送入内存需要时间:读一个扇区并将扇区数据送入内存需要时间:2.5×3=7.5ms2.5×3=7.5msn读出一个磁道上所有扇区需要时间:读出一个磁道上所有扇区需要时间: 20/2+8×7.5=70ms=0.07s20/2+8×7.5=70ms=0.07sn每磁道数据量:每磁道数据量:8×512=4KB8×512=4KBn数据传输速度为:数据传输速度为: 4KB/0.07=57.1KB/4KB/0.07=57.1KB/秒秒 7.6.3 7.6.3 磁盘缓存置换算法磁盘缓存置换算法1.1.访问频率置换算法访问频率置换算法 (Frequency-based Replacement)(Frequency-based Replacement)磁盘缓存是磁盘扇区在内存中的缓冲区。

      磁盘缓存是磁盘扇区在内存中的缓冲区磁盘缓存的调度算法很类似虚拟存储调度算法,磁盘缓存的调度算法很类似虚拟存储调度算法,但由于磁盘的访问频率远低于虚拟存储,它们但由于磁盘的访问频率远低于虚拟存储,它们又存在区别又存在区别通常磁盘缓存调度算法会比虚拟存储复杂通常磁盘缓存调度算法会比虚拟存储复杂 7.6.3 7.6.3 磁盘缓存置换算法磁盘缓存置换算法1.1.访问频率置换算法的引入访问频率置换算法的引入它是对它是对LRU(LRU(最近最久未使用最近最久未使用) )算法和算法和LFU(LFU(最不常用最不常用) )算法的算法的改进;它要解决的主要问题是在改进;它要解决的主要问题是在LFULFU算法中的引用计数问算法中的引用计数问题磁盘访问可能会十分集中,在一段密集使用后,引用计数磁盘访问可能会十分集中,在一段密集使用后,引用计数的变化就不能反映当前的引用情况需要考虑磁盘访问的的变化就不能反映当前的引用情况需要考虑磁盘访问的这种密集特征,对密集引用不计数这种密集特征,对密集引用不计数其基本思想是在短周期中使用其基本思想是在短周期中使用LRULRU算法,而在长周期中使算法,而在长周期中使用用LFULFU算法。

      算法 7.6.3 7.6.3 磁盘缓存置换算法磁盘缓存置换算法 访问频率置换算法访问频率置换算法把LRU算法中的特殊栈分成三部分,并在每个缓存块增加一个引用计数n 新区域(New Section)n 中间区域(Middle Section)n 旧区域(Old Section) 7.6.3 7.6.3 磁盘缓存置换算法磁盘缓存置换算法 访问频率置换算法访问频率置换算法n栈中缓存块被访问时移到栈顶;如果该块在新区域,引栈中缓存块被访问时移到栈顶;如果该块在新区域,引用计数不变;否则,引用计数加用计数不变;否则,引用计数加1 1n在新区域中引用计数不变的目的是避免密集访问对引在新区域中引用计数不变的目的是避免密集访问对引用计数不利影响;用计数不利影响;n在中间区域和旧区域中引用计数加在中间区域和旧区域中引用计数加1 1是为了使用是为了使用LFULFU算算法;法;n未缓存数据块读入后放在栈顶,引用计数为未缓存数据块读入后放在栈顶,引用计数为1 1;;n在旧区域中引用计数最小的缓存块被置换;中间区域的在旧区域中引用计数最小的缓存块被置换;中间区域的定义是为了避免新读入的缓存块在第一次出现在新区域定义是为了避免新读入的缓存块在第一次出现在新区域时马上被置换,有一个过渡期;时马上被置换,有一个过渡期; 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.