《《操作系统原理与UNIX》课程教学课件 第八章 设备管理(95P).ppt》由会员分享,可在线阅读,更多相关《《操作系统原理与UNIX》课程教学课件 第八章 设备管理(95P).ppt(95页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、操作系统原理与操作系统原理与UNIXUNIX2007第八章第八章 设备管理设备管理8.1 引言8.2 数据传送控制方式8.3 中断技术8.4 缓冲技术8.5 设备分配8.6 I/O进程控制8.7 设备驱动程序 8.1 引言引言计算机外部设备计算机外部设备 在在计计算算机机系系统统中中除除CPUCPU和和内内存存储储外外所所有有的的设设备备和和装装置置称称为为计计算算机机外外部部设设备备(外外围围设设备备、I/OI/O设备)。设备)。早早期期设设备备:速速度度慢慢,应应用用面面窄窄,如如纸纸带带、卡卡片片等。等。现现代代设设备备:种种类类繁繁多多、特特性性各各异异、操操作作复复杂杂。如:硬盘、打
2、印机、扫描仪、数码相机等。如:硬盘、打印机、扫描仪、数码相机等。8.1.1 设备的类别设备的类别按交互对象分类:按交互对象分类:人机交互设备人机交互设备:视频显示设备、键盘、:视频显示设备、键盘、鼠标、打印机鼠标、打印机与计算机或其他与计算机或其他电子设备交互电子设备交互的设备:的设备:磁盘、磁带、传感器、控制器磁盘、磁带、传感器、控制器计算机间的计算机间的通信设备通信设备:网卡、调制解调:网卡、调制解调器器8.1.1 设备的类别(续)设备的类别(续)按使用特性分类:按使用特性分类:存储设备存储设备输入输出设备输入输出设备终端设备终端设备脱机设备脱机设备按使用特性分类按使用特性分类外部设备存储
3、设备输入/输出设备终端设备脱机设备磁带磁盘其它(磁鼓、光盘等)软盘硬盘键盘打印机显示器图形输入/输出设备图像输入/输出设备声音输入/输出设备绘图机网络通信板其它通用终端专用终端虚终端会话型批处理型智能终端8.1.1 设备的类别(续)设备的类别(续)按从属关系分类:系统设备和用户设备按从属关系分类:系统设备和用户设备系统设备系统设备:在操作系统生成时就已配置:在操作系统生成时就已配置好的设备,如键盘、打印机及磁盘等好的设备,如键盘、打印机及磁盘等用户设备用户设备:由用户自己安装配置后由操:由用户自己安装配置后由操作系统统一管理的设备,如网络板、调作系统统一管理的设备,如网络板、调制解调器、图像设
4、备等。制解调器、图像设备等。8.1.1 设备的类别(续)设备的类别(续)按信息交换的单位分类:块设备(Block DeviceBlock Device):指以数据块为单位来组织和传指以数据块为单位来组织和传送数据信息的设备。这类设备用于存储信息,有磁盘和磁送数据信息的设备。这类设备用于存储信息,有磁盘和磁带等。它属于有结构设备。典型的块设备是磁盘,每个盘带等。它属于有结构设备。典型的块设备是磁盘,每个盘块的大小为块的大小为512B512B4KB4KB,磁盘设备的基本特征是:,磁盘设备的基本特征是:传传输速率较高,通常每秒钟为几兆位;输速率较高,通常每秒钟为几兆位;它是可寻址的,即它是可寻址的,
5、即可随机地读可随机地读/写任意一块;写任意一块;磁盘设备的磁盘设备的I/OI/O采用采用DMADMA方方式。式。字符设备(Character DeviceCharacter Device):):指以单个字符为单位来指以单个字符为单位来传送数据信息的设备。这类设备一般用于数据的输入和输传送数据信息的设备。这类设备一般用于数据的输入和输出,有交互式终端、打印机等。它属于无结构设备。字符出,有交互式终端、打印机等。它属于无结构设备。字符设备的基本特征是:设备的基本特征是:传输速率较低;传输速率较低;不可寻址,即不不可寻址,即不能指定输入时的源地址或输出时的目标地址;能指定输入时的源地址或输出时的目标
6、地址;字符设备字符设备的的I IO O常采用中断驱动方式。常采用中断驱动方式。8.1.2 设备管理的功能和任务设备管理的功能和任务设备管理的任务:设备管理的任务:(1)选择和分配输入输出设备以便进行数据传输操作;)选择和分配输入输出设备以便进行数据传输操作;(2)控制输入输出设备和)控制输入输出设备和CPU(或内存)之间交换数(或内存)之间交换数据;据;(3)为用户提供一个友好的透明接口,把用户和设备)为用户提供一个友好的透明接口,把用户和设备硬件特性分开,使用户在编应用程序时不必涉及到具体硬件特性分开,使用户在编应用程序时不必涉及到具体设备,系统按用户要求控制设备工作。另外这个接口还设备,系
7、统按用户要求控制设备工作。另外这个接口还为新增加的用户设备提供一个和系统核心相连接的入口,为新增加的用户设备提供一个和系统核心相连接的入口,以便用户开发新的设备管理程序;以便用户开发新的设备管理程序;(4)提高设备和设备之间、)提高设备和设备之间、CPU和设备之间,以及进和设备之间,以及进程和进程之间的并行操作度,使操作系统获得最佳效率。程和进程之间的并行操作度,使操作系统获得最佳效率。8.1.2 设备管理的功能和任务设备管理的功能和任务设备管理的功能:设备管理的功能:(1)提供设备和管理系统的接口。)提供设备和管理系统的接口。(2)进行设备分配。按设备类型和相应分)进行设备分配。按设备类型和
8、相应分配算法把设备其他有关的硬件分配给请求该配算法把设备其他有关的硬件分配给请求该设备的进程,并把未分配到所请求调和或其设备的进程,并把未分配到所请求调和或其他有关硬件的进程放入等待队列;他有关硬件的进程放入等待队列;(3)实现设备和设备、设备和)实现设备和设备、设备和CPU等之间等之间的并行操作。的并行操作。(4)进行缓冲区管理。)进行缓冲区管理。8.2 数据传送控制方式数据传送控制方式控制设备和内存(或控制设备和内存(或CPU)之间的数据)之间的数据传送是设备管理的主要任务之一。传送是设备管理的主要任务之一。选择和衡量数据传送控制方式的原则:选择和衡量数据传送控制方式的原则:(1)数据传送
9、速度足够高,能满足用户需)数据传送速度足够高,能满足用户需要但又不丢失数据;要但又不丢失数据;(2)系统开销小,所需的处理控制程序少;)系统开销小,所需的处理控制程序少;(3)能充分发挥硬件资源的能力,使得)能充分发挥硬件资源的能力,使得I/O设备尽量忙,而设备尽量忙,而CPU等待时间少。等待时间少。8.2 数据传送控制方式数据传送控制方式外围设备和内存之间常用的数据传送控外围设备和内存之间常用的数据传送控制方式有以下制方式有以下4种:种:(1)程序直接控制方式)程序直接控制方式(2)中断控制方式)中断控制方式(3)DMA方式方式(4)通道方式)通道方式8.2.1 程序直接控制方式程序直接控制
10、方式程序直接控制方式(程序直接控制方式(programmed direct control)就是由用户进程来直接控制内)就是由用户进程来直接控制内存或存或CPU和外围设备之间的数据传送。和外围设备之间的数据传送。控制者:用户进程控制者:用户进程8.2.1 程序直接控制方式程序直接控制方式过程描述:过程描述:当用户进程需要数据时,它通过当用户进程需要数据时,它通过CPU发出启动外设发出启动外设准备数据的命令准备数据的命令“start”,然后,用户进程进入,然后,用户进程进入测试等待状态。测试等待状态。在等待时间内,在等待时间内,CPU不断地用一条测试指令检查描不断地用一条测试指令检查描述外围设备
11、工作状态的述外围设备工作状态的控制状态寄存器控制状态寄存器,而外围设,而外围设备只有将数据传送的准备工作做好后,才将该寄存备只有将数据传送的准备工作做好后,才将该寄存器置为完成状态。器置为完成状态。当当CPU检测到控制状态寄存器的检测到控制状态寄存器的“Done”信号之后,信号之后,设备开始往内存或设备开始往内存或CPU传送数据。传送数据。8.2.1 程序直接控制方式程序直接控制方式过程描述(续):过程描述(续):当用户进程需要输出数据时,也需要发送外当用户进程需要输出数据时,也需要发送外设启动命令并等待设备准备完成才能传送数设启动命令并等待设备准备完成才能传送数据。据。在在CPU与外设之间有
12、一个数据缓冲寄存器,与外设之间有一个数据缓冲寄存器,每次数据输入每次数据输入/输出时,先把所要输入(输输出时,先把所要输入(输出)的数据放入缓冲寄存器中,然后再取走。出)的数据放入缓冲寄存器中,然后再取走。程序直接控制方式程序直接控制方式接收到start命令做接收或发送数据准备准备完毕?标志触发器置“Done”等待CPU来的下条指令否是外围设备(a)发start命令标志触发器为Done?等待执行下条指令开始数据传送否是CPU(b)程序直接控制方式的特点程序直接控制方式的特点优点:实现简单,硬件支持少。优点:实现简单,硬件支持少。缺点:缺点:(1)CPU与外设只能串行工作。与外设只能串行工作。C
13、PU利用率低。利用率低。(2)CPU在一段时间内只能和一台外围设备交换在一段时间内只能和一台外围设备交换数据信息,从而不能实现设备之间的并行工作。数据信息,从而不能实现设备之间的并行工作。(3)由于程序直接控制方式依靠测试设备标志触)由于程序直接控制方式依靠测试设备标志触发器的状态位来控制数据传送,因此无法发现和处发器的状态位来控制数据传送,因此无法发现和处理由于设备或其他硬件所产生的错误。理由于设备或其他硬件所产生的错误。程序直接控制方式只适用于那些程序直接控制方式只适用于那些CPU执行速度慢,执行速度慢,而且外设较少的系统。而且外设较少的系统。8.2.2 中断方式中断方式为了减少直接控制方
14、式中为了减少直接控制方式中CPU等待时间以及提等待时间以及提高系统的并行工作程度,中断(高系统的并行工作程度,中断(interrupt)方)方式被用来控制外围设备和内存与式被用来控制外围设备和内存与CPU之间的数之间的数据传送。据传送。这种方式要求这种方式要求CPU与设备(或控制器)之间有与设备(或控制器)之间有相应的中断请求线,而且在相应的中断请求线,而且在设备控制器设备控制器的的控制控制状态寄存器状态寄存器的相应的的相应的中断允许位中断允许位。中中断断控控制制方方式式的的传传送送结结构构I/O控制器1I/O控制器nCPU内存I/O设备1:I/O设备n:数据线地址线控制线控制状态寄存器数据缓
15、冲寄存器启动位中断位Startint8.2.2 中断方式中断方式数据输入步骤数据输入步骤(1 1)首先,进程需要数据时,通过)首先,进程需要数据时,通过CPUCPU发出发出“Start”Start”指令启动外围设备准备数据。该指令同时还指令启动外围设备准备数据。该指令同时还将控制状态寄存器中的中断允许位打开,以便在需要将控制状态寄存器中的中断允许位打开,以便在需要时,中断程序可以被调用执行。时,中断程序可以被调用执行。(2 2)在进程发出指令启动设备之后,该进程放弃处理)在进程发出指令启动设备之后,该进程放弃处理机,待输入完成。从而进程调度程序调度其他就绪进机,待输入完成。从而进程调度程序调度
16、其他就绪进程占据处理机。程占据处理机。(3 3)当输入完成时,)当输入完成时,I/OI/O控制器通过中断请求线向控制器通过中断请求线向CPUCPU发出中断信号。发出中断信号。CPUCPU在接收到中断信号后,转向在接收到中断信号后,转向预先设计好的中断处理程序对数据传送进行相应的处预先设计好的中断处理程序对数据传送进行相应的处理。理。(4 4)在以后的某个时刻,进程调度程序选中提出请求)在以后的某个时刻,进程调度程序选中提出请求并得到了数据的进程,该进程从约定的内存特定单元并得到了数据的进程,该进程从约定的内存特定单元中取出数据继续工作。中取出数据继续工作。中断控制方式的处理过程中断控制方式的处
17、理过程接收到start命令准备数据并将其置入缓冲寄存器缓冲寄存器满吗?控制器发中断信号否是外围设备(a)向外设发start命令将中断允许位置1收到中断信号了吗?中断处理被中断进程执行是否CPU(b)调度其他进程其他进程执行中断控制方式的特点中断控制方式的特点优点:优点:CPU在进程上下文中执行时,也可以启动不同的设备启动在进程上下文中执行时,也可以启动不同的设备启动指令和允许中断指令,从而做到设备与设备之间和设备与指令和允许中断指令,从而做到设备与设备之间和设备与CPU之间的并行操作,提高了之间的并行操作,提高了CPU的利用率。的利用率。缺点:缺点:1.由于在由于在I/O控制器的数据缓冲寄存器
18、装满后将会发生中控制器的数据缓冲寄存器装满后将会发生中断,而且数据缓冲寄存器通常较小,在一次数据传送过程断,而且数据缓冲寄存器通常较小,在一次数据传送过程中可能发生多次中断。中可能发生多次中断。2.当较多外围设备并行操作时,由于中断次数急剧增加而当较多外围设备并行操作时,由于中断次数急剧增加而造成造成CPU无法响应中断和出现数据丢失现象。无法响应中断和出现数据丢失现象。3.当外围设备的速度非常高时,可能造成数据缓冲寄存器当外围设备的速度非常高时,可能造成数据缓冲寄存器的数据由于的数据由于CPU来不及取走而丢失。来不及取走而丢失。8.2.3 DMA方式方式DMA方式又称直接存储器存取(方式又称直
19、接存储器存取(direct memory access)方式。)方式。基本思想:在内存和外设之间开辟直接的数据基本思想:在内存和外设之间开辟直接的数据交换通路。交换通路。DMA控制器中除了控制状态寄存器和数据缓冲控制器中除了控制状态寄存器和数据缓冲寄存器外,还包括传送字节计数器、内存地址寄存器外,还包括传送字节计数器、内存地址寄存器等。寄存器等。DMA方式挪用方式挪用CPU的一个工作周期把数据从的一个工作周期把数据从缓冲寄存器中直接送到内存地址寄存器中所指缓冲寄存器中直接送到内存地址寄存器中所指向的内存区域中。向的内存区域中。8.2.3 DMA方式方式DMA控制器可用来代替控制器可用来代替CP
20、U控制内存和控制内存和设备之间进行成批的数据交换。批量数设备之间进行成批的数据交换。批量数据的传送由计数器计数,并由内存地址据的传送由计数器计数,并由内存地址寄存器确定内存地址。寄存器确定内存地址。除了在数据传送开始时需要除了在数据传送开始时需要CPU启动指启动指令和在整个数据块传送结束时需要发中令和在整个数据块传送结束时需要发中断通知断通知CPU进行中断处理之外,不再需进行中断处理之外,不再需要要CPU频繁干涉。频繁干涉。DMA存取方式的结构存取方式的结构DMA控制器CPU内存I/O设备:数据Start控制状态寄存器数据缓冲寄存器启动位中断位int传送字节数计数器内存地址寄存器DMA方式下的
21、数据输入过程方式下的数据输入过程(1)当进程要求设备输入数据时,CPU把准备存放输入数据的内存始址以及要传送的字节数分别送入DMA控制器中的内存地址寄存器和传送字节计数器;另外,还把控制状态寄存器中的中断允许位和启动位置1;从而启动设备开始进行数据输入。(2)发出数据要求的进程进入等待状态,进程调度程序调度其他进程占据CPU;(3)输入设备不断地挪用CPU工作周期,将数据缓冲寄存器中的数据源源不断地写入内存,直到所要求的字节全部传送完毕。(4)DMA控制器在传送字节数完成时通过中断请求线发出中断信号,CPU在接收到中断信号后转中断处理程序进行善后处理。(5)中断处理结束时,CPU返回被中断进程
22、处执行或被调度到新的进程上下文环境中执行。DMA方式的数据传送过程方式的数据传送过程接收到start命令数据入缓冲寄存器传送字节数=0吗?发中断信号,停止I/O操作否是外围设备(a)向外设发start命令内存地址内存始址寄存器传送字节数字节计数器将中断允许位与启动位置1收到中断信号了吗?转中断处理是否CPU(b)当前进程等待,调度其他进程其他进程执行启动设备准备数据改变字节计数器与地址寄存器的内容缓冲寄存器内容入内存DMA方式与中断控制方式的主要区别方式与中断控制方式的主要区别中断方式是在数据缓冲寄存器满之后发中断方式是在数据缓冲寄存器满之后发中断要求中断要求CPU进行中断处理,而进行中断处理
23、,而DMA方方式则是在所要求传送的数据块全部传送式则是在所要求传送的数据块全部传送结束时要求结束时要求CPU进行中断处理。进行中断处理。中断方式的数据传送是在中断处理时由中断方式的数据传送是在中断处理时由CPU控制完成,而控制完成,而DMA方式是在方式是在DMA控控制器的控制下不经过制器的控制下不经过CPU控制完成的。控制完成的。DMA方式的特点方式的特点优点:优点:大大提高了大大提高了CPU利用率利用率不会造成大量外设并发操作时不会造成大量外设并发操作时CPU来不及处理或外设与来不及处理或外设与CPU速度不匹配带来的数据丢失问题。速度不匹配带来的数据丢失问题。局限性:局限性:DMA方式对外设
24、和管理和某些操作仍由方式对外设和管理和某些操作仍由CPU控制。控制。多个多个DMA控制器的同时使用会引起内存地址的冲突并使控制器的同时使用会引起内存地址的冲突并使控制过程进一步复杂化。控制过程进一步复杂化。多个多个DMA控制器同时使用不够经济。控制器同时使用不够经济。8.2.4 通道控制方式通道控制方式通道控制方式与通道控制方式与DMA方式相类似,也是一种以内方式相类似,也是一种以内存为中收,实现设备和内存直接交换数据的控制存为中收,实现设备和内存直接交换数据的控制方式。方式。与与DMA方式的不同点:方式的不同点:在在DMA方式中,数据的传送方向、存放数据的内存始方式中,数据的传送方向、存放数
25、据的内存始址及传送数据块的长度均由址及传送数据块的长度均由CPU控制,而在通道方式控制,而在通道方式中,这些都由通道来控制。中,这些都由通道来控制。DMA方式下,每台设备至少一个方式下,每台设备至少一个DMA控制器,而通道控制器,而通道方式下,一个通道控制多台设备与内存进行数据交换,方式下,一个通道控制多台设备与内存进行数据交换,从而通道方式进一步减轻了从而通道方式进一步减轻了CPU的压力,提高了计算的压力,提高了计算机系统操作的并行度。机系统操作的并行度。通道的定义通道的定义通道是一个独立于通道是一个独立于CPU的专管的专管I/O控制的控制的处理机处理机,它控制设备与内存直接进行数,它控制设
26、备与内存直接进行数据交换。据交换。通道有自己的通道指令,这些指令受通道有自己的通道指令,这些指令受CPU启动,并在操作结束时向启动,并在操作结束时向CPU发出发出中断信号。中断信号。通道方式的基本思想通道方式的基本思想在通道方式中,在通道方式中,I/O控制器中没有传送字控制器中没有传送字节计数器和内存地址寄存器;但多了通节计数器和内存地址寄存器;但多了通道设备控制器和指令执行机构。道设备控制器和指令执行机构。在通道方式下,在通道方式下,CPU只需发出启动指令,只需发出启动指令,指出相应的操作和指出相应的操作和I/O设备,该指令就可设备,该指令就可启动通道并使该通道从内存中调出相应启动通道并使该
27、通道从内存中调出相应的通道指令执行。的通道指令执行。通道指令通道指令通道指令一般包含被交换数据在内存中的位置、通道指令一般包含被交换数据在内存中的位置、传送方向、数据块长度以及被控制的传送方向、数据块长度以及被控制的I/O设备设备的地址信息、特征信息等。的地址信息、特征信息等。通道指令在通道中没有存储部件时存放在内存通道指令在通道中没有存储部件时存放在内存中。中。通道指令的格式一般由操作码、读通道指令的格式一般由操作码、读/写或控制、写或控制、计数段以及内存地址段和结束标志组成。计数段以及内存地址段和结束标志组成。通道指令在内存要求数据时由系统自动生成。通道指令在内存要求数据时由系统自动生成。
28、通道指令通道指令举例举例例:例:write 0 0 250 1850 write 1 1 250 720 上面的两条指令把一个记录的上面的两条指令把一个记录的500个字个字符分别写入从内存地址符分别写入从内存地址1850开始的开始的250个单个单元和从内存地址元和从内存地址720开始的开始的250个单元中。个单元中。其中假定其中假定write操作码后的操作码后的“1”是通道指是通道指令结束的标志,另一个令结束的标志,另一个“1”是记录结束的是记录结束的标志。指令中省略了设备号和设备特征。标志。指令中省略了设备号和设备特征。通道的类型通道的类型通道可以以分时方式同时执行几个通道程通道可以以分时方
29、式同时执行几个通道程序。序。按信息交换方式分为:按信息交换方式分为:字节多路通道:字节多路通道:以字节为单位传送数据,主要以字节为单位传送数据,主要用来连接大量的低速设备,如终端、打印机用来连接大量的低速设备,如终端、打印机数组多路通道:数组多路通道:以块为单位传送数据,具有传以块为单位传送数据,具有传送速率高和能分时操作不同设备等优点,主要送速率高和能分时操作不同设备等优点,主要用来连接中速块设备,如磁带机。用来连接中速块设备,如磁带机。选择通道:选择通道:一次只能执行一个通道指令程序。一次只能执行一个通道指令程序。传送速度高,常用来连接高速设备,以块为单传送速度高,常用来连接高速设备,以块
30、为单位成批传送数据,如磁盘机等。位成批传送数据,如磁盘机等。通道方式的数据传送结构通道方式的数据传送结构CPU内存字节多路通道数组多路通道选择通道I/O控制器终端I/O控制器I/O控制器终端终端I/O控制器I/O控制器I/O控制器磁带磁带磁带I/O控制器I/O控制器磁盘磁盘总线通道控制方式的数据输入过程通道控制方式的数据输入过程(1)当进程要求设备输入数据时,CPU发Start命令指明I/O操作、设备号和对应通道。(2)对应通道接收到CPU发来的启动指令后,读出存放在内存中的通道指令程序,设置对应设备的I/O控制器中的控制状态寄存器。(3)设备根据通道指令要求,把数据送往内存中指定区域。(4)
31、若传送数据结束,I/O控制器通过中断请求线发出中断信号请求CPU做中断处理。(5)中断处理结束后,CPU返回被中断处执行。8.3 中断技术中断技术数据传送控制方式中,除程序直接控制数据传送控制方式中,除程序直接控制方式外,无论采用其他何种方式,都需方式外,无论采用其他何种方式,都需要在设备和要在设备和CPU之间进行通信,由设备之间进行通信,由设备向向CPU发中断信号之后,发中断信号之后,CPU接收相应接收相应的中断信号进行处理。这几种方式的区的中断信号进行处理。这几种方式的区别只是中断处理的次数、数据传送方式别只是中断处理的次数、数据传送方式以及控制指令的执行方式等。以及控制指令的执行方式等。
32、8.3 中断技术中断技术在计算机系统中,除了在计算机系统中,除了I/O中断外,还存中断外,还存在着许多其他的突发事件,如电源掉电,在着许多其他的突发事件,如电源掉电,程序出错等,也会发出中断信号通知程序出错等,也会发出中断信号通知CPU做相应的处理。做相应的处理。8.3.1 中断的基本概念中断的基本概念中断(中断(interrupt):指计算机在执行期间,系统指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,内发生任何非寻常的或非预期的急需处理事件,使得使得CPU暂时中断当前正在执行的程序而转去暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返执行相应的事
33、件处理程序,待处理完毕后又返回原来被中断处理继续执行或调度新的进程执回原来被中断处理继续执行或调度新的进程执行的过程。行的过程。中断源:中断源:引起中断发生的事件引起中断发生的事件中断请求:中断请求:中断源向中断源向CPU发出的请求中断处理发出的请求中断处理的信号的信号。中断响应:中断响应:CPU收到中断请求后转向相应的事收到中断请求后转向相应的事件处理程序称为中断响应。件处理程序称为中断响应。8.3.1 中断的基本概念(续)中断的基本概念(续)禁止中断:禁止中断:当当CPU内部的处理机状态字内部的处理机状态字PSW的的中断允许位被清除,不允许中断允许位被清除,不允许CPU响应中断的情响应中断
34、的情况称为禁止中断。况称为禁止中断。关中断:关中断:PSW的中断允许位被清除。的中断允许位被清除。开中断:开中断:PSW的中断允许位被设置。的中断允许位被设置。开中断和关中断是为了保证某些程序执行的原开中断和关中断是为了保证某些程序执行的原子性,如原语。子性,如原语。中断请求、开中断、关中断等都是由硬件实现中断请求、开中断、关中断等都是由硬件实现的。的。8.3.1 中断的基本概念(续)中断的基本概念(续)中断屏蔽:中断屏蔽:是指在中断请求产生之后,系统用是指在中断请求产生之后,系统用软件方式有选择地封锁部分中断而允许其余部软件方式有选择地封锁部分中断而允许其余部分的中断仍能得到响应。分的中断仍
35、能得到响应。中断屏蔽是通过每一类中断源设置一个中断屏中断屏蔽是通过每一类中断源设置一个中断屏蔽触发器来屏蔽它们的中断请求而实现的。蔽触发器来屏蔽它们的中断请求而实现的。有些中断请求是不能屏蔽甚至也不能禁止,这有些中断请求是不能屏蔽甚至也不能禁止,这些中断具有最高优先级,不管些中断具有最高优先级,不管CPU是否是关中是否是关中断的,只要这些中断请求一旦提出,断的,只要这些中断请求一旦提出,CPU必须必须立即响应。例如,电源掉电事件引发的中断。立即响应。例如,电源掉电事件引发的中断。8.3.2 中断的分类和优先级中断的分类和优先级根据系统对中断处理的需要,操作系统根据系统对中断处理的需要,操作系统
36、一般对中断进行分类并对不同的中断赋一般对中断进行分类并对不同的中断赋予不同的处理优先级,以便在不同的中予不同的处理优先级,以便在不同的中断同时发生时,按轻重缓急进行处理。断同时发生时,按轻重缓急进行处理。根据中断源产生的条件,可把中断分为根据中断源产生的条件,可把中断分为外中断外中断和和内中断内中断。1.中断的分类中断的分类外中断外中断外中断:指来自外中断:指来自CPU和内存外部的中断。和内存外部的中断。外中断包括:外中断包括:I/O中断中断、外部信号中断外部信号中断、各种定时器引起的各种定时器引起的时钟中断时钟中断和调试程序和调试程序引起的引起的调试中断调试中断。外中断在狭意上一般称为中断。
37、外中断在狭意上一般称为中断。1.中断的分类中断的分类内中断内中断内中断:处理机和内存内部产生的中断。内中断:处理机和内存内部产生的中断。内中断一般称为陷阱内中断一般称为陷阱(trap)。内中断包括:内中断包括:程序运算引起的各种错误程序运算引起的各种错误,如地址非法、,如地址非法、校验错、页面失效、存取访问控制错、算术操作溢校验错、页面失效、存取访问控制错、算术操作溢出、数据格式非法、除数为出、数据格式非法、除数为0、非法指令等。、非法指令等。用户程序执行特权指令用户程序执行特权指令;分时系统中的时间片中断;分时系统中的时间片中断;从用户态到核心态的切换从用户态到核心态的切换。2.中断的优先级
38、中断的优先级 按中断源的轻重缓急,按中断源的轻重缓急,OS对不同的中断赋对不同的中断赋予不同的优先级。予不同的优先级。如在如在UNIX系统中,外中断和陷阱的优先级共系统中,外中断和陷阱的优先级共分为分为8级。级。为了禁止中断和屏蔽中断,为了禁止中断和屏蔽中断,CPU的的PSW中也中也设置相应的优先级。设置相应的优先级。如果中断源的优先级高如果中断源的优先级高于于PSW的优先级,则的优先级,则CPU响应该中断源的中断响应该中断源的中断请求,否则请求,否则CPU屏蔽中断源的中断请求。屏蔽中断源的中断请求。中断和陷阱的主要区别中断和陷阱的主要区别(1 1)中断的优先级在系统设计时给定)中断的优先级在
39、系统设计时给定,在系统运行期,在系统运行期间是固定的,而间是固定的,而陷阱的优先级陷阱的优先级则根据执行情况由系统则根据执行情况由系统程序程序动态设定动态设定。(2 2)陷阱通常由)陷阱通常由CPUCPU正在执行的指令引起,而中断则正在执行的指令引起,而中断则是由与现行指令无关的中断源引起;是由与现行指令无关的中断源引起;(3 3)陷阱处理程序是为当前进程提供的服务,而中断)陷阱处理程序是为当前进程提供的服务,而中断处理程序不是为当前进程服务的。处理程序不是为当前进程服务的。(4 4)CPUCPU在执行完一条指令之后,在下一条指令开始在执行完一条指令之后,在下一条指令开始执行之前响应中断,而在
40、一条指令执行中也可以响应执行之前响应中断,而在一条指令执行中也可以响应陷阱。陷阱。(5 5)在有的系统中,陷阱处理程序被规定在各自的进)在有的系统中,陷阱处理程序被规定在各自的进程上下文中执行,而中断处理程序则在系统上下文中程上下文中执行,而中断处理程序则在系统上下文中执行。执行。8.3.3 软中断软中断上面讨论的中断和陷阱都可以看作是硬中断,上面讨论的中断和陷阱都可以看作是硬中断,因为它们都要通过硬件产生相应的中断请求。因为它们都要通过硬件产生相应的中断请求。软中断:通信进程之间用来模拟硬中断的一种软中断:通信进程之间用来模拟硬中断的一种信号通信方式。信号通信方式。软中断与硬中断的相同点:当
41、中断源发中断请软中断与硬中断的相同点:当中断源发中断请求或软中断信号后,求或软中断信号后,CPU或接收进程在或接收进程在适当的适当的时机时机自动进行中断处理或完成软中断信号所对自动进行中断处理或完成软中断信号所对应的功能。应的功能。8.3.3 软中断软中断如果软中断的接收进程是占据处理机的,则与如果软中断的接收进程是占据处理机的,则与中断处理相同,该接收进程在接收到软中断信中断处理相同,该接收进程在接收到软中断信号后将立即转去执行该中断信号所对应的功能。号后将立即转去执行该中断信号所对应的功能。软中断的概念主要来源于软中断的概念主要来源于UNIX系统。系统。在有些系统中,在有些系统中,大部分的
42、陷阱是转化为软中断大部分的陷阱是转化为软中断处理的处理的。由于陷阱主要与当前进程有关,因此,。由于陷阱主要与当前进程有关,因此,如果当前执行指令产生陷阱的话,则向当前执如果当前执行指令产生陷阱的话,则向当前执行进程发出一个软中断信号从而立即进入陷阱行进程发出一个软中断信号从而立即进入陷阱处理程序。处理程序。中中断断处处理理过过程程判断中断响应条件保存被中断现场关中断执行中断处理子程序分析中断原因转中断处理子程序恢复现场开中断返回中断点8.4 缓冲技术缓冲技术外围设备与处理机速度不匹配的问题可外围设备与处理机速度不匹配的问题可以采用设置缓冲区的方法解决。以采用设置缓冲区的方法解决。例:在设置了缓
43、冲区之后,计算进程可例:在设置了缓冲区之后,计算进程可把数据首先输出到缓冲区,然后继续执把数据首先输出到缓冲区,然后继续执行;而打印机则可从缓冲区取出数据慢行;而打印机则可从缓冲区取出数据慢慢打印。慢打印。另外,从减少中断的次数看,也存在引另外,从减少中断的次数看,也存在引入缓冲区的必要性。入缓冲区的必要性。在在DMA方式或通道方式控制数据传送时,方式或通道方式控制数据传送时,如果不划分专用的内存区或专用缓冲器如果不划分专用的内存区或专用缓冲器来存放数据的话,会因为要求数据的进来存放数据的话,会因为要求数据的进程所拥有的内存区不够或存放数据的内程所拥有的内存区不够或存放数据的内存始址计算困难等
44、原因而造成某个进程存始址计算困难等原因而造成某个进程长期占有通道或长期占有通道或DMA控制器及设备,从控制器及设备,从而产生瓶颈问题。而产生瓶颈问题。为了匹配外设与为了匹配外设与CPU之间的处理速度,之间的处理速度,为了减少中断次数和中断处理时间,同为了减少中断次数和中断处理时间,同时也是为了解决时也是为了解决DMA或通道方式时的瓶或通道方式时的瓶颈问题颈问题,在设备管理中需要引入缓冲技,在设备管理中需要引入缓冲技术。术。缓冲的实现方法:缓冲的实现方法:采用专用硬件缓冲器:如缓冲寄存器采用专用硬件缓冲器:如缓冲寄存器在内存划出一块具有在内存划出一块具有n个单元的专用缓冲区,个单元的专用缓冲区,
45、以便存放输入输出的数据。(软件缓冲)以便存放输入输出的数据。(软件缓冲)8.4.2 缓冲的种类缓冲的种类根据系统设置的缓冲区的个数,可把缓根据系统设置的缓冲区的个数,可把缓冲技术分为:冲技术分为:单缓冲单缓冲双缓冲双缓冲多缓冲多缓冲缓冲池缓冲池8.4.2 缓冲的种类缓冲的种类单缓冲单缓冲单缓冲是在设备和单缓冲是在设备和CPU之间设置一个缓之间设置一个缓冲器,当设备和冲器,当设备和CPU交换数据时,先把交换数据时,先把被交换的数据写入缓冲器,需要数据的被交换的数据写入缓冲器,需要数据的设备或设备或CPU从缓冲器取走数据。从缓冲器取走数据。由于缓冲区属临界资源,不允许多个进由于缓冲区属临界资源,不
46、允许多个进程同时对一个缓冲器进行操作,因此设程同时对一个缓冲器进行操作,因此设备之间不能通过单缓冲达到并行操作。备之间不能通过单缓冲达到并行操作。8.4.2 缓冲的种类缓冲的种类双缓冲双缓冲双缓冲可以解决两台外设之间的并行操双缓冲可以解决两台外设之间的并行操作问题。其中一个缓冲器可以作为数据作问题。其中一个缓冲器可以作为数据输入缓冲,另一个可以作为输出缓冲。输入缓冲,另一个可以作为输出缓冲。双缓冲仍然只是设备之间、设备和双缓冲仍然只是设备之间、设备和CPU之间并行操作的简单模型,不能在实际之间并行操作的简单模型,不能在实际系统中应用。系统中应用。实际系统中使用多缓冲或缓冲池。实际系统中使用多缓
47、冲或缓冲池。8.4.2 缓冲的种类缓冲的种类多缓冲和缓冲池多缓冲和缓冲池多缓冲是把多个缓冲区连接起来组成两多缓冲是把多个缓冲区连接起来组成两部分,一部分专门用来输入,另一部分部分,一部分专门用来输入,另一部分专门用来输出。专门用来输出。缓冲池是把多个缓冲区连接起来统一管缓冲池是把多个缓冲区连接起来统一管理,既可用于输入也可用于输出的缓冲理,既可用于输入也可用于输出的缓冲结构。结构。8.4.3 缓冲池的管理缓冲池的管理缓冲池的结构:缓冲池由多个缓冲区组缓冲池的结构:缓冲池由多个缓冲区组成,而一个缓冲区由两部分组成:一部成,而一个缓冲区由两部分组成:一部分用来标识该缓冲器和用于管理的缓冲分用来标识
48、该缓冲器和用于管理的缓冲首部,另一部分是用于存放数据的缓冲首部,另一部分是用于存放数据的缓冲体。体。对缓冲池的管理是通过对每一个缓冲器对缓冲池的管理是通过对每一个缓冲器缓冲首部的管理实现的。缓冲首部的管理实现的。设备号数据块号缓冲器号互斥标识位连接指针缓冲首部:缓冲区队列缓冲区队列系统把各缓冲区按其使用状况连成三种系统把各缓冲区按其使用状况连成三种队列:队列:(1)空白缓冲队列)空白缓冲队列em,其队首指针为,其队首指针为F(em),队尾指针为,队尾指针为L(em);(2)装满输入数据的输入缓冲队列)装满输入数据的输入缓冲队列in,其,其队首指针为队首指针为F(in),队尾指针为,队尾指针为L
49、(in);(3)装满输出数据的输出缓冲队列)装满输出数据的输出缓冲队列out,其,其队首指针为队首指针为F(out),队尾指针为,队尾指针为L(out);缓冲区队列缓冲区队列缓冲区1 缓冲区2 F(em)L(em)缓冲区1 缓冲区m F(in)L(in)缓冲区n F(out)L(out)工作缓冲区工作缓冲区除空白缓冲队列、输入缓冲队列和输出缓冲队列外,除空白缓冲队列、输入缓冲队列和输出缓冲队列外,系统(或用户进程)从这三种队列中申请和取出缓系统(或用户进程)从这三种队列中申请和取出缓冲区,并用得到的缓冲区进行存数、取数操作,结冲区,并用得到的缓冲区进行存数、取数操作,结束后再将缓冲区放入相应的
50、队列。这些缓冲区被称束后再将缓冲区放入相应的队列。这些缓冲区被称为工作缓冲区。为工作缓冲区。在缓冲池中,有在缓冲池中,有4种工作缓冲区:种工作缓冲区:(1)(1)用于收容设备输入数据的收容输入缓冲区用于收容设备输入数据的收容输入缓冲区hinhin;(2)(2)用于提取设备输入数据的提取输入缓冲区用于提取设备输入数据的提取输入缓冲区sinsin;(3)(3)用于收容设备输出数据的收容输出缓冲区用于收容设备输出数据的收容输出缓冲区houthout;(4)(4)用于提取设备输出数据的提取输出缓冲区用于提取设备输出数据的提取输出缓冲区soutsout;缓冲池的工作缓冲区缓冲池的工作缓冲区hin缓冲区1