790 likes | 944 Views
操作系统应用与配置. 第 6 章 设备管理. 引入. 操作系统的主要任务: 计算机软硬件资源管理 软件资源管理: CPU 资源管理: 内存资源管理: 其它外设管理: 方便用户使用计算机 用户界面与作业管理:. 文件系统 处理机管理 存储管理 设备管理 作业管理. 1 外设的用途与功能. 按用途可将外设分为以下两大类: 存储设备 是计算机保存信息的装置,读写速度较内存慢,但价格相对便宜,且品种多、容量大。例如:磁盘驱动器、磁带机、光驱等。 输入输出设备
E N D
操作系统应用与配置 第6章 设备管理
引入 • 操作系统的主要任务: • 计算机软硬件资源管理 • 软件资源管理: • CPU资源管理: • 内存资源管理: • 其它外设管理: • 方便用户使用计算机 • 用户界面与作业管理: 文件系统 处理机管理 存储管理 设备管理 作业管理
1 外设的用途与功能 按用途可将外设分为以下两大类: • 存储设备 • 是计算机保存信息的装置,读写速度较内存慢,但价格相对便宜,且品种多、容量大。例如:磁盘驱动器、磁带机、光驱等。 • 输入输出设备 • 是计算机与外界交换信息的设备,主要有键盘、打印机、显示器、扫描仪、数字化仪、绘图仪、声卡、网卡、终端机等。 因此外设的重要功能是:计算机与外界的信息传送。
2 设备管理的主要任务 1)提高设备的利用率 即实现计算机与外界高效的信息传送。但是,需要降低CPU等核心资源的开销。实现这一目标的关键在于CPU与设备,以及设备与设备之间能否并行操作,从而达到充分利用外围设备资源的目的。 2)方便用户使用 即屏蔽设备的物理特性,使用户摆脱具体的物理设备的束缚。实现这一目标的关键在于将用户使用的逻辑设备转换成系统具体的物理设备
缺点 • CPU和外围设备只能串行工作。由于CPU的处理速度要大大高于外围设备的数据传送和处理速度,所以,CPU的大量时间都处于等待和空闲状态。这使得CPU的利用率大大降低。 • 不能实现设备之间的并行工作。由于CPU在一段时间内只能和一台外围设备交换数据信息。 • 无法发现和处理由于设备或其他硬件所产生的错误。因为程序该控制方式只依靠测试设备标志触发器的状态位来控制数据传送。
中断方式的缺点 • 由于I/O控制器的数据缓冲寄存器在装满数据之后将会发生中断,而且数据缓冲寄存通常较小,因此大量数据的传送过程将引发较多次中断,将耗去大量的CPU处理时间。 • 现代计算机系统通常配置有较多各种各样的外围设备。若这些设备通过中断处理方式进行并行操作,则中断次数的急剧增加回造成CPU无法响应中断和出现数据丢失现象。 • 如果外围设备的速度也非常高,则可能造成数据缓冲寄存器的数据由于CPU来不及取走而丢失。
DMA方式与中断方式的主要区别 • 中断方式时是在数据缓冲寄存器满之后发中断要求进行中断处理,而DMA方则是在所要求转送的数据块全部传送结束时要求CPU进行中断处理。这就大大减少了CPU进行中断处理的次数。 • 中断方式的数据传送是在中断处理时由CPU控制完成的,而DMA方式是在DMA控制器的控制下不经过CPU控制完成的。这就排除了因并行操作设备过多时CPU来不及处理或因速度不匹配而造成数据丢失等现象。 DMA 局限性: • DMA方式对外围设备的管理和某些操作仍由CPU控制。 • 多个DMA控制器的同时使用可能会引起内存地址的冲突并使得控制过程进一步复杂化。
通道控制方式与DMA方式的不同 • 在DMA方式中,数据的传送方向、存放数据的内存始址以及传送的数据块长度等都由CPU控制;而在通道方式中,这些都由专管输入输出的硬件——通道来进行控制。 • DMA方式下每台设备至少一个DMA控制器,而通道控制方式可以做到一个通道控制多台设备与内存进行数据交换。 • 从而,通道方式进一步减轻了CPU的工作负担和增加了计算机系统的并行工作程度。
6.1 引言 6.2 数据传送控制方式 6.3 中断技术 6.4 缓冲技术 6.5 设备分配 6.6I/O进程控制 6.7 设备驱动程序
6.1 引言 • 在计算机系统中,除了CPU和内存之外,其他的大部分硬设备称为外部设备。它包括常用的输入输出设备、外存设备以及终端设备等。 • 这些设备种类繁多,特性各异,操作方式的区别也很大,从而使得操作系统的设备管理变得十分复杂。 • 从不同的视角出发,可将I/O设备分成不同类型。
6.1.1 设备类别 • 按使用特性分类 • 按设备的使用特性可将设备分为以下两大类: • 存储设备 • 存储设备又称为外存或辅存,是计算机保存信息的装置,读写速度较内存慢,但价格相对便宜,且品种多、容量大。例如:磁盘驱动器、磁带机、光驱等。 • 输入输出设备 • 输入输出设备是计算机与外界交换信息的设备,主要有键盘、打印机、显示器、扫描仪、数字化仪、绘图仪、声卡、网卡、终端机等。
2.按设备所属关系分类 • 按设备的从属关系,可把设备划分为系统设备和用户设备。 • 系统设备是指那些在操作系统安装时就已配置好的各种标准设备。例如,键盘、打印机以及文件存储设备等。 • 而用户设备则是那些在系统生成时没有配置,而由用户自己安装配置后由操作系统统一管理的设备。例如,网络系统中的各种网卡、实时系统中的A/D、D/A变换器、图像处理系统的图像设备等。
3. 从资源管理的角度分类 • 独占设备一次只能让一道作业或进程独占使用的设备,如打印机等。 • 共享设备可以让几个用户作业同时使用的设备,如磁盘等。 • 虚拟设备用共享设备来模拟独占设备,提供共享功能。如网络打印机。
4. 按信息组织方式分类 • 字符设备以字节为单位传输和处理数据的设备称为字符设备,如打印机、终端、键盘等低速设备。 • 块设备数据块为单位传输传输和处理数据的设备称为块设备。 如磁盘、磁带等高速外存储器等。
6.1.2 设备管理的任务和功能 • 主要任务 • 设备管理的第一个目标是:提高设备的利用率。 • 实现这一目标的关键在于CPU与设备,以及设备与设备之间能否并行操作,从而达到充分利用外围设备资源的目的。 • 设备管理的第二个目标是:方便用户使用。为此,设备管理必须屏蔽设备的物理特性,使用户摆脱具体的物理设备的束缚。设备管理的任务之一就是将用户使用的逻辑设备转换成系统具体的物理设备。这也就是所谓的设备独立性。
2. 设备管理的功能 • 监视系统中所有设备的状态。 • 进行设备分配。按照设备类型和相应的分配算法把设备和其他有关的硬件分配给请求该设备的进程。 • 实现设备和设备、设备和CPU等之间的并行操作。 • 进行缓冲区管理。设备管理程序负责进行缓冲区分配、释放及有关的管理工作。
6.2 数据传送控制方式 • 设备管理的基本功能之一是控制设备和内存或CPU之间的数据传送,本节将介绍几种常用的数据传送控制方式。 • 选择和衡量控制方式有如下几条原则: • 数据传送速度足够高,能满足用户的需要但又不丢失数据; • 系统开销小,所需的控制处理程序少; • 能充分发挥硬件资源的能力,使得I/O设备尽量忙,而CPU等待时间少。
程序直接控制方式 • 中断方式 • DMA方式 • 通道控制方式 • 几种常用的I/O数据传送控制方式:
6.2.1 程序直接控制方式 • 程序直接控制方式(programmed direct control)是由用户进程直接控制内存或CPU和外围设备之间的信息传送。这种方式的控制者是用户进程。 • 基本思想:当用户进程需要输入或输出数据时,通过CPU发出启动设备准备传输数据的启动命令, CPU通过测试外围设备忙/闲状态,决定是否可以输入或输出数据。 • 该方式简单、易于实现,无需多少硬件支持 。主要用于早期CPU速度较慢,设备较少的计算机系统。
缺点 • CPU和外围设备只能串行工作。由于CPU的处理速度要大大高于外围设备的数据传送和处理速度,所以,CPU的大量时间都处于等待和空闲状态。这使得CPU的利用率大大降低。 • 不能实现设备之间的并行工作。由于CPU在一段时间内只能和一台外围设备交换数据信息。 • 无法发现和处理由于设备或其他硬件所产生的错误。因为程序该控制方式只依靠测试设备标志触发器的状态位来控制数据传送。
6.2.2 中断方式 • 引入中断(interrupt)技术之后,程序中断方式被用来控制外围设备和内存与CPU之间的数据传送。 • 这种方式要求CPU与设备之间有相应的中断请求线,而且在设备控制器的控制状态寄存器的相应的中断允许位。这样,I/O设备就有了向CPU反映自身状态的能力。仅当I/O操作正常或异常结束时才中断CPU。 • 中断方式实现了一定程度上的并行操作。例如,行式针打每打印一行需要60ms,CPU只需0.1ms来处理I/O设备的中断,其余59.9ms可以用来处理别的事务。
中断方式数据输入 • 当进程需要数据时,通过CPU发出指令启动外围设备准备数据,并将控制状态寄存器中的中断允许位打开。 • 该进程阻塞,等待输入完成。从而,进程调度程序调度其他就绪进程占据处理机。 • 当输入完成时,I/O控制器通过中断请求线向CPU发出中断信号。CPU在接收到中断信号之后,转向预先设计好的中断处理程序对数据传送工作进行相应的处理。 • 在以后的某个时刻,进程调度程序唤醒等待该数据的进程,该进程从约定的内存特定单元中取出数据继续工作。
中断方式的缺点 • 由于I/O控制器的数据缓冲寄存器在装满数据之后将会发生中断,而且数据缓冲寄存通常较小,因此大量数据的传送过程将引发较多次中断,将耗去大量的CPU处理时间。 • 现代计算机系统通常配置有较多各种各样的外围设备。若这些设备通过中断处理方式进行并行操作,则中断次数的急剧增加回造成CPU无法响应中断和出现数据丢失现象。 • 如果外围设备的速度也非常高,则可能造成数据缓冲寄存器的数据由于CPU来不及取走而丢失。
6.2.3 DMA方式 • 直接存储器存取(direct memory access,DMA)方式的基本思想是在外围设备和内存之间开辟直接的数据交换通路。 • 在DMA方式中,I/O控制器具有比中断方式和程序直接控制方式时更强的功能。 DMA方式的传送结构
2. DMA方式下的数据传输 • ①当进程要求设备输入数据时,CPU把准备存放输入数据的内存始址及要传输的字节数分别送入DMA控制器的内存地址寄存器和传送字节计数器;并将控制/状态寄存器中的中断位和启动位置1,从而启动设备,开始数据输入。 • ② 发出数据输入要求的进程进入阻塞状态, 进程调度程序调度其它进程占有CPU。 • ③ 同时控制器从输入设备读入整块数据, 将数据从内部缓冲区源源不断地送入内存,直至所要求的字节数全部传送完毕。 • ④ DMA控制器在传输完成时通过中断请求线发出中断信号, CPU接到中断信号后转中断处理程序进行相应处理。 • ⑤ 中断处理结束后, CPU返回被中断的进程或去运行重新被调度的进程。
DMA方式与中断方式的主要区别 • 中断方式时是在数据缓冲寄存器满之后发中断要求进行中断处理,而DMA方则是在所要求转送的数据块全部传送结束时要求CPU进行中断处理。这就大大减少了CPU进行中断处理的次数。 • 中断方式的数据传送是在中断处理时由CPU控制完成的,而DMA方式是在DMA控制器的控制下不经过CPU控制完成的。这就排除了因并行操作设备过多时CPU来不及处理或因速度不匹配而造成数据丢失等现象。 DMA 局限性: • DMA方式对外围设备的管理和某些操作仍由CPU控制。 • 多个DMA控制器的同时使用可能会引起内存地址的冲突并使得控制过程进一步复杂化。
6.2.4 通道控制方式 • 为了使CPU从繁杂的I/O工作中解脱出来,现代计算机设立了专门进行I/O数据控制的机构,叫做I/O通道。 • 通道(channel)是一个独立于CPU的专门负责I/O控制的处理机,它控制设备与内存直接进行数据交换。 • 通道有自己的通道指令,这些通道指令受CPU启动,并在操作结束时向CPU发中断信号。 • 因此通道控制方式与DMA方式相类似,也是一种以内存为中心,实现设备和内存直接交换数据的控制方式。
通道方式下的数据传输过程 • 当进程要求设备输入时,CPU发出启动指令,指明I/O操作、设备号和相应通道。 • 对应通道收到CPU发来的启动指令后,读出内存中的通道指令程序、设置对应设备的I/O控制器的控制状态寄存器。 • 设备按通道指令的要求,把数据送往内存指定区域。 • 当传送结束时,I/O控制器发出中断信号请求CPU做中断处理。 • 中断处理结束后,CPU返回到被中断进程处继续执行。
通道控制方式与DMA方式的不同 • 在DMA方式中,数据的传送方向、存放数据的内存始址以及传送的数据块长度等都由CPU控制;而在通道方式中,这些都由专管输入输出的硬件——通道来进行控制。 • DMA方式下每台设备至少一个DMA控制器,而通道控制方式可以做到一个通道控制多台设备与内存进行数据交换。 • 从而,通道方式进一步减轻了CPU的工作负担和增加了计算机系统的并行工作程度。
通道指令程序 • 在通道控制方式中,I/O控制器中没有传送字节计数器和内存地址寄存器;但设置了通道设备控制器和指令执行机构。 • 通道的操作是由专门的通道指令程序来控制的。 • 通道指令一般包含有被交换数据在内存中应占据的位置、数据传送方向、数据块长度以及被控制的I/O设备的地址信息、特征信息等。 • 由于通道中没有主存储器,所以通道指令程序存放在内存中。 • 通道指令程序在进程要求数据时由系统自动生成。
通道指令的分类 • 计算机系统的I/O处理机具有如下三类基本通道操作指令: • 数据传送类, 如读、 写、 反读、 断定(检验设备状态); • 设备控制类, 如控制换页、 磁带反绕等; • 转移类, 即通道程序内部的控制转移。
通道指令的格式 • 通道指令的格式由四个字段组成: • 操作码(0~7) : 表示通道要执行的命令; • 数据主存始址:表示本命令要访问的主存数据区的起始地址; • 标志位(32~47,只使用了 32~36 位,其余置 0):有程序结束标志P和记录结束标志R等; • 字节计数(48~63 位):规定了数据块的长度。 0 7 8 31 32 47 48 63
通道的分类 • 以字节为单位交叉地传送数据,它主要用来连接大量的低速设备,如终端、打印机等。 • 可连接多个子通道,同时控制多台设备。 • 以数据块为单位成批传送数据,每次传送一批数据,但一次只能控制一台设备进行I/O操作。 • 具有传送速度高的特点,因而被用来连接磁盘机等高速外部设备。可连接多多台设备。 • 当完成一台设备的I/O操作后再选择另一台设备。 • 按照信息交换方式不同,一个系统中可设立三种类型的通道: • 字节多路通道 • 数据选择通道 • 数组多路通道 • 以块为单位传送数据,它具有传送速率高和能分时操作不同的设备等优点,是字节多路通道和选择通道的综合。 • 数组多路通道主要用来连接中速块设备,如磁带机等。
6.3 中断技术 6.3.1 中断的基本概念 • 中断(Interrupt)是指计算机在运行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断位置继续执行或调度新的进程执行的过程。 • 引起中断发生的事件被称为中断源。中断源向CPU发出的请求中断处理信号称为中断请求,而CPU收到中断请求后转相应的事件处理程序称为中断响应。
程序状态字PSW • 程序状态字PSW是用来控制指令执行顺序,保留和指示与当前执行程序有关的状态寄存器,其主要内容有:指令地址、条件码、目态/管态、等待/计算、中断码、中断屏蔽位等。 • 不同的计算机硬件类型,对应的PSW格式略有不同。 • 中断响应的过程,就是交换新旧PSW的过程。当中断响应时,将PSW寄存器的当前内容(旧PSW )保存起来,将要执行的程序的PSW内容送入PSW寄存器中。
6.3.2 中断的分类和优先级 • 根据中断源的性质,把中断分为: • 外中断指来自处理机和内存外部的中断,包括I/O设备发出的I/O中断、外部信号中断(例如用户键入ESC)、各种定时器引起的时钟中断以及调试程序中设置的断点等引起的调试中断等。 • 内中断主要指在处理机和内存内部产生的中断。内中断一般称为陷讲(trap)或异常(exception)。它包括机器故障、程序运算错误、用户程序执行特权指令、分时系统中的时间片中断以及从用户态到核心态的切换等都是陷讲的例子。
中断和陷讲的主要区别 • 陷讲通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的。 • 陷讲处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的。 • CPU在执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷讲。 • 在有的系统中,陷讲处理程序被规定在各自的进程现场中执行,而中断处理程序则在系统现场中执行。
中断的处理优先级 • 为了按中断源的轻重缓急处理响应中断,操作系统对不同的中断赋予不同的优先级。例如,在UNIX系统申,外中断和陷讲的优先级共分为8级。 • 为了禁止中断或屏蔽中断,CPU的程序状态字PSW中也设置有相应的优先级。如果中断源的优先级高于PSW的优先级,则CPU响应该中断源的中断请求,反之,CPU屏蔽该中断源的中断请求。 • 各中断源的优先级在系统设计时给定,在系统运行时是固定的。而处理机的优先级则根据执行情况由系统程序动态设定。
中断处理过程 • 首先,CPU检查响应中断的条件是否满足。CPU响应中断的条件是:有来自于中断源的中断请求且CPU允许中断。 • 如果CPU响应中断,则CPU关中断,使其进入不可再次响应中断的状态。 • 保存被中断进程现场。系统必须将当前处理机状态字PSW和程序计数器PC等的值保存在特定堆栈或硬件寄存器中,以便在中断处理结束后能使进程正确地返回到中断点。
分析中断原因,调用中断处理子程序。在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求。分析中断原因,调用中断处理子程序。在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求。 • 执行中断处理子程序。对陷讲来说,在有些系统中则是通过陷讲指令向当前执行进程发软中断信号后调用对应的处理子程序执行。 • 退出中断,恢复被中断进程的现场或调度新进程占据处理机。 • 开中断,CPU继续执行。 中断处理过程