1、制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有第八章第八章 设备管理设备管理本章主要内容本章主要内容:设备管理的功能和任务、设备管理的功能和任务、数据传送控制方式数据传送控制方式、中断技术、缓冲技术、设备分配、中断技术、缓冲技术、设备分配、I IO O控制系统、设备驱动程序等内容控制系统、设备驱动程序等内容制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有8.1.1设备分类设备分类按使
2、用特性分类按使用特性分类:存储设备存储设备输入输出设备输入输出设备终端设备终端设备4.4.脱机设备脱机设备P224P224图图按从属关系分类:按从属关系分类:系统设备系统设备用户设备用户设备按信息组织方式分类按信息组织方式分类:块设备块设备字符设备字符设备制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有8.1.2设备管理的功能和任务设备管理的功能和任务主要任务:主要任务:见见P224P224主要功能:主要功能:制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操
3、作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有8.28.2数据传送控制方式数据传送控制方式什么是数据传送控制方式:什么是数据传送控制方式:数据传送控制方式是指如何控制设数据传送控制方式是指如何控制设备与内存之间备与内存之间的数据传输过程的方式的数据传输过程的方式。控制三原则控制三原则P225制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有程序(程序(CPUCPU)直接控制方式直接控制方式中断驱动方式中断驱动方式DMADMA控制方式控制方式通道控制方式通道控制方式
4、数据传输控制方式的发展过程数据传输控制方式的发展过程制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有8.3中断技术中断技术中断:中断:是指计算机在执行期间系统内发生任何非是指计算机在执行期间系统内发生任何非寻常的或非预期的急需处理事件,使得寻常的或非预期的急需处理事件,使得CPUCPU暂时中暂时中断当前正在执行的程序而转去执行相应的事件处断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程
5、执行或调度新的进程执行的过程中断源、响应中断、处理中断中断源、响应中断、处理中断禁止中断:禁止中断:PSWPSW中的中断允许位清除中的中断允许位清除。用来禁止和开放中断(为保证原子用来禁止和开放中断(为保证原子性)性)。P233P233屏蔽中断:屏蔽中断:PSWPSW中的中断屏蔽字段中的中断屏蔽字段。每位对应一类中断的中断屏蔽触。每位对应一类中断的中断屏蔽触发器。用软件方法可以设置。用于屏蔽某些中断。发器。用软件方法可以设置。用于屏蔽某些中断。P233P233 中断的基本概念中断的基本概念:p233p233PSW即程序状态字即程序状态字Program Status Word用来存放两类信息:一
6、类用来存放两类信息:一类是体现当前指令执行结果是体现当前指令执行结果的各种状态信息,如有无的各种状态信息,如有无进位(进位(CF位),有无溢位),有无溢出(出(OF位),结果正负位),结果正负(SF位),结果是否为位),结果是否为零(零(ZF位),奇偶标志位),奇偶标志位(位(PF位)等;另一类位)等;另一类是存放控制信息,如允许是存放控制信息,如允许中断中断(IF位位),跟踪标志(,跟踪标志(TF位)等。有些机器中位)等。有些机器中将将PSW称为标志寄存器称为标志寄存器FR(Flag Register)。)。制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系
7、统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有中断的基本概念(续)中断的基本概念(续)中断向量:中断向量:PSWPSW处理程序的入口地址处理程序的入口地址。每类中。每类中断有对应的断有对应的PSWPSW及处理程序的入口地址。及处理程序的入口地址。关中断:即关中断:即禁止中断,禁止中断,系统不响应中断。系统不响应中断。中断嵌套中断嵌套:在处理中断的同时又响应别的中断。:在处理中断的同时又响应别的中断。屏蔽中断的运用屏蔽中断的运用P233P233:在中断请求产生后,可:在中断请求产生后,可以用屏蔽中断的方法。以用屏蔽中断的方法。屏蔽同级或同级以下的屏蔽同级或同级以下的中断中
8、断。可用可用提高处理机优先级提高处理机优先级的方法的方法禁止中断和屏蔽禁止中断和屏蔽某些中断。某些中断。制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有中断的分类与优先级中断的分类与优先级外中断:外中断:是指来自处理机和内存外部的中断是指来自处理机和内存外部的中断。包括。包括I/O中断、外部信号中断、外部信号中断、各种定时器引起的时钟中断以及调试程序中设置的中断点等引起中断、各种定时器引起的时钟中断以及调试程序中设置的中断点等引起的调试中断等。狭义上一般称为的调试中断等。狭义上一般称为中断
9、中断。内中断:内中断:主要指在处理机和内存内部产生中断主要指在处理机和内存内部产生中断。内中断一般称为内中断一般称为陷阱陷阱。它包括程序运算引起的各种错误、系统调用等它包括程序运算引起的各种错误、系统调用等。中断优先级:中断优先级:按中断源的轻重缓急响应中断,操作系统对不同的按中断源的轻重缓急响应中断,操作系统对不同的中断赋予不同的优先级中断赋予不同的优先级。中断优先级决定系统。中断优先级决定系统响应中断响应中断的优先次的优先次序。序。处理机优先级:处理机优先级:现行程序的优先级现行程序的优先级,可用来禁止中断和屏蔽中断。,可用来禁止中断和屏蔽中断。制作者:郭平、王在模、何静媛重庆大学计算机学
10、院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有中断与陷阱的区别中断与陷阱的区别v 陷阱通常由处理机正在执行的现行指令引起,而中断则陷阱通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的。是由与现行指令无关的中断源引起的。v 陷阱处理程序提供的服务为当前进程所用,而中断处理陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的。程序提供的服务则不是为了当前进程的。v CPUCPU在执行完一条指令之后,下一条指令开始之前响应中在执行完一条指令之后,下一条指令开始之前响应中 断,而在
11、一条指令执行中也可以响应陷阱。断,而在一条指令执行中也可以响应陷阱。制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有软中断软中断软中断和硬中断:软中断和硬中断:软中断软中断是通信进程之间用来模拟硬件中断的一种信号是通信进程之间用来模拟硬件中断的一种信号通信方式。通信方式。硬中断通过硬件产生相应的终端请求。硬中断通过硬件产生相应的终端请求。实现软中断通信的系统调用实现软中断通信的系统调用(如如unix)unix):kill(pid,sig)kill(pid,sig)发送软中断信号发送软中断信
12、号 signal(sig,func)signal(sig,func)进程设置软中断信号到进程设置软中断信号到 达时的处理方式达时的处理方式 制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有中断处理过程:中断处理过程:判断中断响应条件判断中断响应条件关中断关中断保存被中断现场保存被中断现场分析中断原因分析中断原因转中断处理程序转中断处理程序执行中断执行中断处理子程序处理子程序恢复现场恢复现场开中断开中断返回中断点返回中断点制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作
13、系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有中断处理过程(续)中断处理过程(续)I/O中断的处理的控制过程、形式化描述:中断的处理的控制过程、形式化描述:I/O Interrupt processing control:begin unusable I/O Interrupt flag save status of interrupt program if Input Device i Ready then Call Input Device i Control fi if Output Device i Ready then Call Output D
14、evice i Control fi if Data Deliver Done then Call Data Deliver Done Control fi restore CPU status reset I/O Interrupt flag end Input Device i Control:Output Device i Control:Data Deliver Done Control:制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有直接存储访问方式直接存储访问方式(DMA,Di
15、rect Memory Access)DMA,Direct Memory Access)工作方式:工作方式:由程序设置由程序设置DMADMA控制器中的若干寄存器值(如内存始址,控制器中的若干寄存器值(如内存始址,传送字节数),然后发起传送字节数),然后发起I/OI/O操作;在操作;在DMADMA控制之下完成内存与外设的控制之下完成内存与外设的成批数据交换,在操作完成时由成批数据交换,在操作完成时由DMADMA控制器向控制器向CPUCPU发出中断。发出中断。特点:特点:DMADMA与与CPUCPU分是共享总线,分是共享总线,DMADMA通过挪用总线周期的方式通过挪用总线周期的方式把数据把数据缓冲
16、寄存器中的数据直接送到内存地址寄存器所指向的内存区域缓冲寄存器中的数据直接送到内存地址寄存器所指向的内存区域。System BusI/OControllerI/OControllerProcessorDMAControllerMemory.接下页接下页制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有DMADMA方式下的方式下的I/OI/O传送结构传送结构见见P229图图9.5接下页接下页制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列
17、精品课程系列-计算机学院版权所有计算机学院版权所有DMADMA方式下的数据传送处理过程方式下的数据传送处理过程见见P210图图8.6接下页接下页制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有直接存储访问方式优缺点直接存储访问方式优缺点优点优点:CPUCPU只需干预只需干预I/OI/O操作的开始和结束操作的开始和结束,而一批数据传输由,而一批数据传输由DMADMA控制,控制,无需无需CPUCPU控制,提高了控制,提高了CPUCPU与设备的并行工作程度,排除了中断方式中的与设备的并行工作程度
18、,排除了中断方式中的数据丢失现象。适于高速设备。如:磁盘数据丢失现象。适于高速设备。如:磁盘缺点:缺点:DMADMA方式对外围设备的管理和某些操作仍由方式对外围设备的管理和某些操作仍由CPUCPU控制。系统控制。系统中多个中多个DMADMA同时使用,可能造成内存地址冲突。管理和控制复杂化。同时使用,可能造成内存地址冲突。管理和控制复杂化。DMADMA方式方式一次只能传送一批地址连续一次只能传送一批地址连续的数据块,如果需传送多个地的数据块,如果需传送多个地址不连续的数据块,则需启动址不连续的数据块,则需启动DMADMA多次。多次。返回返回制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计
19、算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有 通道控制方式通道控制方式(channel control)channel control)通道的定义及工作方式:通道的定义及工作方式:通道是一个独立于通道是一个独立于CPUCPU的专管输入输出控制的的专管输入输出控制的处理机处理机,它控制设备,它控制设备与内存直接进行数据交换。它有自己的与内存直接进行数据交换。它有自己的通道指令通道指令,由,由通道指令构成通通道指令构成通道程序道程序。由。由CPUCPU启动通道启动通道工作,通道通过执行通道程序控制数据传输,工作,通道通过执行通道程序控制数据传输
20、,并在操作结束时向并在操作结束时向CPUCPU发中断信号发中断信号,由,由CPUCPU进行传输结束中断处理通道。进行传输结束中断处理通道。接下页接下页通道指令包括:通道指令包括:1)操作码)操作码 2)内存地址)内存地址3)读或写的字节计数)读或写的字节计数4)记录结束标志记录结束标志R5)通道程序结束位通道程序结束位P制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有 通道程序通道程序接下页接下页通道程序:通道程序:通道程序根据进程提出的数据传输要求由系统自动生成,存放在内存。通道程序根据
21、进程提出的数据传输要求由系统自动生成,存放在内存。通道程序示例:通道程序示例:一个六条通道指令所构成的简单通道程序,其功能是将内存中不同地址一个六条通道指令所构成的简单通道程序,其功能是将内存中不同地址的数据写到三个记录中。的数据写到三个记录中。操作操作PR字节计数字节计数内存地址内存地址备注备注WRITE0080813WRITE001401034WRITE01605830R1结束结束WRITE013002000R2结束结束WRITE002501850WRITE11250720R3结束,程序结束结束,程序结束制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统
22、教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有 通道方式的数据传输结构通道方式的数据传输结构通道类型:通道类型:选择通道选择通道(selector channel)selector channel):可以连接多个外设,而一次只能访问可以连接多个外设,而一次只能访问其中一个外设其中一个外设,执行一道通道程序(单道工作方式)。以块为单位传,执行一道通道程序(单道工作方式)。以块为单位传送数据,速度快,适合高速外部设备。如:磁盘,磁带。送数据,速度快,适合高速外部设备。如:磁盘,磁带。字节多路字节多路(byte multiplexor channel)byte multiple
23、xor channel)通道通道 :以以字节为单位字节为单位传送数传送数据,多个据,多个外设分时轮流使用通道外设分时轮流使用通道(分时系统工作方式)。适合连接低(分时系统工作方式)。适合连接低速字符设备。速字符设备。数组多路数组多路(block multiplexor channel)block multiplexor channel)通道:通道:以以块为单位块为单位传送数据传送数据,可以可以并发访问多个外设并发访问多个外设,分时执行多道通道程序。适合连接中高速外,分时执行多道通道程序。适合连接中高速外部设备。如:磁盘,磁带。部设备。如:磁盘,磁带。接下页接下页通道方式的数据传输结构:见通道方
24、式的数据传输结构:见P231P231图图9.79.7制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有 通道方式的数据输入处理过程通道方式的数据输入处理过程接下页接下页通道控制方式的描述过程见通道控制方式的描述过程见P232P232通道控制方式的处理过程:通道控制方式的处理过程:当进程要求设备输入数据时,当进程要求设备输入数据时,CPUCPU执行执行StartStart指令指令指明指明I/OI/O操作操作、通道通道程序地址程序地址、设备号和对应的通道设备号和对应的通道。对应通道接收到对应通道
25、接收到CPUCPU发来的启动指令之后开始工作,发来的启动指令之后开始工作,把存放在内存中把存放在内存中的通道指令程序读出并执行的通道指令程序读出并执行,并设置对应设备的,并设置对应设备的I/OI/O控制其中的控制控制其中的控制状态寄存器,是设备开始工作。状态寄存器,是设备开始工作。设备准备好数据,由设备准备好数据,由通道通道把数据送往通道指令指定的内存区域。把数据送往通道指令指定的内存区域。若数据传送结束,通道通过若数据传送结束,通道通过中断中断请求线发中断信号请求请求线发中断信号请求CPUCPU做中断处做中断处理。理。制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统
26、教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有 通道控制方式优点通道控制方式优点优点:优点:启动一次通道执行一个通道程序可以传送启动一次通道执行一个通道程序可以传送几批地址不几批地址不连续的数据块连续的数据块。数据传输过程中对数据传输过程中对CPUCPU的干扰比的干扰比DMADMA更少,更少,CPUCPU利用率更高,对通道的控制更简单利用率更高,对通道的控制更简单。通道通过执行通道程序控制输入输出,比较灵活。通道通过执行通道程序控制输入输出,比较灵活。返回返回制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系
27、列精品课程系列-计算机学院版权所有计算机学院版权所有程序直接控制方式程序直接控制方式 p225程序直接控制方式程序直接控制方式(programmed direct I/O)programmed direct I/O):由由CPUCPU直接控制内存和外围设备之间的信息传送。直接控制内存和外围设备之间的信息传送。I/OI/O操作操作由程序发起,并等待操作完成。数据的每次读写通过由程序发起,并等待操作完成。数据的每次读写通过CPU 控控制,包括发送读写命令、制,包括发送读写命令、循环测试设备状态循环测试设备状态、传输数据。、传输数据。接下页接下页制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学
28、计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有(b)接收到接收到Start命令命令做接收或发送数据准备做接收或发送数据准备等待等待CPU来的下条命令来的下条命令标志触发器置标志触发器置“Done”执行下条命令执行下条命令开始数据传送开始数据传送等待等待发发Start命令命令准备完毕?准备完毕?设备标志触发设备标志触发器为器为“Done”外围设备外围设备(a)否否是是CPU是是否否程序直接控制方式图示程序直接控制方式图示接下页接下页制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程
29、系列-计算机学院版权所有计算机学院版权所有向向I/OI/O部件发读部件发读命令命令读读I/OI/O部件状态寄部件状态寄存器存器检查状态检查状态从从I/OI/O部件读字节数部件读字节数据据将该字节写入将该字节写入内存内存No readyNo readyreadyready该块读完该块读完yesyes下一下一指令指令nono程序直接控制方式示例程序直接控制方式示例CPUCPU控制控制输入数据过程示控制控制输入数据过程示例例接下页接下页制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有程序直接控制
30、方式优缺点程序直接控制方式优缺点返回返回优点:优点:控制简单。控制简单。缺点:缺点:1 1)CPUCPU和外围设备只能和外围设备只能串行工作串行工作。2 2)CPUCPU在一段时间内在一段时间内只能和一台外围设备交换只能和一台外围设备交换数据信息,从而数据信息,从而不能实现设备之间的并行工不能实现设备之间的并行工 作。作。3 3)由于程序直接控制方式依靠测试设备标志触发器的状态位)由于程序直接控制方式依靠测试设备标志触发器的状态位来控制数据传送,因此无法发现和处理由于设备或其他硬件产生的错来控制数据传送,因此无法发现和处理由于设备或其他硬件产生的错误。误。适合:专用控制系统;外设较少、适合:专
31、用控制系统;外设较少、CPUCPU速度较慢的系统。速度较慢的系统。制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有 工作方式:工作方式:CPUCPU向向I/OI/O部件发出命令后,转去做其他有用的工作部件发出命令后,转去做其他有用的工作。当当I/OI/O部件准备好一个数据(对输入)或输出完一个数据后(对输出)部件准备好一个数据(对输入)或输出完一个数据后(对输出)后,利用中断通知后,利用中断通知CPUCPU,再由再由CPUCPU完成设备与内存的数据传输。完成设备与内存的数据传输。特点:特点
32、:CPUCPU不必反复测试寄存器状态,节约了时间。不必反复测试寄存器状态,节约了时间。CPUCPU可以可以与设备并行工作。但每个字节的数据传输都必须经过与设备并行工作。但每个字节的数据传输都必须经过CPUCPU寄存器转发。寄存器转发。中断控制方式中断控制方式接下页接下页制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有中断控制方式处理过程中断控制方式处理过程中断处理中断处理(处理数据传输)(处理数据传输)接收到接收到CPUCPU到到StartStart指令指令准备数据并将其准备数据并将其置入
33、缓冲寄存器置入缓冲寄存器发中断信号通知发中断信号通知CPUCPU调度程序调度其他程序调度程序调度其他程序向设备发向设备发StartStart命令,命令,将中断允许位置将中断允许位置1 1缓冲寄存缓冲寄存器满吗?器满吗?收到中断信号收到中断信号了吗?了吗?设备设备否否是是CPUCPU是是否否其他进程执行其他进程执行被中断进程执行被中断进程执行接下页接下页制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有向向I/OI/O部件发读部件发读命令命令读读I/OI/O部件状态寄部件状态寄存器存器检查状态
34、检查状态从从I/OI/O部件读字节数部件读字节数据据将该字节写入将该字节写入内存内存OKOK出错处理出错处理该块读完该块读完OKOK下一下一指令指令未未OKOK中断中断中断控制方式输入数据中断控制方式输入数据CPUCPU控制控制过程示例控制控制过程示例接下页接下页制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有优点:优点:CPUCPU利用率较程序直接控制器有大大的利用率较程序直接控制器有大大的 提高,且能支持多道程序和设备的并行操提高,且能支持多道程序和设备的并行操 作。作。缺点:缺点:1
35、 1)因为数据缓冲区较小,在一次数据(若干字节)因为数据缓冲区较小,在一次数据(若干字节)传送过程中,发生中断次数较多。)传送过程中,发生中断次数较多。2 2)外围设备较多时,)外围设备较多时,CPUCPU由于中断次数增多而无由于中断次数增多而无法响应中断和出现数据丢失。法响应中断和出现数据丢失。适合:适合:低速的字符设备低速的字符设备中断控制方式优缺点中断控制方式优缺点返回返回制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有8.4 8.4 缓冲技术缓冲技术缓冲的引入:缓冲的引入:为了为了
36、匹配匹配CPUCPU或用户应用进程与外设的处理速度;或用户应用进程与外设的处理速度;减少对减少对CPUCPU的中断次数的中断次数,提高,提高CPUCPU和和I/OI/O设备之间以及各个设备之间以及各个I/OI/O设备设备 之间的并行性;之间的并行性;解决解决DMADMA或通道方式的瓶颈问题。或通道方式的瓶颈问题。实现方法:实现方法:专用硬件缓冲器专用硬件缓冲器 内存专用缓冲器内存专用缓冲器制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有缓冲的种类缓冲的种类单缓冲单缓冲(single buf
37、fer)single buffer):设一个缓冲区,设一个缓冲区,CPUCPU和外设轮流使用,和外设轮流使用,一方处理完之后接着等待对方处理。一方处理完之后接着等待对方处理。双缓冲双缓冲(double buffer)double buffer):设两个缓冲区,设两个缓冲区,CPUCPU和外设都可以连和外设都可以连 续处理而无需等待对方。续处理而无需等待对方。要求要求CPUCPU和外设的速度相近和外设的速度相近。多缓冲多缓冲(multiply buffer)multiply buffer):多个缓冲区,多个缓冲区,CPUCPU和外设的处理速和外设的处理速 度可以相差较大度可以相差较大。如用于输入
38、或输出的环形缓冲区。(一般是。如用于输入或输出的环形缓冲区。(一般是 专用)专用)缓冲池缓冲池(bufferbufferpool)pool):由多个缓冲区构成,既可用于输入也由多个缓冲区构成,既可用于输入也 可用于输出,多个进程共享,可用于多种设备。(通用,利用可用于输出,多个进程共享,可用于多种设备。(通用,利用 率高)率高)制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有I/O设备设备输入输入用户进程用户进程操作系统操作系统I/O设备设备输入输入用户进程用户进程操作系统操作系统输入输入
39、I/O设备设备用户进程用户进程操作系统操作系统(a)(b)(c)(a)a)单缓冲单缓冲;(;(b)b)双缓冲双缓冲;(;(c)c)循环缓冲循环缓冲制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有缓冲池的管理缓冲池的管理缓冲区类型(缓冲区类型(三种)三种)空闲缓冲区(空闲缓冲区(em):没有数据的缓冲区。没有数据的缓冲区。输入缓冲区输入缓冲区(in):装满了输入数据的缓冲区装满了输入数据的缓冲区输出缓冲区输出缓冲区(out):装满了准备输出到设备的缓冲区装满了准备输出到设备的缓冲区缓冲区工作
40、方式缓冲区工作方式(四种):四种):1、设备正在输入数据到缓冲区。称为、设备正在输入数据到缓冲区。称为收容输入收容输入。2、CPU正在读入输入缓冲区的内容到用户区。称为正在读入输入缓冲区的内容到用户区。称为提取输入。提取输入。3、CPU正在输出数据到缓冲区。称为正在输出数据到缓冲区。称为收容输出收容输出,4、正在将输出缓冲区内容输出到实际设备,称为、正在将输出缓冲区内容输出到实际设备,称为提取输出。提取输出。上述操作访问各个缓冲区队列时,需要进行相应的互斥操作。上述操作访问各个缓冲区队列时,需要进行相应的互斥操作。制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操
41、作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有缓冲池的管理(续)缓冲区队列缓冲区队列:三种:图如下所示:三种:图如下所示:F(em)F(in)F(out)缓冲区缓冲区1缓冲区缓冲区1缓冲区缓冲区nL(out)L(in)L(em)缓冲区缓冲区2缓冲区缓冲区2工作缓冲区工作缓冲区:四种:图如下所示:四种:图如下所示:hinsinsouthout收容输入收容输入提取输出提取输出I/OI/O设设备备提取输入提取输入收容输出收容输出CPU制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算
42、机学院版权所有缓冲池管理(续)缓冲池管理(续)四个操作:四个操作:take_buf(type)(take_buf(type)(被被get_bufget_buf调用调用)add_buf(type)(add_buf(type)(被被put_bufput_buf调用调用)get_buf(type,number)(get_buf(type,number)(申请缓冲区供进程使用申请缓冲区供进程使用)put_buf(type,work_buf)(put_buf(type,work_buf)(将缓冲区放入相应队列,供进程使用将缓冲区放入相应队列,供进程使用)参数说明:参数说明:type:type:em in
43、 out em in out Work_buf:Work_buf:hin hin hout hout sin sin sout sout制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有缓冲区状态转换图缓冲区状态转换图houtoutsoutget_bufput_bufget_bufput_bufemhininsinemget_bufput_bufget_bufput_buf制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计
44、算机学院版权所有计算机学院版权所有设:设:互斥信号量互斥信号量S(type)初值为初值为 资源信号量资源信号量RS(type)初值为(初值为(n为为type队列长度队列长度)如:如:em队列:初值为;队列:初值为;in队列:初值为;队列:初值为;out队列:初值为队列:初值为get_buf()程序描述如下:程序描述如下:get_buf(type,number):beginP(RS(type)先申请资源先申请资源P(S(type)再申请操作权再申请操作权Pointer of buffer(number)=take_buf(type,number)V(S(type)Endput_buf()程序描述
45、如下程序描述如下:put_buf(type,number)beginP(S(type)add_buf(type,number)V(S(type)V(RS(type)endget_buf 和put_buf 过程描述制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有8.5.1设备分配用数据结构以下数据结构用来记录设备或部件的标识状态等信息:以下数据结构用来记录设备或部件的标识状态等信息:系统设备表系统设备表SDTSDT:整个系统一张表,每个物理设备一个项整个系统一张表,每个物理设备一个项设备控制
46、表设备控制表DCTDCT:每个设备一张每个设备一张P239P239控制器控制表控制器控制表COCTCOCT:每个控制器一张每个控制器一张P240P240通道控制表通道控制表CHCTCHCT:每个通道一张每个通道一张P240P240设备分配的意义设备分配的意义P239制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有设备分配数据结构及其关系图设备分配数据结构及其关系图表目表目i表目表目1DCT指针指针获得设备的进程获得设备的进程设备标识设备标识设备类型设备类型控制器等待队列尾控制器等待队列尾控
47、制器等待队列首控制器等待队列首COCT指针指针设备忙闲标记设备忙闲标记设备标识设备标识设备类型设备类型控制忙闲标记控制忙闲标记控制器等待队列尾控制器等待队列尾控制器等待队列首控制器等待队列首CHCT指针指针控制器标识控制器标识通道忙闲标记通道忙闲标记通道等待队列尾通道等待队列尾通道等待队列首通道等待队列首通道标识通道标识SDFDCT设备控制表设备控制表控制器控制表控制器控制表COCTCHCT通道控制表通道控制表等待进程队列等待进程队列制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有8.5.
48、2 8.5.2 设备分配原则设备分配原则与设备分配有关的设备属性与设备分配有关的设备属性:独享独享设备:打印机等;设备:打印机等;共享共享设备:磁盘、网卡等;虚拟设备。设备:磁盘、网卡等;虚拟设备。设备分配方式:设备分配方式:静态静态分配分配:在进程分创建时分配,在进程退出时释放;:在进程分创建时分配,在进程退出时释放;优缺点:不会出现死锁;优缺点:不会出现死锁;设备利用率不高;设备利用率不高;动态动态分配分配:在进程执行过程中根据需要分配,使用结束后释放;:在进程执行过程中根据需要分配,使用结束后释放;优缺点优缺点:需要考虑死锁问题需要考虑死锁问题有利于提高设备利用率有利于提高设备利用率设备
49、分配的原则:设备分配的原则:合理使用外设合理使用外设(公平和避免死锁公平和避免死锁),提高设备利用率。,提高设备利用率。制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有设备分配策略设备分配策略设备分配策略设备分配策略:针对特定的设备采用特定的分配策略。:针对特定的设备采用特定的分配策略。先来先服务先来先服务(FCFS)FCFS):按按I/OI/O请求的先后顺序,排成请求的先后顺序,排成I/OI/O请请求命令队列;按求命令队列;按FCFSFCFS分配设备;分配设备;1)1)基于优先级基于优先
50、级:依据进程的优先级,指定:依据进程的优先级,指定I/OI/O请求的优先级,请求的优先级,排成不同优先级队列;按优先级高低分配设备;排成不同优先级队列;按优先级高低分配设备;制作者:郭平、王在模、何静媛重庆大学计算机学院重庆大学计算机学院 操作系统教程操作系统教程 精品课程系列精品课程系列-计算机学院版权所有计算机学院版权所有设备分配算法设备分配算法设备分配流程图见设备分配流程图见P241P241图图9.139.13分配过程:如下所示分配过程:如下所示进程申请进程申请I/OI/O分配设备分配设备分配分配控制器控制器分配通道分配通道进程加入设进程加入设备等待队列备等待队列进程加入通进程加入通道等