




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统设备管理1第第9章章 设备管理设备管理操作系统设备管理2设备管理是操作系统的重要组成部设备管理是操作系统的重要组成部分之一。本章主要讨论设备管理的分之一。本章主要讨论设备管理的基本概念,包括中断、缓冲、设备基本概念,包括中断、缓冲、设备分配和控制等。分配和控制等。操作系统操作系统设备管理39.2 数据传送控制方式数据传送控制方式9.3 中断技术中断技术9.4 缓冲技术缓冲技术9.5 设备分配设备分配9.6 I/O进程控制进程控制9.7 设备驱动程序设备驱动程序本章小结本章小结习题习题操作系统操作系统设备管理49.1.1 设备的类别设备的类别9.1.2 设备管理的功能和任务设备管理的功能
2、和任务9.1 引引 言言操作系统操作系统设备管理59.1.1 设备的类别设备的类别在计算机系统中,除了在计算机系统中,除了CPU和内存之外,和内存之外,其他的大部分硬设备称为外部设备。它包其他的大部分硬设备称为外部设备。它包括常用的输入输出设备、外存设备以及终括常用的输入输出设备、外存设备以及终端设备等。本节先从系统管理的角度将各端设备等。本节先从系统管理的角度将各种设备进行简单的分类,然后再介绍设备种设备进行简单的分类,然后再介绍设备管理的主要功能与任务。管理的主要功能与任务。操作系统操作系统设备管理6n 设备的分类设备的分类 按设备的使用特性分,可分为存储设按设备的使用特性分,可分为存储设
3、备、输入输出设备、终端设备以及脱机设备、输入输出设备、终端设备以及脱机设备等,如图备等,如图9.1所示。所示。操作系统设备管理7图图9.1 按使用特性对外部设备的分类按使用特性对外部设备的分类操作系统操作系统设备管理8 按设备的从属关系,可把设备画分为按设备的从属关系,可把设备画分为系统设备和用户设备。系统设备和用户设备。n 系统设备系统设备是指那些在操作系统生成时就是指那些在操作系统生成时就已配置好的各种标准设备。例如,键盘、已配置好的各种标准设备。例如,键盘、打印机以及文件存储设备等。打印机以及文件存储设备等。 用户设备用户设备则是那些在系统生成时没有配则是那些在系统生成时没有配置,而由用
4、户自己安装配置后由操作系统置,而由用户自己安装配置后由操作系统统一管理的设备。例如,网络系统中的各统一管理的设备。例如,网络系统中的各种网卡、图像处理系统的图像设备等。种网卡、图像处理系统的图像设备等。操作系统操作系统设备管理9 除了上述分类方法之外,在有的系统除了上述分类方法之外,在有的系统中还按中还按信息组织方式信息组织方式来画分设备。来画分设备。 例如,例如,UNIXUNIX系统就把外部设备画分为系统就把外部设备画分为字符设备和块设备字符设备和块设备。键盘、终端、打印机。键盘、终端、打印机等以字符为单位组织和处理信息的设备被等以字符为单位组织和处理信息的设备被称为字符设备;而磁盘、磁带等
5、以字符块称为字符设备;而磁盘、磁带等以字符块为单位组织和处理信息的设备被称为块设为单位组织和处理信息的设备被称为块设备。备。操作系统操作系统设备管理109.1.2 设备管理的功能和任务设备管理的功能和任务 设备管理是对计算机输入输出系统的管设备管理是对计算机输入输出系统的管理,是操作系统中最具多样性和复杂性的部理,是操作系统中最具多样性和复杂性的部分。其主要任务是:分。其主要任务是:n 选择和分配输入输出设备以进行数据传选择和分配输入输出设备以进行数据传输操作;输操作; 控制输入输出设备和控制输入输出设备和CPU(或内存)之(或内存)之间交换数据;间交换数据;操作系统操作系统设备管理11n为用
6、户提供友好的透明接口,把用户和设为用户提供友好的透明接口,把用户和设备硬件特性分开,使得用户在编制应用程序备硬件特性分开,使得用户在编制应用程序时不必涉及具体设备,系统按用户要求控制时不必涉及具体设备,系统按用户要求控制设备工作。设备工作。n提高设备和设备之间、提高设备和设备之间、CPUCPU和设备之间,以和设备之间,以及进程和进程之间的并行操作度,以使操作及进程和进程之间的并行操作度,以使操作系统获得最佳效率。系统获得最佳效率。操作系统操作系统设备管理12 为了完成上述主要任务,设备管理程序为了完成上述主要任务,设备管理程序一般要提供下述功能:一般要提供下述功能:(1) (1) 提供和进程管
7、理系统的接口。提供和进程管理系统的接口。 (2) (2) 进行设备分配。进行设备分配。(3) (3) 实现设备和设备、设备和实现设备和设备、设备和CPUCPU等之间等之间的并行操作。的并行操作。(4) (4) 进行缓冲区管理。进行缓冲区管理。操作系统操作系统设备管理139.2 数据传送控制方式数据传送控制方式 设备管理的主要任务之一是控制设备和内设备管理的主要任务之一是控制设备和内存或存或CPU之间的数据传送,本节介绍常用数之间的数据传送,本节介绍常用数据传送控制方式。据传送控制方式。操作系统操作系统设备管理14选择和衡量控制方式有如下几条原则:选择和衡量控制方式有如下几条原则:(1)数据传送
8、速度足够高,能满足用户的需数据传送速度足够高,能满足用户的需要但又不丢失数据;要但又不丢失数据;(2)系统开销小,所需的处理控制程序少;系统开销小,所需的处理控制程序少;(3)能充分发挥硬件资源的能力,使得能充分发挥硬件资源的能力,使得I/O设设备尽量忙,而备尽量忙,而CPU等待时间少。等待时间少。操作系统操作系统设备管理15外围设备和内存之间的常用数据传送控制方外围设备和内存之间的常用数据传送控制方式有式有4种。种。 (1) 程序直接控制方式;程序直接控制方式; (2) 中断控制方式;中断控制方式; (3) DMA方式;方式; (4) 通道方式。通道方式。操作系统操作系统设备管理169.2.
9、1 程序直接控制方式程序直接控制方式9.2.2 中断方式中断方式9.2.3 DMA方式(直接存取方式)方式(直接存取方式)9.2.4 通道控制方式通道控制方式(channel control)操作系统操作系统设备管理179.2.1 程序直接控制方式程序直接控制方式 就是由用户进程来直接控制内存或就是由用户进程来直接控制内存或CPU和外围设和外围设备之间的信息传送。备之间的信息传送。 这种方式的控制者是用户进程。这种方式的控制者是用户进程。 操作系统操作系统设备管理18I/OI/O控制器中的寄存器控制器中的寄存器1.1.控制状态寄存器控制状态寄存器2.2.数据缓冲寄存器数据缓冲寄存器程序直接控制
10、方式的控制流程如图程序直接控制方式的控制流程如图9.29.2。操作系统设备管理19操作系统操作系统设备管理20n程序直接控制方式的缺点:程序直接控制方式的缺点:(1) CPU(1) CPU和外围设备只能串行工作。和外围设备只能串行工作。(2) CPU(2) CPU在一段时间内只能和一台外围设备在一段时间内只能和一台外围设备交换数据信息,从而不能实现设备之间的并交换数据信息,从而不能实现设备之间的并行工作;行工作;操作系统操作系统设备管理21(3) (3) 由于程序直接控制方式依靠测试设备标由于程序直接控制方式依靠测试设备标志触发器的状态位来控制数据传送,因此志触发器的状态位来控制数据传送,因此
11、无法发现和处理由于设备或其他硬件所产无法发现和处理由于设备或其他硬件所产生的错误。生的错误。 程序直接控制方式只适用于那些程序直接控制方式只适用于那些CPUCPU执行速度较慢,而且外围设备较少的系统。执行速度较慢,而且外围设备较少的系统。操作系统操作系统设备管理229.2.2 中断方式中断方式 这种方式要求这种方式要求CPU与设备与设备(或控制器或控制器)之之间有相应的中断请求线,而且在设备控制器间有相应的中断请求线,而且在设备控制器的控制状态寄存器的相应的中断允许位。中的控制状态寄存器的相应的中断允许位。中断方式的传送结构如图断方式的传送结构如图9.3所示。从而,数据所示。从而,数据的输入可
12、按如下步骤操作。的输入可按如下步骤操作。操作系统设备管理23操作系统操作系统设备管理24 (1) 首先,首先,CPU发出发出“Start”指令启动外指令启动外围设备准备数据。该指令同时还将控制状态围设备准备数据。该指令同时还将控制状态寄存器中的中断允许位打开,以便在需要时,寄存器中的中断允许位打开,以便在需要时,中断程序可以被调用执行。中断程序可以被调用执行。 (2) 在进程发出指令启动设备之后,该在进程发出指令启动设备之后,该进程放弃处理机,等待输入完成。进程放弃处理机,等待输入完成。操作系统操作系统设备管理25(3) 当输入完成时,当输入完成时,I/O控制器通过中断请求线向控制器通过中断请
13、求线向CPU发出中断信号。发出中断信号。(4) 在以后的某个时刻,进程调度程序选中提出请在以后的某个时刻,进程调度程序选中提出请求并得到了数据的进程,该进程从约定的内存特定求并得到了数据的进程,该进程从约定的内存特定单元中取出数据继续工作。单元中取出数据继续工作。中断控制方式的处理过程可由图中断控制方式的处理过程可由图9.4表示。表示。操作系统设备管理26图图9.4 中断控制方式的处理过程中断控制方式的处理过程操作系统操作系统设备管理27中断方式的缺点:中断方式的缺点: 在一次数据传送过程中,发生中断次在一次数据传送过程中,发生中断次数较多。这将耗去大量的数较多。这将耗去大量的CPU处理时间。
14、处理时间。 如果外围设备的速度也非常高,则可能如果外围设备的速度也非常高,则可能造成数据缓冲寄存器的数据由于造成数据缓冲寄存器的数据由于CPU来不及来不及取走而丢失。取走而丢失。操作系统操作系统设备管理289.2.3 DMA方式(直接存取方式)方式(直接存取方式)n基本思想是在外围设备和内存之间开辟直基本思想是在外围设备和内存之间开辟直接的数据交换通路。接的数据交换通路。n在在DMA方式中,方式中,I/O控制除了控制状态寄存控制除了控制状态寄存器和数据缓冲寄存器之外,器和数据缓冲寄存器之外,DMA控制器中控制器中还包括传送字节计数器、内存地址寄存器还包括传送字节计数器、内存地址寄存器等。等。n
15、DMA方式窃取或挪用方式窃取或挪用CPU的一个工作周期的一个工作周期把数据缓冲寄存器中的数据直接送到内存把数据缓冲寄存器中的数据直接送到内存地址寄存器所指向的内存区域。地址寄存器所指向的内存区域。操作系统操作系统设备管理29 DMA控制器可用来代替控制器可用来代替CPU控制内控制内存和设备之间进行成批的数据交换。批量存和设备之间进行成批的数据交换。批量数据数据(数据块数据块)的传送由计数器逐个计数,的传送由计数器逐个计数,并由内存地址寄存器确定内存地址。并由内存地址寄存器确定内存地址。 DMA存取方式的结构如图存取方式的结构如图9.5所示。所示。操作系统设备管理30图图9.5 DMA方式的传送
16、结构方式的传送结构操作系统操作系统设备管理31DMA方式的数据输入处理过程如下方式的数据输入处理过程如下: ( (1) CPU1) CPU把准备存放输入数据的内存始址把准备存放输入数据的内存始址以及要传送的字节数分别送入以及要传送的字节数分别送入DMADMA控制器控制器中的内存地址寄存器和传送字节计数器中的内存地址寄存器和传送字节计数器; ; 另外,还把控制状态寄存器中的中断允另外,还把控制状态寄存器中的中断允许位和启动位置许位和启动位置1; 1; 从而启动设备开始进从而启动设备开始进行数据输入。行数据输入。操作系统操作系统设备管理32(2) 发出数据要求的进程进入等待状态,进程发出数据要求的
17、进程进入等待状态,进程调度程序调度其他进程占据调度程序调度其他进程占据CPU。(3) 输入设备不断地挪用输入设备不断地挪用CPU工作周期,将数工作周期,将数据缓冲寄存器中的数据源源不断地写入内存,直据缓冲寄存器中的数据源源不断地写入内存,直到所要求的字节全部传送完毕。到所要求的字节全部传送完毕。操作系统操作系统设备管理33(4) DMA控制器在传送字节数完成时通过中控制器在传送字节数完成时通过中断请求线发出中断信号,断请求线发出中断信号,CPU在接收到中在接收到中断信号后转中断处理程序进行善后处理。断信号后转中断处理程序进行善后处理。(5) 中断处理结束时,中断处理结束时,CPU返回被中断进程
18、处返回被中断进程处执行或被调度到新的进程上下文环境中执执行或被调度到新的进程上下文环境中执行。行。操作系统设备管理34图图9.6 DMA方式的数据传送处理过程方式的数据传送处理过程操作系统操作系统设备管理35DMA方式与中断方式的主要区别:方式与中断方式的主要区别:中断方式时是在数据缓冲寄存器满之后发中中断方式时是在数据缓冲寄存器满之后发中断要求断要求CPU进行中断处理,而进行中断处理,而DMA方式则是在方式则是在所要求转送的数据块全部传送结束时要求所要求转送的数据块全部传送结束时要求CPU进行中断处理。这就大大减少了进行中断处理。这就大大减少了CPU进行中断进行中断处理的次数。处理的次数。中
19、断方式的数据传送是在中断处理时由中断方式的数据传送是在中断处理时由CPU控制完成的,而控制完成的,而DMA方式是在方式是在DMA控制器的控控制器的控制下不经过制下不经过CPU控制完成的。控制完成的。操作系统操作系统设备管理36DMA方式的缺点:方式的缺点: DMA方式对外围设备的管理和某些操作仍由方式对外围设备的管理和某些操作仍由CPU控制。控制。 在大中型计算机中,系统所配置的外设种类在大中型计算机中,系统所配置的外设种类越来越多,数量也越来越大,因而,对外围设备越来越多,数量也越来越大,因而,对外围设备的管理的控制也就愈来愈复杂。的管理的控制也就愈来愈复杂。操作系统操作系统设备管理379.
20、2.4 通道控制方式通道控制方式(channel control)通道控制方式与通道控制方式与DMA方式相类似,也是一方式相类似,也是一种以内存为中心,实现设备和内存直接交种以内存为中心,实现设备和内存直接交换数据的控制方式。换数据的控制方式。操作系统操作系统设备管理38n与与DMADMA方式不同的是:方式不同的是:在在DMADMA方式中,数据的传送方向、存放数方式中,数据的传送方向、存放数据的内存始址以及传送的数据块长度等都据的内存始址以及传送的数据块长度等都由由CPUCPU控制,而在通道方式中,这些都由控制,而在通道方式中,这些都由专管输入输出的硬件专管输入输出的硬件通道来进行控制。通道来
21、进行控制。DMADMA方式时每台设备至少一个方式时每台设备至少一个DMADMA控制器相控制器相比,通道控制方式可以做到一个通道控制比,通道控制方式可以做到一个通道控制多台设备与内存进行数据交换,从而,通多台设备与内存进行数据交换,从而,通道方式进一步减轻了道方式进一步减轻了CPUCPU的工作负担和增的工作负担和增加了计算机系统的并行工作程度。加了计算机系统的并行工作程度。操作系统操作系统设备管理39 由于通道是一个专管输入输出操作控制的由于通道是一个专管输入输出操作控制的硬件,有必要更进一步完整地描述一下通道的硬件,有必要更进一步完整地描述一下通道的定义:定义:通道是一个独立于通道是一个独立于
22、CPU的专管输入输出的专管输入输出控制的处理机,它控制设备与内存直接进行数控制的处理机,它控制设备与内存直接进行数据交换。它有自己的通道指令,这些通道指令据交换。它有自己的通道指令,这些通道指令受受CPU启动,并在操作结束时向启动,并在操作结束时向CPU发中断信发中断信号。号。操作系统操作系统设备管理40 通道指令一般包含有被交换数据在内存中通道指令一般包含有被交换数据在内存中应占据的位置、传送方向、数据块长度以及被应占据的位置、传送方向、数据块长度以及被控制的控制的I/O设备的地址信息、特征信息等,通道设备的地址信息、特征信息等,通道指令在通道中没有存储部件时存放在内存中。指令在通道中没有存
23、储部件时存放在内存中。操作系统操作系统设备管理41 通道指令的格式一般由操作码、读、写或通道指令的格式一般由操作码、读、写或控制、计数段控制、计数段( (数据块长度数据块长度) )以及内存地址段以及内存地址段和结束标志等组成。通道指令在进程要求数和结束标志等组成。通道指令在进程要求数据时由系统自动生成。据时由系统自动生成。 write 0 0 250 1950write 0 0 250 1950 write 1 1 250 720 write 1 1 250 720是两条把一个记录的是两条把一个记录的500500个字符分别写入从内个字符分别写入从内存地址存地址19501950开始的开始的250
24、250个单元和从内存地址个单元和从内存地址720720开始的开始的250250个单元中。其中假定个单元中。其中假定writewrite操作操作码后的码后的“1”1”是通道指令结束标志,而另一个是通道指令结束标志,而另一个“1”1”则是记录结束标志。该指令中省略了设则是记录结束标志。该指令中省略了设备号和设备特征。备号和设备特征。操作系统操作系统设备管理42 一个通道可以以分时方式同时执行几个一个通道可以以分时方式同时执行几个通道指令程序。按照信息交换方式不同,一个通道指令程序。按照信息交换方式不同,一个系统中可设立系统中可设立三种类型的通道,即字节多路通三种类型的通道,即字节多路通道、数组多路
25、通道和选择通道。道、数组多路通道和选择通道。由这三种通道由这三种通道组成的数据传送控制结构如图组成的数据传送控制结构如图9.7所示。所示。操作系统设备管理43图图9.7 通道方式的数据传送结构通道方式的数据传送结构操作系统操作系统设备管理44字节多路通道以字节为单位传送数据,字节多路通道以字节为单位传送数据,它主要用来连接大量的低速设备,如终它主要用来连接大量的低速设备,如终端、打印机等。端、打印机等。数组多路通道以块为单位传送数据,它数组多路通道以块为单位传送数据,它具有传送速率高和能分时操作不同的设具有传送速率高和能分时操作不同的设备等优点。数组多路通道主要用来连接备等优点。数组多路通道主
26、要用来连接中速块设备,如磁带机等。中速块设备,如磁带机等。操作系统操作系统设备管理45 数组多路通道和字节多路通道都可以数组多路通道和字节多路通道都可以分时执行不同的通道指令程序。但是,选分时执行不同的通道指令程序。但是,选择通道一次只能执行一个通道指令程序。择通道一次只能执行一个通道指令程序。所以,选择通道一次只能控制一台设备进所以,选择通道一次只能控制一台设备进行行 I/O操作。不过,选择通道具有传送速操作。不过,选择通道具有传送速度高的特点,因而它被用来连接高速外部度高的特点,因而它被用来连接高速外部设备,并以块为单位成批传送数据。受选设备,并以块为单位成批传送数据。受选择通道控制的外设
27、有磁盘机等。择通道控制的外设有磁盘机等。操作系统操作系统设备管理46通道控制方式的数据输入处理过程可描述通道控制方式的数据输入处理过程可描述如下如下: (1)当进程要求设备输入数据时,当进程要求设备输入数据时,CPU发发Start指令指明指令指明I/O操作、设备号和对应通道。操作、设备号和对应通道。(2)对应通道接收到对应通道接收到CPU发来的启动指令发来的启动指令Start之后,把存放在内存中的通道指令程序之后,把存放在内存中的通道指令程序读出,设置对应设备的读出,设置对应设备的I/O控制器中的控制状控制器中的控制状态寄存器。态寄存器。(3) 设备根据通道指令的要求,把数据设备根据通道指令的
28、要求,把数据送往内存中指定区域。送往内存中指定区域。操作系统操作系统设备管理47(4) 若数据传送结束,若数据传送结束,I/O控制器通过中断请控制器通过中断请求线发中断信号请求求线发中断信号请求CPU做中断处理。做中断处理。(5) 中断处理结束后中断处理结束后CPU返回被中断进程处返回被中断进程处继续执行。继续执行。在在(1)中要求数据的进程只有在调度程序选中要求数据的进程只有在调度程序选中它之后,才能对所得到的数据进行加工处中它之后,才能对所得到的数据进行加工处理。理。 操作系统操作系统设备管理48Channel control procedure:repeatIRMpcpc pc+1exe
29、cute(IR)if require accessing with I/O Devicethen Command(I/O operation,Address of I/O device,channel) fiif I/O Done Interruptthen Call Interrupt processing control fiuntil machine haltInterrupt processing control procedure操作系统操作系统设备管理49n其中,其中,IR代表指令寄存器,代表指令寄存器,pc代表程序计代表程序计数器,而数器,而fi则表示则表示if.then.条件语
30、句的结束。条件语句的结束。操作系统操作系统设备管理509.3 中中 断断 技技 术术9.3.1 中断的基本概念中断的基本概念9.3.2 中断的分类与优先级中断的分类与优先级9.3.3 软中断软中断9.3.4 中断处理过程中断处理过程操作系统操作系统设备管理519.3.1 中断的基本概念中断的基本概念 中断中断(Interrupt)是指计算机在执行期间,是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需系统内发生任何非寻常的或非预期的急需处理事件,使得处理事件,使得CPU暂时中断当前正在执暂时中断当前正在执行的程序而转去执行相应的事件处理程序,行的程序而转去执行相应的事件处理程序,待处理
31、完毕后又返回原来被中断处继续执待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。行或调度新的进程执行的过程。操作系统操作系统设备管理52 引起中断发生的事件被称为中断源。中断引起中断发生的事件被称为中断源。中断源向源向CPU发出的请求中断处理信号称为中发出的请求中断处理信号称为中断请求,而断请求,而CPU收到中断请求后转相应的收到中断请求后转相应的事件处理程序称为中断响应。事件处理程序称为中断响应。操作系统操作系统设备管理53禁止中断禁止中断:在有些情况下,尽管产生了中:在有些情况下,尽管产生了中断源和发出了中断请求,但断源和发出了中断请求,但CPU内部的处理内部的处理机状态字机
32、状态字PSW的中断允许位已被清除,从的中断允许位已被清除,从而不允许而不允许CPU响应中断。响应中断。CPU禁止中断后禁止中断后只有等到只有等到PSW的中断允许位被重新设置后的中断允许位被重新设置后才能接收中断。才能接收中断。 禁止中断也称为关中断,禁止中断也称为关中断,PSW的中断允的中断允许位的设置也被称为开中断。中断请求、关许位的设置也被称为开中断。中断请求、关中断、开中断等都由硬件实现。开中断和关中断、开中断等都由硬件实现。开中断和关中断是为了保证某些程序执行的原子性。中断是为了保证某些程序执行的原子性。操作系统操作系统设备管理54中断屏蔽中断屏蔽:中断屏蔽是指在中断请:中断屏蔽是指在
33、中断请求产生之后,系统用软件方式有选择求产生之后,系统用软件方式有选择地封锁部分中断而允许其余部分的中地封锁部分中断而允许其余部分的中断仍能得到响应。断仍能得到响应。 中断屏蔽是通过每一类中断源设置一个中断中断屏蔽是通过每一类中断源设置一个中断屏蔽触发器来屏蔽它们的中断请求而实现的。屏蔽触发器来屏蔽它们的中断请求而实现的。不过,有些中断请求是不能屏蔽甚至不能禁止不过,有些中断请求是不能屏蔽甚至不能禁止的,也就是说,这些中断具有最高优先级。不的,也就是说,这些中断具有最高优先级。不管管CPU是否是关中断的,只要这些中断请求一是否是关中断的,只要这些中断请求一旦提出,旦提出,CPU必须立即响应。必
34、须立即响应。操作系统操作系统设备管理559.3.2 中断的分类与优先级中断的分类与优先级n根据系统对中断处理的需要,操作系统一根据系统对中断处理的需要,操作系统一般对中断进行分类并对不同的中断赋予不般对中断进行分类并对不同的中断赋予不同的处理优先级,以便在不同的中断同时同的处理优先级,以便在不同的中断同时发生时,按轻重缓急进行处理。发生时,按轻重缓急进行处理。操作系统操作系统设备管理56 根据中断源产生的条件,可把中断分根据中断源产生的条件,可把中断分为外中断和内中断。为外中断和内中断。 外中断外中断时指来自处理机和内存外部的时指来自处理机和内存外部的中断,包括中断,包括I/O设备发出的设备发
35、出的I/O中断、外部信中断、外部信号中断号中断(例如用户键入例如用户键入ESC键键)、各种定时器、各种定时器引起的时钟中断以及调试程序中设置的断引起的时钟中断以及调试程序中设置的断点等引起的调试中断等。外中断在狭义上点等引起的调试中断等。外中断在狭义上一般被称为中断。一般被称为中断。操作系统操作系统设备管理57 内中断内中断主要指在处理机和内存内部产主要指在处理机和内存内部产生的中断。内中断一般称为陷阱生的中断。内中断一般称为陷阱(trap)。它包括程序运算引起的各种错误,如地址它包括程序运算引起的各种错误,如地址非法、校验错、页面失效、存取访问控制非法、校验错、页面失效、存取访问控制错、算术
36、操作溢出、数据格式非法、除数错、算术操作溢出、数据格式非法、除数为零、非法指令、用户程序执行特权指令、为零、非法指令、用户程序执行特权指令、分时系统中的时间片中断以及从用户态到分时系统中的时间片中断以及从用户态到核心态的切换等都是陷阱的例子。核心态的切换等都是陷阱的例子。操作系统操作系统设备管理58 为了按中断源的轻重缓急处理响应中断,为了按中断源的轻重缓急处理响应中断,操作系统对不同的中断赋予不同的优先级。操作系统对不同的中断赋予不同的优先级。 为了禁止中断或屏蔽中断,为了禁止中断或屏蔽中断,CPU的处理的处理机状态字机状态字PSW中也设置有相应的优先级。中也设置有相应的优先级。如果中断源的
37、优先级高于如果中断源的优先级高于PSW的优先级,的优先级,则则CPU响应该中断源的中断请求,反之,响应该中断源的中断请求,反之,CPU屏蔽该中断源的中断请求。屏蔽该中断源的中断请求。操作系统操作系统设备管理59中断和陷阱还有如下主要区别中断和陷阱还有如下主要区别: (1) 陷阱通常由处理机正在执行的现行指令引起,陷阱通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的。而中断则是由与现行指令无关的中断源引起的。(2) 陷阱处理程序提供的服务为当前进程所用,陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的。而中断处理程序提供的服务则不是为
38、了当前进程的。(3) CPU在执行完一条指令之后,下一条指令开在执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应始之前响应中断,而在一条指令执行中也可以响应陷阱。陷阱。操作系统操作系统设备管理609.3.3 软中断软中断 软中断是通信进程之间用来模拟硬中断软中断是通信进程之间用来模拟硬中断的一种信号通信方式。的一种信号通信方式。操作系统操作系统设备管理61 软中断与硬中断相同的地方是:其中断源软中断与硬中断相同的地方是:其中断源发中断请求或软中断信号后,发中断请求或软中断信号后,CPUCPU或接收进或接收进程在适当的时机自动进行中断处理或完成软程在适当的时机自动进行
39、中断处理或完成软中断信号所对应的功能。中断信号所对应的功能。 软中断软中断的概念主要来源于的概念主要来源于UNIX系统。系统。操作系统操作系统设备管理629.3.4 中断处理过程中断处理过程一旦一旦CPU响应中断,转入中断处理程序,响应中断,转入中断处理程序,系统就开始进行中断处理。下面说明中断处系统就开始进行中断处理。下面说明中断处理过程理过程: (1) 首先,首先,CPU检查响应中断的条件是否满检查响应中断的条件是否满足。足。CPU响应中断的条件是响应中断的条件是: 有来自于中断有来自于中断源的中断请求、源的中断请求、CPU允许中断。允许中断。(2) 如果如果CPU响应中断,则响应中断,则
40、CPU关中断,使关中断,使其进入不可再次响应中断的状态。其进入不可再次响应中断的状态。操作系统操作系统设备管理63 (3) 保存被中断进程现场。这些值一般保保存被中断进程现场。这些值一般保存在特定堆栈或硬件寄存器中。存在特定堆栈或硬件寄存器中。 (4) 分析中断原因,调用中断处理子程序。分析中断原因,调用中断处理子程序。在多个中断请求同时发生时,处理优先级最在多个中断请求同时发生时,处理优先级最高的。在系统中,为了处理上的方便,通常高的。在系统中,为了处理上的方便,通常都是针对不同的中断源编制有不同的中断处都是针对不同的中断源编制有不同的中断处理子程序理子程序(陷阱处理子程序陷阱处理子程序)。
41、这些子程序的。这些子程序的入口地址入口地址(或陷阱指令的入口地址或陷阱指令的入口地址)存放在内存放在内存的特定单元中。存的特定单元中。 操作系统操作系统设备管理64(5) 执行中断处理子程序。对陷阱来说,在执行中断处理子程序。对陷阱来说,在有些系统中则是通过陷阱指令向当前执行进有些系统中则是通过陷阱指令向当前执行进程发软中断信号后调用对应的处理子程序执程发软中断信号后调用对应的处理子程序执行。行。 (6) 退出中断,恢复被中断进程的现场或调退出中断,恢复被中断进程的现场或调度新进程占据处理机。度新进程占据处理机。(7) 开中断,开中断,CPU继续执行。继续执行。 操作系统设备管理65图图9.9
42、 中断处理过程中断处理过程操作系统操作系统设备管理66I/O Interrupt processing control:beginunusable I/O Interrupt flagsave status of interrupt programif Input Device i Readythen Call Input Device i Control fiif Output Device i Readythen Call Output Device i Control fiif Data Deliver Donethen Call Data Deliver Done Control fi
43、restore CPU statusreset I/O Interrupt flagendInput Device i Control:Output Device i Control: Data Deliver Done Control: 操作系统操作系统设备管理679.4 缓缓 冲冲 技技 术术9.4.1 缓冲的引入缓冲的引入9.4.2 缓冲的种类缓冲的种类9.4.3 缓冲池的管理缓冲池的管理操作系统操作系统设备管理689.4.1 缓冲的引入缓冲的引入n外围设备和外围设备和CPU的处理速度不匹配的问题是的处理速度不匹配的问题是客观存在的。这限制了和处理机连接的外设客观存在的。这限制了和处理机
44、连接的外设台数,且在中断方式时造成数据丢失。台数,且在中断方式时造成数据丢失。n外围设备和外围设备和CPU处理速度不匹配的问题极大处理速度不匹配的问题极大地制约了计算机系统性能的进一步提高和限地制约了计算机系统性能的进一步提高和限制了系统的应用范围。制了系统的应用范围。操作系统操作系统设备管理69有效降低中断次数。有效降低中断次数。使用使用DMADMA方式或通道方式控制数据传送时,如果方式或通道方式控制数据传送时,如果不画分专用的内存区或专用缓冲器来存放数据的话,不画分专用的内存区或专用缓冲器来存放数据的话,也会因为要求数据的进程所拥有的内存区不够或存也会因为要求数据的进程所拥有的内存区不够或
45、存放数据的内存始址计算困难等原因而造成某个进程放数据的内存始址计算困难等原因而造成某个进程长期占有通道或长期占有通道或DMADMA控制器及设备,从而产生所谓瓶控制器及设备,从而产生所谓瓶颈问题。颈问题。操作系统操作系统设备管理70 为了匹配外设与为了匹配外设与CPU之间的处理速度,为之间的处理速度,为了减少中断次数和了减少中断次数和CPU的中断处理时间,同的中断处理时间,同时也是为了解决时也是为了解决DMA或通道方式时的瓶颈问或通道方式时的瓶颈问题,在设备管理中引入了用来暂存数据的缓冲题,在设备管理中引入了用来暂存数据的缓冲技术。技术。 根据根据I/O控制方式,缓冲的实现方法有两控制方式,缓冲
46、的实现方法有两种,一种是采用专用种,一种是采用专用硬件缓冲器硬件缓冲器,例如,例如I/O控控制器中的数据缓冲寄存器。另一种方法是在内制器中的数据缓冲寄存器。另一种方法是在内存画出一个具有存画出一个具有n个单元的专用缓冲区,以便个单元的专用缓冲区,以便存放输入输出的数据。内存缓冲区又称存放输入输出的数据。内存缓冲区又称软件缓软件缓冲。冲。操作系统操作系统设备管理719.4.2 缓冲的种类缓冲的种类 根据系统设置的缓冲器的个数,可把缓冲根据系统设置的缓冲器的个数,可把缓冲技术分为技术分为单缓冲、双缓冲和多缓冲以及缓冲单缓冲、双缓冲和多缓冲以及缓冲池几种。池几种。 单缓冲是在设备和处理机之间设置一个
47、缓单缓冲是在设备和处理机之间设置一个缓冲器。设备和设备之间不能通过单缓冲达到冲器。设备和设备之间不能通过单缓冲达到并行操作。并行操作。操作系统操作系统设备管理72 解决两台外设、打印机和终端之间的解决两台外设、打印机和终端之间的并行操作问题的办法是设置双缓冲。有了并行操作问题的办法是设置双缓冲。有了两个缓冲器之后,两个缓冲器之后,CPU可把输出到打印机可把输出到打印机的数据放入其中一个缓冲器的数据放入其中一个缓冲器(区区),让打印,让打印机慢慢打印机慢慢打印; 然后,它又可以从另一个为然后,它又可以从另一个为终端设置的缓冲器终端设置的缓冲器(区区)中读取所需要的输中读取所需要的输入数据。入数据
48、。操作系统操作系统设备管理73 双缓冲只是一种说明设备和设备、双缓冲只是一种说明设备和设备、CPU和设备并行操作的简单模型,并不能和设备并行操作的简单模型,并不能用于实际系统中的并行操作。这是因为计用于实际系统中的并行操作。这是因为计算机系统中的外围设备较多,另外算机系统中的外围设备较多,另外,双缓双缓冲也很难匹配设备和处理机的处理速度。冲也很难匹配设备和处理机的处理速度。因此,现代计算机系统中一般使用多缓冲因此,现代计算机系统中一般使用多缓冲或缓冲池结构。或缓冲池结构。操作系统操作系统设备管理74 多缓冲是把多个缓冲区连接起来组成多缓冲是把多个缓冲区连接起来组成两部分,一部分专门用于输入,另
49、一部分两部分,一部分专门用于输入,另一部分专门用于输出的缓冲结构。缓冲池则是把专门用于输出的缓冲结构。缓冲池则是把多个缓冲区连接起来统一管理,既可用于多个缓冲区连接起来统一管理,既可用于输入又可用于输出的缓冲结构。输入又可用于输出的缓冲结构。 无论是多缓冲,还是缓冲池,由于缓无论是多缓冲,还是缓冲池,由于缓冲器是临界资源,在使用缓冲区时都有一冲器是临界资源,在使用缓冲区时都有一个申请、释放和互斥的问题。个申请、释放和互斥的问题。操作系统操作系统设备管理759.4.3 缓冲池的管理缓冲池的管理1. 缓冲池的结构缓冲池的结构 缓冲池由多个缓冲区组成。而一个缓冲缓冲池由多个缓冲区组成。而一个缓冲区由
50、两部分组成区由两部分组成: 一部分是用来标识该缓冲器一部分是用来标识该缓冲器和用于管理的缓冲首部,另一部分是用于存和用于管理的缓冲首部,另一部分是用于存放数据的缓冲体。放数据的缓冲体。对缓冲池的管理是通过对每一个缓冲器的对缓冲池的管理是通过对每一个缓冲器的缓冲首部进行操作实现的。缓冲首部进行操作实现的。操作系统操作系统设备管理76 缓冲首部如图缓冲首部如图9.9所示,它包括设备号、所示,它包括设备号、设备上的数据块号设备上的数据块号(块设备时块设备时)、互斥标识位、互斥标识位以及缓冲队列连接指针和缓冲器号等。以及缓冲队列连接指针和缓冲器号等。系统把各缓冲区按其使用状况连成三种队列系统把各缓冲区
51、按其使用状况连成三种队列:(1) 空白缓冲队列空白缓冲队列em,其队首指针为,其队首指针为F(em),队尾指针为,队尾指针为L(em); (2) 装满输入数据的输入缓冲队列装满输入数据的输入缓冲队列in,其,其队首指针为队首指针为F(in),队尾指针为,队尾指针为L(in); (3) 装满输出数据的输出缓冲队列装满输出数据的输出缓冲队列out,其队首指针为其队首指针为F(out),队尾指针为,队尾指针为L(out)。操作系统操作系统设备管理77图图9.9 缓冲首部缓冲首部操作系统设备管理78图图9.10 缓冲区队列缓冲区队列操作系统操作系统设备管理79除了三种缓冲队列之外,系统除了三种缓冲队列
52、之外,系统( (或用户进或用户进程程) )从这三种队列中申请和取出缓冲区,并用从这三种队列中申请和取出缓冲区,并用得到的缓冲区进行存数、取数操作,在存数、得到的缓冲区进行存数、取数操作,在存数、取数操作结束后,再将缓冲区放入相应的队取数操作结束后,再将缓冲区放入相应的队列。这些缓冲区被称为工作缓冲区。在缓冲列。这些缓冲区被称为工作缓冲区。在缓冲池中,有池中,有4 4种工作缓冲区种工作缓冲区, ,即即: :操作系统操作系统设备管理80(1) (1) 用于收容设备输入数据的收容输用于收容设备输入数据的收容输入缓冲区入缓冲区hin;hin;(2) (2) 用于提取设备输入数据的提取输用于提取设备输入
53、数据的提取输入缓冲区入缓冲区sin;sin;(3) (3) 用于收容用于收容CPUCPU输出数据的收容输出输出数据的收容输出缓冲区缓冲区hout;hout;(4) (4) 用于提取用于提取CPUCPU输出数据的提取输出输出数据的提取输出缓冲区缓冲区soutsout。操作系统设备管理81图图9.11 缓冲池的工作缓冲区缓冲池的工作缓冲区操作系统操作系统设备管理822. 缓冲池管理缓冲池管理对缓冲池的管理由如下几个操作组成对缓冲池的管理由如下几个操作组成: (1) 从三种缓冲区队列中按一定的选取规则取从三种缓冲区队列中按一定的选取规则取出一个缓冲区的过程出一个缓冲区的过程take_buf(type
54、);(2) 把缓冲区按一定的选取规则插入相应的缓把缓冲区按一定的选取规则插入相应的缓冲区队列的过程冲区队列的过程add_buf(type, number);操作系统操作系统设备管理83( 3 ) 供 进 程 申 请 缓 冲 区 用 的 过 程供 进 程 申 请 缓 冲 区 用 的 过 程get_buf(type,number);(4) 供进程将缓冲区放入相应缓冲区队列的供进程将缓冲区放入相应缓冲区队列的过程过程put_buf(type,work_buf)。 参数参数type表示缓冲队列类型,表示缓冲队列类型,number为缓冲为缓冲区号区号work_buf则表示工作缓冲区类型。则表示工作缓冲区
55、类型。操作系统操作系统设备管理84 使用这几个操作,缓冲池的工作过程可描述如下使用这几个操作,缓冲池的工作过程可描述如下: 首先,输入进程调用首先,输入进程调用get_buf(em,number)get_buf(em,number)过程从空过程从空白缓冲区队列中取出一个缓冲号为白缓冲区队列中取出一个缓冲号为numbernumber的空白缓冲的空白缓冲区,将其作为收容输入缓冲区区,将其作为收容输入缓冲区hinhin,当,当hinhin中装满了由中装满了由输 入 设 备 输 入 的 数 据 之 后 , 系 统 调 用 过 程输 入 设 备 输 入 的 数 据 之 后 , 系 统 调 用 过 程pu
56、t_buf(in,hin)put_buf(in,hin)将该缓冲区插入输入缓冲区队列将该缓冲区插入输入缓冲区队列inin中。中。 另外,当进程需要输出数据时,输出进程经过缓冲另外,当进程需要输出数据时,输出进程经过缓冲管理程序调用过程管理程序调用过程get_buf(em,number)get_buf(em,number)从空白缓冲区从空白缓冲区队列中取出一个空白缓冲区队列中取出一个空白缓冲区numbernumber作为收容输出缓冲作为收容输出缓冲区区houthout,待,待houthout中装满输出数据之后,系统再调用过中装满输出数据之后,系统再调用过程程put_buf(out,hout)pu
57、t_buf(out,hout)将该缓冲区插入输出缓冲区队将该缓冲区插入输出缓冲区队列列outout。操作系统操作系统设备管理85对缓冲区的输入数据和输出数据的提取也是由过对缓冲区的输入数据和输出数据的提取也是由过程程get_bufget_buf和和put_bufput_buf实现的。实现的。get_buf(out,number)get_buf(out,number)从输出缓冲队列中取出装从输出缓冲队列中取出装满输出数据的缓冲区满输出数据的缓冲区numbernumber,将其作为,将其作为soutsout。当。当s o u ts o u t 中 数 据 输 出 完 毕 时 , 系 统 调 用 过
58、 程中 数 据 输 出 完 毕 时 , 系 统 调 用 过 程put_buf(em,sout)put_buf(em,sout)将该缓冲区插入空白缓冲队列。将该缓冲区插入空白缓冲队列。get_buf(in,number)get_buf(in,number)则从输入缓冲队列中取出一则从输入缓冲队列中取出一个装满输入数据的缓冲区个装满输入数据的缓冲区numbernumber作为输入缓冲区作为输入缓冲区sinsin,当,当CPUCPU从中提取完所需数据之后,系统调用从中提取完所需数据之后,系统调用过程过程put_buf(em,sin)put_buf(em,sin)将该缓冲区释放和插入空将该缓冲区释放和
59、插入空白缓冲队列白缓冲队列emem中。中。操作系统操作系统设备管理86 对于各缓冲队列中缓冲区的排列以及每次取出对于各缓冲队列中缓冲区的排列以及每次取出和插入缓冲队列区的顺序都应有一定的规则。最和插入缓冲队列区的顺序都应有一定的规则。最简单的方法是简单的方法是FIFO,即先来先出的排列方法。采,即先来先出的排列方法。采用用 FIFO方法,过程方法,过程 put_buf每次把缓冲区插入相每次把缓冲区插入相应缓冲队列的队尾,而过程应缓冲队列的队尾,而过程 get_buf 则取出相应则取出相应缓冲队列的第一个缓冲区,从而缓冲队列的第一个缓冲区,从而get_buf中的第中的第二个参数二个参数 numb
60、er可以省略。而且,采用可以省略。而且,采用 FIFO 方法也省略了对缓冲队列的搜索时间。方法也省略了对缓冲队列的搜索时间。操作系统操作系统设备管理87 过 程过 程 a d d _ b u f ( t y p e , n u m b e r ) 和和 take_buf(type,number)分别用来把缓冲区分别用来把缓冲区number插入插入 type 队列和从队列和从 type队列中取出队列中取出缓冲区缓冲区 number。它们分别被过程。它们分别被过程get_buf和和Put_buf调用,其中调用,其中, take_buf返回所取缓冲返回所取缓冲区区number的指针的指针, 而而ad
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉利学院《材料与器件测试技术》2023-2024学年第二学期期末试卷
- 哈尔滨铁道职业技术学院《虚拟仪器原理及应用》2023-2024学年第二学期期末试卷
- 辽宁师范高等专科学校《J》2023-2024学年第二学期期末试卷
- 桂林理工大学《豫南传统音乐》2023-2024学年第二学期期末试卷
- 河北体育学院《工程数值方法》2023-2024学年第二学期期末试卷
- 保定幼儿师范高等专科学校《影视项目管理》2023-2024学年第二学期期末试卷
- 兰州信息科技学院《灯光与建声设计》2023-2024学年第二学期期末试卷
- 黄山学院《教师口语(普通话)》2023-2024学年第二学期期末试卷
- 长江工程职业技术学院《班主任工作技能》2023-2024学年第二学期期末试卷
- 浙江水利水电学院《课件制作》2023-2024学年第二学期期末试卷
- 青春期的烦恼新专家讲座
- 数字贸易学 课件 第15章 数字支付与数字货币
- 中华民族共同体概论课件专家版6第六讲 五胡入华与中华民族大交融(魏晋南北朝)
- 体外高频热疗的护理
- PFMEA(中英文标准模板)
- 新编酒水知识与调酒
- 水工机械设备维护检修规程
- 采矿工程毕业设计(论文)-赵固二矿180万ta新井设计
- XXX公司工程技术研究中心中心汇报
- 机加工成本分析表标准模板
- 北京市东城区2023-2024学年八年级上学期期末数学测评卷(含答案)
评论
0/150
提交评论