第五章_设备管理_第1页
第五章_设备管理_第2页
第五章_设备管理_第3页
第五章_设备管理_第4页
第五章_设备管理_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

1、操作系统 Operating System教学目的教学目的 &通过对本章地讲解是学生理解并掌握设通过对本章地讲解是学生理解并掌握设备管理的功能、备管理的功能、I/O控制方式、缓冲区控制方式、缓冲区管理、设备管理,以及磁盘存储管理。管理、设备管理,以及磁盘存储管理。 本章重点:本章重点:& 输入输出控制方式输入输出控制方式& 缓冲区的管理缓冲区的管理& 设备分配和设备处理设备分配和设备处理& 磁盘调度磁盘调度& 虚拟设备虚拟设备本章难点:本章难点: & 对通道的理解对通道的理解& Spooling技术。技术。第第5 5章章 设备管理设备管理 5.1 I/O5.1 I/O系统系统5.2 I/O5.

2、2 I/O控制方式控制方式5.3 5.3 缓冲管理缓冲管理5.4 5.4 设备分配设备分配5.5 I/O5.5 I/O软件软件5.1 I/O5.1 I/O系统系统1.1.基本概念基本概念&I/OI/O系统:系统:在操作系统中负责管理输入输出设备的部分在操作系统中负责管理输入输出设备的部分称为称为I/OI/O系统。系统。&I/OI/O系统的基本功能:系统的基本功能:是为数据传输选择输入输出设备;是为数据传输选择输入输出设备;在选定的输入输出设备和在选定的输入输出设备和CPUCPU(或主存)之间交换数据(或主存)之间交换数据。&操作系统内核通过操作系统内核通过设备驱动程序设备驱动程序与外部设备进行

3、交互。与外部设备进行交互。驱动程序是设备与内核其他部分之间的唯一接口。驱动程序是设备与内核其他部分之间的唯一接口。&文件系统是对设备操作的组织与抽象,而设备操作则文件系统是对设备操作的组织与抽象,而设备操作则是对文件操作的最终实现。是对文件操作的最终实现。 2.I/O2.I/O设备分类设备分类 按信息组织方式按信息组织方式字符设备(字符设备(character devicecharacter device) 块设备(块设备(block deviceblock device) 有结构,可寻址有结构,可寻址 按设备使用的可共享性按设备使用的可共享性 独占设备独占设备 共享设备共享设备 虚拟设备虚拟

4、设备 按设备的使用特性按设备的使用特性存储设备存储设备输入输入/ /输出设备输出设备 5.1.1 I/O 5.1.1 I/O体系结构体系结构 在计算机系统中,数据信息是通过数据通道在在计算机系统中,数据信息是通过数据通道在CPUCPU、RAM RAM 和和I/OI/O设备之间流动的。这些数据通道又称设备之间流动的。这些数据通道又称为总线。为总线。总线 数据总线:指用来并行传送数据的一组线。数据总线:指用来并行传送数据的一组线。 地址总线:指用来并行传送地址的一组线。地址总线:指用来并行传送地址的一组线。 控制总线:指用来并行传送控制信息的一组线。控制总线:指用来并行传送控制信息的一组线。 1.

5、总线I/OI/O总线是用来连接总线是用来连接CPUCPU和和I/OI/O设备的总线。每个设备的总线。每个I/OI/O设备都依设备都依次连接到次连接到I/OI/O总线上,总线上,这种连接使用了有这种连接使用了有3 3个元素的硬件构个元素的硬件构件层次:件层次:I/OI/O端口、端口、I/OI/O接口和设备控制器。接口和设备控制器。 5.1.1 I/O 5.1.1 I/O体系结构体系结构CPUCPUI/OI/O总线总线I/OI/O端口端口I/OI/O接口接口I/OI/O控制器控制器I/OI/O端口端口I/OI/O设备设备图图5.1 PC5.1 PC的的I/OI/O体系结构体系结构2.I/O 总线

6、(1)I/O(1)I/O端口端口(I/O port),I/O port),即为连接到即为连接到I/OI/O总线上的设备的总线上的设备的I/OI/O地址地址。 例例IBM PC IBM PC 体系结构中的体系结构中的I/OI/O地址空间,一共有地址空间,一共有6553665536个个8 8位的位的I/OI/O端口。端口。CPUCPU在执行指令时,使用地址总线选择所请在执行指令时,使用地址总线选择所请求的求的I/OI/O端口,使用数据总线在端口,使用数据总线在CPUCPU寄存器和寄存器和I/OI/O端口之间传送端口之间传送数据。数据。若若I/OI/O端口能被映射到内存物理地址空间,端口能被映射到内

7、存物理地址空间,CPUCPU和和I/OI/O设设备之间的通信就可以通过使用对内存进行操作的汇编语言指备之间的通信就可以通过使用对内存进行操作的汇编语言指令(如,令(如,movmov、andand、oror等等)来实现。等等)来实现。现代的硬件设备倾向现代的硬件设备倾向于把于把I/OI/O端口映射到内存物理地址空间。端口映射到内存物理地址空间。 为了实现起来方便,为了实现起来方便,操作系统设计者把每个设备的操作系统设计者把每个设备的I/OI/O端口都组端口都组织成一组专用寄存器:织成一组专用寄存器:控制寄存器、状态寄存器、输入寄存控制寄存器、状态寄存器、输入寄存器、输出寄存器。器、输出寄存器。

8、(2)I/O (2)I/O接口起翻译器的作用接口起翻译器的作用:把:把I/OI/O端口中的值转换成端口中的值转换成设备所需要的命令和数据;检测设备状态的变化,并对设设备所需要的命令和数据;检测设备状态的变化,并对设备状态寄存器(某一备状态寄存器(某一I/OI/O端口)进行相应地更新。端口)进行相应地更新。I/OI/O接口接口通过一条通过一条IRQIRQ线连接到可编程中断控制器上,以使它代表相线连接到可编程中断控制器上,以使它代表相应的设备发出中断请求。有两种类型的接口:专用应的设备发出中断请求。有两种类型的接口:专用I/OI/O接口接口和通用和通用I/OI/O接口。接口。 专用专用I/OI/O

9、接口接口: :专用于特定的硬件设备。有时专用专用于特定的硬件设备。有时专用I/OI/O接口与设备控制器处于同一块卡中。接口与设备控制器处于同一块卡中。 通用通用I/OI/O接口接口: :是用于连接外部设备的。并口可用于连是用于连接外部设备的。并口可用于连接打印机、可移动磁盘、扫描仪、备份设备、其他计算机接打印机、可移动磁盘、扫描仪、备份设备、其他计算机等等。等等。 (3)(3)设备控制器的主要作用:设备控制器的主要作用:对从对从I/OI/O接口接收到的高级命接口接收到的高级命令进行解释,并通过向设备发送适当的电信号序列强制设令进行解释,并通过向设备发送适当的电信号序列强制设备执行特定的操作;对

10、从设备接收到的电信号进行转换和备执行特定的操作;对从设备接收到的电信号进行转换和适当地解释,并通过适当地解释,并通过I/OI/O接口修改状态寄存器的值。接口修改状态寄存器的值。复杂的复杂的设备设备通常需要设备控制器来驱动,而通常需要设备控制器来驱动,而较简单的设备较简单的设备可以没可以没有设备控制器,如可编程中断控制器、可编程间隔定时器。有设备控制器,如可编程中断控制器、可编程间隔定时器。所有的所有的PC机都包含机都包含DMAC(Direct Memory Access Controller)辅助处理器。)辅助处理器。DMA(直接内存访问)作为一(直接内存访问)作为一种输入输出方式,主要用来连

11、接高速外围设备,如磁盘、种输入输出方式,主要用来连接高速外围设备,如磁盘、磁带等,控制数据在磁带等,控制数据在RAM和和I/O设备之间传送。设备之间传送。5.1.2 I/O5.1.2 I/O系统的功能系统的功能 &1.1.概述概述 在计算机系统中,在计算机系统中,I/OI/O设备是人机对话的界面和设备是人机对话的界面和接口接口,而计算机系统的,而计算机系统的I/OI/O设备种类繁多,千差万别。设备种类繁多,千差万别。另外,另外,CPUCPU性能高,而性能高,而I/OI/O设备性能低,属于低速设设备性能低,属于低速设备,因此备,因此I/OI/O设备的性能常常成为系统性能的瓶颈。设备的性能常常成为

12、系统性能的瓶颈。 用户对用户对I/OI/O设备的使用要求是方便、高效、安全设备的使用要求是方便、高效、安全和正确。和正确。I/OI/O系统的功能也就应该在计算机硬件结构系统的功能也就应该在计算机硬件结构提供的既定设备范围及其连接模式下,完成用户对提供的既定设备范围及其连接模式下,完成用户对I/OI/O设备的使用要求。设备的使用要求。& 2.I/O2.I/O系统的功能系统的功能(1)(1)方便性:方便性:为了让用户能方便使用为了让用户能方便使用I/OI/O设备,设备,提供简便提供简便易用的对逻辑设备进行逻辑操作的抽象接口易用的对逻辑设备进行逻辑操作的抽象接口;实现实现抽象接口到物理接口的转化,抽

13、象接口到物理接口的转化,即将高级逻辑操作转即将高级逻辑操作转化为低级物理操作。化为低级物理操作。抽象接口抽象接口除了掩蔽硬件细节外还要掩蔽依赖于硬件的软件除了掩蔽硬件细节外还要掩蔽依赖于硬件的软件技术细节。技术细节。设备抽象接口设备抽象接口是由设备管理功能接口和文件系统功能接口是由设备管理功能接口和文件系统功能接口共同提供的,更准确地说,设备抽象接口包含在文共同提供的,更准确地说,设备抽象接口包含在文件系统统一接口中。件系统统一接口中。抽象接口使广义的设备独立性成为可能,抽象接口使广义的设备独立性成为可能,向用户展示一个大向用户展示一个大大简化了的计算环境观点,同时,抽象接口也是提高效大简化了

14、的计算环境观点,同时,抽象接口也是提高效率技术的前提。率技术的前提。广义的广义的I/OI/O设备独立性设备独立性是指整个设备管理功能的抽象接口是指整个设备管理功能的抽象接口,程序不关心物理设备的操作和组织细节,而只看到具有程序不关心物理设备的操作和组织细节,而只看到具有逻辑名称和逻辑性质的逻辑设备和逻辑操作,不关心具逻辑名称和逻辑性质的逻辑设备和逻辑操作,不关心具体体I/OI/O设备是哪一个具体设备或是哪一个文件,设备改设备是哪一个具体设备或是哪一个文件,设备改变而程序不变,不必修改,也不必重新编译。用户不必变而程序不变,不必修改,也不必重新编译。用户不必关心设备的改变,这一事实所带来的问题应

15、该由操作系关心设备的改变,这一事实所带来的问题应该由操作系统来管理。统来管理。所使用的设备的变化对程序是透明的。所使用的设备的变化对程序是透明的。块设块设备的设备独立性是由文件系统的文件目录概念提供的。备的设备独立性是由文件系统的文件目录概念提供的。(2)(2)效率:效率:非系统用户关心其程序的运行效率,系统用户关非系统用户关心其程序的运行效率,系统用户关心系统的利用率;非系统用户不希望程序等待设备,系心系统的利用率;非系统用户不希望程序等待设备,系统用户不希望设备等待程序。统用户不希望设备等待程序。在现代操作系统中,在现代操作系统中,已引入了大量的技术以提高设备与已引入了大量的技术以提高设备

16、与CPUCPU的的效率,例如中断、缓冲、效率,例如中断、缓冲、DMADMA、通道等。、通道等。因此,因此,操作系操作系统统设备管理的一个主要功能设备管理的一个主要功能是采用各种纯软件或与硬件是采用各种纯软件或与硬件配合的软件技术来提高设备效率和与此相关的系统效率,配合的软件技术来提高设备效率和与此相关的系统效率,提供物理提供物理I/O设备的共享并优化这些设备的使用,同时设备的共享并优化这些设备的使用,同时借助抽象接口使得这些优化技术得以在内部实施而对用借助抽象接口使得这些优化技术得以在内部实施而对用户透明。户透明。(3)(3)保护保护: :用户希望能安全正确地使用设备,即希望用户希望能安全正确

17、地使用设备,即希望由设备传送或管理的数据应该是安全的,不被破由设备传送或管理的数据应该是安全的,不被破坏和泄密。坏和泄密。 另外,对设备拥有所有权的用户希望另外,对设备拥有所有权的用户希望设备不能被破坏。设备不能被破坏。 系统如何阻止用户访问他们无权访问的设备呢?系统如何阻止用户访问他们无权访问的设备呢?微微机系统多半不设保护,任何进程能做它想做的任机系统多半不设保护,任何进程能做它想做的任何事情。在大多数主机系统中,用户进程对何事情。在大多数主机系统中,用户进程对I/OI/O设设备的访问完全被禁止。在备的访问完全被禁止。在UNIXUNIX系统中,对应于系统中,对应于I/OI/O设备的特别文件

18、受一般的设备的特别文件受一般的rwxrwx位保护。系统管理员位保护。系统管理员据此为每台设备确定适当的授权。据此为每台设备确定适当的授权。计算机系统对计算机系统对I/OI/O设备的设备的控制方式控制方式有:有:程序轮询方式程序轮询方式程序中断方式程序中断方式DMADMA(直接存储器访问)控制方式(直接存储器访问)控制方式通道控制方式。通道控制方式。 5.2 I/O5.2 I/O控制方式控制方式【输入输入/ /输出控制输出控制- -程序直接控制方式程序直接控制方式】&程序直接控制方式程序直接控制方式是指由程序直接控制内存或是指由程序直接控制内存或CPUCPU和外围设备和外围设备之间进行信息传送的

19、方式。通常又称为之间进行信息传送的方式。通常又称为“忙忙等等”方式或循方式或循环测试方式。环测试方式。&在数据传送过程中,必不可少的一个硬件设备是在数据传送过程中,必不可少的一个硬件设备是I/OI/O控制器,控制器,它是操作系统软件和硬件设备之间的接口,它接收它是操作系统软件和硬件设备之间的接口,它接收CPUCPU的命令,的命令,并控制并控制I/OI/O设备进行实际的操作。设备进行实际的操作。CPUCPU执行执行A A进程进程外设外设I/OI/O控制器控制器发命令发命令传数据传数据图5.2 程序直接控制方式程序直接控制方式下输出数据时的工作过程。程序直接控制方式下输出数据时的工作过程。& 把一

20、个启动位为把一个启动位为“1”“1”的控制字写入该设备的控制字写入该设备的控制状态寄存器。的控制状态寄存器。& 将需输出数据送到数据缓冲寄存器。将需输出数据送到数据缓冲寄存器。&测试控制状态寄存器中的测试控制状态寄存器中的“完成位完成位”,若为,若为0 0,转,转 ,否则转。,否则转。& 输出设备将数据缓冲寄存器中的数据取走输出设备将数据缓冲寄存器中的数据取走进行实际的输出。进行实际的输出。程序直接控制方式优缺点程序直接控制方式优缺点 在程序在程序I/OI/O方式中,由于方式中,由于CPUCPU的高速性和的高速性和I/OI/O设备的设备的低速性,低速性, 致使致使CPUCPU的绝大部分时间都处

21、于等待的绝大部分时间都处于等待I/OI/O设备完成数据设备完成数据I/OI/O的循环测试中,的循环测试中, 造成对造成对CPUCPU的极的极大浪费。大浪费。该方式优点:简单,易于理解。该方式优点:简单,易于理解。 图5.3 程序I/O方式流程图 【输入输入/ /输出控制输出控制- -中断控制方式中断控制方式】 &(1 1)进程需要数据时,将允许启动和允许中断的控制字)进程需要数据时,将允许启动和允许中断的控制字写入设备控制状态寄存器中,启动该设备进行输入操作。写入设备控制状态寄存器中,启动该设备进行输入操作。&(2 2)该进程放弃处理机,等待输入的完成。操作系统进)该进程放弃处理机,等待输入的

22、完成。操作系统进程调度程序调度其他就绪进程占用处理机。程调度程序调度其他就绪进程占用处理机。&(3 3)当输入完成时,输入设备通过中断请求线向)当输入完成时,输入设备通过中断请求线向CPUCPU发出发出中断请求信号。中断请求信号。CPUCPU在接收到中断信号之后,转向中断处在接收到中断信号之后,转向中断处理程序。理程序。&(4 4)中断处理程序首先保护现场,然后把输入缓冲寄存)中断处理程序首先保护现场,然后把输入缓冲寄存器中的数据传送到某一特定单元中去,同时将等待输入完器中的数据传送到某一特定单元中去,同时将等待输入完成的那个进程唤醒,进入就绪状态,最后恢复现场,并返成的那个进程唤醒,进入就绪

23、状态,最后恢复现场,并返回到被中断的进程继续执行。回到被中断的进程继续执行。&(5 5)在以后的某一时刻,操作系统进程调度程序选中提)在以后的某一时刻,操作系统进程调度程序选中提出的请求并得到获取数据的进程,该进程从约定的内存特出的请求并得到获取数据的进程,该进程从约定的内存特定单元中取出数据继续工作。定单元中取出数据继续工作。 在在I/OI/O设备输入每个数据的过程中,由于无须设备输入每个数据的过程中,由于无须CPUCPU干预,干预,因而可使因而可使CPUCPU与与I/OI/O设备并行工作。设备并行工作。仅当输完一个数据时,才仅当输完一个数据时,才需需CPUCPU花费极短的时间去做些中断处理

24、。花费极短的时间去做些中断处理。可见,这样可使可见,这样可使CPUCPU和和I/OI/O设备都处于忙碌状态,从而提高了整个系统的资源利用设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。率及吞吐量。例如,从终端输入一个字符的时间约为例如,从终端输入一个字符的时间约为100 ms100 ms, 而将字符送而将字符送入终端缓冲区的时间小于入终端缓冲区的时间小于 0.1 ms0.1 ms。 若采用程序若采用程序I/OI/O方式,方式,CPUCPU约有约有 99.9 ms99.9 ms的时间处于忙的时间处于忙等待中。等待中。 采用中断驱动方采用中断驱动方式后,式后,CPUCPU可利用这可利用

25、这 99.9 ms99.9 ms的时间去做其它事情,而仅用的时间去做其它事情,而仅用 0.1 ms0.1 ms的时间来处理由控制器发来的中断请求。的时间来处理由控制器发来的中断请求。 可见,中断可见,中断驱动方式可以成百倍地提高驱动方式可以成百倍地提高CPUCPU的利用率。的利用率。 图5.4 中断方式流程图&DMADMA方式方式又称直接存储器访问(又称直接存储器访问(Direct Memory AccessDirect Memory Access)方式。其基本思想是在外设和主存之间开辟直接的数据交方式。其基本思想是在外设和主存之间开辟直接的数据交换通路。换通路。DMADMA方式的特点是:方式

26、的特点是:&(1 1)数据传送的基本单位是数据块。)数据传送的基本单位是数据块。&(2 2)所传送的数据是从设备送内存,或者相反。)所传送的数据是从设备送内存,或者相反。 &(3 3)仅在传送一个或多个数据块的开始和结束时,才需中)仅在传送一个或多个数据块的开始和结束时,才需中断断CPUCPU,请求干预,整块数据的传送是在请求干预,整块数据的传送是在DMADMA控制器控制下控制器控制下完成的。完成的。&可见,可见,DMADMA方式较之中断驱动方式,又是成百倍地减少了方式较之中断驱动方式,又是成百倍地减少了CPUCPU对对I/OI/O的干预,进一步提高了的干预,进一步提高了CPUCPU与与I/O

27、I/O设备的并行操作设备的并行操作程度。程度。【输入输入/ /输出控制输出控制- - DMA方式方式】图图5.5 DMA控制器与其他部件的关系控制器与其他部件的关系DMA控制器的组成控制器的组成 图 5.6 DMA控制器的组成 DRMARDCCRI/O控制逻辑主机控制器接口 控制器与块设备接口count内存CPU命令系统总线DMA控制器 为了实现在主机与控制器之间成块数据的直接交换,为了实现在主机与控制器之间成块数据的直接交换, 必须必须在在DMADMA控制器中设置如下四类寄存器:控制器中设置如下四类寄存器: (1) (1) 命令命令/ /状态寄存器状态寄存器CRCR。用于接收从。用于接收从C

28、PUCPU发来的发来的I/OI/O命令或命令或有关控制信息,有关控制信息, 或设备的状态。或设备的状态。 (2) (2) 内存地址寄存器内存地址寄存器MARMAR。在输入时,它存放把数据从设备。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。的内存源地址。 (3) (3) 数据寄存器数据寄存器DRDR。用于暂存从设备到内存,或从内存到。用于暂存从设备到内存,或从内存到设备的数据。设备的数据。 (4) (4) 数据计数器数据计数器DCDC。 存放本次存放本次CPUCPU要读或写的字要读或写的字(

29、 (节节) )数。数。 DMA工作过程工作过程 图 5.7 DMA方式的工作流程 MAR设置 A R 和 D C 初值启动 D MA传送命令挪用存储器周期传送数据字存储器地址增1字计数寄存器减1D C 0?请求中断在继续执行用户程序的同时,准备又一次传送否是MAR【输入输入/ /输出控制输出控制- - 通道控制方式通道控制方式】 I/OI/O通道方式是通道方式是DMADMA方式的发展,它可进一步减少方式的发展,它可进一步减少CPUCPU的干预,的干预,即把对一个数据块的读即把对一个数据块的读( (或写或写) )为单位的干预,为单位的干预,减少减少为对一组为对一组数据块的读数据块的读( (或写或

30、写) )及有关的控制和管理为单位的及有关的控制和管理为单位的干预干预。 同同时,又可时,又可实现实现CPUCPU、通道和、通道和I/OI/O设备三者的并行操作设备三者的并行操作,从而更,从而更有效地提高整个系统的资源利用率。有效地提高整个系统的资源利用率。例如,当例如,当CPUCPU要完成一组相关的读要完成一组相关的读( (或写或写) )操作及有关控制时,操作及有关控制时,只需向只需向I/OI/O通道发送一条通道发送一条I/OI/O指令,以给出其所要执行的通道指令,以给出其所要执行的通道程序的首址和要访问的程序的首址和要访问的I/OI/O设备,通道接到该指令后,通过设备,通道接到该指令后,通过

31、执行通道程序便可完成执行通道程序便可完成CPUCPU指定的指定的I/OI/O任务。任务。 &通道是专门负责输入通道是专门负责输入/输出的硬件输出的硬件I/O处理器处理器图5.8 通道方式的数据传送结构 通道控制部件:通道控制部件:通道地址字通道地址字CAW:记录下一条通道指令存:记录下一条通道指令存放的地址。放的地址。通道命令字通道命令字CCW:保存正在运行的通道指:保存正在运行的通道指令。令。通道状态字通道状态字CSW:记载通道、控制器、设:记载通道、控制器、设备的状态。备的状态。通道数据字通道数据字CDW:暂存内存和设备之间:暂存内存和设备之间I/O传输的数据。传输的数据。 按按CAW取通

32、道指令送入取通道指令送入CCW中中 CAW+1 CAW 是通道结束命令?是是通道结束命令?是向主机发向主机发 中断中断否否 执行此命令执行此命令图5.9 通道程序执行过程通道控制方式的数据传输过程如下:通道控制方式的数据传输过程如下: (1 1)当进程要求设备输入时,)当进程要求设备输入时,CPUCPU发指令指明发指令指明I/OI/O操作、设备操作、设备号和对应通道。号和对应通道。(2 2)对应通道收到)对应通道收到CPUCPU发来的启动指令后,读出内存中的通道发来的启动指令后,读出内存中的通道指令程序、设置对应设备的控制状态寄存器的初值。指令程序、设置对应设备的控制状态寄存器的初值。(3 3

33、)设备按通道指令的要求,把数据送往内存指定区域。)设备按通道指令的要求,把数据送往内存指定区域。(4 4)若传送结束,)若传送结束,I/OI/O控制器通过中断请求线发中断信号请求控制器通过中断请求线发中断信号请求CPUCPU做中断处理。做中断处理。(5 5)中断处理结束后,)中断处理结束后,CPUCPU返回到被中断进程处继续执行。返回到被中断进程处继续执行。(6 6)当进程调度程序选中这个已得到数据的进程后,才能进)当进程调度程序选中这个已得到数据的进程后,才能进行加工处理行加工处理。 在现代在现代OSOS中,几乎所有的中,几乎所有的I/OI/O设备在与处理机(内设备在与处理机(内存)交换数据

34、时,都使用了存)交换数据时,都使用了缓冲区缓冲区。缓冲缓冲就是在通信就是在通信问题中为了通信双方的速度匹配而引入的一个中间层问题中为了通信双方的速度匹配而引入的一个中间层次,这个层次的速度比通信双方中较慢的一方快,而次,这个层次的速度比通信双方中较慢的一方快,而与较快的一方更匹配。与较快的一方更匹配。1 1、引入缓冲的主要目的有以下几点、引入缓冲的主要目的有以下几点: :&缓和处理机和缓和处理机和I/OI/O设备间速度不匹配的矛盾设备间速度不匹配的矛盾&减少对减少对CPUCPU的中断次数的中断次数&提高提高CPUCPU和和I/OI/O设备之间的并行性设备之间的并行性5.3 5.3 缓冲管理缓冲

35、管理单缓冲单缓冲双缓冲双缓冲循环缓冲循环缓冲缓冲池缓冲池纯硬件缓冲区纯硬件缓冲区软件缓冲区软件缓冲区( (设在内存系统空设在内存系统空间中间中) )缓冲区缓冲区实现实现CacheCache设备缓冲区设备缓冲区I/OI/O缓冲缓冲区个数区个数&按照缓冲所在的位置分,缓冲区可分为:按照缓冲所在的位置分,缓冲区可分为: CACHECACHE;I/OI/O设备或控制器内部的纯硬件缓冲区,如打印设备或控制器内部的纯硬件缓冲区,如打印机内部的硬件缓冲区;机内部的硬件缓冲区;I/OI/O在内存开设的缓冲区,如在内存开设的缓冲区,如OSOS在内存开设的在内存开设的I/OI/O缓冲区和缓冲区和文件系统缓冲区;文

36、件系统缓冲区;脱机与假脱机技术实质上也属于缓冲技术,它是为慢速脱机与假脱机技术实质上也属于缓冲技术,它是为慢速I/OI/O设备在外存开设的缓冲区。设备在外存开设的缓冲区。 2 2、缓冲区分类:、缓冲区分类:缓冲技术缓冲技术- -单缓冲单缓冲 &单缓冲是操作系统提供的最简单的一种缓冲形式。单缓冲是操作系统提供的最简单的一种缓冲形式。单缓冲是单缓冲是指在设备和处理机之间设置一个缓冲。指在设备和处理机之间设置一个缓冲。设备和处理机交换数设备和处理机交换数据时,先把被交换数据写入缓冲区,之后需要数据的设备或据时,先把被交换数据写入缓冲区,之后需要数据的设备或处理机再从缓冲区取走数据。设备和处理机对缓冲

37、区的操作处理机再从缓冲区取走数据。设备和处理机对缓冲区的操作是串行的。是串行的。单缓冲工作示意如下图单缓冲工作示意如下图 工作区处理 (C)缓冲区传送 (M )输入 (T)I/O 设备(a)T1M1C1T2M2C2T3M3C3T4t(b)用户进程图5.10 单缓冲工作示意图缓冲技术缓冲技术- -双缓冲双缓冲 &双缓冲方式和单缓冲方式相比,双缓冲方式和单缓冲方式相比,虽然双缓冲方式虽然双缓冲方式能进一步提高能进一步提高CPUCPU和外设的并行程度,并能使输入和外设的并行程度,并能使输入设备和输出设备并行工作,设备和输出设备并行工作,但是在实际系统中很但是在实际系统中很少采用这一方式,这是因为在计

38、算机系统中的外少采用这一方式,这是因为在计算机系统中的外设很多,又有大量的输入和输出,同时双缓冲很设很多,又有大量的输入和输出,同时双缓冲很难匹配设备和难匹配设备和CPUCPU的处理速度。因此现代计算机系的处理速度。因此现代计算机系统中一般使用环形缓冲或缓冲池结构。统中一般使用环形缓冲或缓冲池结构。双缓冲双缓冲是指在应用程序进程发出是指在应用程序进程发出I/OI/O请求时,在内请求时,在内存为之分配两个缓冲区,以便加快存为之分配两个缓冲区,以便加快I/OI/O速度并提速度并提高设备利用率。高设备利用率。工作区用户进程缓冲区1缓冲区2I/O 设备T1(缓冲1)M1C1M2C2M3C3T2(缓冲2

39、)T3(缓冲3)M4C4T4(缓冲4)(a)(b)图 5.11 双缓冲工作示意图 缓冲技术缓冲技术- -环形缓冲环形缓冲循环缓冲是指引入多个缓冲区并将之组织成环形。循环缓冲是指引入多个缓冲区并将之组织成环形。用作输入用作输入的循环缓冲,输入进程不断地向环形缓冲中的下一个空缓的循环缓冲,输入进程不断地向环形缓冲中的下一个空缓冲输入数据,计算进程不断地从中取走数据并计算。循环冲输入数据,计算进程不断地从中取走数据并计算。循环缓冲也仅适用于某个特定的输入输出进程和计算进程,属缓冲也仅适用于某个特定的输入输出进程和计算进程,属于于专用缓冲专用缓冲。RGGGRG165423NextiNextgRGGGR

40、C165423NextiNextgcurrent计算进程下一个可计算进程下一个可用的缓冲区指针用的缓冲区指针输入进程下次可输入进程下次可用缓冲区指针用缓冲区指针计算进程正在计算进程正在使用缓冲区使用缓冲区指针指针图5.12 循环缓冲示意图缓冲技术缓冲技术- - 缓冲池缓冲池&现代的操作系统通常将多个缓冲区组织成现代的操作系统通常将多个缓冲区组织成缓缓冲池冲池,供多个进程在,供多个进程在I/OI/O操作时共享,以提高操作时共享,以提高缓冲区的利用率。缓冲区的利用率。在缓冲池中,可能有的缓在缓冲池中,可能有的缓冲区为空,有的缓冲区装满输入数据,有的冲区为空,有的缓冲区装满输入数据,有的缓冲区装满输

41、出数据。缓冲区装满输出数据。为了便于管理,操作为了便于管理,操作系统内核可将相同类型的缓冲区链接在一起,系统内核可将相同类型的缓冲区链接在一起,从而形成多个缓冲队列从而形成多个缓冲队列 。图图5.13 缓冲区队列缓冲区缓冲区队列缓冲区缓冲池的组成缓冲池的组成空闲缓冲区、装输入数据的缓冲区和装输出数空闲缓冲区、装输入数据的缓冲区和装输出数据的缓冲区。据的缓冲区。图图5.14 缓冲池的缓冲池的工作缓冲区工作缓冲区&缓冲池的工作方式缓冲池的工作方式&缓冲区可以在收容输入、提取输入、收容输出和提取缓冲区可以在收容输入、提取输入、收容输出和提取输出四种方式下工作。输出四种方式下工作。hinsoutsin

42、hout收 容 输 入提 取 输 出用 户程 序提 取 输 入收 容 输 出缓 冲 池对缓冲池的操作由如下几个过程组成:对缓冲池的操作由如下几个过程组成:1、从缓冲区队列中取出一个缓冲区的过程、从缓冲区队列中取出一个缓冲区的过程Takebuf(type)。2、把缓冲区插入到相应的缓冲队列的过程、把缓冲区插入到相应的缓冲队列的过程Addbuf(type,number)。3、进程申请缓冲区用的过程、进程申请缓冲区用的过程Getbuf(type,number)。4、进程将缓冲区插入到相应缓冲区队列的过程、进程将缓冲区插入到相应缓冲区队列的过程Putbuf(type,workbuf)。Type: 缓冲

43、队列类型缓冲队列类型 number: 缓冲区号缓冲区号 workbuf: 工作缓冲区类型工作缓冲区类型图图4-4 Getbuf4-4 Getbuf与与PutbufPutbuf流程图流程图Getbuf(type):P(S2(type)P(S1(type)按照type在相应队列上取队首缓冲区V(S1(type)Putbuf(type,num):P(S1(type)V(S1(type)V(S2(type)按照type将num号缓冲区挂到对应缓冲队列图5.15& 设备分配技术设备分配技术设备依据使用特性可分为设备依据使用特性可分为共享设备技术、独占设备技术和虚共享设备技术、独占设备技术和虚拟设备技术拟

44、设备技术。共享设备技术适用于可共享设备,独占设备技。共享设备技术适用于可共享设备,独占设备技术适用于可共享设备和独占设备,虚拟设备技术适用于独占术适用于可共享设备和独占设备,虚拟设备技术适用于独占设备。具体内容如下:设备。具体内容如下: 独占设备技术:独占设备技术:对独享设备,系统一般采用静态分配方对独享设备,系统一般采用静态分配方式。即在一个作业执行前,将它所需要使用的这类设备分配式。即在一个作业执行前,将它所需要使用的这类设备分配给它,当作业结束撤离时,才将分配给它的独享设备收回。给它,当作业结束撤离时,才将分配给它的独享设备收回。 独占设备每次只能分配给一个进程使用,这种使用特性独占设备

45、每次只能分配给一个进程使用,这种使用特性隐含着死锁的必要条件,所以在考虑独占设备的分配时,一隐含着死锁的必要条件,所以在考虑独占设备的分配时,一定要结合有关防止和避免死锁的安全算法。定要结合有关防止和避免死锁的安全算法。5.4 5.4 设备分配设备分配共享设备技术:共享设备技术:对共享设备的分配一般采用动对共享设备的分配一般采用动态分配这一方式态分配这一方式 。在解决设备与在解决设备与CPUCPU的速度匹配问题上,为了使设的速度匹配问题上,为了使设备和备和CPUCPU的利用率达到最大程度,系统希望根据的利用率达到最大程度,系统希望根据每个设备的特征来全局调度设备的操作。每个设备的特征来全局调度

46、设备的操作。 &常见的设备分配方法有两种常见的设备分配方法有两种1 1. .先来先服务先来先服务2 2. .优先级高者优先优先级高者优先虚拟设备技术虚拟设备技术: :系统中的独占设备是有限的,往往系统中的独占设备是有限的,往往不能满足诸多进程的要求,会引起大量进程由于等不能满足诸多进程的要求,会引起大量进程由于等待某些独占设备而阻塞。另一方面,申请到独占设待某些独占设备而阻塞。另一方面,申请到独占设备的进程在其整个运行期间虽然占有设备,利用率备的进程在其整个运行期间虽然占有设备,利用率却常常很低,设备经常处于空闲状态。解决的办法,却常常很低,设备经常处于空闲状态。解决的办法,就是就是用共享设备

47、操作来模拟独占设备的操作,以提用共享设备操作来模拟独占设备的操作,以提高系统效率和设备利用率高系统效率和设备利用率。这种技术就称为虚拟设。这种技术就称为虚拟设备技术,实现这一技术的软、硬件系统被称为假脱备技术,实现这一技术的软、硬件系统被称为假脱机(机(Simultaneous Peripheral Operation On Simultaneous Peripheral Operation On Line, SPOOLLine, SPOOL)系统,又叫)系统,又叫SPOOLingSPOOLing系统系统. . 脱机输入输出技术脱机输入输出技术&为了解决人机矛盾及CPU和I/O设备间速度不匹配

48、的矛盾,50年代末出现了该技术。&事先将装有用户程序和数据的纸带(卡片)装入纸带输入机,在一台外围机的控制下把纸带上的数据(程序)输入到磁带上。当CPU需要这些数据时再从磁带上高速的调入内存。&类似的,当CPU需要输出时可由CPU直接高速的把数据从内存送到磁带上,然后再在另一台外围机的控制下,将磁带上的结果通过相应的输出设备输出。输入设备输入设备外围机外围机磁盘磁盘磁盘磁盘磁盘磁盘外围机外围机主机主机磁盘磁盘输出设备输出设备由于程序和数据的输入和输出都是在外围机的控制下完成的,由于程序和数据的输入和输出都是在外围机的控制下完成的,或者说他们是在脱离主机的情况下进行的,所以称为脱机输入或者说他们

49、是在脱离主机的情况下进行的,所以称为脱机输入输出方式。输出方式。图图5.16 脱机脱机I/O示意图示意图SPOOLingSPOOLing系统的组成:系统的组成: &(1)输入井和输出井:)输入井和输出井:&这是在磁盘上开辟出来的两个存储区域。这是在磁盘上开辟出来的两个存储区域。&输入井模拟脱机输入时的磁盘,用于收容输入井模拟脱机输入时的磁盘,用于收容I/O设备输入设备输入的数据。输出井模拟脱机输出时的磁盘,用于收容用户的数据。输出井模拟脱机输出时的磁盘,用于收容用户程序的输出数据程序的输出数据。&(2)输入缓冲区和输出缓冲区)输入缓冲区和输出缓冲区:&这是在内存中开辟的两个缓冲取区。这是在内存

50、中开辟的两个缓冲取区。&输入缓冲区用于暂存由输入设备送来的数据,以后再输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井。输出缓冲区用于暂存从输出井送来的数传送到输入井。输出缓冲区用于暂存从输出井送来的数据,以后再传送到输出设备。据,以后再传送到输出设备。& (3)输入进程和输出进程:)输入进程和输出进程:&输入进程模拟脱机输入时的外围控制机,输入进程模拟脱机输入时的外围控制机,将用户要将用户要求的数据从输入机通过输入缓冲区再送到输入井。求的数据从输入机通过输入缓冲区再送到输入井。当当CPU需要输入数据时,直接从输入井读如内存。需要输入数据时,直接从输入井读如内存。输出进程模拟脱机输出

51、时的外围控制机,输出进程模拟脱机输出时的外围控制机,把用户要把用户要求输出的数据,先从内存送到输入井,待输出设备求输出的数据,先从内存送到输入井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上。输出设备上。 SPOOLingSPOOLing系统的组成如图系统的组成如图5.175.17所示所示。该系统必须有高速块设。该系统必须有高速块设备的支持,该高速块设备通常是指磁盘。备的支持,该高速块设备通常是指磁盘。SPOOLingSPOOLing技术需要在技术需要在磁盘上开辟两个大的存储空间,分别用作输入井和输出井。输磁盘上开辟两个大的存储空

52、间,分别用作输入井和输出井。输入井模拟脱机输入时的磁盘,收容从输入设备输入的数据。入井模拟脱机输入时的磁盘,收容从输入设备输入的数据。 内存内存输入进程输入进程输出进程输出进程输入缓冲区输入缓冲区输出缓冲区输出缓冲区磁盘磁盘输入井输入井输出井输出井输入设备输入设备输出设备输出设备图图5.17 SPOOLing5.17 SPOOLing系统的组成系统的组成例如:共享打印机例如:共享打印机&请求打印队列请求打印队列这是由若干张请求打印表所形成的队列,这是由若干张请求打印表所形成的队列,系统为每个请求打印的进程建立一张请系统为每个请求打印的进程建立一张请求打印表。求打印表。参见参见P190OS&设备

53、分配设备分配 在计算机系统中,在计算机系统中,I/OI/O设备的数量是有限的。在多道程设备的数量是有限的。在多道程序环境中,用户不能自行使用系统中的设备。进程首先需序环境中,用户不能自行使用系统中的设备。进程首先需要向设备管理程序提出申请,然后由要向设备管理程序提出申请,然后由设备分配程序设备分配程序按照一按照一定的分配算法给进程分配必要的资源。如果进程的申请没定的分配算法给进程分配必要的资源。如果进程的申请没有成功,就要在资源的等待队列中排队等待,直到获得所有成功,就要在资源的等待队列中排队等待,直到获得所需的资源。需的资源。 (1 1)设备管理的数据结构)设备管理的数据结构: :操作系统为

54、了实现对设备的操作系统为了实现对设备的管理和分配,需要对每台设备的情况进行登记,即对所管管理和分配,需要对每台设备的情况进行登记,即对所管理的对象建立相应的数据结构,如设备控制表(理的对象建立相应的数据结构,如设备控制表(DCTDCT)、控)、控制器控制表(制器控制表(COCTCOCT)、通道控制表()、通道控制表(CHCTCHCT)和系统设备表)和系统设备表(SDTSDT)。图)。图5-185-18给出了这些表的数据结构。给出了这些表的数据结构。 图图5.18 5.18 设备管理的数据结构设备管理的数据结构SDTSDT表项表项1 1表项表项i i设备类设备类设备标识设备标识驱动程序入口驱动程

55、序入口DCTDCT指针指针DCTDCT设备类型设备类型设备状态设备状态COCTCOCT指针指针设备等待队列设备等待队列COCTCOCT控制器标识控制器标识控制器状态控制器状态CHCTCHCT指针指针控制器等待队列控制器等待队列CHCTCHCT通道标识通道标识通道状态通道状态COCTCOCT指针指针通道等待队列通道等待队列设备、控制器、通道的等待队列是由等待分配资源的进程控制块组成的,其组织方式可以按照先来先服(FCFS)的顺序,也可以按照优先级顺序。&(2 2)设备分配的原则)设备分配的原则: :提高设备的利用率;避免不合理的分提高设备的利用率;避免不合理的分配方式造成的系统死锁或系统工作紊乱

56、。与进程的调度相似,配方式造成的系统死锁或系统工作紊乱。与进程的调度相似,设备的分配也需要一定的策略,通常采用设备的分配也需要一定的策略,通常采用先来先服务先来先服务(FCFSFCFS)和和优先级高者优先优先级高者优先等。等。独占设备独占设备每次只能分配给一个进程使每次只能分配给一个进程使用。虚拟设备的分配同共享设备。用。虚拟设备的分配同共享设备。设备分配设备分配 静态分配静态分配 : :动态分配动态分配 : :在用户级进行的,执行之前,由系统一次在用户级进行的,执行之前,由系统一次分配给该程序所需要的全部资源,分配给该程序所需要的全部资源,分配之分配之后,资源就一直为该程序所占用,直到执后,

57、资源就一直为该程序所占用,直到执行完。该法无死锁。行完。该法无死锁。 在进程执行过程中根据执行需要进行设备在进程执行过程中根据执行需要进行设备分配。分配。当进程需要设备时,通过当进程需要设备时,通过系统调用系统调用命令命令向系统提出设备请求,由系统按照事向系统提出设备请求,由系统按照事先规定的策略给进程分配所需要的设备。先规定的策略给进程分配所需要的设备。一旦用完,便立即释放。一旦用完,便立即释放。&I/OI/O软件被组织成为一系列的层,即采用层次结构。软件被组织成为一系列的层,即采用层次结构。&I/OI/O软件一般分为四层软件一般分为四层:中断处理程序,设备驱动程序,独:中断处理程序,设备驱

58、动程序,独立于设备的系统软件以及用户空间的立于设备的系统软件以及用户空间的I/OI/O软件。软件。从功能上看从功能上看,设备无关层是设备无关层是I/OI/O管理的主要部分;管理的主要部分;从代码量上看从代码量上看,驱动层,驱动层是是I/OI/O管理的主要部分。管理的主要部分。各层之间的界面并不是死的,各层各层之间的界面并不是死的,各层之间的确切界面是依赖于具体系统的。之间的确切界面是依赖于具体系统的。 &I/OI/O软件设计的一个关键目标是软件设计的一个关键目标是设备独立性设备独立性。除了直接与设除了直接与设备打交道的低层软件之外,其他部分的软件不依赖于硬件。备打交道的低层软件之外,其他部分的

59、软件不依赖于硬件。I/OI/O软件独立于设备,当软件独立于设备,当I/OI/O设备更新时,没有必要重新编写设备更新时,没有必要重新编写全部设备软件。在一些操作系统中,只要安装了相应的设备全部设备软件。在一些操作系统中,只要安装了相应的设备驱动程序,就可以很方便地安装好新的驱动程序,就可以很方便地安装好新的I/OI/O设备。甚至不必设备。甚至不必重新编译就能将设备管理程序移到别处执行。重新编译就能将设备管理程序移到别处执行。 5.5 I/O软件&I/O设备管理软件一般分为四层:中断处理程序,设备驱动程序,与设备无关的系统软件以及用户空间的I/O软件。其中低层与硬件相关,把硬件与较高层次的软件隔离

60、开来。而最高层软件则向用户提供一个友好的、统一的接口。 图图5.195.19总结了总结了I/OI/O系统软件的层次。图中的箭头给出了系统软件的层次。图中的箭头给出了I/OI/O部分部分的控制流。的控制流。 用户空间软件用户空间软件独立于设备的系统软件(设备独立性软件)独立于设备的系统软件(设备独立性软件)设备驱动程序设备驱动程序中断处理程序中断处理程序硬件硬件 图图5.19 I/O5.19 I/O系统的分层及各层的主要功能系统的分层及各层的主要功能 I/O I/O请求请求 I/O I/O回答回答5.5.1 中断处理程序 1.1.中断和中断的分类中断和中断的分类 中断中断是指计算机在执行期间,是

温馨提示

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

评论

0/150

提交评论