• 沒有找到結果。

操作系统教程 - 万水书苑-出版资源网

N/A
N/A
Protected

Academic year: 2021

Share "操作系统教程 - 万水书苑-出版资源网"

Copied!
25
0
0

加載中.... (立即查看全文)

全文

(1)

第 4 章

设备管理

本章主要内容 l 设备管理概述 l 输入输出系统 l 设备分配与回收 l 设备处理 l 设备管理采用的技术 本章教学目标 l 熟悉设备管理的主要功能 l 掌握输入输出控制的三种方式 l 掌握缓冲技术和 SPOOLing 技术 l 掌握设备的分配 l 熟悉设备的处理

4.1 设备管理概述

设备是指计算机系统中的外部设备,它包括外存、输入设备和输出设备(I/O  设备)。外 存的管理和使用,请参考第 5 章“文件管理” 。本章主要介绍输入设备和输出设备的管理。设 备管理的主要任务是完成用户提出的输入输出请求,为用户分配输入输出设备,提高 CPU 与 输入输出设备的利用率,提高输入输出设备的速度,方便用户使用输入输出设备。本节主要介 绍设备管理的任务、设备管理的主要功能和设备的分类。 4.1.1 设备管理的主要功能 设备管理的主要功能有缓冲管理、设备分配与回收、设备处理和虚拟设备等。缓冲管理 

4

(2)

4 Ch a pter 的任务是管理好各种类型的缓冲区,协调各类设备的工作速度,提高系统的使用效率。它通过 单缓冲区、 双缓冲区或缓冲池等机制来实现。 设备分配与回收的任务是根据用户提出的输入输 出请求,为其分配需要的设备,用户使用完后,回收分配的设备。它通过设备控制表、控制器 控制表、通道控制表和系统设备表记录设备的使用情况,实现设备的分配与回收。设备处理的 任务是实现 CPU 和设备控制器之间的通信,它通过相应的设备处理程序来实现。虚拟设备的 功能是把每次只允许一个进程使用的物理设备,改造为能同时供多个进程共享的设备。 4.1.2 设备的分类 计算机系统配有各种各样的设备,常见的有显示器、键盘、磁盘、光驱、打印机、绘图 仪、鼠标、音箱、话筒等。可以从设备的从属关系、操作特性、设备共享属性或信息交换单位 对外部设备进行分类。  1.按设备的从属关系分类 按设备的从属关系可以把设备分为系统设备和用户设备。系统设备是指操作系统生成时 已经登记在操作系统中的标准设备,如键盘、显示器、打印机等。用户设备是指操作系统生成 时未登记在操作系统中的非标准设备,如绘图仪、扫描仪等。  2.按操作特性分类 按操作特性可以把设备分为存储设备和输入输出设备。存储设备是指用来存放信息的设 备,如磁盘、磁带等。输入输出设备是指向 CPU 传输信息和输出加工处理信息的设备,如键 盘、显示器、打印机等。  3.按设备共享属性分类 按设备共享属性可以把设备分为独享设备、共享设备和虚拟设备。独享设备是指在一段 时间内只允许一个进程访问的设备。 系统一旦把这种设备分配给一个进程后, 便由该进程独占, 直到用完释放其他进程才能使用。多数低速设备都属于此类设备,如打印机。共享设备是指在 一段时间内允许多个进程访问的设备, 如磁盘。 虚拟设备是指通过虚拟技术将一台独占设备变 换为若干台逻辑设备,供若干个进程同时使用的设备,如虚拟打印机。  4.按信息交换单位分类 按信息交换单位可以把设备分为块设备和字符设备。块设备是指处理信息的基本单位是 字符块。一般块的大小为  512B~4KB,如磁盘、磁带等。字符设备是指处理信息的基本单位 是字符,如键盘、显示器、打印机等。

4.2 输入输出系统

输入输出系统是设备管理的主要对象,要想熟悉设备管理,就必须首先了解输入输出系 统。本节主要介绍输入输出系统的结构、输入输出设备控制器、输入输出通道和输入输出系统 的控制方式。

(3)

4 Ch a pter 4.2.1 输入输出系统的结构 对于不同规模的计算机系统,其输入输出系统的结构也有差异。通常把输入输出系统的 结构分成两大类:微机输入输出系统和主机输入输出系统。  1.微机输入输出系统 微机输入输出系统一般采用总线输入输出系统结构,如图 4­1 所示。 图 4­1  总线型输入输出系统结构 从图  4­1  中可以看出,CPU  和主存是直接连接到总线上的。输入输出设备是通过设备控 制器连接到总线上。CPU  并不直接与输入输出设备进行通信,而是与设备控制器进行通信, 并通过它去控制相应的设备。因此,设备控制器是处理器和设备之间的接口。应根据设备的类 型,给设备配置与之相应的控制器,如磁盘控制器、打印机控制器等。  2.主机输入输出系统 当主机所配置的输入输出设备较多时,特别是配有较多的高速外设时,采用总线型输入 输出系统结构会加重 CPU 与总线的负担。因此,在这样的输入输出系统中不宜采用单总线结 构,而是增加一级输入输出通道。引入通道的目的是建立独立的 I/O 操作,使得不仅数据传输 独立于 CPU,数据的传输控制也尽量独立于 CPU。引入通道后,CPU 只需向通道发送一条 I/O  指令,其他工作都由通道完成,通道工作结束后才向 CPU 发一个中断信号。具有通道的输入 输出系统结构如图 4­2 所示。 图 4­2  具有通道的输入输出系统结构  CPU  存储器 磁盘 控制器 打印机 控制器 其他 控制器 磁盘驱动器 打印机 系统总线 设备 1  设备 2  设备 3  设备 4  设备 5  主机  I/O 通道 1  I/O 通道 2  控制器 1  控制器 2  控制器 3

(4)

4 Ch a pter 其中,输入输出系统共分为  4  级:最低级为输入输出设备,次低级为设备控制器,次高 级为输入输出通道,最高级为主机。一个通道可以控制一个设备控制器或多个设备控制器,而 一个设备控制器也可以控制一个设备或多个设备。 4.2.2 设备控制器  1.设备控制器的概念 设备控制器是 CPU 与外围设备之间的接口,是一个可编址设备,每一个地址对应一个设 备。它接收从 CPU 发来的命令,并去控制输入输出设备的工作,使 CPU 从繁杂的设备控制事 务中解脱出来,提高 CPU 的使用效率。 设备控制器一般分成两大类:一类是用于控制字符设备的控制器;另一类是用于控制块 设备的控制器。在微型机和小型机中,设备控制器一般都是做成电路板的形式,插入主板的总 线插槽(也叫扩展槽)内。所以,它们俗称为“卡” ,如显示卡、磁盘控制卡、网卡、声卡以 及其他各种外设的适配卡。有些控制器可以处理两个、四个或八个同类设备。  2.设备控制器的功能 设备控制器实现设备与 CPU 的通信,一般具有以下功能: (1)接收和识别命令。接收和识别由 CPU 发送来的各种命令,并对这些命令进行译码。 为此,在控制器中应设置相应的控制寄存器,用来存放接收的命令和参数,并对所接收的命令 进行译码。 (2)交换数据。实现 CPU 与控制器、控制器与设备之间的数据交换。对于前者,是通过 数据总线,由 CPU 并行地把数据写入控制器,或从控制器中并行地读出数据;对于后者是设 备将数据输入到控制器,或从控制器传送给设备。为此,在控制器中需要设置数据寄存器。 (3) 了解和报告设备状态。 在控制器中应设立一个状态寄存器用于记录设备的各种状态, 以供 CPU 使用。例如,仅当该设备处于发送就绪状态时,CPU 才能启动控制器从设备中读出 数据。为此,在控制器中应设置一个状态寄存器,用其中的每一位来反映设备的某一种状态。 当 CPU 将该寄存器的内容读入后,便可以了解该设备的状态。 (4)识别地址。系统为每个设备配置一个地址,设备控制器要能识别这些地址。此外, 为使 CPU 能向寄存器中写入数据,或从寄存器中读取数据,这些寄存器应具有唯一的地址。  3.设备控制器的组成 由于设备控制器处于 CPU 与设备之间,它既要与 CPU 通信,又要与设备通信,还应具有 按照 CPU 发来的命令去控制设备工作的功能。因此,现有的大多数控制器都是由以下三部分 组成的,如图 4­3 所示。 (1)CPU 与设备控制器的接口。该接口用于实现  CPU 与设备控制器之间的通信。共有 三类信号线:数据线、地址线和控制线。 (2) 设备控制器与设备的接口。 控制器中的输入输出逻辑根据处理器发送来的地址信号, 选择一个设备接口。一个设备接口连接一台设备。

(5)

4 Ch a pter 图 4­3  设备控制器的组成 (3)输入输出逻辑。输入输出逻辑用于实现对输入输出设备的控制。它通过一组控制线 与处理器交互, 处理器利用该逻辑向控制器发送输入输出命令; 输入输出逻辑对收到的命令进 行译码。每当 CPU 要启动一个设备时,一方面将启动命令发送给控制器,另一方面又同时通 过地址线把地址发送给控制器, 由控制器的输入输出逻辑对收到的地址进行译码, 再根据译出 的命令对选择的设备进行控制。 4.2.3 输入输出通道  1.输入输出通道的概念 输入输出通道是独立于 CPU 的专门负责输入输出工作的处理器。它控制设备与内存直接 进行数据交换,中央处理器可以做相应的计算操作,从而使系统获得 CPU 与外设的并行处理 能力。通道有自己的指令系统(包含数据传送指令和设备控制指令),能按照指定的要求独立 地完成输入输出操作。但 I/O 通道又与一般处理机不同,主要表现在两个方面:一方面是其指 令类型单一,所能执行的指令主要局限于与 I/O 操作有关;另一方面是通道没有自己的内存, 通道指令是放在主机的内存中的,即通道与 CPU 共享内存。  2.输入输出通道的分类 输入输出通道是用于控制外围设备的。由于外围设备的类型较多,且其传输速率相差较 大,因而也使通道具有多种类型。根据信息交换方式的不同,把通道分成三种类型:字节多路 通道、数据选择通道和数组多路通道。 (1)字节多路通道。字节多路通道通常都含有许多非分配型子通道,其数量可以从几十 到数百个,每一个子通道连接一台输入输出设备,这些子通道按时间片轮转方式共享主通道, 如图 4­4 所示。 当第一个子通道控制其输入输出设备完成一个字节的交换后, 便立即腾出字节多路通道 (主 通道),让给第二个子通道使用;当第二个子通道也交换完一个字节后,又同样把主通道让给第 三个子通道;依此类推。当所有子通道轮转一周后,又返回来由第一个子通道去使用字节多路 通道。这样,只要字节多路通道扫描每个子通道的速率足够快,而连接到子通道上的设备的速 率又不是太高时,也就是,通过字节多路通道来连接低速或中速设备时,便不会丢失信息。  CPU 与设 备控制器 的接口  I/O  逻辑 控制器与 设备接口 控制器与 设备接口 信号线 信号线 信号线 …

(6)

4 Ch a pter 图 4­4  字节多路通道示意图 (2)数据选择通道。数据选择通道可以连接多台高速设备,但是,由于它只含有一个分 配型子通道,在一段时间内只能执行一个通道程序,控制一台设备进行数据传送,致使当某台 设备占用了该通道后, 便一直由它独占 (即使无数据传送, 通道被闲置也不允许其他设备利用) , 直至该设备传送完毕后释放该通道。 数据选择通道虽然有很高的传输速率, 但它每次只允许一 个设备传输数据。所以,这种通道利用率很低。 (3)数组多路通道。数组多路通道是将数据选择通道传输速率高和字节多路通道各子通 道(设备)分时并行操作的优点相结合,而形成的一种新通道。它含有多个非分配型子通道, 因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率。所以,该通道被 广泛地用于连接多台高、中速的外围设备,其数据传送是按数组方式进行的。 4.2.4 输入输出系统的控制方式 输入输出系统的控制方式,又称 I/O 控制方式,是指 CPU 何时、怎样去驱动外设,如何 控制外设与主机之间的数据传递。随着计算机技术的发展,输入输出控制方式也在不断发展, 先后出现了四种控制方式:程序直接控制方式、中断控制方式、直接存储器存取控制方式和通 道控制方式。  1.程序直接控制方式 程序直接控制方式也称为“忙-等待”方式,即在一个设备的操作没有完成时,控制程 序一直检测设备的状态, 直到该操作完成才能进行下一个操作。 程序直接控制方式的步骤如下: (1)当用户需要输入数据时,由处理器向设备控制器发出一条输入输出指令,启动设备 进行输入。 在设备输入数据期间, 处理器通过循环执行测试指令不间断地检测设备状态寄存器 的值,当状态寄存器的值显示设备输入完成时,处理器将数据寄存器中的数据取出,送入主存 指定的存储单元,然后再启动设备去读取下一个数据。 (2)当用户进程需要向设备输出数据时,也必须同样发出启动命令启动设备输出,并等 待输出操作完成。 由于 CPU 的工作速度远远高于外设, 导致 CPU 的绝大部分时间都处于等待外设完成数据 输入输出的循环测试中,无法实现 CPU 和外设的并行工作,造成对 CPU 资源的极大浪费,整 控制器 1  控制器 2  控制器 3  控制器 4  控制器 n  子通道 1  子通道 2  子通道 3  子通道 4  子通道 n  设备 1  设备 2  设备 3  设备 4  设备 n  …

(7)

4 Ch a pter 个计算机系统的效率都很低下。此外,由于没有中断机制,外设(或其他硬件)如果出现故障,  CPU 也无法知道。所以,程序直接控制方式的特点是工作过程简单、CPU 的利用率低。程序 直接控制方式适用于早期无中断的计算机系统,目前已经不再使用。  2.中断控制方式 中断控制是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件, 使得 CPU 暂时中止当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返 回原来被中止处继续执行或调度新的进程执行的过程。 现代计算机系统都引入了中断机构, 因 此,对于输入输出设备的控制大都由相应的中断处理程序完成。 以键盘输入为例,在中断控制方式下,数据的输入过程如下: (1)需要输入数据的进程,通过 CPU 发出启动指令,把启动位和中断允许位为 1 的控制 字写入键盘控制寄存器中,启动键盘。当中断允许位为 1 时,中断程序可以被调用。 (2) 在进程发出指令启动设备之后, 该进程放弃 CPU 进入等待状态, 等待键盘输入完成。 从而,进程调度程序调度其他就绪进程使用 CPU。 (3)键盘启动后,将数据输入键盘控制器的数据寄存器,当数据寄存器装满后,键盘控 制器通过中断请求线向 CPU 发出中断信号。 (4)CPU 在接收到中断信号后,暂停正在进行的工作,转向设备中断处理程序。设备中 断处理程序将输入数据寄存器中的数据传输到某一特定主存单元中,给要求输入的进程使用。 同时,唤醒等待输入完成的那个进程,再返回到被中断的进程继续执行。 (5)在以后的某个时刻,进程调度程序选中提出请求输入的进程,该进程从特定的主存 单元中取出所需的数据继续工作。 中断控制方式中,CPU 不必循环测试、等待外设,仅仅当接到中断请求时才花费极短的时 间去处理中断,与程序直接控制方式相比,CPU 的利用率大大提高。但是,每当数据充满数据 寄存器时,I/O 设备就要通过其控制器向 CPU 发送一次中断请求,如果连续传送一块较大的数 据块,则需要经过多次中断,这样 CPU 会因为过于频繁的接收中断请求而导致效率降低。 中断方式一般用于低速字符设备,如键盘、打印机、低速 MODEM 等。而对于高速外设 的访问则应采用直接存储器访问方式。  3.直接存储器存取控制方式 采用中断控制方式,数据的输入和输出是以字节为单位进行的。每传送一个字节的数据, 控制器就向 CPU 请求中断一次,使 CPU 在数据传送时仍然处于忙碌状态。这样就产生了直接 存储器访问(Direct Memory Access,DAM)控制方式。  DMA 访问方式在外部设备和内存之间建立了直接的数据通路,即外设和内存之间可直接 读写数据。数据传送的基本单位是数据块,整块数据的传送由 DMA 控制器完成(与一般的设 备控制器相比, DMA 控制器增加了字节计数器、 内存地址寄存器)。 在 DMA 控制器的作用下, 设备和主存之间可以成批地进行数据交换,而不用 CPU 的干涉,仅在一个或多个数据块传送 的开始和结束时,才需要 CPU 进行处理。

(8)

4 Ch a pter 以数据输入为例,DMA 方式的处理过程如下: (1)当进程要求设备输入一批数据时,CPU 将设备存放输入数据的主存始址以及要传送 的字节数分别送入 DMA 控制器中的地址寄存器和传送字节计数器中;另外,将中断位和启动 位置为 1,以启动设备开始进行数据输入并允许中断。 (2)发出数据要求的进程进入等待状态,进程调度程序调度其他进程占据 CPU。 (3)输入设备不断地挪用 CPU 工作周期,将数据寄存器中的数据源源不断地写入主存, 直到所要求的字节全部传送完毕。 (4)DMA 控制器在传送字节数完成时,通过中断请求线发出中断信号,CPU 收到中断 信号后转去执行中断处理程序,唤醒等待输入完成的进程,并返回被中断的程序。 (5)在以后的某个时刻,进程调度程序选中提出请求输入的进程,该进程从指定的主存 始址取出数据做进一步处理。 采用直接存储器访问控制方式,数据的传送方向、存放数据的主存始址及传送数据的长度等 都由 CPU 控制,具体的数据传送由 DMA 控制器负责,每台设备需要配一个 DMA 控制器,这样 输入输出数据传输速度快,CPU 负担少。直接存储器存取控制方式适用于块设备的数据传输。 

4.通道控制方式

采用 DMA 控制方式,数据的输入和输出是以数据块为单位进行的。每传送一个数据块的 数据, DMA 控制器就向 CPU 请求中断一次。这样虽然比中断方式减少了对 CPU 的中断次数, 但是,当数据量较大时,仍需要  CPU  发出多次输入/输出指令,来完成数据的传递。能否让  CPU 发出一次输入/输出指令,就可以完成一组数据块的传递呢?由此产生了通道控制方式。 通道是比 DMA 控制器功能更强的一种硬件,具有自己的一套通道指令,一个通道相当于 一个专用的 I/O 处理机,可以控制一台或者几台外部设备的控制器,进一步提高了外设的并行 程度。CPU  只需要发出启动指令,指出通道相应的操作和输入输出设备,该指令就可以启动 通道并使该通道从内存中调出相应的通道指令执行,完成一组数据块的输入/输出。 以数据输入为例,通道控制方式的处理过程如下: (1)当进程要求输入数据时,CPU 发出启动指令指明输入输出操作、设备号和对应的通道。 (2)对应通道接收到 CPU 发来的启动指令后,把存放在主存中的通道指令程序读出,并 执行通道程序,控制设备将数据传送到主存中指定的区域。 (3)若数据传输结束,则向  CPU 发出中断请求。CPU 收到中断信号后转去执行中断处 理程序,唤醒等待输入完成的进程,并返回被中断的程序。 (4)在以后的某个时刻,进程调度程序选中提出请求输入的进程,该进程从指定的主存 始址取出数据做进一步处理。 通道控制方式是 DMA 方式的发展,它进一步减少了 CPU 的干预,即把以一个数据块的 读写为单位的干预,减少为以一组数据块的读写为单位的干预。同时可以实现  CPU、通道和 输入输出设备三者之间的并行操作, 从而更有效地提高整个系统资源的利用率。 通道控制方式 适用于现代计算机系统中的大量数据交换。

(9)

4 Ch a pter

4.3 设备分配与回收

当进程向系统提出输入输出请求之后,设备分配程序将按照一定的分配策略为其分配所 需要的设备。同时还要分配相应的控制器和通道,以保证 CPU 与设备之间的通信。本节主要 介绍设备分配中采用的数据结构、设备分配应考虑的因素、设备的分配、设备的回收和对设备 分配程序的改进。 4.3.1 设备分配中的数据结构(设备信息描述) 为了实现对设备的管理和控制,需要了解系统中所有设备的基本情况,因此需要建立一 些数据结构以记录设备的相关信息。为了适应不同的计算机系统,除了分配的设备,可能还包 含该设备相应的通道和控制器。为此,设备分配需要采用四种数据结构:设备控制表(DCT)、 控制器控制表(COCT)、通道控制表(CHCT)和系统设备表(SDT)。设备分配的数据结构 如图 4­5 所示。 图 4­5  系统设备表、设备控制表、控制器控制表和通道控制表  1.设备控制表 就像进程控制块 PCB 一样,系统为每台设备配置一张设备控制表(Device Control Table,  DCT) ,用于记录设备的特性及与输入输出控制器连接的情况,一般在系统生成时或与该设备 设备类 设备标识符 指向设备控制表指针 驱动程序入口 系统设备表 设备类型 设备标识符 设备状态:忙/闲 指向控制器表指针 重复执行次数或时间 设备队列的队首指针 设备控制表 控制器标识符 控制器状态:忙/闲 与控制器连接的通道表指针 控制器队列的队首指针 控制器队列的队尾指针 控制器控制表 通道标识符 通道状态:忙/闲 与通道连接的控制器表首址 通道队列的队首指针 通道队列的队尾指针 通道控制表

(10)

4 Ch a pter 连接时创建。设备控制表中的主要内容包括设备标识符、设备类型、设备状态、设备等待队列 指针、输入输出控制器指针、设备相对号、占用作业名等。其中,设备状态用来表示设备是忙 还是闲, 设备等待队列指针指向等待使用该设备的进程组成的等待队列, 输入输出控制器指针 指向与该设备相连接的输入输出控制器。 设备标识符也称为设备绝对号。它是指计算机系统对每台设备的编号。用户对每类设备 的编号称为设备相对号,也称为设备类号。用户总是用设备的相对号提出使用设备的请求,操 作系统为用户分配具体设备时就建立了“绝对号”与“相对号”的对应关系。这样,操作系统 根据用户的使用要求,就知道应该启动哪台设备。  2.控制器控制表

系统为每个控制器配置了一张控制器控制表(Controller  Control  Table,COCT) ,以反映 控制器的使用状态以及与通道的连接状况等。其内容包括控制器标识符、控制器的状态、与控 制器连接的通道表指针、控制器队列的队首指针、通道队列的队尾指针等。其中与控制器连接 的通道表指针指向该控制器的通道控制表。  3.通道控制表 系统为每个通道配置一张通道控制表(Channel  Control Table,CHCT) ,以反映通道的使 用状态。其内容包括通道标识符、通道状态、等待获得该通道的进程等待队列指针等。只有在 通道控制方式下,通道控制表才存在。  4.系统设备表 系统设备表(System Device Table,SDT)也称为设备类表,整个系统配置一张,存放了 系统中所有设备信息。 它记录已被连接到系统中的所有物理设备的情况, 每个物理设备占一个 表目,包括设备类型、拥有设备台数、现存设备台数、设备控制表指针等。其中设备控制表指 针指向该设备对应的设备控制表。 这几张表的关系是,在系统设备表中有指向设备控制表的指针,在设备控制表中有指向 该设备控制器控制表的指针,在控制器控制表中有指向与该控制器连接的通道控制表的指针。 系统就是通过这种关系进行设备的分配与回收的。 4.3.2 设备分配应考虑的因素 在多道程序设计的系统环境中,多个进程会产生对某类设备的竞争问题,系统在进行设 备分配时应考虑设备的使用性质、设备的分配算法、设备分配的安全性和设备的独立性。  1.设备的使用性质 按照设备自身的使用性质,可以采用以下三种不同的分配方式:独占分配、共享分配、 虚拟分配。独占分配适用于大多数低速设备,如打印机。共享分配适用于高速设备,如磁盘。 虚拟分配适用于虚拟设备。根据设备的使用性质来决定一台设备可以分给几个进程。  2.设备的分配算法 设备的分配算法主要是确定把设备分给哪个进程。系统通常采用的设备的分配算法有先

(11)

4 Ch a pter 来先服务和优先权两种。 (1)先来先服务算法。根据进程发出请求的先后顺序,把这些进程排成一个设备请求队 列,设备分配程序总是把设备分配给队首进程。 在 Windows 系统中,如果有多个文档申请打印,系统会将所有文档按照提出请求的顺序 排列,放到打印队列中,然后依次进行打印输出。 (2)优先权算法。它是按照进程的优先权的高低进行设备分配,谁的优先权高就先把设 备分给谁,对优先权相同的按照先请求先服务的算法排队。  3.设备分配的安全性 设备分配的安全性是指在设备分配中应防止发生进程的死锁。设备分配的安全性采用的 方法有静态分配策略和动态分配策略,它们可以防止进程死锁。 (1)静态分配策略。静态分配策略是在作业级进行的,用户作业开始执行前,由系统一 次分配给该作业所要求的全部设备、控制器和通道,直到该作业撤消为止。由于静态分配破坏 了产生死锁的“部分分配”条件,因而不会出现死锁,但其缺点是设备利用率低。 (2)动态分配策略。动态分配策略是在进程执行过程中,根据执行的需要所进行的设备 分配。当进程需要设备时,通过系统调用命令向系统提出设备请求,由系统按照事先规定的算 法给进程分配所需要的设备、控制器和通道,用完以后立即释放。动态分配提高了设备的利用 率,但是如果分配不当,则会造成进程死锁。 采用动态分配策略时,又分两种情况:①每当进程发出输入输出请求后便立即进入阻塞 状态,直到所提出的输入输出请求完成才被唤醒。这种情况,设备分配是安全的,但是,进 程推进缓慢。②允许进程发出输入输出请求后仍继续执行,且在需要时又可以发出第二个输 入输出请求,第三个输入输出请求,……,仅当进程所请求的设备已被另一个进程占用时才 进入阻塞状态。这样一个进程可以同时操作多个设备,从而使进程推进迅速,但是,有可能 产生死锁。  4.设备的独立性 用户编程时,不用关心系统都配置了哪些设备,也不需要了解各种设备的特性,只要按 照惯例为所用的设备起个逻辑名字,称为逻辑设备名。 系统为了能识别全部外设,给每台外设分配一个唯一不变的名字,称为物理设备名。 设备的独立性又称设备无关性,是指用户在编制程序时所使用的设备与实际使用的设备 无关。 用户进程以逻辑设备名来请求使用某类设备时, 系统将在该类设备中根据设备的使用情 况,将任一台合适的物理设备分配给该进程,而在进程实际执行时使用物理设备名,它们之间 的关系类似存储管理中的逻辑地址和物理地址的关系。 4.3.3 对设备分配程序的改进 以上设备分配程序有两个特点:①进程是以物理设备名来提出输入输出请求的。②系统 采用的是单通路的输入输出系统结构。这样的系统容易产生“瓶颈”现象。为此,对设备分配

(12)

4 Ch a pter 程序做以下改进: (1)增加设备的独立性。进程应以逻辑设备名请求输入输出。系统首先根据系统设备表 找到第一个该类设备的设备分配表,若该设备忙,则查找第二个该类设备的设备分配表,仅当 所有该类设备都忙时,才把进程挂在该类设备的等待队列上。这样通过增加设备的独立性,提 高了设备分配的安全性。 (2)考虑多通路情况。系统采用多通路的输入输出系统结构,如图 4­6 所示。即一个设 备可以由多个控制器控制,一个控制器可以由多个通道控制(即增加图 4­6 中的虚线部分)。 这样,可以防止系统出现“瓶颈”现象。也就是对控制器和通道的分配,同样经过几次反复, 只要有一个控制器或通道可用,系统就可以把它分配给进程。这样,就增加了分配控制器和通 道的可能性,提高了设备分配的效率。 图 4­6  多通路输入输出系统

4.4 设备处理

设备处理的任务是把上层软件的抽象要求变为具体要求发送给设备控制器,启动设备; 另外, 将设备控制器发来的信号传送给上层软件。 操作系统的设计者把与物理设备有关的软件 部分独立出来,构成设备处理程序,也称为设备驱动程序。它是输入输出进程与设备控制器之 间的通信程序,相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作, 假如某设备的驱动程序未能正确安装,便不能正常工作。因此,设备驱动程序被誉为“硬件的 灵魂” 。本节主要介绍设备驱动程序的功能和特点,以及设备驱动程序的处理过程。 4.4.1 设备驱动程序的功能和特点  1.设备驱动程序的功能 设备驱动程序的主要功能有以下几个:一是把抽象要求转化为具体要求;二是检查用户 输入输出请求的合法性,了解输入输出设备的状态,传递有关参数,设置设备的工作方式;三 是发出输入输出命令,启动分配到的输入输出设备,完成指定的输入输出操作;四是及时响应 设备 1  设备 2  设备 3  设备 4  通道 2  通道 1  控制器 1  控制器 2  主 机

(13)

4 Ch a pter 由控制器或通道发来的中断请求, 并根据其中断类型调用相应的中断处理程序进行处理; 五是 对设置有通道的计算机系统,驱动程序还应根据用户的输入输出请求,自动地构成通道程序。  2.设备处理的方式 设备处理方式有三类:一是为每一类设备设置一个进程,专门执行这类设备的输入输出 操作; 二是在整个系统中设置一个输入输出进程, 专门负责对系统中所有各类设备的输入输出 操作;三是不设置专门的设备处理进程,只为各类设备设置相应的设备处理程序,供用户进程 或系统进程调用。  3.设备驱动程序的特点 (1)驱动程序主要是在请求输入输出的进程与设备控制器之间的一个通信程序。 (2)驱动程序与输入输出设备的特性密切相关。 (3)驱动程序与输入输出控制方式紧密相关。 (4)驱动程序与硬件紧密相关,其部分被固化在 ROM 中。 4.4.2 设备驱动程序的处理过程 设备驱动程序的主要任务是启动指定设备,其处理过程如下:  1.将抽象要求转化为具体要求 用户及上层软件对设备控制器的具体情况毫无了解,只能向它们发出抽象的要求,借助 设备驱动程序,转化为具体的要求传送给设备控制器,如将盘块号转换为磁盘的盘面、磁道号 及扇区号。  2.检查输入输出请求的合法性 任何输入设备都只能完成一组特定的功能,如该设备不支持这次输入输出请求,则认为 这次输入输出请求非法,又如用户试图让打印机输入数据。  3.读出和检查设备的状态 要启动某个设备进行输入输出操作,其前提条件是该设备正处于空闲状态。因此在启动 设备之前,要从设备控制器的状态寄存器中读出设备的状态。  4.传送必要的参数 有许多设备,特别是块设备,除必须向其控制器发出启动命令外,还需要传送必要的参 数。例如,在启动磁盘进行读/写之前,应先将本次要传送的字节数、数据应到达的主存始址 送入控制器的相应寄存器中。  5.设置工作方式 有些设备有多种工作方式,在启动时应选定某种方式,给出必要的数据。在启动该接口 之前, 应先按通信规程设定下述参数: 波特率、 奇偶校验方式、 停止位数目及数据字节长度等。  6.启动输入输出设备 在完成上述五个工作后,驱动程序可以向控制器的命令寄存器传送相应的控制命令,启 动输入输出设备。基本的输入输出操作是在控制器的控制下进行的。

(14)

4 Ch a pter

4.5 设备管理采用的技术

设备管理采用的技术有缓冲技术、中断技术、假脱机技术(SPOOLing)。缓冲技术是为了 提高输入输出设备的速度和利用率, 中断技术是为了响应优先权高的设备处理请求, 假脱机技 术是为了把独享设备变为共享设备,提高设备的利用率。 4.5.1 缓冲技术 缓冲的字面意思是减缓冲击力。除了真正的冲击力外,缓冲还有抽象的意义。凡是使某 种事物减慢或减弱的变化过程都可以叫缓冲。比如让化学反应不那么剧烈的物质就叫缓冲剂; 一个水库,如果上游来的水太多,下游来不及排走,水库就可以暂时起到“缓冲”作用;又如, 当你在网上看电影时,提前把下一时段内容准备好,目的是可以更流畅地播放,这也是缓冲。 其实,在数据到达与离去速度不匹配的地方,就应该使用缓冲技术。缓冲技术是为了协调吞吐 速度相差很大的设备之间的数据传送工作。如 CPU 与主存之间有高速缓存(Cache Memory), 主存与显示器之间有显示缓存,主存与打印机之间有打印缓存等。  1.  缓冲的引入 在操作系统中,引入缓冲的主要原因可以归结为以下几点: (1)缓和 CPU 与输入输出设备间速度不匹配的矛盾。一般情况下,CPU 的工作速度快, 输入输出设备的工作速度慢, 二者在进行数据传送时, 很可能造成数据大量积压在输入输出设 备处,从而影响 CPU 的工作。在二者之间设置缓冲区后,CPU 处理的数据可以传送到缓冲区 (或从缓冲区读取数据),输入输出设备从缓冲区读取数据(或向缓冲区写入数据),从而使  CPU 与输入输出设备的工作速度得以提高。 (2)减少对  CPU 的中断频率,放宽对中断响应时间的限制。没有缓冲区时,每次  CPU  读取或写入数据都需要中断 CPU;若设置了缓冲区,CPU 可以从缓冲区读取数据或向缓冲区 写入数据,只有缓冲区没有数据或缓冲区已满时才中断 CPU。 (3)提高  CPU 与输入输出设备间的并行性。CPU 与输入输出设备间引入缓冲区后,可 以显著地提高 CPU 和输入输出设备的并行操作程度,提高系统的吞吐量和设备的利用率。例 如,在 CPU 和打印机之间设置了缓冲区后,可以使 CPU 与打印机并行工作。  2.  缓冲的分类 对缓冲区,可以从以下几个方面理解:缓冲是提高 CPU 与外设并行程度的一种技术。凡 是数据来到速度和离去速度不同的地方都可以使用缓冲区。 缓冲的实现方式有两种: 一是采用 硬件缓冲器实现;二是采用软件缓冲实现,即在主存划出一块具有 n 个单元的区域,专门用来 存放临时输入输出的数据,这个区域称为缓冲区。根据系统设置缓冲区的个数,可以将缓冲技 术分为单缓冲、双缓冲、循环缓冲和缓冲池。

(15)

4 Ch a pter (1)单缓冲。 单缓冲是指在设备和处理器之间设置一个缓冲区,用于数据的传输。 单缓冲的工作原理如图 4­7 所示。在设备和处理器交换数据时,先把被交换的数据写入缓 冲区, 然后需要数据的设备或处理器再从缓冲区读取数据。 当缓冲区中的数据没有处理完毕时, 处理第二个数据的进程必须等待。 图 4­7  单缓冲的工作原理 单缓冲技术的特点是:在主存中只有一个缓冲区。对于块设备,该缓冲区可以存放一块 数据,对于字符设备,该缓冲区可以存放一行数据。设备和处理器对缓冲区的操作是串行的, 传输速度慢。在任一时刻,只能进行单向的数据传输,并且传输数据量较少。 (2)双缓冲。 双缓冲是指在设备和处理器之间设置两个缓冲区。 双缓冲的工作原理如图 4­8 所示。在设备输入时,输入设备先将第一个缓冲区装满数据, 在输入设备装填第二个缓冲区时, 处理器可以从第一个缓冲区取出数据供用户进程处理; 当第 一个缓冲区中的数据取走后, 若第二个缓冲区已填满, 则处理器可以从第二个缓冲区取出数据 进行处理,而此时输入设备又可以装填第一个缓冲区。如此循环进行,可以加快输入和输出速 度,提高设备的利用率。 图 4­8  双缓冲的工作原理 双缓冲技术的特点是:在主存中设置两个缓冲区,完成数据的传输。两个缓冲区可以交 替使用,提高了处理器和输入设备的并行操作能力。在任一时刻,可以进行双向的数据传输。 一个缓冲区用于输入,另一个用于输出。适用于输入/输出、生产者/消费者速度基本相匹配的 情况。当传输数据量较大,或者两者的速度相差较远时,双缓冲区效率较低。 (3)循环缓冲。 在设备和处理器之间设置多个大小相等的缓冲区。每个缓冲区中有一个链接指针指向下 一个缓冲区,最后一个缓冲区指针指向第一个缓冲区,这样构成一个环形缓冲区。环形缓冲区 传送 用户进程 缓冲区 输入  I/O 设备 传送 用户进程 缓冲区 输入  I/O 设备

(16)

4 Ch a pter 用于传输较多的数据, 如输入进程和计算进程的数据传输。 输入进程不断向空缓冲区输入数据, 计算进程从缓冲区提取数据进行计算。 循环缓冲的工作原理如图  4­9  所示。环形缓冲区用于输入输出时,需要设两个指针:in  和  out。in  用于指向可以输入数据的第一个空缓冲区,out  用于指向可以提取数据的第一个满 缓冲区。in 与 out 的初值均为 0。 图 4­9  循环缓冲的工作原理 对于输入而言,首先从输入设备接收数据到缓冲区,存入 in 所指向的单元,in 后移;取 数据时,从 out 指向的位置取数据,out 后移。 循环缓冲技术的特点是:在主存中设置多个缓冲区。读和写可以并行处理,适用于某种 特定的输入输出进程和计算进程,如输入/输出、生产者/消费者速度不相匹配的情况。循环缓 冲区属于专用缓冲区。当系统较大时,使用多个这样的缓冲区要消耗大量的主存空间,降低缓 冲区的使用效率。 (4)缓冲池。 当系统较大时,可以利用供多个进程共享的缓冲池来提高缓冲区的利用率。缓冲池的工作 原理如图 4­10 所示。 图 4­10  缓冲池的工作原理 缓冲池的组成包括空(闲)缓冲区、装满输入数据的缓冲区、装满输出数据的缓冲区, 同类缓冲区以链的形式存在。 另外, 还应有四种工作缓冲区: 用于收容输入数据的工作缓冲区、 用于提取输入数据的工作缓冲区、 用于收容输出数据的工作缓冲区、 用于提取输出数据的工作 缓冲区。 传送 用户进程 缓冲区 输入  I/O 设备  out  in  缓冲池  hin  sin  hout  sout  收容输入 提取输出 收容输出 提取输入 空闲缓冲区 用 户 程 序

(17)

4 Ch a pter 当输入进程需要输入数据时,便从空缓冲区队列的队首取出一个空缓冲区,把它作为收 容工作缓冲区,然后把数据输入其中,装满后再把它挂到输入队列队尾。当计算进程需要输入 数据时,便从输入队列取得一个缓冲区作为提取输入工作缓冲区,计算进程从中提取数据,数 据用完后再将它挂到空缓冲区队尾。 当计算进程需要输出数据时, 便从空缓冲区队列的队首取 出一个空缓冲区,作为收容输出工作缓冲区,当其中装满输出数据后,再将它挂到输出队列队 尾。当要输出时,由输出进程从输出队列取得一个装满输出数据的缓冲区,作为提取输出工作 缓冲区,当数据提取完后,再将它挂到空缓冲区队列的队尾。 缓冲池的特点是:缓冲池结构复杂,在主存中设置公用缓冲池,在池中设置多个可以供 多个进程共享的缓冲区。缓冲区既可以用于输入,又可以用于输出(即共享)。缓冲池的设置, 减少了主存空间的消耗,提高了主存的利用率,适用于现代操作系统。 针对缓冲区的工作原理,大家可以分析一下现实中使用这些缓冲区的例子。 4.5.2 中断技术 中断技术在操作系统中的各个方面起着不可替代的作用,它是事件驱动实现的基础,除 了在设备管理中广泛使用外,还用于对系统中各种异常进行处理。  1.中断的概念 中断是由于某些事件的出现,CPU 中止现行进程的执行,转去执行相应的事件处理程序, 处理完毕后,再继续运行被中止进程的过程。引起中断发生的事件称为中断源。中断事件通常 由硬件发现。 对出现的事件进行处理的程序称为中断处理程序。 中断处理程序是由操作系统处 理的,属于操作系统的组成部分。  2.中断类型 一般把中断分为硬件故障中断、程序中断、外部中断、输入输出中断和访管中断。 (1)硬件故障中断。由机器故障造成的中断,如电源故障、主存出错。 (2)程序中断。由程序执行到某条机器指令时可能出现的各种问题而引起的中断,如发 现定点操作数溢出、除数为 0、地址越界等。 (3)外部中断。由各种外部事件引起的中断,如按了中断键、定时时钟时间到等。 (4)输入输出中断。由输入输出控制系统发现外围设备完成了输入输出操作或在执行输 入输出时通道或外围设备产生错误而引起的中断。 (5)访管中断。正在运行的进程执行访管指令时引起的中断,如分配一台外设。 前四类中断不是运行进程所希望的,故称为强迫性中断,而第五种中断是进程所希望的, 故称为自愿性中断。  3.中断响应 在处理器执行完一条指令后,硬件的中断装置就立即检查有无中断事件发生。若无,继 续执行下一条指令;若有则停止现行进程,由操作系统中的中断处理程序占用处理器,这一过 程称为“中断响应” 。

(18)

4 Ch a pter   4.中断处理 在介绍中断处理之前,首先介绍与中断处理有关的概念,即特权指令和程序状态字。 特权指令是不允许用户程序直接使用的指令。如输入输出指令,设置时钟、寄存器的 指令。 程序状态字是用来控制指令执行顺序,并保留和指示与程序有关的系统状态。它一般由 三部分组成。 (1)程序基本状态。  1)指令地址:指出下一条指令的存放地址。  2)条件码:指出指令执行结果的特征。如结果大于 0。  3)管态/目态:CPU 执行操作系统指令的状态称为管态。在管态时,可以使用特权指令;  CPU 执行用户程序指令的状态称为目态。在目态时,不能使用特权指令。  4)计算/等待:计算时,处理器按指令地址顺序执行指令。等待时,处理器不执行任何指令。 (2)中断码。保存程序执行时当前发生的中断事件。 (3)中断屏蔽位。指出程序在执行时,发生中断事件,是否响应出现的中断事件。 程序状态字有三种:一是当前 PSW,当前正在占用处理器的进程的 PSW;二是新 PSW, 中断处理程序的 PSW;三是旧 PSW,保存的被中断进程的 PSW。 中断处理过程如图 4­11 所示。 图 4­11  中断处理过程 ①当中断装置发现中断事件后,先把中断事件存放到程序状态字寄存器的中断码位置。 ②把程序状态字寄存器中的“当前 PSW”作为“旧  PSW”保存到预先约定的主存的固定 单元中。 ③根据中断码,把该类事件处理程序的“新 PSW”送入程序状态字寄存器。 ④处理器按新 PSW 控制处理该事件的中断处理程序执行。 当中断程序处理完后,再恢复现场,继续执行原先被中断的进程。 旧 PSW  当前 PSW  新 PSW  中断事件 主存空间 中断处理程序 程序状态字寄存器  1  3  2

(19)

4 Ch a pter 4.5.3 假脱机技术 假脱机技术(SPOOLing)技术就是将一台独占设备改造成共享设备的一种行之有效的技 术。当系统中出现了多道程序后,可以利用其中的一道程序,来模拟脱机输入时的外围控制机 的功能, 把低速输入输出设备上的数据传送到高速磁盘上; 再用另一道程序来模拟脱机输出时 外围控制机的功能, 把数据从磁盘传送到低速输出设备上。 这样, 便可以在主机的直接控制下, 实现脱机输入输出功能。  1.SPOOLing 的概念 

SPOOLing(Simultaneous  Peripheral  Operation  On­Line,外部设备联机并行操作)是指在

联机情况下实现的同时外围操作, 也称假脱机输入输出操作, 是操作系统中的一项将独占设备 改为共享设备的技术。  2.SPOOLing 系统的组成  SPOOLing 由输入井和输出井、输入缓冲区和输出缓冲区、输入进程和输出进程、请求打 印队列组成。SPOOLing 系统的组成如图 4­12 所示。 图 4­12  SPOOLing 系统的组成 注 虚线-用户进程的处理;实线-输入进程和输出进程的处理 (1)输入井和输出井。这是在磁盘上开辟的两个大的存储区。输入井是模拟脱机输入时 的磁盘,用于收容输入设备输入的数据。输出井是模拟脱机输出时的磁盘,用于收容用户程序 的输出数据。 (2)输入缓冲区和输出缓冲区。它们是在主存中开辟的两个缓冲区。输入缓冲区用于暂 输入设备 磁盘 输出设备 输入缓冲区 输出缓冲区 用户工作区 主存 输入进程 输出进程 用户进程  CPU  输入井 输出井

(20)

4 Ch a pter 存由输入设备送来的数据,以后再传送到输入井,输出缓冲区用于暂存从输出井送来的数据, 以后再传送给输出设备。 (3)输入进程和输出进程。输入进程模拟脱机输入时的外围控制机,将用户要求的数据 从输入设备,通过输入缓冲区送到输入井。当 CPU 需要数据时,直接从输入井读入主存。输 出进程模拟脱机输出时的外围控制机, 把用户要求输出的数据先从主存送到输出井, 待输出设 备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上。 (4)请求打印队列。由若干张请求打印表所形成的队列,系统为每个请求打印的进程建 立一张请求打印表。 对于  SPOOLing  系统的工作过程,以打印机为例进行说明。当有进程要求打印输出时,  SPOOLing  系统并不是将这台打印机直接分配给进程,而是在输出井中为其分配一块存储空 间,进程的输出数据以文件形式存在。各进程的数据输出文件形成了一个输出队列,由“输出 管理模块”控制这台打印机进程,依次将队列中的输出文件实际打印输出。 从打印机的例子中可以看到,在 SPOOLing 技术的支持下,系统实际上并没有为任何进程 分配设备,而只是在输入井和输出井中为每个进程分配了一块存储区并建立了一张  I/O  请求 表。这样,便把独占设备改造为共享设备,因此 SPOOLing 技术也是一种虚拟设备技术。  3.SPOOLing 技术应用举例 假设某时刻用户进程 A 请求打印机输出数据,操作系统响应后执行以下操作: (1)在磁盘输出井中找到一个空闲区分配给进程 A,将进程 A 需要打印的数据送到该输 出井中。 (2)为用户进程申请一张空白的请求打印表,将进程 A 的打印请求和相应的输出井地址 填入表中,将该表挂到打印机的请求队列末尾。 (3)进程 A 如果不需要等待打印结果则不需要睡眠等待。 (4)所有的进程请求打印表都挂在打印请求队列上,当打印机空闲时,操作系统的输出 进程取出其队列头的一个打印请求表, 根据表中的磁盘井地址, 找到需要打印的数据块启动打 印机输出。直至所有数据块全部打印完毕,输出进程将自己阻塞,直到有数据需要打印时才被 唤醒。 4.SPOOPLing 技术的特点 显然,虚拟分配方式在逻辑上改造了设备特性,提高了设备的利用率,同时也提高了进 程的执行效率,但是它必须有高速、大量且随机存取的外存空间作为支持,因此,SPOOLing  技术可以看成是操作系统以空间换取时间的一个典型范例。其特点总结如下: (1)提高了输入输出速度。SPOOLing  技术引入了输入井和输出井,可以使输入进程、 用户进程和输出进程同时工作,从而提高了输入输出速度。 (2)将独占设备改造为共享设备。由于 SPOOLing 技术把所有用户进程的输出都送入输 出井,然后再由输出进程完成打印工作,而输出井在磁盘上,为共享设备。这样  SPOOLing  技术就把打印机等独占设备改造成了共享设备。

(21)

4 Ch a pter (3)实现了虚拟设备功能。由于 SPOOLing 技术实现了多个用户进程共同使用打印机这 种独占设备的情况,从而实现了把一个设备当成多个设备来使用,即虚拟设备的功能。

本章小结

设备管理的主要任务是分配输入输出设备,主要目的是提高输入输出设备的使用效率。 它的主要功能有缓冲管理、设备分配、设备处理和虚拟设备等。 通过本章的学习,读者应熟悉和掌握以下基本概念: 设备、输入输出系统、设备控制器、输入输出通道。 通过本章的学习,读者应熟悉和掌握以下基本知识: (1)输入输出系统的控制方式有程序直接控制方式、中断控制方式、直接存储器存取控 制方式和通道控制方式。程序直接控制方式也称为“忙-等待”方式,即在一个设备的操作没 有完成时,控制程序一直检测设备的状态,直到该操作完成才进行下一个操作。中断控制方式 是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得 CPU 暂时 中断当前正在执行的程序而转去执行相应的事件处理程序, 待处理完毕后又返回原来被中断处 继续执行或调度新的进程执行的过程。直接存储器存取控制方式是在 DMA 控制器的作用下, 设备和主存之间可以成批地进行数据交换,而不用 CPU 的干涉。通道控制方式以主存为中心, 是设备与主存直接交换数据的控制方式。 (2)设备分配采用的数据结构有设备控制表、控制器控制表、通道控制表和系统设备表。 系统在进行设备分配时应考虑设备的使用性质、 设备的分配算法、 设备分配的安全性和设备的 独立性。设备分配一般分为三个步骤:分配设备、分配控制器、分配通道。对设备分配程序的 改进方法有增加设备的独立性和考虑多通路情况两种。 (3)设备处理主要由设备处理程序完成,设备处理程序也称为设备驱动程序,它是输入 输出进程与设备控制器之间的通信程序。 (4)设备管理采用的技术有缓冲技术、中断技术、假脱机技术。缓冲技术是为了提高输 入输出的速度和利用率, 中断技术是为了响应优先权高的设备处理请求, 假脱机技术也称为 “预 输入,缓输出”技术,是为了把独享设备变为共享设备,提高设备的利用率,实现虚拟设备的 功能。

习题 4

一、单项选择题  1.按( )可以将设备分为块设备和字符设备。  A)从属关系  B)操作特性  C)共享关系  D)信息交换单位

(22)

4 Ch a pter   2.设备管理程序对设备的分配和控制是借助一些数据结构表格进行的,下列( )不 是设备管理程序中使用的表格。  A)作业控制表  B)设备控制表  C)控制器控制表  D)系统设备表  3.利用虚拟设备达到输入输出要求的技术是指( ) 。  A)利用外存作缓冲,将作业与外存交换信息和外存与物理设备交换信息两者独立起 来,并使它们并行工作的过程  B)把输入输出要求交给多个物理设备分散完成的过程  C)把输入输出信息先存放在外存上,然后由一台物理设备分批完成输入输出要求的 过程  D)把共享设备改为某个作业的独享设备,集中完成输入输出要求的过程  4.将系统中的每一台设备按某种原则进行统一编号,这些编号作为区分硬件和识别设备 的代号,该编号称为设备的( ) 。  A)绝对号  B)相对号  C)类型号  D)符号名  5.通道是一种( ) 。  A)输入输出端口  B)数据通道  C)输入输出专用处理器  D)软件工具  6.在采用 SPOOLing 技术的系统中,用户的打印数据首先被送到( ) 。  A)磁盘固定区域  B)主存固定区域  C)终端  D)打印机  7.操作系统中采用缓冲技术,能够减少对 CPU 的( )次数,从而提高资源的利用率。  A)中断  B)访问  C)控制  D)依赖  8.在采用 SPOOLing 技术的系统中,使得系统的资源利用率( ) 。  A)提高了  B)降低了  C)有时提高有时降低  D)出错的机会增加了  9.缓冲技术中的缓冲池在( )中。  A)主存  B)外存  C)ROM  D)寄存器  10.引入缓冲的主要目的是( ) 。  A)改善 CPU 和输入输出设备之间速度不匹配的情况  B)节省主存  C)提高 CPU 的利用率  D)提高输入输出设备的效率  11. CPU 输出数据的速度远远高于打印机的打印速度, 为了解决这一矛盾, 可以采用 ( ) 技术。  A)并行  B)通道  C)缓冲  D)虚存

(23)

4 Ch a pter   12.为了使多个进程能有效地同时处理输入和输出,最好使用( )结构的缓冲技术。  A)缓冲池  B)循环缓冲区  C)单缓冲区  D)双缓冲区  13.通过硬件和软件的功能扩充,把原来的独立设备改造成能为多个用户服务的共享设 备,这种设备称为( ) 。  A)存储设备  B)系统设备  C)用户设备  D)虚拟设备  14.如果输入输出设备与存储设备进行数据交换不经过 CPU 来完成,这种数据交换方式 是( ) 。 A)程序查询  B)中断方式  C)DMA 方式  D)无条件存取方式  15.大多数低速设备都属于( )设备。  A)独享  B)共享  C)虚拟  D)SPOOLing  16.设备分配问题中,算法实现时,同样要考虑安全性问题,防止在多个进程进行设备 请求时,因互相等待对方释放所占设备所造成的( )现象。  A)瓶颈  B)死锁  C)系统抖动  D)碎片  17.以下叙述中正确的是( ) 。  A)在现代计算机中,只有输入输出设备才是有效的中断源  B)在中断处理过程中必须屏蔽中断  C)同一用户所使用的输入输出设备也可能并行工作  D)SPOOLing 是脱机输入输出系统  18. ( )是操作系统中以空间换取时间的技术。  A)SPOOLing 技术  B)虚拟存储技术  C)覆盖与交换技术  D)通道技术  19.在操作系统中, ( )指的是一种硬件机制。  A)通道技术  B)缓冲技术  C)SPOOLing 技术  D)主存覆盖技术  20.在操作系统中,用户在使用输入输出设备时,通常采用( ) 。  A)物理设备名  B)逻辑设备名  C)虚拟设备名  D)设备牌号 二、填空题  1.通道是一个独立于 CPU 的专门的输入输出处理器,它控制________与________之间的 信息交换。

(24)

4 Ch a pter   2.虚拟设备是通过________技术把________设备变成能为若干个用户________的设备。  3.常用的设备分配算法是________和________,设备分配应保证设备有________和避免  ________。  4.通道被启动后将按________的规定来控制外围设备工作。  5.设备管理中采用的数据结构有________、________、________和________四种。  6.SPOOLing 系统中,作业执行时从磁盘上的________中读取信息,并把作业的执行结果 暂时存放在磁盘上的________中。  7.从资源管理的角度出发,输入输出设备可以分为________、________和________三种 类型。 8.按所属关系可以把输入输出设备分为系统设备和________两类。  9.常用的输入输出控制方式有程序直接控制方式、中断方式、________和________。  10.________是控制设备动作的核心模块,如设备的打开、关闭、读、写等,用来控制 设备上数据的传输。 三、判断题 ( )1.输入输出设备管理程序的主要功能是管理主存、控制器和通道。 ( )2.缓冲技术是借用外存的一部分区域作为缓冲池。 ( )3.虚拟设备技术是在一类物理设备上模拟另一类物理设备的技术,它可以将独 占的设备改造为共享的设备。 ( )4.一个 DMA 控制器只能控制一台设备,一个通道可以控制多个设备。 ( )5.设备的独立性是指应用程序独立于物理设备,以使用户编制的程序与实际使 用的物理设备无关。 ( )6.虚拟设备是指用户想象的一种设备。 ( )7.中断控制方式是指每输入输出一个数据都发生中断。 ( )8.设备的绝对号是指系统对每台设备的编号,设备的相对号是指用户对每类设 备的编号。 ( )9.独享分配适用于大多数低速设备,共享分配适用于高速设备。 ( )10.驱动程序主要是在请求输入输出的进程与设备控制器之间的一个通信程序。 四、名词解释  1.设备的独立性  2.通道  3.虚拟设备  4.输入井  5.输出井

(25)

4 Ch a pter 五、简答题  1.什么是虚拟设备?请说明 SPOOLing 系统如何实现虚拟设备?  2.设备分配时为什么要考虑安全性以及与设备的无关性?试给出一个系统安全性的算法。  3.关于设备管理,试给出两种输入输出调度算法,并说明为什么输入输出调度中不使用 时间片轮转法?  4.什么是逻辑设备?什么是物理设备?如何实现从逻辑设备到物理设备的转换?  5.什么是缓冲?为什么引入缓冲?请找出现实生活中使用缓冲区的实例。  6.输入输出控制方式有几种?各有什么特点?  7.DMA 方式与中断方式有什么不同?  8.有两块经测试无问题的声卡,第一块插在计算机上系统能识别它,而第二块插在计算 机上系统不能识别它, 请问这两块声卡有何区别?要想系统能识别第二块声卡, 应如何解决?

參考文獻

相關文件

of Korea Japan Thailand Philippines Singapore Malaysia Others Japão Tailândia Filipinas

统计暨普查局过往主要采用基本价格计算及分析行业的生产总额、增加值总额以及产业结构,亦同时一并公布按生产者价

统计暨普查局过往主要采用基本价格计算及分析行业的生产总额、增加值总额以及产业结构,亦同时一并公布按生产者价

统计暨普查局过往主要采用基本价格计算及分析行业的生产总额、增加值总额以及产业结构,亦同时一并公布按生产者价

按行业及在职员工数目抽选。对于在职员工为 20 人或以上的店铺,以及场所总 数较少的分层会进行全面统计。. 统计结果推算

按行业及在职员工数目抽选。对于在职员工为 20 人或以上的店铺,以及场所总 数较少的分层会进行全面统计。. 统计结果推算

能熟悉電腦概念,包括作業 系統、應用軟體和檔案輸出 入硬體設備的安裝、操作和 維護。2.

圖 2.31 Piercentransit 系統輸出畫面 (十一)Washington Metropolitan Area Transit Authority(UW2).