1、第四章第四章 设备管理设备管理l目的与要求:目的与要求:掌握掌握I/O控制的硬件基础和基本原理、设备的管理和使用方法。控制的硬件基础和基本原理、设备的管理和使用方法。理解设备管理子系统的层次,功能及技术、了解磁盘设备。理解设备管理子系统的层次,功能及技术、了解磁盘设备。l重点与难点:重点与难点:I/O控制方式控制方式设备使用方法设备使用方法I/O软件层次结构软件层次结构设备驱动程序设备驱动程序缓冲技术缓冲技术磁盘调度方法磁盘调度方法盘阵选择盘阵选择l作业:2,5,9,10,14第四章 设备管理l4.1 I/O4.1 I/O硬件硬件l4.2 I/O4.2 I/O软件软件l4.3 4.3 存储设备
2、存储设备4.1 I/O硬件l4.1.1 I/O总线总线l4.1.2 设备控制器设备控制器l4.1.3 直接存储器访问控制器直接存储器访问控制器l4.1.4 I/O通道通道l4.1.5 I/O设备设备l4.1.6 I/O 控制方式控制方式4.1.1 I/O总线l 第一章所讲的总线的基本内容。第一章所讲的总线的基本内容。l PCI总线及其配置空间总线及其配置空间4.1.2 设备控制器lI/O设备通常包含一个机械部件和一个电子部件。电子部件被称作I/O部件或设备控制器。l操作系统一般只与控制器打交道,而非设备本身。l早期CPU是直接控制外部设备的,在引入I/O部件之后,I/O指令功能加强,才将CPU
3、逐渐从与外设的交互细节中解放出来。4.1.2 设备控制器设备控制器数据寄存器数据寄存器控制控制/状态状态寄存器寄存器 I/O逻辑逻辑控制器控制器与设备与设备接口接口1控制器控制器与设备与设备接口接口N设备控制器的组成 设备控制器的组成 设备控制器的组成设备控制器的组成 l控制器的基本结构控制器的基本结构总线控制器总线控制器处理机处理机 主存主存 显卡显卡 外外 设设 光光 盘盘 磁磁 盘盘SCSISCSI控制器控制器外设控制器外设控制器控控制制器器控控制制器器PCIPCI外设总线外设总线4.1.2 设备控制器各部件的连接模型各部件的连接模型主版总线主版总线SCSI是一种智能的通用接口标准 磁盘
4、磁盘 控制器控制器主存主存比特流字节块转换、校验字符显示字符显示控制器控制器主存经主存经CPUCPU显示信号字节流转换4.1.2 设备控制器l 控制器的任务:在外部设备与内存(或CPU)之间完成比特流(或外部信号)和字节块(流)之间的转换。4.1.3 直接存储器访问控制器l DMA控制器内部结构及外部接口关系控制器内部结构及外部接口关系 CPUDRMARDCCRI/O控制逻辑l定义:定义:通道是独立于通道是独立于CPUCPU的专门负责数据输入的专门负责数据输入/输出传输输出传输工作的处理机,对外部设备实现统一管理,代替工作的处理机,对外部设备实现统一管理,代替CPUCPU对对输入输入/输出操作
5、进行控制,从而使输入,输出操作可与输出操作进行控制,从而使输入,输出操作可与CPUCPU并行操作。并行操作。通通道道又又称称输输入入输输出出处处理理机机,术术语语“通通道道”专专指指专专门门用用来来负负责责输输入入输输出出工工作作的的处处理理机机(简简称称/处处理理机机)。比比起起中中央央处处理理机机来来,通通道道是是一一个个比比功功能能较较弱弱、速速度度较较慢慢、价价格格较较为为便便宜宜的的处处理理机机。但但“通通道道”一一词词在在微微型型机机中中常常指指与与或或与与/处处理理机机相相连连设设备备的单纯的数据传送通路,它并不具有处理机的功能。的单纯的数据传送通路,它并不具有处理机的功能。4.
6、1.4 I/O通道4.1.4 I/O4.1.4 I/O通道通道 1.1.引入通道的目的引入通道的目的 为了使为了使CPUCPU从从I/OI/O事务中解脱出来,事务中解脱出来,同时为了提高同时为了提高CPUCPU与设备,设备与设备与设备,设备与设备之间的并行工作能力之间的并行工作能力 2.通道类型l字字节节多多路路通通道道:通通常常按按字字节节交交叉叉的的方方式式工工作,适用于低速设备。作,适用于低速设备。l数数组组选选择择通通道道:按按成成组组方方式式进进行行数数据据传传输输,适用于高速设备。适用于高速设备。l数数组组多多路路通通道道:综综合合前前二二个个优优点点(数数据据传传送率和通道利用率
7、都较高)。送率和通道利用率都较高)。4.1.4 I/O4.1.4 I/O通道通道 1)1)字节多路通道字节多路通道 字节多路通道以字节为单位传输信息,字节多路通道以字节为单位传输信息,它可以分时地执行多个通道程序。当一个通它可以分时地执行多个通道程序。当一个通道程序控制某台设备传送一个字节后,通道道程序控制某台设备传送一个字节后,通道硬件就控制转去执行另一个通道程序,控制硬件就控制转去执行另一个通道程序,控制另一台设备传送信息。另一台设备传送信息。主要连接以字节为单位的低速主要连接以字节为单位的低速I/OI/O设备设备。如打。如打印机,终端。印机,终端。以字节为单位交叉传输,当一台传送一个字以
8、字节为单位交叉传输,当一台传送一个字节后,立即转去为另一台传送字节。节后,立即转去为另一台传送字节。4.1.4 I/O4.1.4 I/O通道通道2)数组选择通道数组选择通道 数组选择通道是以成组方式工作的,即数组选择通道是以成组方式工作的,即每次传送一批数据,故传送速度很高。选择每次传送一批数据,故传送速度很高。选择通道在一段时间内只能执行一个通道程序,通道在一段时间内只能执行一个通道程序,只允许一台设备进行数据传输只允许一台设备进行数据传输 当这台设备数据传输完成后,再选择与当这台设备数据传输完成后,再选择与通道连接的另一台设备,执行它的相应的通通道连接的另一台设备,执行它的相应的通道程序道
9、程序 主要连接磁盘,磁带等高速主要连接磁盘,磁带等高速I/OI/O设备设备 4.1.4 I/O4.1.4 I/O通道通道 4.1.4 I/O4.1.4 I/O通道通道数组选择通道数组选择通道3)3)数组多路通道数组多路通道 数组多路通道结合了选择通道传送速度高数组多路通道结合了选择通道传送速度高和字节多路通道能进行分时并行操作的优点。和字节多路通道能进行分时并行操作的优点。它先为一台设备执行一条通道指令,然后自动它先为一台设备执行一条通道指令,然后自动转接,为另一台设备执行一条通道指令转接,为另一台设备执行一条通道指令 主要连接高速设备主要连接高速设备 这样,对于连接多台磁盘机的数组多路通这样
10、,对于连接多台磁盘机的数组多路通道,它可以启动它们同时执行移臂定位操作,道,它可以启动它们同时执行移臂定位操作,然后,按序交叉地传输一批批数据。数据多路然后,按序交叉地传输一批批数据。数据多路通道实际上是对通道程序采用多道程序设计的通道实际上是对通道程序采用多道程序设计的硬件实现硬件实现 4.1.4 I/O4.1.4 I/O通道通道3.3.硬件连接结构硬件连接结构 系 统 总 线I/O 总 线I/O控制器I/O控制器I/O控制器I/O控制器处理器通道处理器内存 通道相当于一个功能简单的处理机,通道相当于一个功能简单的处理机,包含通道指令(空操作,读操作,写操包含通道指令(空操作,读操作,写操作
11、,控制,转移操作),并可执行用这作,控制,转移操作),并可执行用这些指令编写的通道程序些指令编写的通道程序 4.4.通道工作原理通道工作原理4.1.4 I/O4.1.4 I/O通道通道通道地址字通道地址字 CAWCAW:记录通道程序在内存中的地址记录通道程序在内存中的地址通道命令字通道命令字 CCWCCW:保存正在执行的通道指令保存正在执行的通道指令通道状态字通道状态字 CSWCSW:存放通道执行后的返回结果存放通道执行后的返回结果通道数据字通道数据字 CDWCDW:存放传输数据存放传输数据 通道和通道和CPUCPU共用内存,通过周期窃取方式取共用内存,通过周期窃取方式取得得1)1)通道运算控
12、制部件通道运算控制部件 用于用于I/OI/O操作的命令主要有两种:操作的命令主要有两种:I/OI/O指令:启动通道程序指令:启动通道程序 通道命令:对通道命令:对I/OI/O操作进行控制操作进行控制 读、反读、写、测试设备状态的数读、反读、写、测试设备状态的数据传输命令、用于设备控制的命令据传输命令、用于设备控制的命令(磁带反绕、换页)、实现通道程序(磁带反绕、换页)、实现通道程序内部控制的转移命令内部控制的转移命令 2)2)通道命令通道命令 命令格式一般包括:命令格式一般包括:操作码、数据传输内存地址、特操作码、数据传输内存地址、特征位、计数器征位、计数器 3)3)通道命令格式通道命令格式
13、CPUCPU:执行用户程序,当遇到执行用户程序,当遇到I/OI/O请求时,请求时,可根据该请求生成通道程序放入内存(也可根据该请求生成通道程序放入内存(也可事先编好放入内存),并将该通道程序可事先编好放入内存),并将该通道程序的首地址放入的首地址放入CAWCAW中;之后执行中;之后执行“启动启动I/OI/O”指令,启动通道工作。指令,启动通道工作。4)4)工作原理工作原理 l通道:通道:接收到接收到“启动启动I/OI/O”指令后,从指令后,从CAWCAW中中取出通道程序的首地址,并根据首地址取出取出通道程序的首地址,并根据首地址取出第一条指令放入第一条指令放入CCWCCW中,同时向中,同时向C
14、PUCPU发回答信发回答信号,使号,使CPUCPU可继续执行其他程序,而通道则可继续执行其他程序,而通道则开始执行通道程序,完成传输工作。开始执行通道程序,完成传输工作。当当通通道道传传输输完完成成最最后后一一条条指指令令时时,向向CPU发发I/O中中断断,并并且且通通道道停停止止工工作作。CPU接接收收中中断断信信号号,从从CSW中中取取得得有有关关信信息息,决定下一步做什么决定下一步做什么4)4)工作原理工作原理 5.通道与CPU的关系l主从关系主从关系l可并行工作可并行工作l有通信方式有通信方式l作用不同(通道作用不同(通道/;计算)计算)4.1.4 I/O4.1.4 I/O通道通道4.
15、1.4 I/O通道l通道传送与中断传送的区别:中断控制传送由中断控制器发出中断信息,中止CPU现行程序,转去执行中断服务程序。通道方式则是通过执行通道程序来实现。中断服务程序与CPU的现行程序是串行工作的,而通道程序的执行与CPU的现行程序是并行工作的。程序中断控制传送以CPU为中心,而通道则和DMA一样以内存为中心。4.1.4 I/O通道l通道传送与DMA传送的区别:DMA主要靠专用接口硬件实现数据传送;通道则靠执行通道程序实现数据传送。中断服务程序与CPU的现行程序是串行工作的,而通道程序的执行与CPU的现行程序是并行工作的。DMA一般用来控制高速外设成组传送,通道既可控制高速外设成组传送
16、,也可控制低速外设进行字或字节交叉传送。4.1.5 I/O设备l按数据组织分类:按数据组织分类:块设备块设备字符设备字符设备l从资源分配角度分类:从资源分配角度分类:独占设备独占设备共享设备共享设备虚拟设备虚拟设备l按传输速率分类:按传输速率分类:低速设备低速设备中速设备中速设备高速设备高速设备 l按其他方法分类:如按输入按其他方法分类:如按输入/输出对象进行,或者输出对象进行,或者按是否可交互来进行按是否可交互来进行。CPU直接控制外部设备引入I/O部件,CPU直接控制I/O部件引入中断驱动方式引入DMAI/O通道或I/O处理机输入输出控制方式的发展过程4.1.6 I/O控制方式4.1.6
17、I/O控制方式l程序直接控制方式:需要需要CPU直接控制直接控制I/O操作的全过程,包括发送读操作的全过程,包括发送读写命令、传输数据、测试设备状态写命令、传输数据、测试设备状态。处理机指令集应包括控制类、测试类、读写类处理机指令集应包括控制类、测试类、读写类I/O指令指令。I/O部件接收到相应的指令后,将部件接收到相应的指令后,将I/O状态写在寄存状态写在寄存器的相应位置上。随着操作的执行更改状态位,由器的相应位置上。随着操作的执行更改状态位,由CPU执行相应指令读取执行相应指令读取I/O完成状态。完成状态。I/O数据通过数据通过CPU寄存器转发。如下图寄存器转发。如下图:l 针对程序直接方
18、式的不足,提出了中断方式:针对程序直接方式的不足,提出了中断方式:CPU向向I/O部件发出指令后,转去做其他有用的工作。部件发出指令后,转去做其他有用的工作。当当I/O部件准备好数据后,利用中断通知部件准备好数据后,利用中断通知CPU,再由,再由CPU完成数据传输。完成数据传输。优点:优点:uCPU不必反复测试寄存器状态,节约了时间。不必反复测试寄存器状态,节约了时间。缺点:缺点:u中断控制方式仍然消耗大量的中断控制方式仍然消耗大量的CPU时间,因为每个字的数时间,因为每个字的数据传输都必须经过据传输都必须经过CPU寄存器转发。寄存器转发。4.1.6 I/O控制方式4.1.6 I/O控制方式l
19、程序直接控制方式与中断方式的缺陷:程序直接控制方式与中断方式的缺陷:I/O的传输速率受的传输速率受CPU测试或中断响应的速度限制测试或中断响应的速度限制 CPU为管理为管理I/O耗费大量时间耗费大量时间l更有效的方式更有效的方式DMA(直接内存存取)(直接内存存取):负责完成整个负责完成整个I/O操作,无需再经操作,无需再经CPU寄存器转发,寄存器转发,并在全部传输结束后向并在全部传输结束后向CPU发中断信号。发中断信号。CPU向向DMA部件发送部件发送I/O指令后,即可进行其他工指令后,即可进行其他工作。给作。给DMA的指令中应包括:操作类别、的指令中应包括:操作类别、I/O设备设备的地址、
20、读写数据在内存中的首地址、字数。的地址、读写数据在内存中的首地址、字数。程序程序I/O中断中断I/O DMAl 通道控制方式通道控制方式 通道:通道:执行通道程序,向控制器发出命令,执行通道程序,向控制器发出命令,并具有向并具有向CPUCPU发中断信号的功能。发中断信号的功能。一旦一旦CPUCPU发出发出指令,启动通道,则通道独立于指令,启动通道,则通道独立于CPUCPU工作。一个工作。一个通道可连接多个控制器,一个控制器可连接多个通道可连接多个控制器,一个控制器可连接多个设备,形成树形交叉连接设备,形成树形交叉连接 主要目的是启动外设时:主要目的是启动外设时:a a 提高了控制器效率提高了控
21、制器效率 b b 提高可靠性提高可靠性 c c 提高并行度提高并行度4.1.6 I/O控制方式交叉连接交叉连接4.2/O软件l4.2.1 设备的使用与管理设备的使用与管理l4.2.2 I/O软件层次结构软件层次结构l4.2.3 缓冲管理缓冲管理l4.2.4 设备驱动程序设备驱动程序l4.2.5 中断处理程序中断处理程序4.2.1 设备的使用与管理l设备管理的目标设备管理的目标提高设备的利率提高设备的利率为用户提供方便、统一的界面为用户提供方便、统一的界面l设备管理的任务设备管理的任务动态地掌握并记录设备的状态动态地掌握并记录设备的状态设备分配和释放设备分配和释放缓冲区管理缓冲区管理实现物理实现
22、物理I/O设备的操作设备的操作4.2.1 设备的使用与管理l设备相关系统调用:设备相关系统调用:申请设备:该系统调用中有参数说明了要申请申请设备:该系统调用中有参数说明了要申请的设备名称,操作系统处理该系统调用时,会的设备名称,操作系统处理该系统调用时,会按照设备特性(是独占还是分时共享式使用)按照设备特性(是独占还是分时共享式使用)及设备的占用情况来分配设备,返回申请是否及设备的占用情况来分配设备,返回申请是否成功标志。成功标志。将数据写入设备。将数据写入设备。从设备读取数据。从设备读取数据。释放设备。这是申请设备的逆操作。释放设备。这是申请设备的逆操作。4.2.1 设备的使用与管理l设备管
23、理中的数据结构设备管理中的数据结构在在多多通通路路的的/系系统统中中,为为了了满满足足一一个个/请请求求,不不仅仅仅仅是是分分配配一一个个/设设备备的的问问题题,还还应应分分配配相相应应的的控控制制器器和和通通道道,以以确确保保与与/设设备备之之间间能能进进行行通通信信,在在存存储储器器与与/设设备备之之间间能能进进行行数数据据的的直接存取。直接存取。设设备备管管理理程程序序对对/设设备备进进行行分分配配和和控控制制是是借借助助于于一一些些表表格格;表表格格中中记记录录了了对对/设设备备控控制制所所需需之之信信息。它们是设备管理程序实现管理功能的数据结构息。它们是设备管理程序实现管理功能的数据
24、结构。数据结构(续)l控控制制所所需需之之信信息息。它它们们是是设设备备管管理理程程序序实实现管理功能的数据结构。如下表:现管理功能的数据结构。如下表:设备控制表()设备控制表()每个设备一个每个设备一个控制器表()控制器表()每个控制器一个每个控制器一个通道表(通道表(H H)每个通道一个每个通道一个系统设备表()系统设备表()整个系统一个整个系统一个 整个系统一张表,记录系统中所整个系统一张表,记录系统中所有有I/OI/O设备的信息,表目包括:设备的信息,表目包括:设备类型、设备标识符、进程标识符、设备类型、设备标识符、进程标识符、DCTDCT表指针等。表指针等。1)1)系统设备表系统设备
25、表SDTSDT数据结构(续)数据结构(续)主要内容:设备类型、设备标识符、设备主要内容:设备类型、设备标识符、设备状态、与此设备相连的状态、与此设备相连的COCTCOCT、重复执行的、重复执行的次数或时间、等待队列的队首和队尾指针、次数或时间、等待队列的队首和队尾指针、I/OI/O程序地址程序地址 3)3)控制器控制表控制器控制表COCTCOCT 4)4)通道控制表通道控制表CHCTCHCT COCT COCT和和CHCTCHCT与与DCTDCT类似类似2)2)设备控制表设备控制表DCTDCT数据结构(续)数据结构(续)设备控制块设备控制块 通道控制块通道控制块 控制器控制块控制器控制块 (D
26、CB)(DCB)(CHCB)CHCB)(COCBCOCB)设备标示符设备标示符通道标示符通道标示符控制器标示符控制器标示符设备状态设备状态通道状态通道状态控制器状态控制器状态与设备相连的与设备相连的控制器表控制器表与通道相连的与通道相连的控制器表控制器表与控制器相连的与控制器相连的通道表通道表等待此设备的等待此设备的进程表进程表 等待此通道的等待此通道的进程表进程表 等待控制器的进等待控制器的进程表程表 三种控制块三种控制块4.2.1 设备的使用与管理lI/O设备的使用方式:设备的使用方式:独占式共享使用设备独占式共享使用设备分时式共享使用设备分时式共享使用设备以以SPOOLing方式使用外设
27、方式使用外设4.2.1 设备的使用与管理l独占式共享使用设备:独占式共享使用设备:是指在申请设备时,如果设备空闲,就将其独占,是指在申请设备时,如果设备空闲,就将其独占,不再允许其他进程申请使用,一直等到该设备被不再允许其他进程申请使用,一直等到该设备被释放,才允许被其他进程申请使用。释放,才允许被其他进程申请使用。独占式使用设备时,设备利用率很低。独占式使用设备时,设备利用率很低。如果一个逻辑上完整的数据可以用设备的一次如果一个逻辑上完整的数据可以用设备的一次I/O操作完成,那么我们就不必要独占该设备。反过操作完成,那么我们就不必要独占该设备。反过来说,如果一次来说,如果一次I/O操作的数据
28、逻辑上完整,我们操作的数据逻辑上完整,我们就不必要对该设备进行独占方式的申请使用。在就不必要对该设备进行独占方式的申请使用。在申请这种设备时,不必检查是否已被占用,只要申请这种设备时,不必检查是否已被占用,只要简单累加设备使用者计数即可。简单累加设备使用者计数即可。4.2.1 设备的使用与管理l分时式共享使用设备:分时式共享使用设备:以一次以一次I/O为单位分时使用设备,不同进程的为单位分时使用设备,不同进程的I/O操作请求以排队方式分时地占用设备进行操作请求以排队方式分时地占用设备进行I/O。从用户程序系统调用界面来看,从用户程序系统调用界面来看,I/O操作是并发操作是并发的。的。4.2.1
29、 设备的使用与管理l以以SPOOLing方式使用外设:方式使用外设:SPOOLing 技术是在批处理操作系统时代引入技术是在批处理操作系统时代引入的,即所谓假脱机输入输出技术。原来这种技的,即所谓假脱机输入输出技术。原来这种技术输入、输出是针对磁盘上的输入、输出,现术输入、输出是针对磁盘上的输入、输出,现在是针对磁盘上的文件。在是针对磁盘上的文件。例如例如:同一进程所有输出数据在进程运行时被写同一进程所有输出数据在进程运行时被写到同一文件当中,文件排到打印输出队列,打到同一文件当中,文件排到打印输出队列,打印进程申请占用打印机后,成批读出文件中数印进程申请占用打印机后,成批读出文件中数据,并送
30、打印机打印出去。据,并送打印机打印出去。l什么是什么是Spooling?在联机情况下实现的同时外围操作称为Spooling,或称为假脱机操作。lSpooling系统的组成:系统的组成:1、输入井和输出井,磁盘上开辟的两个大存储空间;2、输入缓冲区和输出缓冲区;3、输入进程SPi和输出进程SPo;4、请求打印队列。4.2.1 设备的使用与管理输入设备输入设备输出设备输出设备输入进程输入进程SPi输出进程输出进程SPo输入缓冲区输入缓冲区Bi输出缓冲区输出缓冲区Bo输入井输入井输出井输出井磁盘磁盘Spooling系统的组成系统的组成4.2.1 设备的使用与管理4.2.1 设备的使用与管理l Spo
31、oling系统的特点:1、提高了I/O速度;2、将独立设备改造为共享设备;3、实现了虚拟设备功能。4.2.1 设备的使用与管理l共享打印机:例如:同一进程所有输出数据在进程运行时被写到同一文件当中,文件排到打印输出队列,打印进程申请占用打印机后,成批读出文件中数据,并送打印机打印出去。4.2.1 设备的使用与管理打打印印请请求求队队列列(含含要要打打印印文文件)件)打印打印daemon daemon 进程进程打印机打印机以以SPOOLing方式使用外设方式使用外设4.2.2 I/O软件层次结构用户层用户层I/OI/O设备驱动及中断处理设备驱动及中断处理硬件硬件系统调用接口,设备无关的操作系统软
32、件系统调用接口,设备无关的操作系统软件l通常,操作系统将设备管理系统划分并组织通常,操作系统将设备管理系统划分并组织成三个层次:成三个层次:u 用户层用户层I/Ou 与设备无关的与设备无关的I/Ou 设备驱动及中断处理设备驱动及中断处理4.2.2 I/O软件层次结构l用户层用户层I/O:用户层与设备的控制细节无关,不直接与设备打用户层与设备的控制细节无关,不直接与设备打交道。交道。它将所有的设备看作逻辑资源,为用户进程提供它将所有的设备看作逻辑资源,为用户进程提供各类各类I/O函数。用户以设备标识符和一些简单的函函数。用户以设备标识符和一些简单的函数来使用设备,如打开、关闭、读、写等。如数来使
33、用设备,如打开、关闭、读、写等。如C库中的函数库中的函数fopen();fread();fwrite();fclose();printf()等等。4.2.2 I/O软件层次结构l与设备无关的与设备无关的I/O软件层:软件层:为为了了提提高高系系统统的的可可适适应应性性和和可可扩扩展展性性,我我们们希希望望所所编编制制的的用用户户程程序序与与实实际际使使用用的的物物理理设设备备无关,这就是所谓与设备无关性。无关,这就是所谓与设备无关性。为为此此,我我们们将将逻逻辑辑设设备备与与物物理理设设备备区区分分,并并引引入入逻逻辑辑设设备备名名称称和和物物理理设设备备名名称称的的概概念念。为为了了实实现现
34、与与设设备备的的无无关关性性,系系统统中中必必须须有有一一张张联联系系逻逻辑辑设设备备名名称称和和物物理理设设备备名名称称的的映映射射表表(表表)。4.2.2 I/O软件层次结构逻辑设备号逻辑设备号物理设备号物理设备号驱动程序地址驱动程序地址172042027204203220E00441FC106120D02772042015101FC1016111FC1204.2.2 I/O软件层次结构 这这个个中中为为三三个个不不同同的的逻逻辑辑设设备备号号列列出出了了同同样样的的物物理理设设备备和和驱驱动动程程序序的的地地址址。这这说说明明逻逻辑辑设设备备,目目前前均均得得到到同同一一个个物物理理设设
35、备备的的服服务务(这这或或许许是是因因为为激激光光打打印印机机及及字字母母型型打打印印机机正正在在被被修修理理,因因此此本本来来输输出出到到这这些些设设备备上上的的请请求求都都移移到到行行式式打打印印机机)。在在这这个个映映射射表表中中我我们们还还可可以以看看到到物物理理设设备备和和都都是是由由同同一一个个驱驱动动程程序序服服务务的的。这这是是假假定定它它们们是是同同一一类类型型的终端。的终端。4.2.2 I/O软件层次结构l与设备无关的与设备无关的I/O软件层:软件层:它对上层提供系统调用的接口,对下通过设备驱动程它对上层提供系统调用的接口,对下通过设备驱动程序接口调用设备驱动程序。序接口调
36、用设备驱动程序。4.2.2 I/O软件层次结构l该层软件的基本功能包括:该层软件的基本功能包括:(1)设备名与设备驱动程序的映射)设备名与设备驱动程序的映射(2)设备保护)设备保护(3)逻辑块)逻辑块(4)缓冲)缓冲(5)设备空闲空间管理与分配。)设备空闲空间管理与分配。(6)错误报告)错误报告(7)分配及设备释放)分配及设备释放4.2.2 I/O软件层次结构l设备驱动与中断处理:设备驱动与中断处理:设备驱动程序包括了所有与设备相关的代码,其设备驱动程序包括了所有与设备相关的代码,其功能是从与设备无关的软件中接收功能是从与设备无关的软件中接收I/O请求,排入请求,排入请求队列或执行之。请求队列
37、或执行之。当进程进行当进程进行I/O操作时,将其阻塞至操作时,将其阻塞至I/O操作结束操作结束并发生中断。中断发生时,由中断处理程序启动并发生中断。中断发生时,由中断处理程序启动请求排队的下一请求并解除等请求排队的下一请求并解除等I/O进程的阻塞状态,进程的阻塞状态,使其能够继续执行。使其能够继续执行。4.2.3 缓冲管理l引入缓冲的主要原因有以下几个方面:引入缓冲的主要原因有以下几个方面:缓解缓解CPU与与I/O设备间速度不匹配的矛盾。设备间速度不匹配的矛盾。减少对减少对CPU的中断频率,放宽对中断处理时间的限制。的中断频率,放宽对中断处理时间的限制。提高提高CPU和和I/O设备之间的并行性
38、。设备之间的并行性。4.2.3 缓冲管理 缓冲区用户区l单缓冲(单缓冲(Single Buffer):):是操作系统缓冲支持中最为简单的一种形式,每当用是操作系统缓冲支持中最为简单的一种形式,每当用户进程发出一个户进程发出一个I/O请求时,操作系统便在内核区域请求时,操作系统便在内核区域为之分配一个缓冲区。为之分配一个缓冲区。4.2.3 缓冲管理l例如,例如,CPU从磁盘上读入从磁盘上读入N个数据块,然后对这些个数据块,然后对这些数据块进行计算,采用单缓冲机制的工作过程为:数据块进行计算,采用单缓冲机制的工作过程为:先从磁盘把一块数据读入到缓冲区中,所花时间为先从磁盘把一块数据读入到缓冲区中,
39、所花时间为T;在读取一块以后由操作系统将缓冲区的数据传;在读取一块以后由操作系统将缓冲区的数据传送到用户区,所花时间为送到用户区,所花时间为M;最后由;最后由CPU对这一块对这一块数据进行计算,所花费的时间为数据进行计算,所花费的时间为C。如果不采用缓。如果不采用缓冲,将数据直接从磁盘读入用户区,每批数据的处冲,将数据直接从磁盘读入用户区,每批数据的处理时间为(理时间为(T+C)N。采用单缓冲技术时,数据读。采用单缓冲技术时,数据读入缓冲与计算入缓冲与计算C是可以并发执行的(第一和最后一是可以并发执行的(第一和最后一块除外,采用前面讲到的预先读取方式),这样,块除外,采用前面讲到的预先读取方式
40、),这样,每批数据的最大处理时间为每批数据的最大处理时间为MAX(C,T)N+MN。通常。通常M远小于远小于T或或C,这样就提高了,这样就提高了CPU和外设的利用率。和外设的利用率。4.2.3 缓冲管理缓冲区A缓冲区B用户区l双缓冲(双缓冲(Double Buffer):):是对单缓冲方式的改进。可以实现用户数据区是对单缓冲方式的改进。可以实现用户数据区缓缓冲区之间交换数据和缓冲区冲区之间交换数据和缓冲区外设之间交换数据并外设之间交换数据并行。行。4.2.3 缓冲管理l双缓冲工作方式的基本方法是:在设备进行双缓冲工作方式的基本方法是:在设备进行输入时,先将数据输入到缓冲区输入时,先将数据输入到
41、缓冲区A,装满后,装满后转向缓冲区转向缓冲区B。此时操作系统可以从缓冲区。此时操作系统可以从缓冲区A中提取数据传送到用户区,最后由中提取数据传送到用户区,最后由CPU对对数据进行计算或其他处理。数据进行计算或其他处理。l系统处理一块数据的处理时间可粗略地认为系统处理一块数据的处理时间可粗略地认为是是MAX(C,T)。若)。若CT,可使块设备连,可使块设备连续输入;若续输入;若CT,可使,可使CPU不必等待设备输不必等待设备输入。入。4.2.3 缓冲管理l循环缓冲(循环缓冲(Circular Buffer):):指采用有限缓冲区的生产者指采用有限缓冲区的生产者/消费者模型对缓冲池中的消费者模型对
42、缓冲池中的缓冲区进行循环使用缓冲区进行循环使用。缓冲区结合预读和滞后写技术对具有重复性及阵发性缓冲区结合预读和滞后写技术对具有重复性及阵发性I/O进程提高进程提高I/O速度很有帮助。速度很有帮助。用户区缓冲区1缓冲区2缓冲区N4.2.4 设备驱动程序l设备驱动程序的功能:设备驱动程序的功能:向有关向有关I/O设备的各种控制器发出控制命令,并设备的各种控制器发出控制命令,并且监督它们的正确执行,进行必要的错误处理。且监督它们的正确执行,进行必要的错误处理。对各种设备排队、挂起、唤醒等操作进行处理。对各种设备排队、挂起、唤醒等操作进行处理。执行确定的缓冲区策略。执行确定的缓冲区策略。进行比寄存器接
43、口级别层次更高的一些特殊处进行比寄存器接口级别层次更高的一些特殊处理,如代码转换,理,如代码转换,ESC处理等。这些特殊处理处理等。这些特殊处理均依赖于具体设备,不适合放在高层次的软件均依赖于具体设备,不适合放在高层次的软件中处理。中处理。4.2.4 设备驱动程序l设备驱动程序的突出特点是,它与设备驱动程序的突出特点是,它与I/O设备设备的硬件结构密切相关,是操作系统底层中惟的硬件结构密切相关,是操作系统底层中惟一知道各种一知道各种I/O设备的控制器细节及其用途设备的控制器细节及其用途的部分。的部分。4.2.4 设备驱动程序l设备驱动程序的结构设备驱动程序的结构 设备驱动程序的结构同设备驱动程
44、序的结构同I/O设备的硬件设备的硬件特性有关。一台彩色显示器的设备驱动程序特性有关。一台彩色显示器的设备驱动程序的结构,显然同磁盘设备驱动程序的结构不的结构,显然同磁盘设备驱动程序的结构不同。通常,一个设备驱动程序对应处理一种同。通常,一个设备驱动程序对应处理一种设备类型,或者至多是一类密切相关、而差设备类型,或者至多是一类密切相关、而差异性较少的设备类型。异性较少的设备类型。4.2.4 设备驱动程序l设备驱动程序的实现策略设备驱动程序的实现策略(1)确定是否发送新的请求。)确定是否发送新的请求。(2)针对具体设备和操作,确定发送的内容。)针对具体设备和操作,确定发送的内容。(3)执行底层具体
45、操作。)执行底层具体操作。(4)中断与后续处理工作。在一条或多条指令)中断与后续处理工作。在一条或多条指令发出以后,存在着两种做法。发出以后,存在着两种做法。4.2.4 设备驱动程序l设备驱动程序接口函数主要包括:设备驱动程序接口函数主要包括:驱动程序初始化函数:驱动程序初始化函数:是为了使驱动程序其它函数能被是为了使驱动程序其它函数能被上层正常调用,而做一些针对驱动程序本身的初始化工上层正常调用,而做一些针对驱动程序本身的初始化工作。如向操作系统登记该驱动程序的接口函数,该初始作。如向操作系统登记该驱动程序的接口函数,该初始化函数在系统启动时或驱动程序安装入内核时执行。化函数在系统启动时或驱
46、动程序安装入内核时执行。驱动程序卸载函数:驱动程序卸载函数:是驱动程序初始化函数的逆过程,是驱动程序初始化函数的逆过程,在支持驱动程序可动态加载卸载的系统中才需要。在支持驱动程序可动态加载卸载的系统中才需要。申请设备函数:申请设备函数:该函数申请一个驱动程序所管理的设备,该函数申请一个驱动程序所管理的设备,按照设备特性进行独占式占用或者分时共享式占用,如按照设备特性进行独占式占用或者分时共享式占用,如果是独占式申请成功还应该对设备做初始化工作。果是独占式申请成功还应该对设备做初始化工作。释放设备函数:释放设备函数:是申请设备函数的逆过程。是申请设备函数的逆过程。4.2.5 中断处理程序l中断基
47、本概念:中断基本概念:指指CPU暂时终止现行程序,转去执行其暂时终止现行程序,转去执行其他紧急事件或特殊请求,处理完后自动他紧急事件或特殊请求,处理完后自动返回原来被中断处继续执行或调度新的返回原来被中断处继续执行或调度新的进程执行的过程。进程执行的过程。一旦一旦CPU响应中断,转入中断处理程序,响应中断,转入中断处理程序,系统就开始进行中断处理。系统就开始进行中断处理。4.2.5 中断处理程序l中断处理过程:中断处理过程:(1)CPU检查响应中断的条件是否满足。检查响应中断的条件是否满足。CPU响应中响应中断的条件是,有来自于中断源的中断请求及断的条件是,有来自于中断源的中断请求及CPU允许
48、允许中断。如果中断响应条件不满足,则中断处理无法进中断。如果中断响应条件不满足,则中断处理无法进行。行。(2)如果)如果CPU响应中断,则响应中断,则CPU关中断,使其进入不关中断,使其进入不可再次响应中断的状可再次响应中断的状 态。态。(3)保存被中断进程的现场。为了在中断处理结束后)保存被中断进程的现场。为了在中断处理结束后能使进程正确地返回到被中断点,系统必须保存当前能使进程正确地返回到被中断点,系统必须保存当前处理机状态字处理机状态字PSW和程序计数器和程序计数器PC等的信息。等的信息。这些信息通常保存在特定堆栈或寄存器中。这些信息通常保存在特定堆栈或寄存器中。4.2.5 中断处理程序
49、(4)分析中断原因,调用中断处理子程序。作为中)分析中断原因,调用中断处理子程序。作为中断处理过程的核心工作之一,就是如何确定和寻找断处理过程的核心工作之一,就是如何确定和寻找到中断服务程序的入口地址,该工作可由软件和硬到中断服务程序的入口地址,该工作可由软件和硬件的方法来完成。件的方法来完成。(5)执行中断处理子程序。在有些系统中的异常是)执行中断处理子程序。在有些系统中的异常是通过异常指令向当前执行进程发出软中断信号后通过异常指令向当前执行进程发出软中断信号后,调调用对应的处理子程序执行。用对应的处理子程序执行。(6)退出中断,恢复被中断进程的现场或调度新进)退出中断,恢复被中断进程的现场
50、或调度新进程占据程占据CPU。(7)开中断,)开中断,CPU继续执行。继续执行。中断处理流程中断处理流程4.3 存储设备l4.3.1 常见的存储外设常见的存储外设l4.3.2 磁盘调度磁盘调度l4.3.3 存储出错处理存储出错处理l4.3.4 RAM盘盘l4.3.5 磁盘阵列磁盘阵列4.3.1 常见的存储外设l磁带存储设备。磁带存储设备。l磁盘存储设备。磁盘存储设备。l光盘存储设备。光盘存储设备。CD-ROM、CD-R、CD-RW、DVD。4.3.1 常见的存储外设磁盘示意图磁盘示意图4.3.2 磁盘调度l磁盘访问:磁盘访问:寻道时间:寻道时间:磁头花费在柱面定位上的时间。磁头花费在柱面定位上