408 真题做题本·操作系统部分
第 1 章 操作系统概述
1.1 操作系统的发展历程
- 【2009】单处理机系统中, 可并行的是( )。 I. 进程与进程 II. 处理机与设备 III. 处理机与通道 IV. 设备与设备
A. 仅 I、 II 和 III
B. 仅 I、 II 和 IV
C. 仅 I、 III 和 IV
D. II、III、IV
答案: D
解析: 单处理机在任一时刻只能执行一个进程,因此进程与进程只能并发,不能真正并行。CPU 与设备、CPU 与通道以及不同设备之间具有相对独立的硬件部件,可以并行工作。故 II、III、IV 正确。
- 【2016】下列关于批处理系统的叙述中, 正确的是( )。 I. 批处理系统允许多个用户与计算机直接交互 II. 批处理系统分为单道批处理系统和多道批处理系统 III. 中断技术使得多道批处理系统的 I/O 设备可与 CPU 并行工作
A. 仅 II、 III
B. 仅 II
C. 仅 I、 II
D. I、 III
答案: A
解析: 批处理系统通常由作业成批提交,不允许用户在作业运行过程中与计算机直接交互,故 I 错误。批处理系统包括单道批处理和多道批处理,II 正确;中断技术使 CPU 在设备完成 I/O 后再处理,从而可实现 CPU 与 I/O 设备并行工作,III 正确。
- 【2017】与单道程序系统相比, 多道程序系统的优点是( )。 I. CPU 利用率高 II. 系统开销小 III. 系统吞吐量大 IV. I/O 设备利用率高
A. 仅 I、 III
B. 仅 I、 IV
C. 仅 II、 III
D. I、 III、 IV
答案: D
解析: 多道程序把多个作业同时放入内存,当一个作业等待 I/O 时切换到其他作业运行,因此可提高 CPU 利用率和 I/O 设备利用率,并增大系统吞吐量。由于调度、切换和资源管理更复杂,系统开销并不小,故 II 错误。
- 【2018】下列关于多任务操作系统的叙述中, 正确的是( )。 I. 具有并发和并行的特点 II. 需要实现对共享资源的保护 III. 需要运行在多 CPU 的硬件平台上
A. 仅 I
B. 仅 II
C. 仅 I、 II
D. I、 II、 III
答案: B
解析: 多任务操作系统的本质是允许多个任务并发执行,但在单 CPU 平台上不一定存在真正的并行,因此 I 不严谨;多个任务可能竞争共享资源,所以必须进行互斥与保护,II 正确;多任务系统不要求必须运行在多 CPU 平台上,III 错误。
- 【2022】下列关于多道程序系统的叙述中, 不正确的是( )。
A. 支持进程的并发执行
B. 不必支持虚拟存储管理
C. 需要实现对共享资源的管理
D. 进程数越多 CPU 利用率越高
答案: D
解析: 多道程序系统支持进程并发,并需要管理共享资源;它可以采用连续分配等方式,不一定支持虚拟存储。增加进程数在一定范围内可提高 CPU 利用率,但过多进程会造成频繁切换和资源竞争,CPU 利用率不一定继续提高。
1.2 操作系统的运行环境
- 【2009】下列选项中, 能引起外部中断的事件是( )。
A. 键盘输入
B. 除数为 0
C. 浮点运算下溢
D. 访存缺页
答案: A
解析: 键盘输入由外部设备发出中断请求,属于外部中断。除数为 0、浮点运算下溢和访存缺页均由当前指令执行引起,属于内部异常。
- 【2010】下列选项中, 操作系统提供给应用程序的接口是( )。
A. 系统调用
B. 中断
C. 库函数
D. 原语
答案: A
解析: 系统调用是操作系统内核向应用程序提供服务的接口。中断是事件处理机制,库函数是程序库提供的接口,原语是内核中不可被中断的基本操作。
- 【2011】下列选项中, 在用户态执行的是( )。
A. 命令解释程序
B. 缺页处理程序
C. 进程调度程序
D. 时钟中断处理程序
答案: A
解析: 命令解释程序通常作为普通用户进程运行在用户态。缺页处理、进程调度和时钟中断处理都涉及内核资源管理,需要在内核态执行。
- 【2012】下列选项中, 不可能在用户态发生的事件是( )。
A. 系统调用
B. 外部中断
C. 进程切换
D. 缺页
答案: C
解析: 系统调用、外部中断和缺页都可能在用户程序运行期间发生,并使 CPU 转入内核态。进程切换由内核中的调度与切换程序完成,不可能在用户态执行。
- 【2012】中断处理和子程序调用都需要压栈以保护现场, 中断处理一定会保存而子程序调用不需要保存其内容的是( )。
A. 程序计数器
B. 程序状态字寄存器
C. 通用数据寄存器
D. 通用地址寄存器
答案: B
解析: 子程序调用和中断都需要保存返回地址,因此程序计数器都要保存。中断发生后还必须保存并恢复程序状态字,以恢复中断前的处理机状态,而普通子程序调用通常不需要保存程序状态字。
- 【2013】下列选项中, 会导致用户进程从用户态切换到内核态的操作是( )。 I. 整数除以零 II. sin( ) 函数调用 III. read 系统调用
A. 仅 I、 II
B. 仅 I、 III
C. 仅 II、 III
D. I、 II 和 III
答案: B
解析: 整数除以零会产生异常,使 CPU 进入内核态;read 是系统调用,也会通过陷入机制进入内核态。sin() 通常是普通数学库函数,在用户态完成,不必进入内核态。
- 【2014】下列指令中, 不能在用户态执行的是( )。
A. trap 指令
B. 跳转指令
C. 压栈指令
D. 关中断指令
答案: D
解析: 关中断指令会改变处理机中断允许状态,直接影响整个系统,属于特权指令,只能在内核态执行。trap、跳转和压栈指令均可在用户态使用。
- 【2015】处理外部中断时, 应该由操作系统保存的是( )。
A. 程序计数器 (PC) 的内容
B. 通用寄存器的内容
C. 快表 (TLB) 中的内容
D. Cache 中的内容
答案: B
解析: 外部中断发生时,硬件通常自动保存断点和程序状态字;进入中断处理程序后,操作系统还要保存可能被处理程序修改的通用寄存器。TLB 和 Cache 不需要在每次中断时整体保存。
- 【2015】假定下列指令已装入指令寄存器,则执行时不可能导致 CPU 从用户态变为内核态 (系统态) 的是( )。
A. DIV R0, R1; R0 / R1 → R0
B. INT n; 产生软中断
C. NOT R0; 寄存器 R0 的内容取非
D. MOV R0, addr; 把地址 addr 处的内存数据放入寄存器 R0 中
答案: C
解析: NOT 只对通用寄存器内容取反,不访问受保护资源,也不会产生系统调用或访存异常,因此不可能导致用户态转为内核态。DIV 可能除零,INT 主动产生软中断,MOV 访存可能发生缺页或保护异常。
- 【2017】执行系统调用的过程包括如下主要操作:I. 返回用户态 II. 执行陷入 (trap) 指令 III. 传递系统调用参数 IV. 执行相应的服务程序正确的执行顺序是( )。
A. II → III → I → IV
B. II → IV → III → I
C. III → II → IV → I
D. III → IV → II → I
答案: C
解析: 用户程序先把系统调用号和参数准备好,即传递参数;随后执行 trap 指令进入内核态;内核执行相应服务程序;最后恢复现场并返回用户态。因此顺序为 III → II → IV → I。
- 【2018】定时器产生时钟中断后, 由时钟中断服务程序更新的部分内容是( )。 I. 内核中时钟变量的值 II. 当前进程占用 CPU 的时间 III. 当前进程在时间片内的剩余执行时间
A. 仅 I、 II
B. 仅 II、 III
C. 仅 I、 III
D. I、 II 和 III
答案: D
解析: 每次时钟中断到来,内核需要更新系统时钟变量,累计当前进程已占用的 CPU 时间,并减少该进程当前时间片的剩余时间。因此 I、II、III 都正确。
- 【2019】下列关于系统调用的叙述中,正确的是( )。 I. 在执行系统调用服务程序的过程中, CPU 处于内核态 II. 操作系统通过提供系统调用避免用户程序直接访问外设 III. 不同的操作系统为应用程序提供了统一的系统调用接口 IV. 系统调用是操作系统内核为应用程序提供服务的接口
A. 仅 I、 IV
B. 仅 II、 III
C. 仅 I、 II 和 IV
D. I、 III 和 IV
答案: C
解析: 系统调用服务程序在内核态执行,I 正确;系统调用使用户程序通过受控接口访问外设,II 正确;不同操作系统的系统调用接口并不统一,III 错误;系统调用是内核向应用程序提供服务的接口,IV 正确。
- 【2021】下列指令中, 只能在内核态执行的是( )。
A. trap 指令
B. I/O 指令
C. 数据传送指令
D. 设置断点指令
答案: B
解析: I/O 指令直接控制外部设备,属于特权指令,只能在内核态执行。trap 指令必须允许用户程序执行,否则无法主动发起系统调用;数据传送和设置断点指令也不必然是特权指令。
- 【2021】下列选项中, 通过系统调用完成的操作是( )。
A. 页置换
B. 进程调度
C. 创建新进程
D. 生成随机整数
答案: C
解析: 创建新进程需要操作系统分配进程控制块、地址空间等资源,必须通过系统调用完成。页置换和进程调度是内核内部机制;生成随机整数通常可由用户态库函数完成。
- 【2022】下列关于 CPU 模式的叙述中, 正确的是( )。
A. CPU 处于用户态时只能执行特权指令
B. CPU 处于内核态时只能执行特权指令
C. CPU 处于用户态时只能执行非特权指令
D. CPU 处于内核态时只能执行非特权指令
答案: C
解析: 用户态只能执行非特权指令;若执行特权指令会触发异常。内核态既能执行特权指令,也能执行非特权指令,因此 B、D 都不正确。
- 【2022】执行系统调用的过程涉及下列操作, 其中由操作系统完成的是( )。 I. 保存断点和程序状态字 II. 保存通用寄存器的内容 III. 执行系统调用服务例程 IV. 将 CPU 模式改为内核态
A. 仅 I、 III
B. 仅 II、 III
C. 仅 II、 IV
D. 仅 II、 III、 IV
答案: B
解析: 执行系统调用时,保存断点和程序状态字、把 CPU 模式改为内核态通常由硬件自动完成;操作系统负责继续保存通用寄存器并执行系统调用服务例程。因此由操作系统完成的是 II、III。
- 【2023】下列操作完成时, 导致 CPU 从内核态转为用户态的是( )。
A. 阻塞进程
B. 执行 CPU 调度
C. 唤醒进程
D. 执行系统调用
答案: B
解析: CPU 调度程序在内核态选择下一个运行进程,调度和上下文切换完成后,若被选中的是用户进程,CPU 恢复其现场并转入用户态。阻塞和唤醒进程仍是内核操作;执行系统调用的入口方向是用户态转内核态。
1.3 操作系统结构
- 【2023】与宏内核操作系统相比, 下列特征中, 微内核操作系统具有的是( )。 I. 较好的性能 II. 较高的可靠性 III. 较高的安全性 IV. 较强的可扩展性
A. II, IV
B. I, II, III
C. I, III, IV
D. II, III, IV
答案: D
解析: 微内核只把最基本的机制保留在内核中,其他服务运行在用户态。服务隔离使其可靠性和安全性较高,也便于增加或替换系统服务,扩展性较强;但用户态服务与内核间通信和上下文切换较多,性能通常不如宏内核。
- 【2023】在操作系统内核中, 中断向量表适合采用的数据结构是( )。
A. 数组
B. 队列
C. 单向链表
D. 双向链表
答案: A
解析: 中断类型号可直接作为下标定位对应的中断向量,要求随机访问速度快,因此最适合采用数组。队列和链表都需要顺序查找,定位效率较低。
- 【2024】下面关于中断、异常和系统调用的叙述中,错误的是( )。
A. 中断或异常发生时, CPU 处于内核态
B. 每个系统调用都有对应的内核服务例程
C. 中断处理程序开始执行时, CPU 处于内核态
D. 系统添加新类型设备时,需注册相应的中断服务例程
答案: A
解析: 中断或异常可以在 CPU 正处于用户态或内核态时发生;只有进入相应处理程序后,CPU 才处于内核态。因此 A 的说法错误。每个系统调用对应内核服务例程,中断处理程序在内核态执行,新增设备通常也要注册相应的中断服务例程。
- 【2024】键盘中断服务例程执行结束时, 所输入数据的存放位置是( )。
A. 用户缓冲区
B. CPU 中的通用寄存器
C. 内核缓冲区
D. 键盘控制器的数据寄存器
答案: C
解析: 键盘控制器产生中断后,中断服务例程从设备数据寄存器读取输入数据,并先放入操作系统管理的内核缓冲区。之后用户进程再通过系统调用把数据复制到用户缓冲区。
1.4 操作系统引导
- 【2013】计算机开机后, 操作系统最终被加载到( )。
A. BIOS
B. ROM
C. EPROM
D. RAM
答案: D
解析: BIOS、ROM 或 EPROM 中通常只保存固件和引导程序。引导程序把操作系统内核从外存装入主存,CPU 才能直接取指执行,因此操作系统最终被加载到 RAM。