《【操作系统】第五章设备管理》由会员分享,可在线阅读,更多相关《【操作系统】第五章设备管理(95页珍藏版)》请在金锄头文库上搜索。
1、 第五章 设备管理 在现代计算机系统中,为了实现与外界间的信息交往,更好地方便用户使用计算机,一般都配置了一系列各种类型的外围设备,例如:键盘,打印机,显示器,磁带机,卡片机,磁盘,磁鼓等。这些外围设备,由于其构造和物理特性各异,故在应用方式上风格各不相同,在管理方法上也有很大差别。磁带机硬盘光盘绘图仪扫描仪键盘打印机 为了有效地完成对各类外围设备的管理,更好地提高外设资源的利用率,并在用户面前提供一种方便、统一的接口界面,在操作系统的设备管理子系统中,承担了各种设备的分配、管理及I/O操作控制任务。让用户使用的设备与系统中实际连接的物理设备分离开,使用户在不需要了解底层设备资源的状况下,就可
2、以采用逻辑设备名方便地使用外围设备,而逻辑设备到物理设备的转换工作则由系统自己完成。引言设备类型 在计算机系统中,除了作为操作处理时使用的CPU以及存储信息时用的存储器之外,还有一类比较重要的硬件资源I/O设备。I/O设备是计算机与外界进行信息交换的装置,因此,在各种类型的计算机中都配置有一定数量的I/O设备,这些设备可以从不同的角度进行分类。常见I/O设备分类I/O类外设:显示器、键盘、打印机、扫 描仪、 传感器、控制杆、鼠标存储类型的设备:磁盘设备、磁带设备、光盘等网络通信设备:网络接口、调制解调器等存储设备输入输出设备终端设备脱机设备外部设备图1 按使用特性对外部设备的分类常见的分类有下
3、列几种:1.以设备的隶属关系划分:1)系统设备(System Device):这类设备属于计算机中最基本的标准配置设备,常常在操作系统启动时自动完成设备的登录。如打印机、键盘、显示器和磁盘驱动器等都属于这种类型的设备。2)用户设备(User Device):这类设备属于非标准配置,可由用户根据实际需要连入系统,在使用之前通过运行对应的驱动程序进行安装、登录。如绘图仪、扫描仪等。2 2按信息组织方式划分:按信息组织方式划分:1 1)字块设备)字块设备(Block DeviceBlock Device):这种设备也称):这种设备也称为存储型设备,在其上信息的组织、安排,都为存储型设备,在其上信息的
4、组织、安排,都以块为单位进行,在进行存取访问时,也是以以块为单位进行,在进行存取访问时,也是以块进行计量的。常见的有磁盘驱动器、磁带机、块进行计量的。常见的有磁盘驱动器、磁带机、磁鼓等。磁鼓等。2 2)字符设备)字符设备(Character DeviceCharacter Device):字符设备):字符设备上的信息,是以字符为单位来组织安排的上的信息,是以字符为单位来组织安排的, ,这类这类设备也称为输入设备也称为输入/ /输出型设备输出型设备. .在信息存取调用在信息存取调用时时, ,都是以字符为单位来访问的。如键盘、纸带都是以字符为单位来访问的。如键盘、纸带输入机、磁卡机等输入机、磁卡机
5、等 属于该类型设备。属于该类型设备。3.从资源分配角度进行划分1)1)独独占占设设备备(Independence Device):一次只允许分给一个用户作业使用的设备。设备一旦被分出去后,在作业的整个执行期间都被单独占用,别的作业不能与之共用,必须等占用释放后才可再用。这类设备如果分配不当,可能会造成死锁。多数是一些慢速设备,如磁卡机、打印机、A/D、D/A转换器等。2)2)共共享享设设备备(Share Device):一次可以允许多个作业同时进行访问的设备。各作业在执行期间内,可以交替分时地对共享设备进行占用。常见的有磁盘、磁鼓等。3)3)虚虚拟拟设设备备(Virtual Device):严
6、格来讲,虚拟设备是一种设备管理的技术。采用该技术可以使慢速独占设备的使用方式变为共享设备的使用方式,以利于独占设备使用效率的提高。在现代计算机系统中,主要采用了SPOOLING系统来实现以完成此功能。4按传输速率分类:1 1 低低速速设设备备:它是指传输速率为每秒钟几个字节至数百个字节的一类设备。属于低速率的典型设备有键盘、鼠标器、语音的输入和输出设备;2 2 中中速速设设备备:它指传输速率在每秒钟数千个字节至数十千个字节的一类设备。属于中速率的典型设备有行式打印机、激光打印机等;3 3 高高速速设设备备:它指传输速率在每秒钟数百千个字节至数兆个字节的一类设备。属于高速率的典型设备有:磁带机、
7、磁盘机、光盘机等。设备管理的主要功能设备管理的主要功能 设设备备管管理理属属于于操操作作系系统统中中最最烦烦琐琐、最最具具复复杂杂性性的的部部分分。为为了了有有效效的的提提高高系系统统中中设设备备的的效效率,在设备管理中应追求如下的目标:率,在设备管理中应追求如下的目标: (1)(1)建立方便、一致的用户界面建立方便、一致的用户界面 (2)(2)尽尽量量使使CPUCPU与与外外围围设设备备、外外设设与与外外设设之之间的并行处理能力提高间的并行处理能力提高 (3)(3)充分发挥充分发挥 I/OI/O设备的效率设备的效率 为实现目标要求,作为设备管理子系统,应具备以下功能: 1)完成设备的分配和回
8、收。 2)实现缓冲区的管理。 3)控制I/O设备的启动。 4)进行I/O事件的中断处理。 5)管理共享设备的驱动调度。 6)提供虚拟设备。I/O设备通常包含:一个机械部件和一个电子部件电子部分称为I/O部件或设备控制器,在个人计算机中它常常是一块可以插入主板扩展槽的印刷电路板。大多数小型和微型机的CPU /内存和设备控制器之间的通路采用多总线模型处理机处理机主存主存显卡总线控制器外设控制器SCSI控制器控制器控制器磁盘磁盘磁盘PCI外设总线主板总线设备驱动程序设备驱动程序接口函数一般包含下列子程序:1、驱动程序初始化函数2、驱动程序卸载函数3、申请设备函数4、释放设备函数5、I/O操作函数6、
9、中断处理函数设备驱动程序通常都是在核心状态下运行的,但是驱动程序代码常位于核心之外。显示器的类型 字符显示器 图形显示器 矢量显示器 位映象显示器CRT(阴极射线管显示器Cathode Ray Tube)发光二极管显示器(LDD)液晶显示器(LCD)等离子显示器(PD)显示驱动程序的功能: 将用户程序送来的输出数据转换写入视频缓存。 ASCII (GB) 字型数组 (存储编码) (字库中) 汉字交换码是指不同的具有汉字处理功能的计算机系统之间在交换汉字信息时所使用的代码标准。自国家标准GB231280公布以来,我国一直延用该标准所规定的国标码作为统一的汉字信息交换码。 GB231280标准包括
10、了67636763个汉字个汉字,按其使用频度分为一级汉字37553755个和二级汉字30083008个。一级汉字按拼音排序,二级汉字按部首排序。此外,该标准还包括标点符号、数种西文字母、图形、数码等符号682个。 字形存储码 字形存储码是指供计算机输出汉字(显示或打印)用的二进制信息,也称字模。通常,采用的是数字化点阵字模。一般的点阵规模有1616,2424,6464等,每一个点在存储器中用一个二进制位(bit)存储。 为了节省存储空间,普遍采用了字形数据压缩技术。所谓的矢量汉字是指用矢量方法将汉字点阵字模进行压缩后得到的汉字字形的数字化信息。字模点阵只能用来构成汉字库,而不能用于机内存储。字
11、库中存储了每个汉字的点阵代码。当显示输出或打印输出时才检索字库,输出字模点阵,得到字形。 CRTCRT显示器的工作原理显示器的工作原理由电子枪(Electron gun)、偏转线圈(Deflection coils)、荫罩(Shadow mask)、荧光粉层(phosphor)和玻璃外壳五部分组成。 灯丝加热阴极,阴极发射电子,然后在加速极电场的作用下,经聚焦集聚成很细的电子束,在阳极高压作用下,获得巨大的能量,以极高的速度去轰击荧光粉层。这些电子束轰击的目标就是荧光屏上的三原色。为此,电子枪发射的电子束不是一束,而是三束,它们分别受电脑显卡R、 G、 B三个基色视频信号电压的控制,去轰击各自
12、的荧光粉单元。 液晶是一种介于固体与液体之间,具有规则性分子排列的有机化合物,一般最常用的液晶型式为向列液晶,分子形状为细长棒形,长宽约1nm10nm,在不同电流电场作用下,液晶分子会做规则旋转90度排列,产生透光度的差别,如此在电源ON/OFF下产生明暗的区别,依此原理控制每个像素,便可构成所需图像。 液晶显示器需要强大的背光系统。背光模组的作用就是把线光源发出的光通过漫反射使之成为面光源在得到均匀的面光源之后,紧贴在背光模组上的液晶面板就负责对光线进行调制以得到最终画面.因为液晶面板比较脆弱,所以需要加入几层玻璃基板来增加强度并起到保护作用。 上下两层相互垂直的偏振膜和被扭转的液晶分子相配
13、合使光线得以被显示信号调制成不同强度的输出信号,液晶上的RGB滤色片(Color Filter,CF)把可见光滤成三原色,进而组成各种颜色来还原画面。键盘驱动程序的功能1、对键入的数据进行加工处理2、将键入数据送至显示器进行回显 打印机针式打印机(点阵打印机):9针、24针、7针、8针 80列(A4)、132列(A3)喷墨打印机 水性喷墨打印机 油性喷墨打印机激光打印机硬字库常见的存储外设1磁带存储设备一条宽1/2英寸,长约700米的磁带,表面平行的涂有79条磁道源盘接受盘硬盘当容量不足时,通常最多可以接4台硬盘盘片:5.25 3.5 2.5 1.8 0.9重要数据的存放位置 0面0道 1面0
14、道磁头复位时才接触盘片逻辑扇区 物理扇区0 1面0道1扇区1 1面0道2扇区. .62 1面0道63扇区63 2面0道1扇区64 2面0道2扇区. . 128 3面0道1扇区I/O系统中数据的传输控制 在一个完整的I/O系统内,包含了I/O设备、设备控制器、通道及相关的管理软件。由于计算机应用领域的拓宽,使得信息的输入输出工作量加大,I/O操作在计算机中占有了重要的地位。好的I/O控制方式,不但有利于提高计算机中CPU与外围设备的并行处理效率,而且还可以形成多种外设间的并行操作。特别是在多通道程序设计环境下,I/O操作控制能力已经成为计算机系统综合处理能力的重要构成因素。 一般选取衡量I/O控
15、制方式的好坏时应考虑如下因素: 1)信息传输效率尽量高,以形成大的吞吐量。 2)I/O系统资源利用率好,实现资源的均衡使用。 3)尽量减少CPU用于进行I/O处理的开销,使CPU效率得以充分发挥。 为此,按照I/O数据传输控制能力的强弱程度,以及CPU与外设并行处理程度的不同,将I/O系统中信息的传输控制方式分为四类:1)程序直接控制方式(CPU直接询问方式)2)中断方式3)DMA方式4)通道方式 这四种方式代表了计算机系统中I/O控制的四个不同的发展阶段。每个阶段的发展都受到计算机硬件组织结构发展变迁的影响。程序直接控制方式程序直接控制方式(CPU(CPU直接询问方式直接询问方式) ) 适适
16、用用于于简简单单的的、外外设设很很少少的的计计算算机机系系统统,缺缺点点耗耗费费大大量量的的CPUCPU时时间间,且且设设备备和和CPUCPU、设设备备和和设设备备之之间间只只能串行工作,现在已较少使用能串行工作,现在已较少使用。中断方式中断方式 引引入入了了中中断断机机构构,在在某某种种程程度度上上使使CPUCPU摆摆脱脱了了等等待待I/OI/O设设备备空空转转现现象象,主主机机和和外外设设可可并并行行工工作作,提提高高了了主主机机的的利利用用率率。缺缺点点中中断断次次数数多多,每每次次中中断断都都要要作作现现场场保保护护和和恢恢复复工工作作,系系统统开开销销大大,占占据据CPUCPU时时间
17、间仍仍然然较较多多,且且能能并并行行操操作作的的设设备备的的台台数数也也受受到到中中断断处处理理时间的限制。时间的限制。DMADMA方式方式( (直接存取方式直接存取方式) ) 采用了外存与内存直接交换数据的方式。只有在一采用了外存与内存直接交换数据的方式。只有在一段数据传送结束时,才发出中断信号要求段数据传送结束时,才发出中断信号要求CPUCPU做善后处理,做善后处理,从而大大减少从而大大减少CPUCPU的负担。的负担。通道方式通道方式 采用了外设和内存直接交换数据的方式。采用了外设和内存直接交换数据的方式。DMADMA方式与方式与通道方式的区别在于:通道方式的区别在于:DMADMA方式要求
18、方式要求CPUCPU执行设备驱动程执行设备驱动程序启动设备,给出存放数据的内存起始地址以及操作方序启动设备,给出存放数据的内存起始地址以及操作方式和传送字节长度等;通道则是在式和传送字节长度等;通道则是在CPUCPU发出发出I/OI/O启动命令启动命令后,由通道程序来完成这些工作。后,由通道程序来完成这些工作。 通道也称为I/O处理机,在通道机构中含有通道指令,每一条通道命令规定了设备的一种操作,由通道指令可构成指挥外设工作的通道程序。不同的计算机系统中,通道的命令格式和命令码可能不同,所以通道程序的编制方式上也是不同的。 在计算机中,按信息交换方式不同,通道可分为三类:1)字节多路通道:它连
19、接控制的是大量的慢速设备,如终端、打印机、磁卡机、纸带机等。2)数组选择通道:对于磁盘、磁鼓这样的快速设备,用按成批方式传送数据的选择通道。选择通道虽然可连接多台高速设备,但一段时间内只能为一台设备服务,只有一个输入或输出请求完成后释放了通道,通道才可再转向另一台设备服务。其工作方式是独占的,利用效率也不高。3)数组多路通道:这种通道是将前两者的优点抽取出来所设计的一种效率很高的通道。其信息量的交换按成批方式进行,而通道的占用选用了分时交叉使用的办法,从而在数据传输率及通道利用率两方面都获得了满意的效果。它被认为是多道程序设计技术思想在通道中的体现,广泛用于中、高速外设的连接中。 设备管理中的
20、两种支撑技术中断技术中中断断(Interrupt) Interrupt) : :指指计计算算机机在在执执行行期期间间,系系统统内内发发生生任任何何非非寻寻常常的的或或非非预预期期的的急急需需处处理理事事件件,使使得得CPUCPU暂暂存存中中断断当当前前正正在在执执行行的的程程序序而而转转去去执执行行相相应应的的事事件件处处理理程程序序,待待处处理理完完毕毕后后又又返返回回原原来来被被中中断断处处继继续续执执行行或或调调度度新新的的进进程程执执行行过过程程。引引起起中中断断发发生生的的事事件件称称为为中中断断源源。中中断断源源向向CPUCPU发发出出的的请请求求中中断断处处理理信信号号称称为为中
21、中断断请请求求,而而CPUCPU收收到到中中断断请请求求后后转转相相应应的事件处理程序称为中断响应。的事件处理程序称为中断响应。开中断开中断关中断关中断(开中断、关中断是为了保证某些程序执行的原子(开中断、关中断是为了保证某些程序执行的原子性。)性。)中断屏蔽中断屏蔽:是通过每一类中断源设置一个中断屏蔽是通过每一类中断源设置一个中断屏蔽触发器来屏蔽它们的中断请求而实现的。不过,触发器来屏蔽它们的中断请求而实现的。不过,有些中断是不能屏蔽中断的甚至不能禁止的。有些中断是不能屏蔽中断的甚至不能禁止的。中断的分类和优先级中断的分类和优先级根据中断产生的条件,可把中断分为外中断和内中断。根据中断产生的
22、条件,可把中断分为外中断和内中断。外中断外中断是指来自处理机和内存外部的中断,在狭义上是指来自处理机和内存外部的中断,在狭义上外中断一般被称为中断。外中断一般被称为中断。内中断内中断主要指在处理机和内主要指在处理机和内存内部产生的中断,一般称为陷阱存内部产生的中断,一般称为陷阱traptrap。为了按中断。为了按中断源的轻重缓急处理响应中断,操作系统对不同的中断源的轻重缓急处理响应中断,操作系统对不同的中断赋予不同的优先级。赋予不同的优先级。软中断软中断:来源于:来源于UNIXUNIX系统,是通信进程之间用来模拟系统,是通信进程之间用来模拟硬中断(中断和陷阱都可以看成是硬中断)的一种硬中断(中
23、断和陷阱都可以看成是硬中断)的一种信号通信方式。信号通信方式。中断处理过程中断处理过程:一旦:一旦CPUCPU响应中断,转入中断处理程响应中断,转入中断处理程序,系统就开始进行中断处理,过程为:序,系统就开始进行中断处理,过程为: 1 CPU 1 CPU检查响应中断的条件是否满足,如果条件不检查响应中断的条件是否满足,如果条件不满足,则中断处理无法进行。满足,则中断处理无法进行。 2 2 如果如果CPUCPU响应中断,则响应中断,则CPUCPU关中断,使其进入不可关中断,使其进入不可再次响应中断的状态。再次响应中断的状态。3 3 保存被中断进程现场。保存被中断进程现场。4 4 分析中断原因,调
24、用中断处理子程序。在多个中断分析中断原因,调用中断处理子程序。在多个中断请求同时发生时,处理优先级最高的中断源发出的请求同时发生时,处理优先级最高的中断源发出的中断请求。中断请求。5 5 执行中断处理子程序。执行中断处理子程序。6 6 退出中断,恢复被中断进程的现场或调度新进程占退出中断,恢复被中断进程的现场或调度新进程占据处理机。据处理机。7 7 开中断,开中断,CPUCPU继续执行。继续执行。缓冲技术引入缓冲的原因引入缓冲的原因 在在设设备备管管理理中中,引引入入缓缓冲冲的的原原因因可可归归结结为为:1 1 缓缓和和CPUCPU和和I/OI/O设设备备间间速速度度不不匹匹配配的的矛矛盾盾;
25、2 2 减减少少中中断断CPUCPU的的次次数数,放放宽宽对对中中断断响响应应的的要要求求;3 3提提高高CPUCPU、通通道道和和I/OI/O设设备备间间的的并并行行性性,从而使系统的资源利用率及吞吐量增高。缓冲的种类缓冲的种类 按组织方式分为单缓冲、双缓冲、多缓冲及缓冲按组织方式分为单缓冲、双缓冲、多缓冲及缓冲池。按使用方式可将缓冲区设置为:专用缓冲区和通池。按使用方式可将缓冲区设置为:专用缓冲区和通用缓冲区。用缓冲区。缓冲技术的实现原理缓冲技术的实现原理 当某个进程进行数据输出操作时,先将数据送入缓冲区,当缓冲区满时再将缓冲区的内容送到输出设备上;反之,当一个进程完成输入操作时,先将输入
26、设备上的数据送入缓冲区,当缓冲区满时,再由CPU将数据取走。在缓冲管理中必须建立缓冲区,缓冲区设定有两种方式:可以采用专门的硬件方法来实现,但会增加硬件成本,除了在关键的地方采用少量必要的硬件缓冲器外,在许多OS中都采用另一种称为软件缓冲的方式,即从主存空间中划定出一个特殊的内存区域作为缓冲区。单单缓缓冲冲: :是在系统的CPU与外设之间只设立一个缓冲区,输入与输出操作全部经该缓冲区来完成。当输入设备占用缓冲区时,输出设备必须处于等待状态;而当输出设备正在缓冲区将数据取走时,输入设备也必须等待,其工作方式是串行完成的。此时,缓冲区成了可共享的临界资源,必须互斥占用,不可能实现并行工作。单缓冲的
27、结构如图单缓冲的结构如图单缓冲单缓冲CPU缓冲区输入设备输出设备双缓冲管理双缓冲管理 为避免单缓冲造成的设备利用率不高的状况,可引入双缓冲技术。为输入或输出分配两个缓冲区,并让两个缓冲区交替工作,形成并行操作的方式。当输入或是输出时,外设先占用一个缓冲区,等当该缓冲区满后,再转去占用另一个缓冲区,同时第一个缓冲区中的数据可被取走,缓冲区可以释放,当另一个缓冲区满后,设备又可转过来占用被释放的缓冲区。这样交替占用的缓冲区,可以使CPU与外设间的并行度进一步提高。x-2 双缓冲 双缓冲技术提高了I/O设备的并行度,但由于在计算机系统中,CPU的速度总是比外设快得多,真正要实现CPU与外设的并行操作
28、,双缓冲技术还不能达到要求。由于计算机中配备有多种外围设备,CPU与外设的速度匹配全部由双缓冲来承担是不实现的。为此,必须使用多缓冲或是缓冲池结构来解决并行问题。多缓冲及缓冲池管理多缓冲及缓冲池管理 多多缓缓冲冲是是把把主主存存中中的的多多个个缓缓冲冲区区组组织织成成两两部部分分,一一部部分分作作为为输输入入缓缓冲冲区区,另另一一部部分分作作为为输输出出缓缓冲冲区区。缓缓冲冲池池则则是是将将多多个个缓缓冲冲区区连连接接成成一一个个完完整整的的区区域域,其其中中每每个个区区既既可可以以作作为为输输入入又又可可以以作作为为输输出出用用。多多缓缓冲冲及及缓缓冲冲池池是是系系统统中中的的共共享享资资源
29、源,可可供供各各进进程程使使用用,由由系统统一分配和管理,其使用必须互斥。系统统一分配和管理,其使用必须互斥。 缓冲池缓冲池是若干缓冲区的集合,每一个缓冲区有两部是若干缓冲区的集合,每一个缓冲区有两部分:一部分是标识缓冲器和用于管理缓冲首部,另分:一部分是标识缓冲器和用于管理缓冲首部,另一部分是保存信息的缓冲体。这两部分有一一对应一部分是保存信息的缓冲体。这两部分有一一对应的映射关系。缓冲池中所有缓冲区,按存储信息的的映射关系。缓冲池中所有缓冲区,按存储信息的性质,可以分成空缓冲区、输入缓冲区和输出缓冲性质,可以分成空缓冲区、输入缓冲区和输出缓冲区,分别组成三个队列:空缓冲区队列列,输入缓区,
30、分别组成三个队列:空缓冲区队列列,输入缓冲区队列及输出缓冲区队列冲区队列及输出缓冲区队列 。对每个缓冲区队列。对每个缓冲区队列可以由可以由getbufgetbuf和和putbufputbuf过程实现从某种类型缓冲区过程实现从某种类型缓冲区队列取出缓冲区和将缓冲区加入某种类型缓冲区队队列取出缓冲区和将缓冲区加入某种类型缓冲区队列的操作。列的操作。I/O类外设:显示器、键盘、打印机、扫 描仪、传感器、 控制杆、鼠标等存储类型的设备:磁盘设备、磁带设备、光盘等网络通信设备:网络接口、调制解调器等总线结构、驱动程序、显示器、打印机、光驱按设备的隶属关系:系统设备、用户设备按信息组织方式:字符设备、字块
31、设备从资源分配角度:独占设备、共享设备、虚拟设备按传输速率角度:低速设备、中速设备、高速设备1)程序直接控制方式(CPU直接询问方式)2)中断方式3)DMA方式4)通道方式中断:中断源、中断请求、中断响应、中断的处理过程缓冲:单缓冲、双缓冲、多缓冲、缓冲池I/O软件1.I/O软件的设计目标: 提高主机和外设的并行工作能力,提高效率;为用户提供一个简便、易用的逻辑设备接口,保证用户安全、方便地使用各类设备。与设备无关统一命名对错误的处理缓冲技术设备的分配和释放I/O控制方式用户层软件设备独立性软件设备驱动程序中断处理程序硬件中断处理程序I/O应答产生I/O请求、格式化I/O、Spooling映射
32、、保护、分块、缓冲、分配设置寄存器、检查寄存器状态执行I/O操作I/O系统的层次及功能2.2.中断处理流程中断处理流程终端中断终端中断处理程序处理程序磁盘中断磁盘中断处理程序处理程序放回被中断放回被中断进程继续执行进程继续执行分析中断原因,转分析中断原因,转入入相应的中断处理程相应的中断处理程序序打印机中断打印机中断处理程序处理程序恢复被中断进恢复被中断进程的程的CPU现场现场唤醒被阻塞的唤醒被阻塞的驱动程序进程驱动程序进程对被中断进程的对被中断进程的CPU环境进行保护环境进行保护中断请求信号中断请求信号3.设备驱动程序 设备驱动(设备处理程序),是进程与设备控制器之间的通信程序,也简称为设备
33、驱动进程。用于接受上层软件发来的抽象的I/O要求,转换为具体要求后发送给设备控制器,启动设备去执行,也将由设备控制器发来的信号传送给上层软件。设备驱动程序的功能: 接受由设备独立性软件发来的命令和参数,并将命令中的抽象要求转换为具体要求。 检查用户I/O请求的合法性,了解设备状态,传递参数,设置设备的工作方式 发出I/O命令。如果设备空闲将立即启动设备去完成指定的I/O操作;如果设备处于忙碌状态,则将请求者的请求块挂在设备队列上等待。 及时响应由设备控制器或通道发出的请求,并进行中断处理设备处理方式1.为每一类设备设置一个进程,专门用于执行这类设备的I/O操作。(如:为所有的交互式终端设置一个
34、交互式终端进程,为同一类型的打印机设置一个打印进程。)2.在整个操作系统中设置一个I/O进程,专门用于执行系统中所有各类设备的I/O操作,也可以设置一个输入进程和一个输出进程,分别处理系统中所有设备的输入或者输出操作。3.不设置专门的设备处理进程,而只为各类设备设置相应的设备处理程序,供用户进程或系统进程调用。设备驱动程序特点: 驱动程序是在请求I/O的进程与设备控制器之间的一个通信和转换程序。 驱动程序与设备控制器和I/O设备的硬件特性紧密相关,不同类型的设备配置不同的驱动程序。 驱动程序与I/O设备所采用的I/O控制方式紧密相关,常用的I/O控制方式是中断驱动和DMA方式。 因驱动程序和硬
35、件紧密相关,其中一部分用汇编语言编写,目前很多驱动程序已经固化在ROM中。 驱动程序应允许可重入。一个正在运行的驱动程序常会在一次调用完成前被再次调用 驱动程序不允许系统调用。设备独立(无关)性 在计算机系统中,可以配置的外设品种繁多。而且在小型机以上的计算机系统中,可以同时接入多台同样的外设。为了便于对这些外设进行管理,系统对每台进入计算机系统中的设备都给定一个对应的编号,作为调用时识别和区分设备用。这种编号无任何重复,一般被称为设备的绝对号(或物理设备名)设备的绝对号(或物理设备名)。设备分配 有了设备的绝对号,系统在管理过程中对设备的调用变得简单而方便。但作为用户而言,如果直接让其用绝对
36、号来申请设备,就会造成用户在使用中极不方便。特别是在多通道程序环境下,用户想查找哪台设备是空闲的,哪台是被占用的,根本是不可能的。有时申请的设备可能刚好很忙,而未被申请的其他同类设备即使处于空闲状态也不能使用,造成了设备使用的灵活性降低,设备利用率差。所以在系统中一般不允许用户用绝对号来直接申请所需的设备。 为了方便用户,也为了提高外设利用率,在计算机中规定用户申请外设时,只需要向系统说明所需用的某类设备,至于真正在实际中使用哪台设备,由系统根据这类设备的应用情况作出分配。即使用户所需多台同样的设备,系统也允许用户按自己的使用要求提出编号,这种由用户申请设备时所用的编号称为设设备相对号(或称逻
37、辑设备名)备相对号(或称逻辑设备名) 用户编制程序使用的逻辑设备独立于系统实际用户编制程序使用的逻辑设备独立于系统实际配置的物理设备,这就是设备的独立性配置的物理设备,这就是设备的独立性。具备设备。具备设备独立性的计算机系统中,用户编程时只考虑逻辑设独立性的计算机系统中,用户编程时只考虑逻辑设备,系统调用的是物理设备,逻辑设备与物理设备备,系统调用的是物理设备,逻辑设备与物理设备间的转化工作由设备分配程序来完成。当某台设备间的转化工作由设备分配程序来完成。当某台设备坏了,只要系统改变分配就行了,而程序本身不必坏了,只要系统改变分配就行了,而程序本身不必做任何修改。这对方便用户,改善资源利用率、
38、提做任何修改。这对方便用户,改善资源利用率、提高系统的可扩展性和可适应性都有极大的好处。高系统的可扩展性和可适应性都有极大的好处。 例如,有、号打印机,作业J1要申请其中两台,如果让J1直接申请号、号打印机,此时,如果号打印机为另一作业J2占用,或者是其中一台打印机坏了,即使系统中还有两台可用,J1也必须等待,造成资源浪费。如能让作业J1按相对号来申请设备,则可以避免这种缺陷。J1只要提出某类设备两台,系统可将剩下的两台分给J1,J1就可运行。设备得到充分利用。 设备分配算法的数据结构 任何算法的实现都离不开数据结构的支撑,在设备分配算法中也不例外.不同的系统中对设备分配算法的建立方式上有所不
39、同, 可能会导致所选择的数据基不同。 但作为在多道环境下的设备分配,不仅只是对设备的分配,而且还要实现与设备相联的通道及设备控制器的分配。4.设备独立性软件 现代OS中都实现了设备独立性(Device Independence),也称为设备无关性:应用程序独立于具体使用的物理设备。在应用程序中使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,必须使用物理设备名称,因此系统具有将逻辑设备名转换为物理设备名的功能。 设备独立性的好处: 设备分配的灵活性 易于重定向设备独立性软件为了实现设备独立性在驱动程序上设置的软件称为设备独立性软件 主要功能:逻辑设备名到物理设备名映射的实现1.逻辑设备表
40、(Logical Unit Table)执行所有设备的公有操作向用户层软件提供统一接口。逻辑设备表逻辑设备表 在分配算法的实现中,常采用的数据基主要含下述四张表,即 1)系统设备表SDT, 2)设备控制表DCT, 3)控制器控制表COCT, 4)通道控制表CHCT 。 这四张表在分配算法中形成了一个有机整体,有效地记录了外设资源在系统中的情况,设备的每一次分配调用都与这四张表有关。 1.系统设备表SDT(System Device Table): 在在SDTSDT表表中中,每每个个接接入入系系统统中中的的外外围围设设备备都都占占有有一一个个表表目目项项。登登录录了了该该设设备备的的名名称称、标
41、标识识及及设设备备控控制制表表DCTDCT的的入入口口地地址址等等相相关关的的信信息息。SDTSDT表表在在整整个个系系统统中中只只有有一一张张,全全面面反反映映了了系系统统中中的的外外设设资资源源的的类类型型、数数量量、占占用用情情况况等等。每每个个表表项项的的内内容容有有:1 :1 DCTDCT指指针针,该该指指针针指指向向有有关关设设备备的的设设备备控控制制表表;2 2 正正在在使使用用设设备备的的进程标识;进程标识;3 3 设备类型和设备标识符。设备类型和设备标识符。2.设备控制表DCT(Device Control Table) :系统中的每台设备都有一张DCT。在DCT中充分体现出
42、了设备的各方面特征,以及与该设备相连的I/O控制器的情况,。其内容如下:1、设备标识符,用来区别设备;2、设备类型,反映设备的特性; 3、设备地址和设备号;4、设备状态;5、等待队列指针;6、I/O控制器指针。 3.3.控控制制器器控控制制表表COCT(Controller COCT(Controller Control Control Table)Table) : :每每个个控控制制器器都都有有一一张张COCTCOCT,它它反反映映I/OI/O控控制制器器的的使使用用状状态态以以及及和和通通道道的的连连接接情情况况等等(在在DMADMA方方式式时时,该该项项是是没没有有的的)。具具体体表表项
43、项如如下下:控控制制器器标标识识;控控制制器器状状态态;CHCTCHCT指指针针; ;控控制制器器等等待待队队列列首首;控控制制器器等等待待队队列列尾等。尾等。4.4.通通道道控控制制表表CHCT(Channel CHCT(Channel Control Control Table)Table):CHCT CHCT 表表反反映映了了通通道道的的情情况况,系系统统中中的的每每个个通通道道一一张张CHCTCHCT。其其内内容容如如下下:通通道道标标识识符符; 通通道道状状态态;通通道道等等待待队队列首;通道等待队列尾等。列首;通道等待队列尾等。设备分配原则1设备分配原则:1)1)充分发挥设备的使用
44、效率;充分发挥设备的使用效率;2)2)避免不合理分配算法造成进程死锁;避免不合理分配算法造成进程死锁;3)3)把用户程序和具体的物理设备隔离开来。把用户程序和具体的物理设备隔离开来。 2.设备分配方式: 在设备分配中分配方式主要有两种:静态分配与动态分配。 静态分配方式主要适用对独占型设备的分配,这种类型的分配在使用上必须是互斥地占用。通常是在某个作业执行之前,根据作业需求,全部一次性分出,当作业撤离时,再由系统收回。由于是预分配,一般不会出现死锁,但设备使用效率低,不符合设备分配的总原则。 动态分配的方式则是由进程在执行中再来动态申请,资源分配的灵活性大,利用率高。在此方式下,设备不是进行预
45、分配,而是用时向系统提出设备请求,一旦用完便立即释放,缺点是如果分配算法使用不当,则有可能造成进程死锁。 系统对设备分配的常见措施:1先请求先分配;2 优先级高者先分配。(1)(1)先先请请求求先先分分配配:当若干进程对某一设备提出I/O请求时,得不到满足须排入等待队列中。这些进程由于申请的有先后次序,故排入等待队列的次序也是不相同的。当该设备被归还给系统后,就可以重新分配,此时,系统根据进程在等待队列中排队的先后次序进行设备分配。(2)(2)优优先先级级高高优优先先分分配配:在分配中,进程的优先级起了决定作用,即进程的优先级高,它的I/O请求也优先考虑。当从等待某设备的进程队列中挑选下一个可
46、占用设备的进程时,按进程的优先级来处理。高优先级的进程先分配,同优先级的,先申请先分配。3.3.独占设备分配程序独占设备分配程序( (算法):算法): 在具有通道的I/O系统中,基本的设备分配程序(对各资源的分配顺序)步骤为: (a)分配设备 ;(b )分配控制器;( c )分配通道。 4 4 影响设备分配的因素:影响设备分配的因素:1 1)I/OI/O设备的固有属性:对于不同属性的设备,通常设备的固有属性:对于不同属性的设备,通常采用相应的分配算法。采用相应的分配算法。2 2)设备分配算法。)设备分配算法。3 3)设备分配的安全性:即避免死锁的发生。)设备分配的安全性:即避免死锁的发生。4
47、4)设备的独立性)设备的独立性共享设备的驱动调度配置在计算机中的共享设备,由于在使用特征上表现为在同一时间段内允许多作业的进程交替占用,故这类设备在分配方式上就不可能将设备只分给某个进程使用。所以,对共享设备的分配,实质上变成了决定设备在某一时刻到底被谁启动、为谁服务的问题,也就是常说的驱动调度问题。不同的共享设备,由于其构造特征不同,所采用的驱动调度策略也会有差别。以共享设备磁盘来讨论驱动调度问题。磁盘的访问时间构成 磁磁盘盘的的物物理理构构造造决决定定了了一一次次磁磁盘盘的的I/OI/O操操作作,物物理理记记录录的的位位置置必必须须由由柱柱面面号号,磁磁头头号号(盘盘面面号号),扇扇区区号
48、号三三个个参参数数共共同同确确定定,如如何何确确定定这这三三个个参参数数是是磁磁盘盘访访问成功的关键。对磁盘的访问时间包括以下三部分:问成功的关键。对磁盘的访问时间包括以下三部分:查查找找(寻寻道道)时时间间:磁磁头头在在移移动动臂臂带带动动下下移移到到指指定定柱柱面所需的时间。面所需的时间。旋旋转转延延迟迟(延延迟迟)时时间间:指指定定的的扇扇区区旋旋转转到到磁磁头头位位置置所需的时间。所需的时间。传传输输时时间间:由由磁磁头头把把扇扇区区中中信信息息读读到到主主存存储储器器或或把把主主存储器中信息写到扇区中所需的时间。存储器中信息写到扇区中所需的时间。 由由上上述述三三个个时时间间之之和和
49、构构成成了了一一次次磁磁盘I/OI/O访问的的时间。要要使使磁磁盘利利用用率率高高,应尽尽量量减减少少每每次次I/OI/O操操作作的的访问时间,增增加加单位位时间内内的的I/OI/O操操作作吞吞吐吐量量。为此此系系统应采采用用一一定定的的管管理理对策策,决决定定当当有有多多个个访问请求求发生生时,让哪哪个个访问者者被被先先访问,这个个管管理理对策策被被称称为“驱动调度度”。具具体体的的磁磁盘盘驱驱动动调调度度算算法法分分为为两两部部分分:移移臂臂调调度度算算法法和和旋旋转转调调度度算算法法。移移臂臂调调度度控控制制的的是是查查找找操操作作的的先先后后次次序序;而而旋旋转转调调度度控控制制的的是
50、是哪哪个个扇扇区区先先被被访访问问的的问问题题。磁磁盘盘工工作作时时,应应先先完完成成移移臂臂调调度度,然然后再进行旋转调度。后再进行旋转调度。移臂调度移臂调度 目前广泛使用的查找策略有:目前广泛使用的查找策略有: 1先来先服务查找算法(FCFS) 这是一种最简单的移臂调度算法,它只考虑对磁盘请求的先后次序,而不考虑访问的物理位置,所有对磁盘有I/O请求的进程先去等待队列中排队,排在先的先给予服务。该算法对于访问进程是平等的。这种算法当访问请求分布不好时,可能会造成磁臂反复来回移动,增加总的访问时间,无法实现查找优化,只适用于访问请求不太多的情况。 图 FCFS算法2最短查找时间优先的算法(S
51、SFT,Shortest-Seek-Time-First) 这个算法是FCFS算法的改进。它总是选择请求队列中离当前磁头所在柱面最近的下一个柱面作为即将访问的对象,而不管请求访问者到达请求队列的先后次序。此算法克服了FCFS算法中磁臂大幅度来回移动的缺陷,在吞吐量上有所提高。但对访问者的服务机会是不均衡的,有时会造成内外边缘磁道上的请求被无限推迟响应的现象。3扫描算法(SCAN): 该算法是为了克服SSTF算法的缺点而提出的一种查找优化的算法,在SSTF算法中只考虑了请求访问的柱面与磁头当前所处位置的距离,而不考虑磁臂的移动方向。而SCAN算法则既要考虑距离,也要考虑方向,且方向优先考虑。SC
52、AN算法在选下一个访问者时,先选与磁臂移动方向一致的访问请求,在此基础上,选出与磁头当前柱面最近距离的柱面作为下一个访问对象。此方法与自然界中电梯工作的方式极为相象,故也称“电梯调度”算法。 SCAN算法是一种高效率的算法。它很好地解决了磁头来回移动浪费时间的现象,使系统吞吐量增大,资源利用率好。在实际的磁盘调度策略的使用中,多以SCAN算法为主。在此基础上又演变出了下面的两种算法:N步扫描法与循环扫描法。.N步扫描(N-Step-SCAN)与循环扫描(CSCAN)法 N步扫描算法将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法一次处理这些子队列。而每处理一个队列时又是按SC
53、AN算法,对一个队列处理完之后,再处理其他队列。当正在处理某子队列时,如果出现新的磁盘请求,就将其放入其他队列,可以避免出现粘着现象。 CSCAN循环扫描法也称单向扫描,它对请求者的服务总是每次从柱面号开始,然后移动至最大柱面。遇着访问进行服务。一次完后,磁头再次返回号柱面,又重复上述步骤。图(a)N步扫描(b)循环扫描旋转调度 通过移臂调度后,确定了访问的柱面号,当在同一柱面上有多个访问者等待访问时,如何安排访问者的访问次序?这就是旋转调度应解决的问题。旋转调度应以尽量减少旋转延迟时间为目的。下面介绍一种常见的“最短延迟时间优化”的策略。该方法以时间为衡量指标,对同一柱面上扇区的访问请求不是
54、按申请的先后次序来读写,而是经过重新排序后再处理,使时间上大大缩短。例如:假设号柱面上有四个访问者,它们的访问请求次序如下: 请求次序柱面号磁头号扇区号请求次序柱面号磁头号扇区号()() ()() ()() ()() 若若如如不不进进行行优优化化处处理理,处处理理完完这这四四个个访访问问请请求求可可能能需需要要两两周周的的旋旋转转时时间间。而而采采用用(),(),(),()的的次次序序处处理理,一一周周就就可可全全部部访访问问完完毕,节省了一半的时间。毕,节省了一半的时间。有有时时几几个个访访问问请请求求所所需需的的可可能能是是同同一一柱柱面面,不不同同磁磁头头号号所所对对应应的的同同一一扇扇
55、区区,这这样样会会造造成成这这些些扇扇区区同同时时到到达达磁磁头头位位置置下下,这这时时候候可可以以按按请请求求的的先先后后次次序序,先先请请求求的的先先读读写写(也也可可从从中中任任选选一一个个磁磁头头进进行读写操作)。行读写操作)。FCFSFCFS算法算法例:从例:从5353# #磁道开始磁道开始, ,访问次序依次如下:访问次序依次如下:9898、183183、3737、122122、1414、124124、6565、6767,求平均寻道长度,求平均寻道长度 被访问的下一个磁道号被访问的下一个磁道号 移动距离移动距离 98 98 4545 183183 85 85 37 37 146 14
56、6 122 122 85 85 14 14 108108 124 124 110110 65 65 5959 67 67 2 2 总移动量总移动量640640个柱面,平均寻道长度个柱面,平均寻道长度8080 SSTFSSTF算法算法例:从例:从5353# #磁道开始,请求访问的柱面分别是磁道开始,请求访问的柱面分别是9898、183183、3737、122122、1414、124124、6565、6767,求平均寻道长度,求平均寻道长度 被访问的下一个磁道号被访问的下一个磁道号 移动距离移动距离 65 1265 12 6767 2 237 37 3030 14 14 2323 98 98 84
57、84 122 122 2424 124 124 2 2 183 183 5959 总移动量总移动量236236个柱面,平均寻道长度个柱面,平均寻道长度29.529.5 SCANSCAN算法算法( (电梯算法电梯算法) )例:从例:从5353# #磁道开始磁道开始( (磁头向磁头向0 0磁道移动磁道移动) 98) 98、183183、3737、122122、1414、124124、6565、6767,求平均寻道长度,求平均寻道长度 被访问的下一个磁道号被访问的下一个磁道号 移动距离移动距离 37 37 16 16 1414 23 2365 65 5151 67 67 2 2 98 98 3131
58、 122 122 2424 124 124 2 2 183 183 5959 总移动量总移动量208208个柱面,平均寻道长度个柱面,平均寻道长度2626 C-SCANC-SCAN算法算法例:从例:从5353# #磁道开始磁道开始( (向磁道号增加方向)向磁道号增加方向), ,请求顺序请求顺序9898、183183、3737、122122、1414、124124、6565、6767,求平均寻道长度,求平均寻道长度 被访问的下一个磁道号被访问的下一个磁道号 移动距离移动距离 65 65 12 12 6767 2 298 98 3131 122 122 2424 124 124 2 2 183 1
59、83 5959 14 14 197197 37 37 2323 总移动量总移动量350350个柱面,平均寻道长度个柱面,平均寻道长度43.7543.75 例:有例:有4 4个访问个访问5 5号柱面的访问者,访问请求表如下:号柱面的访问者,访问请求表如下: 请求次序请求次序 柱面号柱面号 磁头号磁头号 扇区号扇区号 1 5 1 5 4 1 4 1 2 5 1 52 5 1 53 5 4 53 5 4 5 4 5 2 84 5 2 8 进行旋转调度后,执行次序为:进行旋转调度后,执行次序为:1 1,2 2,4 4,3 3, 或或 1 1,3 3,4 4,2 2。例:假定磁盘移动臂现处于例:假定磁盘
60、移动臂现处于8 8号柱面,有号柱面,有6 6个请求者等待访问磁盘,个请求者等待访问磁盘,列出最省时间的响应次序:列出最省时间的响应次序: 请求次序请求次序 柱面号柱面号 磁头号磁头号 扇区号扇区号 1 9 1 9 6 3 6 3 2 7 5 62 7 5 63 15 20 63 15 20 6 4 9 4 44 9 4 4 5 20 9 5 5 20 9 5 6 7 15 2 6 7 15 2 执行次序为执行次序为621435。当前磁盘读写位于柱面号20,此时有多个磁盘请求以下列柱面号顺序送至磁盘驱动器:10,22,20,2,40,6,38。寻道时,移动一个柱面需6ms,按下列三种算法计算所需寻道时间。1,FCFS2,SSTF3,电梯算法(当前状态向磁道增大的方向)先来先服务(10+12+20+38+14+32)*6756msSSTF(2+20+38+)*6360ms电梯算法(20+40)*6360ms盘面0 盘面1 盘面2 盘面3盘面4 盘面5 盘面6 盘面7152637044152637004152637连续读写多个记录时能减少磁头的延迟时间;同柱面不同盘面的扇区若能错开命名,连续读/写相邻两个盘面的逻辑记录时,也能减少磁头的延迟时间