Relax1000 操作系统 · 第5章 输入/输出管理 · 解析¶
第5章 输入/输出管理¶
本章 74 题;解析册印刷页 240–254。
速对答案(原书): BCDBD AACCB ABCBC BBBDB DCCAD CABAD CBCCB DCDDD DDCBB CACDC CCCCA CCBBB ABBCB DCBCB ADDD
Q1¶
速对表原值: B
详细解析标注: B
A 正确,字符设备是以字符为单位进行数据传输的设备,如键盘、鼠标、打印机等。块设备则是以数据块为单位进行数据传输的设备,如磁盘、磁带、光盘等。
B 错误,为了实现设备无关性(或称设备独立性),方便用户使用和提高系统的可移植性与可适应性,应用程序通常通过逻辑设备名来请求使用 I/O 设备,而不是直接使用物理设备名。操作系统负责将逻辑设备名映射到具体的物理设备名。如果应用程序直接使用物理设备名,那么当物理设备更换或配置改变时,应用程序就需要修改,这不利于移植和维护。
C正确,设备控制器是介于CPU和I/O设备之间的硬件部件。它负责接收来自CPU的指令和数据,并将其转换为 I/O 设备能够理解的控制信号和操作序列,然后控制 I/O 设备执行具体任务。同时,它也会将设备的状态和 I/O 操作的结果反馈给 CPU。
D 正确,独占设备在一段时间内只能被一个进程所使用,如打印机。可共享设备允许多个进程同时(宏观上)访问,如磁盘。操作系统会通过调度和管理机制来协调多个进程对共享设备的访问。
Q2¶
速对表原值: C
详细解析标注: C
C 错误,即使采用统一编址(内存映射 I/O),映射到 I/O 设备寄存器的内存地址通常也受到内存保护机制的控制。用户程序在用户态下试图直接访问这些受保护的地址(即 I/O 端口)仍然会引发保护异常或需要通过系统调用请求操作系统内核来执行实际的 I/O 操作。允许用户程序“自由读写任何...I/O 端口,无需操作系统干预”会破坏系统的安全性和稳定性。
Q3¶
速对表原值: D
详细解析标注: D
I/O 接口的功能为:
①地址译码,选取接口寄存器;
②接收控制命令,提供工作状态信息并进行状态检测;
③数据缓冲与格式转换以及数据的检错、纠错;
④I/O 控制与定时,如中断、DMA 控制逻辑设备操作等;
⑤对内与主机通信,对外与外设通信。综上Ⅰ、Ⅱ、Ⅲ均属于 I/O 接口的功能,故本题选 D。
Q4¶
速对表原值: B
详细解析标注: B
采用独立编址方式时,存储单元和 I/O 设备靠不同的指令格式区分,访问 I/O 设备第 5 章 输入/输出(I/0)管理端口需要单独设置指令,A 错误,B 正确;按照数据传送方式,I/O 接口可以分为并行接口和串行接口,C 错误;采用统一编址方式时,存储单元和 I/O 设备靠不同地址来区分,D 错误。故本题选 B。
Q5¶
速对表原值: D
详细解析标注: D
A 正确,如果不同 I/O 接口的端口编号相同,那么无法分辨 I/O 指令中的地址属于哪个 I/O 接口,所以不同 I/O 接口的 I/O 端口不重复,对地址译码是 I/O 逻辑实现的功能之一。
B 正确,定位好具体的 IO 端口后,再根据读写信号(比如 IN 指令是读信号,OUT 指令是写信号)来进行及具体输入输出。
C 正确,CPU 通过数据线向控制寄存器写入 I/O 命令字,I/O 逻辑接着会对 I/O 命令字进行译码,对外设发出对应操作命令。
D 错误,状态信息也是通过数据线传输的(I/O 接口→CPU 寄存器),状态、控制寄存器通常共用一个。中断信号是通过控制线传输的。(IO 接口 IRQi 中断请求控制线→中断控制器)。
Q6¶
速对表原值: A
详细解析标注: A
IN 是针对 CPU 而言是输入,所以 I/O 接收到的控制信号是读信号,即把 I/O 端口(可能是数据寄存器也可能是状态寄存器)的内容输入到 CPU。因此选 A。
C 错误,命令字是通过数据线传输到控制寄存器的。
D 错误,I/O 端口的地址是通过地址线传输的。
Q7¶
速对表原值: A
详细解析标注: A
程序直接控制 I/O 方式和中断驱动 I/O 方式都是软件控制数据的传输过程,即设备驱动程序负责具体的数据传输,选项 A 错误。DMA 方式由硬件负责具体的数据传输过程,适用于具有 DMA 控制器的系统,用于高速外设的大批量数据传输,选项 B、C、D 均正确。
Q8¶
速对表原值: C
详细解析标注: C
从用户态切换到内核态的动作完全由硬件电路自动完成。当 CPU 在用户态执行完当前指令时,硬件检测到中断信号。CPU 立即进入中断响应周期(即硬件隐指令阶段)。此时,操作系统的内核代码根本还没有运行,CPU 连中断服务程序的入口地址都还没拿到。硬件控制逻辑会自动在硬件层面直接修改 CPU 内部的特权级寄存器,只有特权级切换为内核态、并且两级栈切换完成后,CPU 才能去执行操作系统内核的中断服务程序。因此,是“硬件切换了状态,才允许软件运行”,而不是“软件代码控制了切换”。
Q9¶
速对表原值: C
详细解析标注: C
A 错误,DMA 在主存和 I/O 设备之间建立一条直接数据通路。
B 错误,DMA 并不是处理机,只能单方面受 CPU 控制。
D 错误,DMA 方式中,数据传输过程由 DMA 控制器进行控制,不需要 CPU 介入的,但是数据传输的预处理和后处理阶段都需要 CPU 的干预,DMA 需要 CPU 在预处理时指出所取数据的地址与长度。
Q10¶
速对表原值: B
详细解析标注: B
在 DMA 方式中,由 DMA 控制器控制数据在 I/O 设备和内核区内存间的传输。进程 P 在系统调用中向磁盘发起读命令后阻塞,DMA 控制器通过周期挪用等方式向内存传输磁盘数据当DMA 字计数归零,块数据传输到内核区内存的缓冲区后,DMA 发起中断请求,CPU 响应该中断请求并进行中断处理,唤醒阻塞的进程 P;只有进程调度导致 P 进程上处理机,进程 P 完成系统调用后处理,将用户需要的数据从内核缓冲区加载到用户空间,再返回用户态。故 B 正确。
注意:中断方式下,中断服务程序完成时,数据才进入内核缓冲区。想想为什么?
审计旁注(非原文):补前提
应问数据“最早/刚刚”完整进入内核缓冲区的时刻。
Q11¶
速对表原值: A
详细解析标注: A
当一个进程因执行系统调用(例如,请求键盘输入)而被阻塞后,等待用户输入字符,其后的处理流程如下:键盘硬件:用户在键盘上键入一个字符。键盘硬件检测到按键,生成相应的编码,并将其存入键盘控制器的内部寄存器中。中断处理程序:键盘控制器向 CPU 发出一个中断请求。CPU 响应中断,暂停当前执行的程序(如果 CPU 正处于空闲状态,则直接响应;如果正在执行其他进程或内核代码,则根据中断屏蔽和优先级决定何时响应),保存当前现场,然后转去执行操作系统内核中预设的键盘中断处理程序。设备驱动程序:中断处理程序会调用键盘的设备驱动程序。设备驱动程序从键盘控制器读取输入的字符数据,可能会进行一些转换(例如,从扫描码转换成 ASCII 码),然后通常会将这个字符放入操作系统内核维护的一个输入缓冲区(例如,终端缓冲区或行缓冲)。此时,由于等待该输入的进程之前是被阻塞的,设备驱动程序(或中断处理程序的一部分)会唤醒这个等待输入的进程,将其状态从阻塞态变为就绪态,并放入就绪队列。进程调度:当中断处理和设备驱动程序的相关工作完成后(通常中断处理程序执行时间很短),如果被唤醒的进程的优先级足够高,或者当前没有其他更高优先级的进程在运行,操作系统的进程调度程序可能会选择这个被唤醒的进程投入运行。也可能在中断返回后,继续执行之前被中断的进程,而被唤醒的进程只是进入了就绪队列。系统调用返回:当被唤醒的进程(即原先请求输入的进程)再次获得 CPU 并被调度执行时,它会从之前系统调用的阻塞点继续执行。系统调用处理程序此时可以从内核的输入缓冲区中获取到用户输入的字符,并将这个字符作为系统调用的结果返回给用户程序。CPU 从内核态切换回用户态。用户程序:用户程序获得系统调用返回的字符,继续执行后续逻辑。综上所述,选 A。
Q12¶
速对表原值: B
详细解析标注: B
将逻辑盘块号转换为物理地址的工作是由设备驱动程序完成的,因为只有对应的设备驱动程序知道设备的逻辑盘块与物理地址的关系,故答案为选项 B。
Q13¶
速对表原值: C
详细解析标注: C
本题考查设备驱动程序的特点。设备驱动程序有以下特点:
-
驱动程序主要是指在请求 I/O 的进程与设备控制器之间的一个通信和转换程序。
-
驱动程序与设备控制器和 I/O 设备的硬件特性紧密相关
-
驱动程序与 I/O 设备所采用的 I/O 控制方式紧密相关。
-
由于驱动程序与硬件紧密相关,因此其中的一部分必须用汇编语言书写,目前有许多驱动程序的基本部分已固化在 ROM 中。
-
驱动程序应允许可重入,相同的设备可以使用相同的设备驱动程序。
-
驱动程序不允许系统调用,驱动程序本身就运行在内核态,而系统调用是用户态的程序请求使用内核态的服务。因此,选项 C 错误。
Q14¶
速对表原值: B
详细解析标注: B
检查用户是否有权使用设备属于设备保护,因此是在设备独立性软件中完成的,故答案为选项 B。第 5 章 输入/输出(I/0)管理设备独立性软件实现的功能有:
①提供统一的 I/O 接口
②缓冲管理
③差错控制
④设备的分配和回收(包括使用设备的权限检查)
⑤设备命令和识别
⑥支持 SPOOLing 技术
Q15¶
速对表原值: C
详细解析标注: C
I 错误,设备寄存器写命令是在设备驱动程序中完成的。II 正确,检查用户是否有权使用设备属于设备保护,因此是在设备独立性软件中完成的。III 错误,检查用户 I/O 请求的合法性是在驱动程序完成的,比如对打印机进行读操作就是非法的,应该向 I/O 系统报告 I/O 请求出错。IV 正确,缓冲管理是在设备独立性软件中完成的。本题选 C。
Q16¶
速对表原值: B
详细解析标注: B
Ⅰ、Ⅱ、Ⅲ正确。设备驱动程序的功能包括:
①接收由与设备无关的软件发来的命令和参数,并将命令中的抽象要求转换为与设备相关的低层操作序列。
②检查用户 I/O 请求的合法性,了解 I/O 设备的工作状态,传递与 I/O 设备操作有关的参数,设置设备的工作方式。
③发出 I/O 命令,如果设备空闲,便立即启动 I/O 设备,完成指定的 I/O 操作;如果设备忙碌,则将请求者的请求块挂在设备队列上等待。
④及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理。
⑤完成从 IO 端口读取数据到系统缓冲区。综上所述,Ⅰ、Ⅱ、Ⅲ正确。Ⅳ缓冲管理是设备独立软件的功能。
Q17¶
速对表原值: B
详细解析标注: B
字符设备接口(流设备接口)不支持随机访问,块设备接口支持随机访问。
审计旁注(非原文):作废
B、D 均有问题,单选不唯一。
Q18¶
速对表原值: B
详细解析标注: B
Ⅰ错误,设备独立性是指用户编写的应用程序独立于具体使用的物理设备,这样,即使更换了物理设备而应用程序也无须改变。设备驱动程序是与具体物理设备紧密相关的,负责直接与硬件交互。
Ⅱ正确,设备独立性的一个重要体现就是允许用户程序使用抽象的逻辑设备名来请求 I/O 操作,而不是直接使用具体的物理设备名。操作系统负责将逻辑设备名映射到实际的物理设备。
Ⅲ错误,实现了设备独立性后,如果更换了同类型的物理设备,只要操作系统更新了逻辑设备名到新物理设备的映射,用户应用程序不需要修改,仍然可以使用原来的逻辑设备名进行访问。
Ⅳ正确,设备独立性软件层的一个重要功能就是向上层提供统一的接口,处理所有设备共有的操作,如设备的分配与回收、数据缓冲、差错处理等。它将这些共有操作与具体设备的实现细节分离开来。综上所述,选 B。
Q19¶
速对表原值: D
详细解析标注: D
Ⅰ正确,事实上,凡在数据的到达速率与离去速率不同的地方,都可设置缓冲区,以缓和它们之间速率不匹配的矛盾。在输入设备与 CPU 之间设置缓冲区,也可使 CPU 的工作效率得以提高。
Ⅱ正确,在远程通信、磁盘控制器和磁带控制器中,都需要配置缓冲寄存器,以减少对 CPU 的中断频率,放宽对 CPU 中断响应时间的限制。随着数据传输速率的提高,需要配置位数更多的寄存器进行缓冲。比如,无缓冲情况下,每接受一个单位数据就要触发一次中断,引入缓冲后,缓冲区满时才会触发中断。
Ⅲ正确,缓冲区可用于解决在生产者和消费者之间交换的数据粒度(数据单元大小)不匹配的问题。例如,当生产者所生产的数据粒度比消费者消费的数据粒度小时,生产者进程可以一连生产好几个数据单元的数据,当其总和已达到消费者进程所要求的数据单元大小时,消费者便可从缓冲区中取出数据进行消费。当生产者所生产的数据粒度比消费者消费的数据粒度大时,生产者每次生产的数据,消费者可以分几次从缓冲区中取出消费。
Ⅳ正确,缓冲区的引入可显著提高 CPU 和 I/O 设备间的并行操作程度,提高系统的吞吐量和设备的利用率。
Q20¶
速对表原值: B
详细解析标注: B
B 选项描述完全颠倒。收容输入(hin)应该从空白缓冲队列获取空缓冲区,装满数据后挂入输入队列队尾,等待用户进程提取。
Q21¶
速对表原值: D
详细解析标注: D
本题需分情况讨论:如果 T2>T1,即 CPU 处理数据比数据传送慢,那么磁盘将数据传送到缓冲区,再传送到用户区进行处理,除了第一次需要花的时间 T1+T2,剩余数据可视为 CPU进行连续处理,共花费时间(n-1)T2,读入并处理所用的总时间为 T1+nT2,。如果 T2<T1,即 CPU 处理数据比数据传送快,此时除了第一次可视为 I/O 连续输入,磁盘将数据传送到缓冲区,与缓冲区中的数据传送到用户区及 CPU 处理数据,两者可视为并行执行,那么花费时间主要取决于磁盘将数据传送到缓冲区所用的时间,前 n-1 次所花的时间共为(n-1)T1,而最后一次的时间 T1 完成后,还要花时间从缓冲区传送到用户区,且 CPU 还要处理,即要加上时间 T2,读入并处理所用的总时间为 nT1+T2。综上所述,总时间为(n-1)max(T1,T2)+T1+T2。
Q22¶
速对表原值: C
详细解析标注: C
这是单缓冲区,数据输入缓冲区的时间 T=80us,缓冲区数据传送到 CPU 的时间M=40us,CPU 对这块数据处理的时间 C=30us,处理每块数据的时间=max(C,T)+M=120us。
Q23¶
速对表原值: C
详细解析标注: C
第 一 次 需 要 100ns+5ns+90ns=195ns , 之 后 9 次 每 次 需 要 max(100ns ,90ns+5ns)=100ns,因此共 9x100ns+195ns=1095ns,因此选 C。
Q24¶
速对表原值: A
详细解析标注: A
从系统缓冲区传送到用户区的时间为 40 μs,CPU 处理一个数据块的时间为40μs,和为 80μs,大于将一个数据块从外部设备传送到系统缓冲区的时间 25μs。则无论采用何种缓冲方式,都需要花费将第一个数据块从外部设备传送到系统缓冲区的25μs,以及后续从系统缓冲区传送到用户区+处理每个块的 80μs。采用双缓冲结构并未改变耗费的时间,故选 A。
Q25¶
速对表原值: D
详细解析标注: D
设备分配要考虑的因素有:
-
设备的固有属性:根据独占/共享/虚拟制定不同的分配策略。
-
设备分配算法:通常采用 FCFS 算法和最高优先级算法
-
设备分配中的安全性:分为安全分配方式(发出 I/O 请求后一旦获得设备便阻塞不请求其他资源,阻塞时是不保持任何资源的(完成一个再来一个),因此不会死锁)和不安全分配方式(进程发出 I/O 请求继续运行或者继续请求 I/O(不管完成没完成多个一起来),当且仅当请求第 5 章 输入/输出(I/0)管理的设备被另一个进程占用才进入阻塞,性能高但可能死锁)。
-
设备独立性/无关性
-
设备占用状态
-
设备访问权限
-
逻辑设备与物理设备的映射关系综上所述,选 D。
Q26¶
速对表原值: C
详细解析标注: C
设备分配策略的主要目标是提高设备的利用率和减少用户等待时间,通过合理分配和回收设备资源,确保系统资源被高效使用,故答案为选项 C。
Q27¶
速对表原值: A
详细解析标注: A
通道控制设备控制器,设备控制器控制设备。当进程提出 IO 请求后,系统的设备分配程序可按以下步骤进行设备分配:
① 分配设备。首先根据 I/O 请求中的物理设备名(一般进程是提供逻辑设备名,通过逻辑设备表映射成物理设备名),查找系统设备表 SDT,从中找出该设备的设备控制表 DCT,再根据 DCT 中的设备状态字段获知该设备是否正忙。若忙,则将请求 I/O 的进程的 PCB 挂在设备队列上。否则,按照一定的算法计算本次设备分配的安全性。如果不会导致系统进入不安全状态,则将设备分配给请求进程。否则,仍将其 PCB 插入设备等待队列。
②分配控制器。在系统把设备分配给请求 I/O 的进程后,再到其 DCT 中找出与该设备连接的控制器的控制器控制表 COCT,从 COCT 的状态字段中可知该控制器是否正忙。若忙,则将请求 IO 进程的PCB 挂在该控制器的等待队列上。否则,将该控制器分配给进程。
③ 分配通道。在该 COCT 中又可找到与该控制器连接的通道的通道控制表 CHCT。根据 CHCT 内的状态信息可知该通道是否正忙。若忙,则将请求 IO 的进程挂在该通道的等待队列上;否则,将该通道分配给进程。只有在设备、控制器和通道三者都分配成功时,这次的设备分配才算成功。然后,便可启动该 I/O 设备进行数据传送。
Q28¶
速对表原值: B
详细解析标注: B
设备分配过程中题干中数据结构访问的先后顺序为系统设备表 SDT→设备控制表DCT →控制器控制表 COCT→通道控制表 CHCT,故本题选择 B 选项。
原页版面片段(用于核对图表、矩阵或代码)

Q29¶
速对表原值: A
详细解析标注: A
I 正确,脱机技术的核心就是引入外围机(如脱机读卡机、脱机打印机控制器);主机只和磁带等中间介质交互,不再直接等待打印、打孔等慢设备;提高了 CPU 利用率和系统吞吐量。
II正确,在手工操作阶段,操作员人工逐个装入程序、读取数据,脱机技术实现了输入/输出自动化与集中处理,解决了人机矛盾,促进了批处理系统的形成;III 正确,输入输出进程负责数据在磁盘与设备之间的调度和缓冲,代替了外围机的功能。
IV错误,假脱机技术CPU的利用率更高,吞吐量更大。脱机技术中,I/O操作完全由外围机负责,在输入/输出阶段,CPU 可能处于空闲状态(例如等待数据准备好);脱机阶段与主机计算是分开的两个过程,无法充分利用 CPU 并发执行。假脱机技术通过磁盘+后台进程+任务并发调度机制,比如打印数据,只需要把数据输出到磁盘的输出井,CPU 就可以去干别的事情,等打印机空闲再打印剩余数据。大大提高了 CPU 的使用效率和系统的多任务能力,相比传统脱机技术,CPU 利用率更高。
Q30¶
速对表原值: D
详细解析标注: D
Ⅰ错误,SPOOLing 系统的核心组成部分包括位于磁盘上的输入井和输出井,以及位于内存中的输入缓冲区、输出缓冲区、输入进程和输出进程。因此,并非所有组成部分都在内存中,磁盘上的井是关键。II 错误,SPOOLing 技术是在多道程序设计技术的基础上发展起来的。它需要系统能够并发地执行用户作业、输入进程和输出进程。在单道批处理系统中,内存中只有一个程序在运行,无法实现这种并行操作。III 错误,SPOOLing 技术是将低速输入设备的数据先传送到高速磁盘上的输入井,或者将用户程序要输出的数据先送到磁盘上的输出井。当 CPU 需要输入数据时,是从输入井(磁盘)读取;当需要输出数据时,是输出到输出井(磁盘)。输入设备的数据通过输入缓冲区进入输入井,输出井的数据通过输出缓冲区送到输出设备。输入/输出井与输入/输出设备之间并不是直接连接,而是通过内存中的缓冲区以及输入/输出进程进行中转。其目的是利用磁盘的高速特性来匹配 CPU 的速度,而不是输入/输出井与慢速设备直连。IV 错误,SPOOLing 技术是对脱机输入/输出系统中外围控制机功能的一种模拟。它是在主机的直接控制下,利用多道程序中的专门进程(输入进程和输出进程)来模拟外围控制机的功能,从而实现在联机情况下进行的同时外围操作,因此不需要物理上的外围机支持。综上所述,选 D。
Q31¶
速对表原值: C
详细解析标注: C
共享设备在宏观上是并行的,但在微观物理瞬间,磁头或读写部件只能交替为某一个进程服务(A 错) 。磁带机是顺序存取设备,如果要访问不同位置的数据,需要卷动整盘磁带,高频切换的代价极其高昂,因此磁带机只能作为独占设备(B 错) 。SPOOLing 技术是纯软件技术,通过大容量外存作为中转来“虚拟化”独占设备,并没有改变物理硬件(D 错) 。C 项准确解释了为什么磁盘是共享设备而磁带不是 。
Q32¶
速对表原值: B
详细解析标注: B
根据 SPOOLing 技术的完整数据流向模型:第 5 章 输入/输出(I/0)管理
①进程 P1 发出系统调用,数据从 P1 用户空间复制到内核的输出缓冲区 1 ;
②系统的“井管理程序”启动,将数据从缓冲区 1 写入高速磁盘的“输出井”中,此时 P1 即可直接返回继续执行;
③独立的常驻系统进程“输出进程”在后台见缝插针地运行,从磁盘输出井中读取待打印作业到内核输出缓冲区 2;
④最终由输出缓冲区 2 慢慢送往慢速的物理打印机。整个路径选 B。
原页版面片段(用于核对图表、矩阵或代码)

Q33¶
速对表原值: C
详细解析标注: C
SPOOLing 技术利用了相对廉价且海量的磁盘空间(建立输入/输出井),将原本直接面向慢速独占设备(如打印机)的 I/O 改造成面向高速磁盘的读写。这解放了高速的 CPU,使其不必全程忙等慢速外设,同时也极大缩短了用户进程因等待 I/O 最终完成而产生的阻塞时间。需要特别
注意:SPOOLing 无法改变外设自身的物理传输速度(D 错)。
Q34¶
速对表原值: C
详细解析标注: C
虚拟设备技术是一种将独占设备改造为共享设备的技术,可将一台物理 I/O 设备虚拟为多台逻辑 I/O 设备,从而增加设备利用率。故本题选 C。
Q35¶
速对表原值: B
详细解析标注: B
I 错误,逻辑设备名到物理设备名的映射,是设备独立性软件的核心功能之一。II 正确:向控制器发命令是驱动程序的基本职责;III 错误:缓冲区管理(分配与回收)以及数据的格式化,属于设备独立性软件(或用户层)的功能。驱动程序只负责把数据搬运到内核缓冲区,不负责全局缓冲池的管理;IV 正确:当外设完成 I/O 操作后,控制器会向 CPU 发出中断请求。虽然中断的响应和前半段处理由硬件隐指令和底层的通用中断处理程序完成,但针对具体设备的中断后续处理(如读取控制器的错误状态码、清空控制器的中断标志位、把数据从控制器内部读出)都是由设备驱动程序中注册的中断服务程序(ISR)来具体执行的。
Q36¶
速对表原值: D
详细解析标注: D
以上都属于设备驱动程序的内容,注意与上题驱动程序实现的功能搭配理解,需要记住的是“跟硬件直接交互的是驱动程序”。
Q37¶
速对表原值: C
详细解析标注: C
应用层和传输层对应进程,TCP 报文的封装是在内存中进行的,不涉及设备驱动。主机内的网络层是操作系统管理的,IP 数据报位于内核空间内,数据经过处理后从用户进程空间进入操作系统的内核空间也不需要设备驱动程序。网卡属于 I/O 设备,向网卡写入数据以及控制网卡发送均需要直接访问 I/O 设备,因此需要设备驱动程序参与答案选 C。
Q38¶
速对表原值: D
详细解析标注: D
A 选项错误,唤醒进程 A 由中断服务程序完成。阻塞 A 由对应的系统调用服务例程(如 read)完成。B、C 选项错误,将数据从寄存器送往内核缓冲区由中断服务程序完成,将数据从内核缓冲区送往用户缓冲区由系统调用服务程序(如 read)在唤醒后完成。
D 选项正确,这是驱动程序的功能之一。整个流程如下图所示:
原页版面片段(用于核对图表、矩阵或代码)

Q39¶
速对表原值: D
详细解析标注: D
Ⅰ错误,磁盘的物理地址通常由柱面号(磁道号)—盘面号(磁头号)—扇区号构成。一个柱面包含所有盘面上相同编号的磁道。磁道是盘面上的同心圆,而不是柱面内再划分磁道。
Ⅱ错误,磁盘驱动器是磁盘本身,而磁盘控制器才是 IO 接口Ⅲ错误,对磁盘进行分区是在磁盘物理格式化(低级格式化)之后、高级格式化(逻辑格式化)之前进行的操作。 磁盘逻辑格式化主要是在已有的分区上建立文件系统,例如写入引导块、初始化超级块、建立空闲空间管理数据结构和根目录等。
Q40¶
速对表原值: D
详细解析标注: D
D 错误,磁盘有移动部件且容错能力弱,因此容易导致一个或多个扇区损坏。部分磁盘甚至在出厂时就有坏块。对于复杂的磁盘,控制器维护磁盘内的坏块列表。这个列表在出厂低级格式化时就已初始化,并在磁盘的使用过程中不断更新。低级格式化将一些块保留作为备用,操作系统看不到这些块,即这些块对操作系统是透明的。控制器可以采用备用块来逻辑地替代坏块,这种方案称为扇区备用。
Q41¶
速对表原值: D
详细解析标注: D
A 选项中,将磁盘分成多个逻辑分区的操作称为分区,不属于低级格式化;B 选项中,低级格式化后的磁盘没有文件系统,需要经过分区和高级格式化才能存储数据;C 选项中高级格式化会破坏原分区中的数据;
D 选项正确。
Q42¶
速对表原值: D
详细解析标注: D
一个新的磁盘是只含有磁性记录材料的空白盘,为了使该磁盘能够存储数据,需要对其进行物理格式化,初始化扇区的数据结构,D 正确;物理格式化之后,要进行逻辑格式化,在这个过程中,为磁盘建立文件系统根目录,初始化磁盘空闲空间管理的数据结构,建立管理已分配空间的数据结构,A、B、C 属于磁盘逻辑格式化阶段执行的操作,故本题选 D。
Q43¶
速对表原值: C
详细解析标注: C
挂载是指将一个文件系统与操作系统的目录树进行关联,这通常在以下情况下进行:
-
在系统启动过程中,操作系统会挂载根文件系统和其他必要的文件系统。
-
当插入可移动存储设备(如 U 盘)时,系统会挂载该设备的文件系统到指定的挂载点(通常是一个空文件夹)。因此,挂载操作是将格式化好的文件系统与操作系统的目录树进行关联,使得文件系统可以被操作第 5 章 输入/输出(I/0)管理系统访问。这是一个在系统启动之后或设备插入时进行的操作,而不是在逻辑格式化时进行的操作。
原页版面片段(用于核对图表、矩阵或代码)

Q44¶
速对表原值: B
详细解析标注: B
文件系统的根目录创建是逻辑格式化过程中实现的。
Q45¶
速对表原值: B
详细解析标注: B
SSTF 算法优先响应距离当前磁头最近的访问请求,FCFS 算法则根据磁盘请求的先后顺序进行调度,在这两种算法中,磁头可以随时改变运动方向;SCAN 算法和 CSCAN 算法固定了磁头移动方向,在这两种算法中,不能随时改变。综上所述,选 B。
Q46¶
速对表原值: C
详细解析标注: C
Ⅰ正确,磁盘访问时间主要由三部分组成:寻道时间(Ts)、旋转延迟时间(Tτ)和传输时间(Tt)。在大多数情况下,特别是对于机械硬盘,寻道时间(磁头移动到目标磁道所需的时间)通常是这三者中最大的。II 错误,磁臂粘着(armstickiness)现象是指磁头长时间停留在某个磁道附近,响应对该磁道或附近磁道的密集访问请求,而导致对其他较远磁道的访问请求长时间得不到服务。先来先服务(FCFS)算法是按照请求到达的先后顺序进行处理,它不会因为某个磁道有高频率访问就一直停留在那里,而是会依次处理队列中的所有请求,因此它不会导致磁臂粘着。III 正确,Flash 半导体存储器的物理结构不需要考虑寻道时间和旋转延迟,可直接按 I/O 请求的先后顺序服务。
Q47¶
速对表原值: A
详细解析标注: A
采用 SSTF 算法时,访问序列为 108,90,82,142,197,故扫过的磁道数为8+18+8+60+55=149;采用改进的SCAN算法时,访问序列为 108,142,197,90,82,故扫过的磁道数为 8+34+55+107+8=212,因此选 A。
Q48¶
速对表原值: C
详细解析标注: C
采用 SCAN 算法时,依次访问的磁道是 788,845,911,999,700,432,396,165,164,25,磁臂一共移动了(999-734)+(999-25)= 1239 个磁道,对应 1239 个柱面;采用 SSTF 算法时,依次访问的磁道是 700,788,845,911,432,396,165,164,25,磁臂一共移动了(734-700)+(911-700)+ (911-25)=1131 个磁道,对应 1131 个柱面,故本题选 C。
Q49¶
速对表原值: D
详细解析标注: D
题干要求采用 CSCAN 算法,磁头沿磁道号增大的方向移动,期间依次对访问请求进行响应,然后返回首端,重新开始扫描。因此磁头依次访问的磁道是 92,99,0,24,26,47,51,65,78,85,共移动了(99-90)+(99-0)+(85-0)= 193 个磁道,故本题选 D。
Q50¶
速对表原值: C
详细解析标注: C
题干要求采用 C-LOOK 算法,磁头沿磁道号增大的方向移动,期间依次对访问请求进行响应,然后返回首端,重新开始扫描,C-LOOK 算法不需要移动到磁道的两端即可返回。在这个过程中,磁头依次访问的磁道是 86,89,98,24,34,53,65,74,共移动了(98-78)+(98-24)+(74-24)=144 个磁道,平均移动的磁道数为 144/8=18,故本题选 C。
审计旁注(非原文):改术语
C-LOCK 是排版错误,应为 C-LOOK;答案 C=18。
Q51¶
速对表原值: C
详细解析标注: C
磁盘旋转速度为 20ms/转,每个磁道存放 10 条记录,故读出一条记录的时间为20ms/10=2ms。
-
对于第一种记录分布的情况,读出并处理记录 A 需要 6ms,此时读/写磁头已转到记录 D 的开始处,因此为了读出记录 B,必须再转一圈少两条记录(从记录 D 到记录 B)。后续 8 条记录的读取及处理与此相同,但最后一条记录的读取与处理只需 6ms。于是,处理 10 条记录的总时间为 9*(2+4+16)ms+(2+4)ms=204ms。
-
对于第二种记录分布的情况,读出并处理记录 A 后,读/写磁头刚好转到记录 B 的开始处,因此立即就可读出并处理,后续记录的读取与处理的情况相同,共选择 2.7 圈。最后一条记录的读取与处理只需 6ms。于是,处理 10 条记录的总时间为 20ms*2.7+6ms=60ms。综上,信息分布优化后,处理时间缩短了 204ms-60ms=144ms。
Q52¶
速对表原值: C
详细解析标注: C
每个柱面有 12条磁道,每条磁道有16个扇区,因此一个柱面上有 192 个扇区。5687/192=29 余 119,因此柱面号为 29;119/16=7 余 7,因此磁道号为 7、扇区号为 7。
Q53¶
速对表原值: C
详细解析标注: C
向磁道序号增加的方向移动,首先排除选项 A、B;选项 D 是到达端点后先回到最小值,不扫描磁道,再往磁道号增大的方向移动;SCAN 算法是到达端点后往当前方向相反的方向扫描;选项 C 符合 SCAN 算法的定义,故选择选项 C。
Q54¶
速对表原值: C
详细解析标注: C
提前读是指用户对文件进行访问时,经常采用顺序访问方式,在读当前块的同时,可将下个盘块也提前读入缓冲区,这样,当下次要读该盘块时,便可直接从缓冲区中取得下一盘块的数据,而无须再启动磁盘 I/O,因此选项 A、B 正确。延迟写是指在缓冲区中的数据本应立即写回磁盘,但考虑到该缓冲区中的数据在不久后可能会再次被本进程或其他进程访问(共享资源),因此并不立即写回磁盘,而挂在空闲缓冲区队列的末尾,此时,任何访问该数据的进程都可直接读出其中的数据而不必启动磁盘 I/O,这样,又可进一步减小等效的磁盘 I/O 时间。由此可知,延迟写和随机访问方式之间并没有必然的联系,选项 C 错误。当缓冲区中的数据延迟到必须往磁盘上写时(如缓冲区满),才进行写磁盘操作。
Q55¶
速对表原值: A
详细解析标注: A
在数据从控制器传送至内存的这段时间内,从磁头下通过的扇区数为 2。当数据从控制器传送至内存后,磁头开始读数据时,刚好转到目标扇区。所以总时间为总时间=初始寻找 0 扇区时间+读扇区总时间+将扇区数据送入内存总时间由题中条件可知,旋转速度为 3000r/min=50r/s,即 20ms/r。读一个扇区需要的时间为:20/8ms=2.5ms读一个扇区并将扇区数据送入内存需要的时间为:2.53ms=7.5ms读出一个磁道上的所有扇区需要的时间为:20/2ms+87.5ms=70ms=0.07s每磁道数据量为:8*512B=4KB,数据传输速度为:4KB/0.07s=57.1KB/s所以依次读出一个磁道上的所有扇区需要 0.07s,其数据传输速度为 57.1KB/S。
Q56¶
速对表原值: C
详细解析标注: C
平均访问时间=平均寻道时间+旋转时间+传送时间平均寻道时间=9ms旋转时间=1/2x(60x1000ms/7200r)≈4ms传输时间=1/400x(60x1000ms/7200r)≈0.02ms第 5 章 输入/输出(I/0)管理平均访问时间=9+4+0.02≈13ms
Q57¶
速对表原值: C
详细解析标注: C
磁盘高速缓存根据局部性原理,将磁盘上的一些常用数据块暂时保存在随机存储器(RAM)中,使得对磁盘的访问可以转化为对随机存储器的访问,大大提高磁盘的读写性能。但是磁盘高速缓存并不能改善磁盘系统的可靠性,而后备系统、磁盘容错系统和RAID 阵列都能改善磁盘系统的可靠性,故本题选 C。
Q58¶
速对表原值: B
详细解析标注: B
IV 错误,交换区是将内存中的部分数据临时移到磁盘上,以释放内存空间,从而让系统能运行更多的程序或处理更大的数据。增大交换区并不能减少 I/O 速度。I 正确,磁盘缓冲区是内存中的一片区域,利用局部性原理,可以保留部分磁盘数据的拷贝,在命中时可以直接从磁盘缓冲区拿数据,无需磁盘 I/O,但是需要考量置换算法。交付数据给用户的方式有两种:
①数据交互,直接从磁盘缓冲区把数据传送到用户区
②指针交付,即只把磁盘缓冲区某区域的指针交付给进程,节省了数据的拷贝开销。II 正确,提前读是指把当前访问的盘块相邻的几个连续的盘块一起读入磁盘缓冲区,利用了空间局部性,命中时无需启动磁盘 I/O。延迟写是指磁盘缓冲区的数据本应该立即写回磁盘,但考虑不久的将来该数据还会被访问,所以不会立即写回磁盘,而是会把它挂在空闲缓冲区队列的末尾,当有进程申请这片磁盘缓冲区时,才把该修改的内容写回磁盘,同样也可以减少 I/O 时间(其实是时间局部性)。III 正确,尽可能地为文件分配相邻的磁盘块,这样磁盘就无需多次寻道,减少 I/O 时间。
Q59¶
速对表原值: B
详细解析标注: B
固态硬盘基于闪存技术,不属于磁表面存储器,选项 A 错误。闪存翻译层可将 CPU 的逻辑磁盘块读/写请求转化为对底层 SSD 物理设备的读/写控制信号,选项 B 正确。固态硬盘无论是读还是写,速度都远快于常规硬盘。只不过对于 SSD,写比读要慢,因为涉及擦除和磨损均衡。选项 C 错误。固态硬盘块内的页必须按顺序写入信息,选项 D 错误。
Q60¶
速对表原值: B
详细解析标注: B
SSD 磨损均衡技术分为两种:
-
动态磨损均衡。写入数据时,优先选择擦除次数少的新闪存块。老的闪存块先歇一歇。
-
静态磨损均衡。这种技术更为先进,就算没有数据写入,SSD 也会监测并自动进行数据分配,让老的闪存块承担以读为主的存储任务。同时让较新的闪存块腾出空间,以承担更多以写为主的存储任务。如此一来,各闪存块的寿命损耗就都差不多。
Q61¶
速对表原值: A
详细解析标注: A
Ⅰ正确,固态硬盘基于闪存技术。
Ⅱ正确,固态硬盘以页为读写单位,只有在一页所属的块整个被擦除后,才能对这一页进行写入。
Ⅲ错误,固态磁盘的读写性能优于机械硬盘,但是固态硬盘的 NAND 闪存中的块有擦写次数限制,其使用寿命一般短于机械硬盘。
Ⅳ错误,Ⅳ描述的是动态磨损均衡,而在静态磨损均衡中,会对数据块进行检测,尽可能保证各块写入和擦除均衡,并非是每次写入都选择长期存放数据而很少擦写的块。
Q62¶
速对表原值: B
详细解析标注: B
读写以页为单位,擦除以块为单位。随机写的速度比读慢,原因如下:
-
只能写入被擦除的块,擦除块比访问块慢得多。
-
修改一个页中的部分数据,需要拷贝这个块中其他页到被擦除的块进行修改
-
磨损均衡 动态磨损均衡:自动选磨损少的块写入,早期常使用动态方式,这种方式会导致冷数据块一直得不到擦除,各个块擦除并不均衡。 冷数据:只读数据或者系统数据,修改很少的数据块 静态磨损均衡:将冷数据块转移到擦除较多次的块(老块),现代多使用静态+动态磨损均衡结合的方式,增加了闪存的寿命。
注意:闪存的存储介质是 ROM,但是 SSD 里有闪存翻译层,其中地址映射表是由速度较快的DRAM 实现,所以 SSD 可以说存储介质是 ROM,但是不可以说只有 ROM,内部还是有 DRAM 的存在。
Q63¶
速对表原值: B
详细解析标注: B
读题目问的是“在网络数据块到达后”的执行顺序。在发起 I/O 请求初期,由于数据未就绪,进程 P 就已经完成了操作
③(进入阻塞队列,让出处理机)。 当网络数据块真正到达网卡时,网卡硬件首先发出中断请求,即操作
④ 。 CPU 响应中断,暂停当前运行的随机进程 Q,转去执行网卡的中断服务程序。 在中断服务程序中,CPU 通过执行 I/O 指令,将数据从网卡控制器的数据寄存器读入内核系统缓冲区中,即操作
① 。 随后,由于数据已经进入系统缓冲区,中断服务程序调用相关内核函数,将因等待该网络输入而阻塞的进程 P 的状态修改为就绪态,并移入就绪队列,即操作
② 。 因此,在这个时间节点之后的正确操作链条为:
④ →
① →
②。
Q64¶
速对表原值: C
详细解析标注: C
在键盘中断处理过程中,当用户按下按键,键盘控制器将键值存入 DBR(数据缓冲寄存器)并置就绪位;中断响应后,CPU在中断服务例程中与硬件交互,将字符从控制器的数据寄存器读入操作系统统一分配的内核缓冲区中,随后才会唤醒等待该数据的用户进程。
Q65¶
速对表原值: B
详细解析标注: B
完整过程:字符串的第一个字符是在系统调用服务例程(sys_write)的控制下输出到数据端口并发送启动打印命令的;之后进程 P 便执行 scheduler()主动阻塞自己让出处理机;剩下的所有字符打印,都是在其他进程(如 Q)运行期间,由打印机硬件完成上一个字符后触发的硬件中断服务程序来控制输出的。
A 错误:若所有字符都在 sys_write 系统调用服务例程中依次串行输出,则整个 I/O 过程 CPU都需要持续等待并轮询设备状态,这是程序直接控制(轮询)方式。中断控制方式的特点就是 CPU 启动设备后即转向其他工作,待设备完成时通过中断信号通知 CPU 进行后续处理。
C 错误:打印机打印字符的速度远低于 CPU 执行速度。在中断控制方式下,进程 P 发出系统调用并启动设备后会立即进入阻塞态,让出 CPU 给其他进程,绝不会保持运行状态并循环查询状态端口。
D 项错误,执行中断服务程序时系统正处于被打断的进程 Q 的环境和地址空间中,需要通过公共映射的内核缓冲区作为中介来传递数据。
Q66¶
速对表原值: D
详细解析标注: D
DMA 方式(周期挪用)的核心优势之一就是开销极低。周期挪用的过程:当DMA 控制器请求“周期挪用”时,CPU 仅仅需要暂停一个存储(总线)周期的操作,让出一个内存读写周期供 DMA 传送一个字。此时 CPU 并没有发生“进程调度”,无需进行保护和恢复现场(即程序第 5 章 输入/输出(I/0)管理状态字、通用寄存器等的压栈出栈操作)。对比中断:响应中断时,必须进行完整的上下文切换(保护和恢复现场),开销远大于一个存储周期。因此,D 项称周期挪用 DMA 的保护恢复现场开销“与中断一致”是完全错误的。
Q67¶
速对表原值: C
详细解析标注: C
C 错:进程因设备忙被阻塞后,CPU 会调用调度程序切换到其他就绪进程执行。中断服务例程只有在硬件设备完成当前任务(如打印完一页)发出中断信号时才会被 CPU 执行,而不是在进程刚被阻塞时立即执行。A、B、D 均正确描述了驱动程序在内核态运行、可能引发调度以及与硬件强绑定的特性。
Q68¶
速对表原值: B
详细解析标注: B
驱动程序和中断服务程序共同协作直接控制 I/O 硬件:驱动程序负责在 I/O 操作的开始阶段发起操作(写命令、数据、地址寄存器);中断服务程序则负责在操作完成阶段进行响应(读取状态寄存器结果、清除中断等)。
C 项错误,中断处理程序位于操作系统的最底层(驱动程序之下);
D 项错误,没有涉及硬件的具体公有管理是在设备独立性软件层完成的。
Q69¶
速对表原值: C
详细解析标注: C
A、B 错:文件名和文件描述符、逻辑块号是上层(文件系统或设备无关软件)处理的参数。C 对:设备无关软件将文件的逻辑结构转换为块的请求,并将逻辑设备名映射为物理设备号,然后将物理设备号和要读取的(文件)物理块号传递给设备驱动程序。D 错:将块号转换为 CHS(柱面、磁头、扇区)地址正是设备驱动程序内部要执行的工作,而不是传入的参数。
Q70¶
速对表原值: B
详细解析标注: B
计算磁盘的具体柱面号、磁头号、扇区号(CHS 物理寻址参数)是充当“物理翻译官”的设备驱动程序的核心职责,因为它必须深刻理解特定硬件的几何物理结构(B 不属于)。而设备的逻辑命名映射 、设备访问权限校验(保护)、统一的系统级缓冲与磁盘高速缓存管理,都是典型的执行“所有 I/O 设备公共操作”的设备独立性软件的核心任务。
Q71¶
速对表原值: A
详细解析标注: A
Ⅰ 正确:块设备(如磁盘、SSD)的硬件传输是以“块”或“扇区”为单位的,且通常要求内存起始地址严格对齐。而用户进程定义的缓冲区大小和起始地址是由程序员任意决定的。内核缓冲区在其中起到了“数据对齐和重组”的桥梁作用。Ⅱ 正确:块设备数据读入内存通常通过 DMA(直接内存访问)控制器。DMA 传输期间需要目标物理内存地址绝对固定。用户空间的页面由于受到虚拟内存管理(如页面置换算法、内存紧凑)的控制,在耗时较长的磁盘 I/O 期间,随时可能被换出到外存,或被移动物理位置。如果直接将外设数据读入用户工作区,会导致 DMA 往错误的物理地址写入数据。而内核系统缓冲区通常是“锁定(Pinned)”在物理内存中的,绝不会移动或换出,确保了 DMA 的安全。Ⅲ 正确:如果直接读入某一个进程的用户空间,该数据就无法被系统内的其他进程共享。引入内核缓冲区(Page Cache)后,系统可以保留这份数据,当其他进程也读相同文件时直接从内核复制即可。同时,内核还能借此实现“预读”,在用户还没请求时就提前把后续块读入系统缓冲区,极大地提高了 I/O 效率。Ⅳ 错误(属于强干扰项,叙述本身正确,但非原因): 在传统的同步 read 系统调用中,由于磁盘 I/O 属于慢速操作,用户进程确实会被剥夺 CPU 并进入阻塞态。为了让其他进程运行,操作系统必然会进行进程调度,从而切换页表(更新页表基址寄存器)。但是,这并不是操作系统“不直接将外设数据读入用户工作区”的原因。 无论是否使用内核缓冲区,进程执行阻塞 I/O 时都会因等待设备而被阻塞,并随之发生上下文切换(包括页表切换)。这属于 I/O 操作的正常调度行为,与“为什么不直接读入用户工作区”并无因果关系,因此不是原因。
审计旁注(非原文):实现边界
A 是教材缓冲 I/O 模型;真实系统还可能锁定用户页并 direct I/O。
Q72¶
速对表原值: D
详细解析标注: D
A、B、C 项完全符合缓冲与缓存特性的标准对比 。D 项颠倒了二者的关系:缓冲区是一个“中转站”,其中的数据可能是唯一的,数据源将数据发往缓冲区后就可以不再保留;而缓存(Cache)保存的数据一定是对应数据源(如磁盘块)中数据的子集,属于高速副本。
Q73¶
速对表原值: D
详细解析标注: D
设置磁盘缓冲区或高速缓存的最主要、最根本目的是减少物理磁盘的 I/O 总次数,缓和高速 CPU/内存与慢速磁盘之间的巨大速度差异。回写策略(延迟写入)可以通过“合并写入”和“批量写入”大幅削减实际 I/O 次数。虽然积累多个 I/O 请求后可以让磁盘调度算法优化寻道时间,但这只是一个派生、次要的好处,而不是其首要设计目的。
Q74¶
速对表原值: D
详细解析标注: D
A 错误:“输出进程”是一个系统级的后台服务进程(或守护进程),它独立于任何用户作业,由操作系统在启动时创建和管理。
B 错误:该进程通常是常驻内存的,而不是按需创建。当井中没有任务时,它处于休眠或阻塞状态;当井中有新任务时,操作系统会唤醒它。
C 错误:用户作业的数据已经被转存到磁盘的“输出井”中。输出进程的数据来源是“输出井”,而不是任何用户作业的地址空间。
D 正确:这准确描述了“输出进程”的职责。它是一个系统进程,拥有执行底层 I/O 操作的权限,是 SPOOLing 系统中唯一直接与物理打印机硬件打交道的模块。