4. 设备分配的步骤

2026 旧版 · 非 2027 主源 · 原书检索 · 文字用于定位,公式与图表请回原页核验 · 本次导入快照

## 4. 设备分配的步骤

下面以独占设备为例,介绍设备分配的过程。

1)分配设备。首先根据 I/O 请求中的物理设备名,查找 SDT,从中找出该设备的 DCT,再根据 DCT 中的设备状态字段,可知该设备的状态。若忙,则将进程 PCB 挂到设备等待队列中;若不忙,则根据一定的策略将设备分配给该进程。

2)分配控制器。设备分配后,根据 DCT 找到 COCT,查询控制器的状态。若忙,则将进程 PCB 挂到控制器等待队列中;若不忙,则将控制器分配给该进程。

3)分配通道。控制器分配后,根据 COCT 找到 CHCT,查询通道的状态。若忙,则将进程 PCB 挂到通道等待队列中;若不忙,则将通道分配给该进程。只有设备、控制器和通道都分配成功时,这次的设备分配才算成功,之后便可启动设备进行数据传送。

在上面的例子中,进程是以物理设备名提出 I/O 请求的。若指定设备已分配给其他进程,则该进程分配失败;或者说上面的设备分配程序不具有与设备无关性。为了获得设备的独立性,进程应使用逻辑设备名。这样,系统首先从 SDT 中找出第一个该类设备的 DCT。若该设备忙,则查找第二个该类设备的 DCT,仅当所有该类设备都忙时,才将进程挂到该类设备的等待队列上。而只要有一个该类设备可用,系统便进入进一步的分配操作。

## 5. 逻辑设备名到物理设备名的映射

**创建语言** 逻辑设备名和物理设备名的使用(2009)

为了实现设备的独立性,进程中应使用逻辑设备名来请求某类设备。但是,系统只能识别物理设备名,因此在系统中需要配置一张逻辑设备表,用于将逻辑设备名映射为物理设备名。

逻辑设备表(Logical Unit Table,LUT)的每个表项中包含 3 项内容:逻辑设备名、物理设备名和设备驱动程序的入口地址。当进程用逻辑设备名来请求分配设备时,系统会为它分配一台相应的物理设备,并在 LUT 中建立一个表目,填上相应的信息,当以后进程再利用该逻辑设备名请求 I/O 操作时,系统通过查找 LUT 来寻找对应的物理设备及其驱动程序。

在系统中,可采取两种方式设置逻辑设备表:

1)整个系统中只设置一张 LUT。如图 5.13(a) 所示。所有进程的设备分配情况都记录在同一张 LUT 中,这就要求所有用户不能使用相同的逻辑设备名,主要适用于单用户系统。

2)为每个用户设置一张 LUT。如图 5.13(b) 所示。系统为每个用户设置一张 LUT,同时在多用户系统中都配置系统设备表。因此,不同用户可以使用相同的逻辑设备名。

[tbl-147.md](tbl-147.md)

(a) 整个系统的 LUT

[tbl-148.md](tbl-148.md)

(b) 每个用户设置一张 LUT

图 5.13 逻辑设备表 LUT


<!-- page: 337 -->

## 5.2.4 SPOOLing 技术(假脱机技术)

为了缓和CPU的高速性与I/O设备的低速性之间的矛盾,引入了假脱机技术,它是操作系统中采用的一项将独占设备改造成共享设备的技术。该技术利用专门的外围控制机,先将低速I/O设备上的数据传送到高速磁盘上,或者相反。当CPU需要输入数据时,便可直接从磁盘中读取数据;反之,当CPU需要输出数据时,也能以很快的速度将数据先输出到磁盘上。引入多道程序技术后,系统便可利用程序来模拟脱机输入/输出时的外围控制机,在主机的直接控制下实现脱机输入/输出功能。SPOOLing系统的组成如图5.14所示。

图5.14 SPOOLing系统的组成

### 前景预设

SPOOLing技术的特点(2016)

#### (1)输入并和输出并

在磁盘上开辟出的两个存储区域。输入并模拟脱机输入时的磁盘,用于收容I/O设备输入的数据。输出并模拟脱机输出时的磁盘,用于收容用户程序的输出数据。一个进程的输入(或输出)数据保存为一个文件,所有进程的输入(或输出)文件链接成一个输入(或输出)队列。

#### (2)输入缓冲区和输出缓冲区

在内存中开辟的两个缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入并。输出缓冲区用于暂存从输出并送来的数据,以后再传送到输出设备。

#### (3)输入进程和输出进程

输入进程用于模拟脱机输入时的外围控制机,将用户要求的数据从输入设备传送到输入缓冲区,再存放到输入并中。当CPU需要输入数据时,直接从输入并读入内存。输出进程用于模拟脱机输出时的外围控制机,将用户要求输出的数据从内存传送到输出并,待输出设备空闲时,再将输出并中的数据经输出缓冲区输出至输出设备。

#### (4)并管理程序

用于控制作业与磁盘并之间信息的交换。

打印机是典型的独占设备,利用SPOOLing技术可将它改造为一台可供多个用户共享的打印设备。当多个用户进程发出打印输出请求时,SPOOLing系统同意它们的请求,但并不真正立即将打印机分配给它们,而由假脱机管理进程为每个进程做如下两项工作:

1)在磁盘缓冲区中为进程申请一个空闲盘块,并将要打印的数据送入其中暂存。
2)为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到假脱机文件队列上。

对每个用户进程而言,系统并非即时执行真实的打印操作,而只是即时将数据输出到缓冲区,这时的数据并未被真正打印,而只让用户感觉系统已为它打印,真正的打印操作是在打印机空闲且该打印任务在等待队列中已排到队首时进行的。以上过程用户是不可见的。虽然系统中只有一台打印机,但当进程提出打印请求时,系统都会在输出并中为其分配一个缓冲区(相当于分配一


<!-- page: 338 -->

台逻辑设备),使每个进程都觉得自己在独占一台打印机,从而实现对打印机的共享。

SPOOLing 系统的特点:①提高了 I/O 速度,将对低速 I/O 设备执行的操作演变为对磁盘缓冲区中数据的存取操作,如同脱机输入/输出一样,缓和了 CPU 和低速 I/O 设备之间速度不匹配的矛盾;②将独占设备改造为共享设备,在假脱机打印机系统中,实际上并没有为任何进程分配设备;③实现了虚拟设备功能,对每个进程而言,它们都认为自己独占了一台设备。

SPOOLing 技术是一种以空间袂时间的技术,我们很容易理解它牺牲了空间,因为它开辟了磁盘上的空间作为输入井和输出井,但它又是如何节省时间的呢?

从前述内容我们了解到,磁盘是一种高速设备,在与内存交换数据的速度上优于打印机、键盘、鼠标等中低速设备。试想一下,若没有 SPOOLing 技术,CPU 要向打印机输出要打印的数据,打印机的打印速度比较慢,CPU 就必须迁就打印机,在打印机将数据打印完后才能继续做其他的工作,浪费了 CPU 的不少时间。在 SPOOLing 技术下,CPU 要打印机打印的数据可以先输出到磁盘的输出井中(这个过程由假脱机进程控制),然后做其他的事情。若打印机此时被占用,则 SPOOLing 系统就会将这个打印请求挂到等待队列上,待打印机有空时再将数据打印出来。向磁盘输出数据的速度比向打印机输出数据的速度快,因此就节省了时间。

## 5.2.5 设备驱动程序接口

设备驱动程序是 I/O 系统的上层与设备控制器之间的通信程序,其主要任务是接收上层应用发来的抽象 I/O 请求,如 read 或 write 命令,将它们转换为具体要求后发送给设备控制器,进而使其启动设备去执行任务;反之,它也将设备控制器发来的信号传送给上层应用。

**附属阅读** 》 设备驱动程序的功能(2013、2019、2023)

为了实现上层应用与设备控制器之间的通信,设备驱动程序应具有以下功能:①接收由上层软件发来的命令和参数,并将抽象要求转换为与设备相关的具体要求。例如,将抽象要求中的盘块号转换为磁盘的盘面号、磁道号和扇区号。②检查用户 I/O 请求的合法性,了解设备的工作状态,传递与设备操作有关的参数,设置设备的工作方式。③发出 I/O 命令,若设备空闲,则立即启动它,完成指定的 I/O 操作;若设备忙,则将请求者的 PCB 挂到设备队列上等待。④及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理。

**附属阅读** 》 设备驱动程序的特点(2022)

相比于普通的应用程序和系统程序,设备驱动程序具有以下差异:①设备驱动程序将抽象的 I/O 请求转换成具体的 I/O 操作后,传送给设备控制器,并将设备控制器中记录的设备状态和 I/O 操作的完成情况及时地反馈给请求进程。②设备驱动程序与设备采用的 I/O 控制方式紧密相关,常用的 I/O 控制方式是中断驱动方式和 DMA 方式。③设备驱动程序与硬件密切相关,对于不同类型的设备,应配置不同的设备驱动程序。④由于设备驱动程序与硬件紧密相关,目前很多设备驱动程序的基本部分已固化在 ROM 中。⑤设备驱动程序应允许同时多次调用执行。

为了使所有的设备驱动程序都有统一的接口,一方面,要求每个设备驱动程序与操作系统之间都有相同或相近的接口,以便更容易地添加一个新的设备驱动程序,同时更容易地编制设备驱动程序;另一方面,要将抽象的设备名转换为具体的物理设备名,并且进一步找到相应的设备驱动程序入口。此外,还应对设备进行保护,防止无权访问的用户使用设备。

## 5.2.6 I/O 操作举例

由于统考对 I/O 的考查越来越深入,本节以 C 语言中的库函数 scanf 为例,从执行“scanf("%c", &amp;d)”开始,到最终键盘输入的字符存入变量 d,来介绍 I/O 操作的具体执行细节。


<!-- page: 339 -->

在讨论之前,先补充两个概念:内核缓冲区(就是处于内核空间的缓冲区)和与之对应的用户缓冲区。在scanf函数执行的第一阶段,就申请了用户缓冲区buf,由于buf位于用户空间中,而接下来需要在内核空间中运行,这两个空间是相互独立的。内核空间用来存放操作系统的代码和数据,是供所有进程共享的。系统调用函数运行在内核态,因此要先把I/O端口中的数据复制到内核空间中,在系统调用返回前,再将数据从内核空间复制到用户空间。

程序调用“scanf("%c", &amp;d)”时,尝试用键盘输入对变量d进行赋值。scanf()会关联一个用户缓冲区buf,这个缓冲区是C语言函数库在用户空间中管理的。

scanf()的第一阶段的工作是在C语言函数库中完成的:

1)检查与scanf函数关联的用户缓冲区buf,若缓冲区中已有数据,则直接读取。若缓冲区为空,则触发系统调用read,以从内核缓冲区中读取数据。
2)执行系统调用 read,read 调用会在执行 trap 指令前传入本次调用的三个参数。

- fd: 文件描述符,指明输入设备。
- buf: 用户空间的缓冲区,数据从内核缓冲区被复制到这个缓冲区。
- count: 读取的最大字节数。

第二阶段的工作是系统调用,read调用会展开成一段包含陷阱指令的代码,从用户态陷入内核态以执行相关的操作。系统调用的大致过程如图5.15所示。

图5.15 系统调用的大致过程

进入内核态后,系统调用服务例程申请一个内核缓冲区,并且最终转到真正执行I/O操作的设备驱动层。在中断方式下,系统调用服务例程执行过程的大致描述如下:

1)设置相应的I/O参数后,发起I/O的进程P进入阻塞态,CPU调度其他进程运行。
2)用户通过键盘输入字符,字符被送到键盘I/O接口的数据端口。
3)键盘I/O接口向CPU发出中断请求。
4)CPU响应中断并执行键盘中断处理程序,将字符从I/O接口的数据端口送入内核缓冲区。
5)进程P被唤醒,插入就绪队列,等待被调度。
6)进程P再次获得CPU后,系统调用服务例程将字符从内核缓冲区复制到用户缓冲区。
7)进程P从系统调用返回,之后scanf函数进行字符解析,最终将该字符存储到变量d中。整个I/O操作过程的工作流程如图5.16所示。

图5.16 整个I/O操作过程的工作流程


<!-- page: 340 -->

值得注意的是,在整个过程中,用户输入的字符首先从键盘I/O接口中的数据端口送到内核缓冲区,然后从内核缓冲区送到用户缓冲区,其中第一个过程是由设备驱动程序完成的,因为这需要和I/O端口直接打交道,第二个过程是由普通的内核程序(属于设备无关软件层)完成的,因为这和具体的硬件没有关系。数据的流向如图5.17所示。

图5.17 数据的流向

## 5.2.7 本节小结

本节开头提出的问题的参考答案如下。

1)当处理机和外部设备的速度差距较大时,有什么办法可以解决问题?

可采用缓冲技术来缓解CPU与外设速度上的矛盾,即在某个地方(一般为主存)设立一片缓冲区,外设与CPU的输入/输出都经过缓冲区,这样外设和CPU就都不用互相等待。

2)什么是设备的独立性?引入设备的独立性有什么好处?

设备独立性是指用户在编程序时使用的设备与实际设备无关。一个程序应独立于分配给它的某类设备的具体设备,即在用户程序中只指明I/O使用的设备类型即可。

设备独立性有以下优点:①方便用户编程。②使程序运行不受具体机器环境的限制。③便于程序移植。

## 5.2.8 本节习题精选

### 一、单项选择题

01. 设备的独立性是指()。

A. 设备独立于计算机系统
B. 系统对设备的管理是独立的
C. 用户编程时使用的设备与实际使用的设备无关
D. 每台设备都有一个唯一的编号

02. 引入高速缓冲的主要目的是()。

A. 提高 CPU 的利用率
B. 提高 I/O 设备的利用率
C. 改善 CPU 与 I/O 设备速度不匹配的问题
D. 节省内存

03. 为了使多个并发进程能有效地进行输入和输出,最好采用()结构的缓冲技术。

A. 缓冲池
B. 循环缓冲
C. 单缓冲
D. 双缓冲

04. 缓冲技术中的缓冲池在()中。

A. 主存
B. 外存
C. ROM
D. 寄存器

05. 支持双向传送的设备应使用()。

A. 单缓冲区
B. 双缓冲区
C. 多缓冲区
D. 缓冲池

06. 下列关于缓冲区的描述中,正确的是()。

A. 缓冲区是一种专门的硬件缓冲器,不能用内存来实现
B. 缓冲区的作用是提高CPU和I/O设备之间的速度匹配
C. 缓冲区只能用于输入设备,不能用于输出设备
D. 缓冲区只能用于块设备,不能用于字符设备

07. 使用单缓冲或双缓冲进行通信时,()可以实现数据的双向并行传输。


<!-- page: 341 -->

A. 只有单缓冲
B. 只有双缓冲
C. 都
D. 都不

08. 下列各种算法中,( )是设备分配常用的一种算法。
A. 首次适应
B. 时间片分配
C. 最佳适应
D. 先来先服务

09. 设从磁盘将一块数据传送到缓冲区所用的时间为 $80\mu \mathrm{s}$,将缓冲区中的数据传送到用户区所用的时间为 $40\mu \mathrm{s}$,CPU处理一个数据块所用的时间为 $30\mu \mathrm{s}$。若有多块数据需要处理,并采用单缓冲区传送某磁盘数据,则处理一块数据所用的总时间为( )。
A. $120\mu \mathrm{s}$
B. $110\mu \mathrm{s}$
C. $150\mu \mathrm{s}$
D. $70\mu \mathrm{s}$

10. 某操作系统采用双缓冲区传送磁盘上的数据。设从磁盘将数据传送到缓冲区所用的时间为 $T_{1}$,将缓冲区中的数据传送到用户区所用的时间为 $T_{2}$,CPU处理一块数据所用的时间为 $T_{3}$,假设一个磁盘块和一个缓冲区的大小相等,某系统在一段时间内连续处理一大批数据,则平均处理一个磁盘块数据的时间为( )。
A. $T_{1} + T_{2} + T_{3}$
B. $\max (T_2,T_3) + T_1$
C. $\max (T_1,T_3) + T_2$
D. $\max (T_1,T_2 + T_3)$

11. 若 I/O 所花费的时间比 CPU 的处理时间短得多,则缓冲区( )。
A. 最有效
B. 几乎无效
C. 均衡
D. 以上答案都不对

12. 缓冲区管理者重要考虑的问题是( )。
A. 选择缓冲区的大小
B. 决定缓冲区的数量
C. 实现进程访问缓冲区的同步
D. 限制进程的数量

13. 考虑单用户计算机上的下列 I/O 操作,需要使用缓冲技术的是( )。
I. 图形用户界面下使用鼠标
II. 多任务操作系统下的磁盘驱动器(假设没有设备预分配)
III. 包含用户文件的磁盘驱动器
IV. 使用存储器映射 I/O,直接和总线相连的图形卡
A. I、III
B. II、IV
C. II、III、IV
D. 全选

14. 以下( )不属于设备管理数据结构。
A. PCB
B. DCT
C. COCT
D. CHCT

15. 下列( )不是设备的分配方式。
A. 独享分配
B. 共享分配
C. 虚拟分配
D. 分区分配

16. 设备分配程序需要访问一系列的数据结构来给进程分配设备,这些数据结构有:设备控制表(DCT),控制器控制表(COCT),通道控制表(CHCT),系统设备表(SDT)。在设备分配的过程中,访问这些数据结构的正确顺序是( )。
A. SDT, DCT, COCT, CHCT
B. DCT, COCT, CHCT, SDT
C. SDT, COCT, CHCT, DCT
D. COCT, CHCT, SDT, DCT

17. 下面设备中属于共享设备的是( )。
A. 打印机
B. 磁带机
C. 磁盘
D. 磁带机和磁盘

18. 提高单机资源利用率的关键技术是( )。
A. SPOOLing 技术
B. 虚拟技术
C. 交换技术
D. 多道程序设计技术

19. 虚拟设备是靠( )技术来实现的。
A. 通道
B. 缓冲
C. SPOOLing
D. 控制器

20. SPOOLing 技术的主要目的是( )。


<!-- page: 342 -->

A. 提高CPU和设备交换信息的速度
B. 提高独占设备的利用率
C. 减轻用户编程负担
D. 提供主、辅存接口

21. 在采用SPOOLing技术的系统中,用户的打印结果首先被送到( )。
A. 磁盘固定区域
B. 内存固定区域
C. 终端
D. 打印机

22. 采用SPOOLing技术的计算机系统,外围计算机需要( )。
A. 一台
B. 多台
C. 至少一台
D. 0台

23. SPOOLing系统由()组成。
A. 预输入程序、并管理程序和缓输出程序
B. 预输入程序、并管理程序和并管理输出程序
C. 输入程序、并管理程序和输出程序
D. 预输入程序、并管理程序和输出程序

24. 在SPOOLing系统中,用户进程实际分配到的是( )。
A. 用户所要求的外设
B. 外存区,即虚拟设备
C. 设备的一部分存储区
D. 设备的一部分空间

25. 下面关于SPOOLing系统的说法中,正确的是( )。
A. 构成SPOOLing系统的基本条件是有外围输入机与外围输出机
B. 构成SPOOLing系统的基本条件仅是要有高速的大容量硬盘作为输入并和输出并
C. 当输入设备忙时,SPOOLing系统中的用户程序暂停执行,待I/O空闲时再被唤醒执行输出操作
D. SPOOLing系统中的用户程序可以随时将输出数据送到输出并中,待输出设备空闲时再由SPOOLing系统完成数据的输出操作

26. 下面关于SPOOLing的叙述中,不正确的是( )。
A. SPOOLing系统中不需要独占设备
B. SPOOLing系统加快了作业执行的速度
C. SPOOLing系统使独占设备变成共享设备
D. SPOOLing系统提高了独占设备的利用率

27. ( )是操作系统中采用的以空间换取时间的技术。
A. SPOOLing技术
B. 虚拟存储技术
C. 覆盖与交换技术
D. 通道技术

28. 采用假脱机技术,将磁盘的一部分作为公共缓冲区以代替打印机,用户对打印机的操作实际上是对磁盘的存储操作,用以代替打印机的部分由( )完成。
A. 独占设备
B. 共享设备
C. 虚拟设备
D. 一般物理设备

29. 下面关于独占设备和共享设备的说法中,不正确的是( )。
A. 打印机、扫描仪等属于独占设备
B. 对独占设备往往采用静态分配方式
C. 共享设备是指一个作业尚未撤离,另一个作业即可使用,但每个时刻只有一个作业使用
D. 对共享设备往往采用静态分配方式

30. 当用户要求使用打印机打印某文件时,用户的要求是由操作系统的( )实现的。
A. 文件系统
B. 设备管理程序
C. 文件系统和设备管理程序
D. 打印机启动程序和设备管理程序

31. 下列设备管理工作中,适合由设备独立性软件来完成的有( )。
I. 向设备寄存器写命令
II. 检查用户是否有权使用设备


<!-- page: 343 -->

III. 将二进制整数转换成 ASCII 码格式打印 IV. 缓冲区管理

A. I、II 和 III

B. II、III 和 IV

C. II 和 IV

D. I、III 和 IV

32. 下列关于设备驱动程序的说法中,正确的是()。

I. 设备驱动程序负责处理与设备相关的中断处理过程

II. 驱动程序全部使用汇编语言编写,没有使用高级语言编写

III. 设备驱动程序负责处理磁盘调度

IV. 设备驱动程序与设备密切相关,可以在任意操作系统运行

A. II、III、IV

B. I、III

C. III、IV

D. I、II、III

33. 下列选项中,()不属于设备驱动程序的功能。

A. 接收进程发来的 I/O 命令和参数,并检查其合法性
B. 查询 I/O 设备的状态
C. 发出 I/O 命令,启动 I/O 设备
D. 对 I/O 设备传回的数据进行分析和缓冲

34. 对设备驱动程序的处理过程进行排序,正确的处理顺序是()。

① 对服务请求进行校验

② 传送必要的参数

③ 启动 I/O 设备

④ 将抽象要求转化为具体要求

⑤ 检查设备的状态

A. ①④⑤②③

B. ④①⑤②③

C. ①④②⑤③

D. ④①②⑤③

35. printf()是 C 语言中进行格式化输出的库函数,该函数最终会转到内核态执行相应的系统调用服务例程,进程是通过执行()从用户态进入内核态的。

A. 陷入指令

B. 关中断指令

C. 无条件跳转指令

D. 输出指令

36. 【2009 统考真题】程序员利用系统调用打开 I/O 设备时,通常使用的设备标识是()。

A. 逻辑设备名

B. 物理设备名

C. 主设备号

D. 从设备号

37. 【2011 统考真题】某文件占 10 个磁盘块,现要把该文件的磁盘块逐个读入主存缓冲区,并且送到用户区进行分析,假设一个缓冲区与一个磁盘块大小相同,把一个磁盘块读入缓冲区的时间为 $100\mu s$ ,将缓冲区的数据传送到用户区的时间是 $50\mu s$ ,CPU 对一块数据进行分析的时间为 $50\mu s$ 。在单缓冲区和双缓冲区结构下,读入并分析完该文件的时间分别是()。

A. $1500\mu \mathrm{s}, 1000\mu \mathrm{s}$

B. $1550\mu \mathrm{s}, 1100\mu \mathrm{s}$

C. $1550\mu \mathrm{s}, 1550\mu \mathrm{s}$

D. $2000\mu \mathrm{s}, 2000\mu \mathrm{s}$

38. 【2013 统考真题】设系统缓冲区和用户工作区均采用单缓冲,从外设读入一块数据到系统缓冲区的时间为 100,从系统缓冲区读入一块数据到用户工作区的时间为 5,对用户工作区中的一块数据进行分析的时间为 90(见下图)。进程从外设读入并分析 2 个数据块的最短时间是()。


A. 200

B. 295

C. 300

D. 390

39. 【2013 统考真题】用户程序发出磁盘 I/O 请求后,系统的处理流程是:用户程序 → 系统调用处理程序 → 设备驱动程序 → 中断处理程序。其中,计算数据所在磁盘的柱面号、磁头号、扇区号的程序是()。

A. 用户程序

B. 系统调用处理程序


<!-- page: 344 -->

C. 设备驱动程序
D. 中断处理程序

40. 【2015 统考真题】在系统内存中设置磁盘缓冲区的主要目的是( )。
A. 减少磁盘 I/O 次数
B. 减少平均寻道时间
C. 提高磁盘数据可靠性
D. 实现设备无关性

41. 【2016 统考真题】下列关于 SPOOLing 技术的叙述中,错误的是( )。
A. 需要外存的支持
B. 需要多道程序设计技术的支持
C. 可以让多个作业共享一台独占式设备
D. 由用户作业控制设备与输入/输出并之间的数据传送

42. 【2020 统考真题】对于具备设备独立性的系统,下列叙述中,错误的是( )。
A. 可以使用文件名访问物理设备
B. 用户程序使用逻辑设备名访问物理设备
C. 需要建立逻辑设备与物理设备之间的映射关系
D. 更换物理设备后必须修改访问该设备的应用程序

43. 【2022 统考真题】下列关于驱动程序的叙述中,不正确的是( )。
A. 驱动程序与 I/O 控制方式无关
B. 初始化设备是由驱动程序控制完成的
C. 进程在执行驱动程序时可能进入阻塞态
D. 读/写设备的操作是由驱动程序控制完成的

44. 【2023 统考真题】下列因素中,设备分配需要考虑的是( )。
I. 设备的类型
II. 设备的访问权限
III. 设备的占用状态
IV. 逻辑设备与物理设备的映射关系
A. 仅 I, II
B. 仅 II, III
C. 仅 III, IV
D. I, II, III, IV

45. 【2024 统考真题】当键盘中断服务例程执行结束时,所输入数据的存放位置是( )。
A. 用户缓冲区
B. CPU 中的通用寄存器
C. 内核缓冲区
D. 键盘控制器的数据寄存器