操作系统第五章r05_第1页
操作系统第五章r05_第2页
操作系统第五章r05_第3页
操作系统第五章r05_第4页
操作系统第五章r05_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 第五章第五章 设备管理设备管理5.1 5.1 I/OI/O系统系统5.2 5.2 I/OI/O控制方式控制方式5.3 5.3 缓冲管理缓冲管理5.4 5.4 设备分配设备分配5.5 5.5 设备处理设备处理5.6 5.6 磁盘存储器管理磁盘存储器管理总结与作业总结与作业5.1 I/O 系系 统统 I/O系统是用于实现数据输入、输出系统是用于实现数据输入、输出及数据存储的系统。在及数据存储的系统。在I/O系统中,除系统中,除需要直接用于需要直接用于I/O和存储信息的设备外,和存储信息的设备外,还需要有相应的设备控制器和高速总线。还需要有相应的设备控制器和高速总线。一、一、 I/O 设备设备1

2、、I/O设备的类型设备的类型 q按传输速率分类按传输速率分类第一类是低速设备,如低速设备的典型设备第一类是低速设备,如低速设备的典型设备有键盘、鼠标器、语音的输入和输出等设备。有键盘、鼠标器、语音的输入和输出等设备。第二类是中速设备,典型的中速设备有行式第二类是中速设备,典型的中速设备有行式打印机、激光打印机等。打印机、激光打印机等。第三类是高速设备典型的高速设备有磁第三类是高速设备典型的高速设备有磁带机、带机、 磁盘机、磁盘机、 光盘机等。光盘机等。 q按信息交换的单位分类按信息交换的单位分类q按设备的共享属性分类按设备的共享属性分类第一类是第一类是块设备块设备,这类设备用于存储信息。由于这

3、类设备用于存储信息。由于信息的存取总是以数据块为单位,故而得名。信息的存取总是以数据块为单位,故而得名。第二类是第二类是字符设备字符设备,用于数据的输入和输出。其用于数据的输入和输出。其基本单位是字符,故称字符设备。基本单位是字符,故称字符设备。q 独占设备独占设备q 共享设备共享设备q 虚拟设备。虚拟设备。2、设备与控制器之间的接口设备与控制器之间的接口缓冲转换器控制逻辑信号数据数据信号线状态信号线控制信号线至设备控制器I/O设备 通常,设备并不是直接与通常,设备并不是直接与CPU进行通信,而是进行通信,而是与设备控制器通信。因此在设备与设备控制器之间与设备控制器通信。因此在设备与设备控制器

4、之间应有一接口,在该接口中有三种类型的信号,各对应有一接口,在该接口中有三种类型的信号,各对应一条信号线。应一条信号线。二、设备控制器二、设备控制器 设备控制器是计算机中的一个实体,其主要职责设备控制器是计算机中的一个实体,其主要职责是:控制一个或多个是:控制一个或多个I/O设备,以实现设备和计算机之设备,以实现设备和计算机之间的数据交换。间的数据交换。 设备控制器是一个可编址的设备,当它仅控制一设备控制器是一个可编址的设备,当它仅控制一个设备时,它只有一个设备地址;而连接多个设备时,个设备时,它只有一个设备地址;而连接多个设备时,则有多个设备地址。则有多个设备地址。 设备控制器可分成两类:一

5、类是用于控制字符设设备控制器可分成两类:一类是用于控制字符设备的控制器;另一类是用于块设备的控制器。备的控制器;另一类是用于块设备的控制器。1、设备控制器的基本功能、设备控制器的基本功能v接收和识别命令接收和识别命令v数据交换数据交换v标识和报告设备的状态标识和报告设备的状态 v地址识别地址识别v数据缓冲数据缓冲v差错控制差错控制 2、设备控制器的组成、设备控制器的组成 设备控制器与处理机的接口设备控制器与处理机的接口 设备控制器与设备的接口设备控制器与设备的接口 I/O逻辑逻辑数据寄存器控制/状态寄存器数据线I/O逻辑控制器与设备接口1控制器与设备接口i数据状态控制数据状态控制地址线控制线C

6、PU与控制器接口控制器与设备接口三、三、I/O 通道通道1、I/O通道(通道( I/O Channel )设备的引入)设备的引入 在在CPU和设备控制器之间增设通道,其主和设备控制器之间增设通道,其主要目的是:使一些原来由要目的是:使一些原来由CPU处理的处理的I/O任务转任务转由通道来承担,从而把由通道来承担,从而把CPU从繁杂的从繁杂的I/O任务中任务中解脱出来。解脱出来。 CPU只需向通道发送一条只需向通道发送一条I/O指令,通道指令,通道在收到该指令后,便从内存中取出本次要执行的在收到该指令后,便从内存中取出本次要执行的通道程序,然后执行通道程序,当通道完成了通道程序,然后执行通道程序

7、,当通道完成了I/O任务后,向任务后,向CPU发中断信号。发中断信号。 I/O通道与一般的处理机不同:通道与一般的处理机不同:一、一、是其指令类型单一,这是由于通道硬件比是其指令类型单一,这是由于通道硬件比较简单,较简单, 其所能执行的命令,主要局限于其所能执行的命令,主要局限于与与I/O操作有关的指令;操作有关的指令; 二、二、就是通道没有自己的内存,通道所执行的就是通道没有自己的内存,通道所执行的通道程序是放在主机的内通道程序是放在主机的内存中的,存中的, 换言之,换言之,是通道与是通道与CPU共享内存。共享内存。2、通道类型、通道类型(根据信息交换方式不同进行分类)(根据信息交换方式不同

8、进行分类) 1) 字节多路通道字节多路通道(Byte Multiplexor Channel)控制器A控制器B控制器C控制器D控制器NA1A2A3子通道AB1B2B3子通道BC1C2C3子通道CN1N2N3子通道NA1B1C1 A2B2C2设备 2) 数组选择通道数组选择通道(Block Selector Channel) 这种通道虽然可以连接多台高速设备,但这种通道虽然可以连接多台高速设备,但由于它只含有一个分配型子通道,在一段时间由于它只含有一个分配型子通道,在一段时间内只能执行一道通道程序,控制一台设备进行内只能执行一道通道程序,控制一台设备进行数据传送,致使当某台设备占用了该通道后,数

9、据传送,致使当某台设备占用了该通道后,便一直由它独占便一直由它独占。 3) 数组多路通道数组多路通道(Block Multiplexor Channel) 数组多路通道是将数组多路通道是将数组选择通道数组选择通道传输速率高传输速率高和和字节多路通道字节多路通道能使各子通道能使各子通道(设备设备)分时并行操分时并行操作的优点相作的优点相结合结合而形成的一种新通道。而形成的一种新通道。 它含有多个非分配型子通道,因而这种通道它含有多个非分配型子通道,因而这种通道既具有很高的数据传输速率,又能获得令人满意既具有很高的数据传输速率,又能获得令人满意的通道利用率。的通道利用率。 3、“瓶颈瓶颈”问题问题

10、 由于通道价格昂贵,致使机器中所设置的通由于通道价格昂贵,致使机器中所设置的通道数量势必较少。道数量势必较少。设备1设备2设备3设备4设备5设备6设备7控制器 1控制器 2控制器 3控制器 4通道1通道2存储器 解决解决“瓶颈瓶颈”问题的最有效的方法问题的最有效的方法就是就是增加设备到主机间的通路而不增加通道,也就增加设备到主机间的通路而不增加通道,也就是说,把一个设备连接到多个控制器上,而一是说,把一个设备连接到多个控制器上,而一个控制器又连接到多个通道上。多通路方式可个控制器又连接到多个通道上。多通路方式可以解决以解决“瓶颈瓶颈”问题,也可以提高系统的可靠问题,也可以提高系统的可靠性。性。

11、I/O设备控制器1控制器2通道1通道2存储器I/O设备I/O设备I/O设备四、总线系统四、总线系统CPU存储器磁盘控制器打印机控制器其它控制器磁盘驱动器打印机系统总线 在计算机系统中的各部件,如在计算机系统中的各部件,如CPU、存存储器以及各种储器以及各种I/O设备之间的联系,都是通过设备之间的联系,都是通过总线来实现的。总线来实现的。2、局部总线局部总线(Local Bus) vISA(Industry Standard Architecture)总线vEISA(Extended ISA)总线 这是为这是为1984年推出的年推出的80286型微机而设计型微机而设计的总线结构。的总线结构。 其

12、总线的带宽为其总线的带宽为8位,最高传位,最高传输速率为输速率为2 Mb/s。之后不久又推出了之后不久又推出了16位的位的(EISA)总线,其最高传输速率为总线,其最高传输速率为8 Mb/s,后后又升至又升至16 Mb/s, 能连接能连接12台设备。台设备。 80年代末期,年代末期,ISA总线已难于满足带宽和总线已难于满足带宽和传输速率的要求,传输速率的要求, 于是人们又开发出扩展于是人们又开发出扩展ISA(EISA)总线,其带宽为总线,其带宽为32位,总线的传输位,总线的传输速率高达速率高达32 Mb/s,同样可以连接同样可以连接12台外部设台外部设备备。1、 ISA和和EISA总线总线vV

13、ESA(Video Electronic Standard Association)总线vPCI(Peripheral Component Interface)总线 是指将多媒体卡、高速是指将多媒体卡、高速LAN网卡、高性网卡、高性能图形板等从能图形板等从ISA总线上卸下来,在通过局总线上卸下来,在通过局部总线控制器直接接到部总线控制器直接接到CPU总线上,使之与总线上,使之与高速高速CPU总线相匹配,而打印机、总线相匹配,而打印机、CD-ROM等仍挂在等仍挂在ISA总线上。总线上。 VESA总线的带宽为总线的带宽为32位,最高传输速率位,最高传输速率为为132Mb/s,90年代初推出时,广泛

14、应用与年代初推出时,广泛应用与486微机中。微机中。VESA存在的缺陷主要是:连接存在的缺陷主要是:连接的设备数较少,仅为的设备数较少,仅为4-6台,在控制器中无缓台,在控制器中无缓冲,难于适应处理器速度的不断提高。冲,难于适应处理器速度的不断提高。 1992年和年和1995年,年,Inter公司颁布了公司颁布了PCI总线的总线的V1.0和和V2.0规范。规范。PCI在在CPU和外设和外设之间插入一复杂的管理层,用于协调数据传之间插入一复杂的管理层,用于协调数据传输和提供一致的接口。输和提供一致的接口。5.2 I/O 控制方式控制方式q程序程序I/O方式;方式;q中断驱动方式;中断驱动方式;q

15、DMA控制方式;控制方式;qI/O通道控制方式。通道控制方式。 总的说来,总的说来,I/O控制方式的发展过程控制方式的发展过程中,始终是以中,始终是以尽量减少主机对尽量减少主机对I/O控制的控制的干预为宗旨干预为宗旨。一、程序一、程序I/O方式方式 程序程序I/O方式又称为忙方式又称为忙等待方式,由于等待方式,由于CPU的高速性和的高速性和I/O设备的低速性,致使设备的低速性,致使CPU的绝大部分时间都处于等待的绝大部分时间都处于等待I/O设备完成数据设备完成数据I/O的循环测试中,的循环测试中, 造成对造成对CPU的极大浪费。的极大浪费。二、中断驱动二、中断驱动I/O控制方式控制方式 所谓所

16、谓中断驱动方式中断驱动方式是指:当某进程要启动某是指:当某进程要启动某个个I/O设备工作时,便由设备工作时,便由CPU向相应的设备控制向相应的设备控制器发出一条器发出一条I/O指令,然后立即返回继续执行原指令,然后立即返回继续执行原来的任务,设备控制器按照命令要求去控制指定来的任务,设备控制器按照命令要求去控制指定的的I/O设备,此时,设备,此时,CPU和和I/O设备并行工作。设备并行工作。一旦数据进入数据寄存器,控制器便通过控制线一旦数据进入数据寄存器,控制器便通过控制线向向CPU发送一发送一中断信号中断信号,由,由CPU检查输入过程是检查输入过程是否出错,若无错则向控制器发送取走数据的信号

17、,否出错,若无错则向控制器发送取走数据的信号,然后再通过控制器及数据线,将数据写入内存指然后再通过控制器及数据线,将数据写入内存指定单元。定单元。 在在I/O设备输入每个数据的过程中,由于无设备输入每个数据的过程中,由于无须须CPU干预,因而可使干预,因而可使CPU与与I/O设备并行工作。设备并行工作。仅当输完一个数据时,才需仅当输完一个数据时,才需CPU花费极短的时间花费极短的时间去做些中断处理。可见,这样可使去做些中断处理。可见,这样可使CPU和和I/O设备设备都处于忙碌状态,从而提高了整个系统的资源利都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。用率及吞吐量。中断驱动方式分析中

18、断驱动方式分析三、直接存储器访问直接存储器访问DMA I/O控制方式控制方式 为进一步减少为进一步减少CPU对对I/O的干预而引入直接存储访的干预而引入直接存储访问方式问方式 。 特点特点:q 数据传输的基本单位是数据块,即在数据传输的基本单位是数据块,即在CPUCPU与与I/OI/O设设备之间,每次传送至少一个数据块;备之间,每次传送至少一个数据块;q 所传送的数据是从设备直接送入内存的,或者相所传送的数据是从设备直接送入内存的,或者相反;反; q 仅在传送一个或多个数据块的开始和结束时,才仅在传送一个或多个数据块的开始和结束时,才需需CPUCPU干预,整块数据的传送是在控制器的控制下完干预

19、,整块数据的传送是在控制器的控制下完成的。成的。1、DMA(Direct Memory Access)控制方式的引入控制方式的引入2、 DMA控制器的组成控制器的组成DRMARDCCRI/O控制逻辑主机控制器接口控制器与块设备接口count内存CPU命令系统总线DMA控制器3、 DMA工作过程工作过程 设置AR和DC初值启动DMA传送命令挪用存储器周期传送数据字存储器地址增1字计数寄存器减1DC0?请求中断在继续执行用户程序的同时,准备又一次传送否是以磁盘读入数据为例四、四、I/OI/O通道控制方式通道控制方式 I/OI/O通道方式是通道方式是DMADMA方式的发展,它可进一步减少方式的发展,

20、它可进一步减少CPUCPU的干预,即把对一个数据块的读的干预,即把对一个数据块的读( (或写或写) )为单位的为单位的干预,减少为对一组数据块的读干预,减少为对一组数据块的读( (或写或写) )及有关的控及有关的控制和管理为单位的干预。同时制和管理为单位的干预。同时, ,又可实现又可实现CPUCPU、通道通道和和I/OI/O设备三者的并行操作,从而更有效地提高整个设备三者的并行操作,从而更有效地提高整个系统的资源利用率。系统的资源利用率。1 1、I/OI/O通道控制方式的引入通道控制方式的引入2、通道程序、通道程序v通道通道v通道程序通道程序 通道是通过执行通道程序,并通道是通过执行通道程序,

21、并与设备控制器共同实现对与设备控制器共同实现对I/O设备设备的控制的。的控制的。 通道程序是由一系列通道指令(或通道程序是由一系列通道指令(或称为通道命令)所构成的,它与一般机称为通道命令)所构成的,它与一般机器指令不同,其每条指令中包含下列信器指令不同,其每条指令中包含下列信息:操作码、内存地址、计数、通道程息:操作码、内存地址、计数、通道程序结束位、记录结束标志位序结束位、记录结束标志位R。操作 PR计数内存地址WRITE 0080813WRITE001401034WRITE01605830WRITE013002000WRITE002501850WRITE11250720例例:一个由六条通

22、道指令所构成的简单通道程序5.3 5.3 缓冲管理缓冲管理一、缓冲的引入一、缓冲的引入q 缓和缓和CPU与与I/O设备间速度不匹配的矛盾。设备间速度不匹配的矛盾。 q 减少对减少对CPU的中断频率,放宽对的中断频率,放宽对CPU中断中断响应时间的限制。响应时间的限制。 q 提高提高CPU和和I/O设备之间的并行性。设备之间的并行性。1位缓冲9.6 Kb/s8位缓冲寄存器送内存9.6 Kb/s8位缓冲寄存器9.6 Kb/s送内存(b)(a)(c)二、单缓冲和双缓冲二、单缓冲和双缓冲1. 单缓冲单缓冲(Single Buffer) 工作区处理(C)缓冲区传送(M)输入(T)I/O设备(a)T1M1

23、C1T2M2C2T3M3C3T4t(b)用户进程 每当用户发出一每当用户发出一I/O请请求时,操作系统便在主存求时,操作系统便在主存中为之分配一缓冲区中为之分配一缓冲区2. 双缓冲双缓冲(Double Buffer) 工作区用户进程缓冲区 1缓冲区 2I/O 设备T1(缓 冲 1)M1C1M2C2M3C3T2(缓 冲 2)T3(缓 冲 3)M4C4T4(缓 冲 4)(a)(b) 为了加快输入和输出速度,提高为了加快输入和输出速度,提高设备利用率,又引入了双缓冲区机制,设备利用率,又引入了双缓冲区机制,也称为也称为“缓冲对换缓冲对换”。缓冲区缓冲区A机B机(a) 单缓冲发送缓冲区接收缓冲区接收缓

24、冲区发送缓冲区A机B机(b) 双缓冲双机通信时缓冲区的设置双机通信时缓冲区的设置 三、循环缓冲三、循环缓冲 当输入与输出速度相差甚远时,双缓冲的效当输入与输出速度相差甚远时,双缓冲的效果并不是很理想,这时可增加缓冲区数量。因此,果并不是很理想,这时可增加缓冲区数量。因此,又引入多缓冲机制。又引入多缓冲机制。 可将多个缓冲区组织成循环缓冲形式。对于可将多个缓冲区组织成循环缓冲形式。对于用做输入的循环缓冲,通常是提供给输入进程或用做输入的循环缓冲,通常是提供给输入进程或计算进程使用,输入进程不断地向空缓冲区输入计算进程使用,输入进程不断地向空缓冲区输入数据,而计算进程则从中提取数据进行计算。数据,

25、而计算进程则从中提取数据进行计算。1. 循环缓冲的组成循环缓冲的组成 RGGGRG165423NextiNextgRGGGRC165423NextiNextgcurrent多个缓冲区和多个指针多个缓冲区和多个指针2 2、循环缓冲区的使用循环缓冲区的使用vGetbuf过程过程vReleasebuf过程过程 从缓冲区中读取数据时:将由指针从缓冲区中读取数据时:将由指针NextgNextg所指示所指示的缓冲区提供给进程使用,把它改为现行工作缓冲的缓冲区提供给进程使用,把它改为现行工作缓冲区,并令区,并令CurrentCurrent指针指向该缓冲区的第一个单元,指针指向该缓冲区的第一个单元,同时将同时

26、将NextgNextg移向下一个移向下一个G G缓冲区。缓冲区。 使用空缓冲区来装入数据时使用空缓冲区来装入数据时: :由该过程将指针由该过程将指针NextiNexti所指示的缓冲区提供给输入进程使用,同时所指示的缓冲区提供给输入进程使用,同时将将NextiNexti指针移向下一个指针移向下一个R R缓冲区缓冲区 当计算进程把当计算进程把C缓冲区中的数据提取缓冲区中的数据提取完毕时,便调用该过程,将缓冲区完毕时,便调用该过程,将缓冲区G释释放。此时,把该缓冲区由当前工作缓冲放。此时,把该缓冲区由当前工作缓冲区区C改为空缓冲区改为空缓冲区R。 当输入进程把缓冲区装满时,也应当输入进程把缓冲区装满

27、时,也应调用调用Releasebuf过程,将该缓冲区释放,过程,将该缓冲区释放,并改为并改为G缓冲区。缓冲区。3、进程同步、进程同步vNexti指针追赶上指针追赶上Nextg指针指针系统受计算限制系统受计算限制vNextg指针追赶上指针追赶上Nexti指针指针系统受系统受I/O限制限制 这意味着输入进程输入数据的速度大于计这意味着输入进程输入数据的速度大于计算进程处理数据的速度,已把全部可用的空缓算进程处理数据的速度,已把全部可用的空缓冲区装满,再无空缓冲区可用。冲区装满,再无空缓冲区可用。输入进程应被输入进程应被阻塞阻塞,直到计算进程把某个缓冲区中数据全部,直到计算进程把某个缓冲区中数据全部

28、提取完,使其成为空缓冲区提取完,使其成为空缓冲区R,并调用并调用Releasebuf过程将它释放时,才将输入进程唤过程将它释放时,才将输入进程唤醒。醒。 这意味着输入进程输入数据的速度低于计这意味着输入进程输入数据的速度低于计算进程处理数据的速度,使全部装有输入数算进程处理数据的速度,使全部装有输入数据的缓冲区都被抽空,再无输入数据可被使据的缓冲区都被抽空,再无输入数据可被使用。这时,用。这时,计算进程应被阻塞计算进程应被阻塞,直至输入进,直至输入进程又装满某个缓冲区,并调用程又装满某个缓冲区,并调用Releasebuf过程过程将它释放时,才将计算进程唤醒。将它释放时,才将计算进程唤醒。四、四

29、、缓冲池缓冲池( (Buffer Pool)Buffer Pool) 前面的缓冲区仅适用于某特定的前面的缓冲区仅适用于某特定的I/O进程和进程和计算进程,因而它们属于专用缓冲。当系统较计算进程,因而它们属于专用缓冲。当系统较大时,将会有许多这样的循环缓冲,这不仅消大时,将会有许多这样的循环缓冲,这不仅消耗大量的内存空间,而且其利用率不高。耗大量的内存空间,而且其利用率不高。 为了提高缓冲区的利用率,目前广泛流行公为了提高缓冲区的利用率,目前广泛流行公用缓冲池,在池中设置了多个可供进程共享的用缓冲池,在池中设置了多个可供进程共享的缓冲区。缓冲区。1. 缓冲池的组成缓冲池的组成 对于既可用于输入又

30、可用于输出的公用缓冲池,对于既可用于输入又可用于输出的公用缓冲池, 其中至少应含有以下三种类型的缓冲区:其中至少应含有以下三种类型的缓冲区: 空空(闲闲)缓冲区缓冲区; 装满输入数据的缓冲区装满输入数据的缓冲区; 装满输出数据的缓冲区装满输出数据的缓冲区。 为了管理上为了管理上的方便,可将相同类型的缓冲区链成的方便,可将相同类型的缓冲区链成一个队列,于是可形成以下三个队列:一个队列,于是可形成以下三个队列: (1)空缓冲队列)空缓冲队列emq。 (2) 输入队列输入队列inq。 (3) 输出队列输出队列outq。 2、 Getbuf过程和过程和Putbuf过程过程 Addbuf(type,nu

31、mber)过程:用于将由参过程:用于将由参数数number所指示的缓冲区,挂在所指示的缓冲区,挂在type队列上。队列上。 Takebuf(type)过程:用于从过程:用于从type所指示所指示的队列的队首取下一缓冲区。的队列的队首取下一缓冲区。 缓冲池中的队列是临界资源,多个进程在缓冲池中的队列是临界资源,多个进程在访问一个队列时,必须保持互斥和同步。访问一个队列时,必须保持互斥和同步。 为使若干进程能互斥地访问缓冲池队列,为使若干进程能互斥地访问缓冲池队列,可为每一个队列设置一个互斥信号量可为每一个队列设置一个互斥信号量MS(type);为保证同步使用缓冲区,为每个缓冲队列设置为保证同步使

32、用缓冲区,为每个缓冲队列设置一个资源信号量一个资源信号量RS(type)。Procedure Getbuf(type) begin Wait(RS(type); Wait(MS(type); B(number) =Takebuf(type); Signal(MS(type); endGetbuf过程和过程和Putbuf过程描述:过程描述:Procedure Putbuf(type, number) begin Wait(MS(type); Addbuf(type, number); Signal(MS(type); Signal(RS(type); end 3、 缓冲区的工作方式缓冲区的工作方

33、式hinsoutsinhout收容输入提取输出用户程序提取输入收容输出缓冲池v收容输入方式收容输入方式v提取输入方式提取输入方式v收容输出方式收容输出方式v提取输出方式提取输出方式Getbuf(outq),Putbuf(emq,sout)Getbuf(inq),Putbuf(emq,sin)Getbuf(emq),Putbuf(outq,hout)Getbuf(emq),Putbuf(inq,hin)5.4 设备分配设备分配 在多道程序环境下,系统中的设备供所有在多道程序环境下,系统中的设备供所有进程共享,为防止各进程对系统资源的无序进程共享,为防止各进程对系统资源的无序竞争,特规定系统设备不

34、允许用户自行使用,竞争,特规定系统设备不允许用户自行使用,必须由系统统一分配。必须由系统统一分配。 每当进程向系统提出每当进程向系统提出I/O请求时,只要是请求时,只要是可能和安全的,设备分配程序便按照一定的可能和安全的,设备分配程序便按照一定的策略,把设备分配给请求进程。策略,把设备分配给请求进程。一、设备分配中的数据结构一、设备分配中的数据结构1. 设备控制表设备控制表DCT(Device Control Table) 设备类型 type设备标识符:deviceid设备状态:等待/不等待 忙/闲指向控制器表的指针重复执行次数或时间设备队列的队首指针DCT 1DCT 2DCT n设备控制表集

35、合2. 控制器控制表、控制器控制表、 通道控制表和系统设备表通道控制表和系统设备表 (c) 系统设备表SDT控制器标识符:controllerid控制器状态:忙/闲与控制器连接的通道表指针控制器队列的队首指针控制器队列的队尾指针通道标识符:channelid通道状态:忙/闲与通道连接的控制器表首址通道队列的队首指针通道队列的队尾指针(a) 控制器表COCT(b) 通道表CHCT表目1表目i设备类设备标识符DCT驱动程序入口二、设备分配时应考虑的因素设备分配时应考虑的因素v设备的固有属性设备的固有属性 v设备分配算法设备分配算法 v设备分配中的安全性设备分配中的安全性 设备的固有属性可分成三种:

36、设备的固有属性可分成三种:1、独、独占性;占性;2、共享性;、共享性;3、可虚拟设备、可虚拟设备 不同设备必须采取不同的分配策略不同设备必须采取不同的分配策略 两种设备分配算法:两种设备分配算法: 1、先来先服务;、先来先服务; 2、优先级高者优先、优先级高者优先 从进程运行的安全性上考虑,设从进程运行的安全性上考虑,设备分配有以下两种方式:备分配有以下两种方式: 1、安全分配方式;、安全分配方式; 2、不安全分配方式;、不安全分配方式;三、设备独立性三、设备独立性 1、设备独立性、设备独立性(Device Independence)的概念的概念 基本含义基本含义:应用程序独立于具体使用的物理

37、设备。应用程序独立于具体使用的物理设备。 在应用程序中,使用逻辑设备名称来请求使在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用某类设备;而系统在实际执行时,还必须使用物理设备名称。用物理设备名称。 因此,系统须具有将逻辑设备名称转换为某因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能,这非常类似于存储器管物理设备名称的功能,这非常类似于存储器管理中所介绍的逻辑地址理中所介绍的逻辑地址和物理地址的概念。和物理地址的概念。实现了设备独立性的功能后,可带来以下好处:实现了设备独立性的功能后,可带来以下好处:v设备分配时的灵活性设备分配时的灵活性v易于实现易于

38、实现I/O重定向重定向 当应用程序(进程)以当应用程序(进程)以物理设备名称物理设备名称来请求使来请求使用指定的某台设备时,如果该设备已经分配给其它用指定的某台设备时,如果该设备已经分配给其它进程或正在检修,而此时尽管有其它几台相同的设进程或正在检修,而此时尽管有其它几台相同的设备正在空闲,该进程仍被阻塞。备正在空闲,该进程仍被阻塞。 若进程以若进程以逻辑设备名称逻辑设备名称来请求某类设备时,系来请求某类设备时,系统可立即将该类设备中的任一台分配给进程,仅当统可立即将该类设备中的任一台分配给进程,仅当所有此类设备已全部分配完毕时,进程才被阻塞。所有此类设备已全部分配完毕时,进程才被阻塞。 I/

39、O重定向:是指用于重定向:是指用于I/O操作的设操作的设备可以更换,而不必改变应用程序。备可以更换,而不必改变应用程序。 I/O重定向功能具有很大的实用价重定向功能具有很大的实用价值,已被广泛地引入到许多值,已被广泛地引入到许多OS中。中。 2、设备独立性软件、设备独立性软件 驱动程序是一个与硬件(或设备)紧密相关驱动程序是一个与硬件(或设备)紧密相关的软件。为了实现设备独立性,必须再在驱动的软件。为了实现设备独立性,必须再在驱动程序上设置一层软件,称为设备独立性软件,程序上设置一层软件,称为设备独立性软件,其主要功能为:其主要功能为: v执行所有设备的公有操作;执行所有设备的公有操作;v向用

40、户层(或文件层)软件提供统一接口;向用户层(或文件层)软件提供统一接口; 对独立设备的分配与回收;对独立设备的分配与回收; 将逻辑设备名映射为物理设备名将逻辑设备名映射为物理设备名 对设备进行保护,禁止用户直接访问设备;对设备进行保护,禁止用户直接访问设备; 缓冲管理,缓冲管理, 差错控制。差错控制。 无论何种设备,无论何种设备, 它们向用户所提供的它们向用户所提供的接口应该是相同的。接口应该是相同的。 例如,例如, 对各种设备的对各种设备的读操作,读操作,在应用程序中都使用在应用程序中都使用read; 而对各而对各种设备的写操作,也都使用种设备的写操作,也都使用write。 3、逻辑设备名到

41、物理设备名映射的实现、逻辑设备名到物理设备名映射的实现 v逻辑设备表逻辑设备表vLUT的设置问题的设置问题 逻辑设备表逻辑设备表LUT,用于将应用程序中所使用于将应用程序中所使用的逻辑设备名映射为物理设备名。用的逻辑设备名映射为物理设备名。 当进程用逻辑设备名请求分配当进程用逻辑设备名请求分配I/O设备时,设备时,系统为它分配相应的物理设备,并在系统为它分配相应的物理设备,并在LUT上上建立一个表目,填上应用程序中使用的逻辑建立一个表目,填上应用程序中使用的逻辑设备名称和系统分配的物理设备名以及设备设备名称和系统分配的物理设备名以及设备驱动程序入口地址。驱动程序入口地址。 LUT的设置可采取两

42、种方式:的设置可采取两种方式: 1、在整个系统中只设置一张、在整个系统中只设置一张LUT。由于系统由于系统中所有进程的设备分配情况都记录在一张中所有进程的设备分配情况都记录在一张LUT上,上,因而不允许在因而不允许在LUT中具有相同的逻辑设备名,这中具有相同的逻辑设备名,这要求所有用户不使用相同的逻辑设备名;要求所有用户不使用相同的逻辑设备名; 2、为每个用户设置一张、为每个用户设置一张LUT,每当用户登录每当用户登录时,便为该用户建立一个进程,同时也为之建立时,便为该用户建立一个进程,同时也为之建立一张一张LUT,并将该表放入进程的并将该表放入进程的PCB中。中。逻辑设备名 物理设备名驱动程

43、序入口地址/dev/tty/dev/printer3510242046逻辑设备名/dev/tty/dev/printer系统设备表指针35(a)(b)四、独占设备的分配程序四、独占设备的分配程序1、基本的设备分配程序、基本的设备分配程序 系统的设备分配程序可按下述步骤进行设备系统的设备分配程序可按下述步骤进行设备分配:分配:v分配设备分配设备v分配控制器分配控制器v分配通道分配通道根据根据I/O请求中的物理设备名,查找系统设备请求中的物理设备名,查找系统设备表表SDT,从中找出该设备的从中找出该设备的DCT,根据根据DCT可可知设备是否忙。若忙,则将请求知设备是否忙。若忙,则将请求I./O的进

44、程的的进程的PCB挂在设备队列上,否则,便按一定算法计挂在设备队列上,否则,便按一定算法计算本次设备分配的安全性。算本次设备分配的安全性。 在系统把设备分配给请求在系统把设备分配给请求I/O的进程后,的进程后,再到其再到其DCT中找出与该设备连接的控制器的中找出与该设备连接的控制器的COCT,可知该控制器是否忙。若忙,则将可知该控制器是否忙。若忙,则将请求请求I/O进程的进程的PCB挂在该控制器的等待队列挂在该控制器的等待队列上;否则便将该控制器分配给进程。上;否则便将该控制器分配给进程。 在该在该COCT中又可找到与该控制器连接中又可找到与该控制器连接的通道的的通道的CHCT,可知该通道是否

45、忙碌。若可知该通道是否忙碌。若忙,便将请求忙,便将请求I/O的进程挂在该通道的等待的进程挂在该通道的等待队列上;否则,将该通道分配给该进程。队列上;否则,将该通道分配给该进程。 只有在设备、控制器和通道三者都分配成功时,只有在设备、控制器和通道三者都分配成功时,这次的设备分配才算成功,然后便启动这次的设备分配才算成功,然后便启动I/O设备进行设备进行数据传送数据传送2. 设备分配程序的改进设备分配程序的改进v增加设备的独立性增加设备的独立性v考虑多通路情况考虑多通路情况 上述基本的设备分配程序特点是:上述基本的设备分配程序特点是:进程是以物理设备名来提出进程是以物理设备名来提出I/O请求的;请

46、求的;采用的是单通路的采用的是单通路的I/O系统结构,容易产生系统结构,容易产生“瓶瓶颈颈”现象。现象。 为获得设备的独立性,进程应使用逻辑为获得设备的独立性,进程应使用逻辑设备名请求设备名请求I/O。这样系统首先从这样系统首先从SDT中找中找出第一个该类设备的出第一个该类设备的DCT。若该设备忙,又若该设备忙,又查找第二个设备的查找第二个设备的DCT,仅当所有该类设备仅当所有该类设备都忙时,才把进程挂在等待该类设备的等待都忙时,才把进程挂在等待该类设备的等待队列上,而只要有一个设备可用,系统便进队列上,而只要有一个设备可用,系统便进一步计算分配该设备的安全性。一步计算分配该设备的安全性。 对

47、控制器和通道的分配,同样要经过几对控制器和通道的分配,同样要经过几次反复。即若设备(控制器)所连接的第一次反复。即若设备(控制器)所连接的第一个控制器(通道)忙时,应查看其所连的第个控制器(通道)忙时,应查看其所连的第二个控制器(通道),仅当所有的控制器二个控制器(通道),仅当所有的控制器(通道)都忙时,此次的控制器(通道)分(通道)都忙时,此次的控制器(通道)分配才算失败,并把进程挂在控制器(通道)配才算失败,并把进程挂在控制器(通道)的等待队列上。的等待队列上。五、五、 SPOOLing技术技术 v什么是什么是SPOOLing?vSPOOLing系统的组成系统的组成v共享打印机共享打印机v

48、SPOOLing系统的特点系统的特点 利用多道程序中的一道程序,来模拟脱机输入利用多道程序中的一道程序,来模拟脱机输入时的外围控制机功能,把低速时的外围控制机功能,把低速I/O设备上的数据传设备上的数据传送到高速磁盘上;送到高速磁盘上; 再用另一道程序来模拟脱机输出时外围控制机再用另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上的功能,把数据从磁盘传送到低速输出设备上。 这种在联机情况下实现的同时外围操作称为这种在联机情况下实现的同时外围操作称为SPOOLing,或称为假脱机操作或称为假脱机操作。 SPOOLing系统主要由三部分组成:输入井和输系统主要由三部分组成

49、:输入井和输出井;输入缓冲区和输出缓冲区;输入进程出井;输入缓冲区和输出缓冲区;输入进程SPi和和输出进程输出进程SPo.输入进程 SPi输入进程 SPo输入缓冲区 Bi输出缓冲区 Bo输入井输出井磁盘输入设备输出设备 当用户进程请求打印输出时,当用户进程请求打印输出时, SPOOLing系统只系统只做两件事:做两件事: 由输出进程在输出井中为之申请一个空闲磁盘块由输出进程在输出井中为之申请一个空闲磁盘块区,并将要打印的数据送入其中;区,并将要打印的数据送入其中; 输出进程再为用户进程申请一张空白的用户请求输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,打印表,并

50、将用户的打印要求填入其中, 再再将该表将该表挂到请求打印队列上。挂到请求打印队列上。(1)提高了提高了I/O的速度。的速度。 (2) 将独占设备改造为共享设备。将独占设备改造为共享设备。 (3) 实现了虚拟设备功能。实现了虚拟设备功能。5.5 设备处理设备处理 设备处理程序设备处理程序又称为设备驱动程序,它是又称为设备驱动程序,它是I/O进程与设备控制器之间的通信程序,它常以进程与设备控制器之间的通信程序,它常以进程的形式存在,所以也称其为进程的形式存在,所以也称其为设备驱动程序设备驱动程序。 设备处理程序设备处理程序的的主要任务主要任务是:接受上层软件是:接受上层软件发来的抽象要求发来的抽象

51、要求,再把它转换为具体的要求,发再把它转换为具体的要求,发送给设备控制器,启动设备去执行;另外,它也送给设备控制器,启动设备去执行;另外,它也将设备控制器送来的信号传送给上层软件。将设备控制器送来的信号传送给上层软件。 由于驱动程序与硬件密切相关,所以每一类由于驱动程序与硬件密切相关,所以每一类设备都有一种驱动程序。设备都有一种驱动程序。一、设备驱动程序的功能和特点一、设备驱动程序的功能和特点v设备驱动程序的功能设备驱动程序的功能(1) 接收由接收由I/O进程发来的命令和参数进程发来的命令和参数, 并将命令中的抽并将命令中的抽象要求转换为具体要求;象要求转换为具体要求;(2) 检查用户检查用户

52、I/O请求的合法性请求的合法性,了解,了解I/O设备的状态,传设备的状态,传递有关参数,设置设备的工作递有关参数,设置设备的工作方式。方式。(3) 发出发出I/O命令命令,如果设备空闲,便立即启动,如果设备空闲,便立即启动I/O设备去设备去完成指定的完成指定的I/O操作;如果设备处于忙碌状态,则将操作;如果设备处于忙碌状态,则将请求者的请求块挂在设备队列上等待。请求者的请求块挂在设备队列上等待。(4) 及时响应由控制器或通道发来的中断请求及时响应由控制器或通道发来的中断请求,并根据,并根据其中断类型调用相应的中断处理程序进行处理。其中断类型调用相应的中断处理程序进行处理。(5) 自动地构成通道

53、程序自动地构成通道程序。v设备处理方式设备处理方式(1) 为每一类设备设置一个进程,专门用于执行这类设备为每一类设备设置一个进程,专门用于执行这类设备的的I/O操作操作 ;(2) 在整个系统中设置一个在整个系统中设置一个I/O进程,专门用于执行系统进程,专门用于执行系统中所有各类设备的中所有各类设备的I/O操作。操作。(3) 不设置专门的设备处理进程,而只为各类设备设置相不设置专门的设备处理进程,而只为各类设备设置相应的设备处理程序应的设备处理程序(模块模块), 供用供用户进程或系统进程调户进程或系统进程调用用。v设备驱动程序的特点设备驱动程序的特点(1) 驱动程序主要是指在请求驱动程序主要是

54、指在请求I/O的进程与设备控制器之间的进程与设备控制器之间的一个通信和转换程序的一个通信和转换程序;(2) 驱动程序与设备控制器和驱动程序与设备控制器和I/O设备的硬件特性紧密相关,设备的硬件特性紧密相关, 因而对不同类型的设备应配置因而对不同类型的设备应配置不同的驱动程序。不同的驱动程序。(3) 驱动程序与驱动程序与I/O设备所采用的设备所采用的I/O控制方式紧密相关;控制方式紧密相关;(4) 由于驱动程序与硬件紧密相关,由于驱动程序与硬件紧密相关, 因而其中的一部分必因而其中的一部分必须用汇编语言书写须用汇编语言书写二、设备驱动程序处理过程二、设备驱动程序处理过程 设备驱动程序可以分为设备

55、驱动程序可以分为两部分两部分:一部分是:一部分是驱动驱动I/O设备工作的驱动程序;另一部分是设设备工作的驱动程序;另一部分是设备中断处理程序以及处理备中断处理程序以及处理I/O完成后的工作。完成后的工作。 设备驱动程序的设备驱动程序的主要任务主要任务:启动指定设备启动指定设备。在启动之前,必须完成必要的准备工作,如检在启动之前,必须完成必要的准备工作,如检测设备状态是否测设备状态是否“忙忙”等,在完成所有准备工等,在完成所有准备工作后,才向设备控制器发送启动命令。作后,才向设备控制器发送启动命令。设备驱动程序处理流程:设备驱动程序处理流程:将抽象要求转换为具体要求 通常在每个设备控制器通常在每

56、个设备控制器中都含有若干个寄存器,他中都含有若干个寄存器,他们分别用于暂存命令、数据们分别用于暂存命令、数据和参数等。用户及上层软件和参数等。用户及上层软件对设备控制器的具体情况毫对设备控制器的具体情况毫无了解,因而只能向它发出无了解,因而只能向它发出抽象的要求,但这些命令无抽象的要求,但这些命令无法传送给设备控制器,所以法传送给设备控制器,所以需要将这些抽象要求转换为需要将这些抽象要求转换为具体要求具体要求检查I/O请求的合法性 对任何输入设备,对任何输入设备,都是只能完成一组特定都是只能完成一组特定的任务,若该设备不支的任务,若该设备不支持这次的持这次的I/O请求,则请求,则认为这次认为这

57、次I/O请求非法。请求非法。读出和检查设备状态 在启动某个设备进在启动某个设备进行行I/O操作时,其前提操作时,其前提条件是该设备正处于空条件是该设备正处于空闲状态。因此在启动设闲状态。因此在启动设备之前,要从设备控制备之前,要从设备控制器的状态寄存器中,读器的状态寄存器中,读出设备的状态。出设备的状态。传送必要的参数 有许多设备在向有许多设备在向设备控制器发出启动设备控制器发出启动命令时,还需要传送命令时,还需要传送必要的参数。必要的参数。 如:启动磁盘进如:启动磁盘进行读写时,必须将本行读写时,必须将本次要传送的字节数和次要传送的字节数和数据应达到的主存始数据应达到的主存始址,送入控制器的

58、相址,送入控制器的相应寄存器应寄存器中。工作方式的设置 有些设备有多种工有些设备有多种工作方式。作方式。启动I/O设备 在完成上述准备在完成上述准备操作后,驱动程序可操作后,驱动程序可以向控制器中的命令以向控制器中的命令寄存器传送相应的控寄存器传送相应的控制命令。对于字符设制命令。对于字符设备,若是写命令,驱备,若是写命令,驱动程序把一个数据传动程序把一个数据传送给控制器,若是读送给控制器,若是读命令,则驱动程序等命令,则驱动程序等待接收数据,并通过待接收数据,并通过从控制器中的状态寄从控制器中的状态寄存器读入状态字的方存器读入状态字的方法,确定数据是否达法,确定数据是否达到到。三、中断处理程

59、序的处理过程三、中断处理程序的处理过程 I/O设备完成设备完成I/O操作后,设备控制器便操作后,设备控制器便向向CPU发出一个中断请求,发出一个中断请求,CPU响应后便转响应后便转向中断处理程序。向中断处理程序。唤醒被阻塞的驱动程序进程对被中断进程的CPU环境进行保护分析中断原因,转入相应的中断处理程序终端中断处理程序打印机中断处理程序磁盘中断处理程序恢复被中断进程的CPU现场返回被中断的进程,继续执行中断请求信号 当中断处理开始当中断处理开始执行时,首先去唤醒执行时,首先去唤醒处于阻塞状态的驱动处于阻塞状态的驱动程序。若采用了信号程序。若采用了信号量机制,则可通过执量机制,则可通过执行行Si

60、gnal操作将处于阻操作将处于阻塞状态的驱动进程唤塞状态的驱动进程唤醒;在采用信号机制醒;在采用信号机制时,则发送一个信号时,则发送一个信号给阻塞进程。给阻塞进程。 通常由硬件自动通常由硬件自动将处理机状态字将处理机状态字PSW和程序计数器和程序计数器PC中的中的内容,保存在中断保内容,保存在中断保留区(栈)中,然后留区(栈)中,然后把被中断进程的把被中断进程的CPU现场信息(包括所有现场信息(包括所有CPU寄存器)压入进寄存器)压入进程。程。 由处理机对各个由处理机对各个中断源进行测试,以中断源进行测试,以确定引起本次中断的确定引起本次中断的I/O设备,并发送一应设备,并发送一应答信号给发出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论