第一章操作系统概述¶
| 题号 | 年份-题号 | 正确答案 | 题号 | 年份-题号 | 正确答案 | 题号 | 年份-题号 | 正确答案 |
|---|---|---|---|---|---|---|---|---|
| 1 | 2009-23 | D | 10 | 2015-24 | C | 19 | 2010-23 | A |
| 2 | 2016-23 | A | 11 | 2021-23 | B | 20 | 2017-24 | C |
| 3 | 2017-28 | D | 12 | 2022-27 | C | 21 | 2019-25 | C |
| 4 | 2018-23 | C | 13 | 2023-24 | A | 22 | 2021-32 | C |
| 5 | 2022-23 | D | 14 | 2023-26 | B | 23 | 2022-31 | B |
| 6 | 2011-24 | A | 15 | 2009-22 | A | 24 | 2024-23 | A |
| 7 | 2012-23 | C | 16 | 2012-24 | B | 25 | 2023-23 | D |
| 8 | 2013-28 | B | 17 | 2015-23 | B | 26 | 2013-29 | D |
| 9 | 2014-25 | D | 18 | 2018-29 | D | 27 | 2022-24 | A |
(一)操作系统的基本概念¶
(二)操作系统的发展历程¶
- 【2009-23】单处理机系统中,可并行的是( )。
Ⅰ. 进程与进程
Ⅱ. 处理机与设备
Ⅲ. 处理机与通道
Ⅳ. 设备与设备
A. Ⅰ、Ⅱ和Ⅲ
B. Ⅰ、Ⅱ和Ⅳ
C. Ⅰ、Ⅲ和Ⅳ
D. Ⅱ、Ⅲ和Ⅳ
解析
答案:D(Ⅱ、Ⅲ和Ⅳ)
- Ⅰ错误:单处理机同一时刻只能执行一个进程,进程之间只能并发,不能在该处理机上真正并行。
- Ⅱ正确:设备进行 I/O 时,处理机可以执行程序。
- Ⅲ正确:通道是专门负责 I/O 控制的处理部件,可与处理机并行工作。
- Ⅳ正确:相互独立的设备可以同时工作。
易错点:题目问的是“并行”而不是“并发”。
- 【2016-23】下列关于批处理系统的叙述中,正确的是( )。
Ⅰ.批处理系统允许多个用户与计算机直接交互
Ⅱ.批处理系统分为单道批处理系统和多道批处理系统
Ⅲ.中断技术使得多道批处理系统的I/O设备可与CPU并行工作
A. 仅Ⅱ、Ⅲ
B. 仅Ⅱ
C.仅Ⅰ、Ⅱ
D. 仅Ⅰ、Ⅲ
解析
答案:A(仅Ⅱ、Ⅲ)
- Ⅰ错误:批处理系统通常不具有直接的人机交互能力;交互性是分时系统的重要特征。
- Ⅱ正确:批处理系统可分为单道批处理和多道批处理。
- Ⅲ正确:发出 I/O 请求后,CPU 可转去运行其他程序;I/O 完成后,设备通过中断通知 CPU。
- 【2017-28】与单道程序系统相比,多道程序系统的优点是( )。
Ⅰ. CPU利用率高
Ⅱ. 系统开销小
Ⅲ. 系统吞吐量大
Ⅳ. I/O设备利用率高
A. 仅Ⅰ、Ⅲ
B. 仅Ⅰ、Ⅳ
C. 仅Ⅱ、Ⅲ
D. 仅Ⅰ、Ⅲ、Ⅳ
解析
答案:D(仅Ⅰ、Ⅲ、Ⅳ)
- Ⅰ正确:一个程序等待 I/O 时,CPU 可运行其他程序。
- Ⅱ错误:多道程序系统需要调度、保护、同步和资源管理,系统开销通常更大。
- Ⅲ正确:单位时间内完成的作业数通常更多。
- Ⅳ正确:多道程序可以让不同 I/O 设备得到更充分的使用。
- 【2018-23】下列关于多任务操作系统的叙述中,正确的是( )。
Ⅰ. 具有并发和并行的特点
Ⅱ. 需要实现对共享资源的保护
Ⅲ. 需要运行在多CPU的硬件平台上
A. 仅Ⅰ
B. 仅Ⅱ
C. 仅Ⅰ、Ⅱ
D. Ⅰ、Ⅱ、Ⅲ
解析
答案:C(仅Ⅰ、Ⅱ)
- Ⅰ正确:多个任务可以并发推进;CPU 与 I/O、不同设备之间可以并行,多处理器上任务之间也可并行。
- Ⅱ正确:多个任务可能共享内存、文件和设备,系统必须提供互斥、同步和访问保护。
- Ⅲ错误:单 CPU 也能通过分时和调度实现多任务。
易错点:支持多任务不等于必须拥有多个 CPU。
- 【2022-23】下列关于多道程序系统的叙述中,不正确的是( )。
A. 支持进程的并发执行
B. 不必支持虚拟存储管理
C. 需要实现对共享资源的管理
D. 进程数越多CPU利用率越高
解析
答案:D(进程数越多 CPU 利用率越高)
- A 正确:多道程序系统支持多个进程并发执行。
- B 正确:多道程序系统需要内存管理和保护,但不一定必须采用虚拟存储;早期系统可采用固定分区等方式。
- C 正确:系统必须管理进程共享的 CPU、内存、文件和设备等资源。
- D 错误:增加进程数只能在一定范围内提高资源利用率;进程过多会导致内存不足、换入换出频繁、资源竞争和调度开销增大。
(三)程序运行环境¶
CPU 运行模式(内核模式、用户模式)¶
- 【2011-24】下列选项中,在用户态执行的是( )。
A. 命令解释程序
C. 进程调度程序
B. 缺页处理程序
D. 时钟中断处理程序
解析
答案:A(命令解释程序)
- 命令解释程序通常是普通用户进程,在用户态运行;需要内核服务时再发起系统调用。
- 缺页处理程序、进程调度程序和时钟中断处理程序都是内核功能,在内核态运行。
- 【2012-23】下列选项中,不可能在用户态发生的事件是( )。
A. 系统调用
B. 外部中断
C. 进程切换
D. 缺页
解析
答案:C(进程切换)
- 系统调用由用户进程在用户态发起,随后陷入内核。
- 外部中断可能在 CPU 正执行用户程序时到来。
- 缺页可能由用户态访存指令引发。
- 进程切换需要保存和恢复进程上下文、修改内核数据结构,必须由内核完成。
易错点:“在用户态发生”不等于“在用户态处理”。外部中断和缺页可在执行用户程序时发生,但其处理程序在内核态执行。
- 【2013-28】下列选项中,会导致用户进程从用户态切换到内核态的操作是( )。
I. 整数除以零
II. sin() 函数调用
III. read 系统调用
A. 仅 I、II
B. 仅 I、III
C. 仅 II、III
D. I、II 和 III
解析
答案:B(仅Ⅰ、Ⅲ)
- Ⅰ会产生除零异常,CPU 转入内核态进行异常处理。
- Ⅱ通常是普通数学库函数调用,可完全在用户态执行。
- Ⅲ是系统调用,需要通过陷入机制进入内核态。
- 【2014-25】下列指令中,不能在用户态执行的是( )。
A. trap指令
B. 跳转指令
C. 压栈指令
D. 关中断指令
解析
答案:D(关中断指令)
关中断会影响整个系统的中断响应,属于特权指令。trap、普通跳转和压栈指令可以在用户态执行。
- 【2015-24】假定下列指令已装入指令寄存器,则执行时不可能导致CPU从用户态变为内核态(系统态)的是( )。
A. DIV R0, R1 ;(R0) / (R1) → R0
B. INT n ;产生软中断
C. NOT R0 ;寄存器R0的内容取非
D. MOV R0, addr ;把地址addr处的内存数据放入寄存器R0中
解析
答案:C(NOT R0)
DIV R0, R1:若除数为 0,会产生异常并进入内核态。INT n:主动产生软中断或陷入,进入内核态。NOT R0:只对寄存器内容取非,既不访存,也不触发系统调用,正常情况下不会导致模式切换。MOV R0, addr:访存可能产生缺页、越界或保护异常,从而进入内核态。
- 【2021-23】下列指令中,只能在内核态执行的是( )。
A. trap指令
B. I/O指令
C. 数据传送指令
D. 设置断点指令
解析
答案:B(I/O 指令)
I/O 指令可直接控制设备,属于特权指令。trap 指令要供用户程序发起系统调用;一般数据传送和设置断点指令不属于本题所指的内核专用 I/O 控制指令。
- 【2022-27】下列关于CPU模式的叙述中,正确的是( )。
A. CPU处于用户态时只能执行特权指令
B. CPU处于内核态时只能执行特权指令
C. CPU处于用户态时只能执行非特权指令
D. CPU处于内核态时只能执行非特权指令
解析
答案:C(CPU 处于用户态时只能执行非特权指令)
- 用户态只能执行非特权指令。
- 内核态既可以执行特权指令,也可以执行非特权指令,因此“内核态时只能执行某一类指令”的说法错误。
- 【2023-24】在操作系统内核中,中断向量表适合采用的数据结构是( )。
A. 数组
B. 队列
C. 单向链表
D. 双向链表
解析
答案:A(数组)
中断向量号是离散的整数编号,系统需要根据编号快速定位对应的中断服务程序入口。数组支持按下标进行 随机访问,最适合实现中断向量表。
- 【2023-26】下列操作完成时,导致CPU从内核态转为用户态的是( )。
A. 阻塞过程
B. 执行 CPU 调度
C. 唤醒进程
D. 执行系统调用
解析
答案:B(执行 CPU 调度)
CPU 调度及分派在内核态执行。调度完成后,系统恢复被选中用户进程的现场并让其运行,此时 CPU 可从内核态转为用户态。
- 阻塞进程和唤醒进程主要改变进程状态,本身不必直接造成内核态到用户态的切换。
- “执行系统调用”表示用户程序通过陷入进入内核,方向是用户态到内核态;系统调用返回时才是内核态到用户态。
中断和异常的处理¶
- 【2009-22】下列选项中,能引起外部中断的事件是( )。
A. 键盘输入
B. 除数为0
C. 浮点运算下溢
D. 访存缺页
解析
答案:A(键盘输入)
键盘是 CPU 外部设备,其输入产生外部中断。除数为 0、浮点运算下溢和访存缺页都由执行当前指令引起,属于内部异常。
- 【2012-24】中断处理和子程序调用都需要压栈以保护现场,中断处理一定会保存而子程序调用不需要保存其内容的是( )。
A. 程序计数器
B. 程序状态字寄存器
C. 通用数据寄存器
D. 通用地址寄存器
解析
答案:B(程序状态字寄存器)
- 两者都需要保存返回位置,因此都涉及 PC 或返回地址。
- 中断处理前后可能涉及运行模式、中断允许位和条件码等状态变化,所以必须保存并恢复 PSW。
- 普通子程序调用不发生 CPU 模式切换,通常不要求专门保存完整 PSW。
- 通用数据寄存器和地址寄存器是否保存取决于调用约定和具体使用情况,并非中断与子程序之间的必然区别。
- 【2015-23】处理外部中断时,应该由操作系统保存的是( )。
A. 程序计数器 (PC) 的内容
B. 通用寄存器的内容
C. 快表 (TLB) 中的内容
D. Cache中的内容
解析
答案:B(通用寄存器的内容)
- PC 和 PSW 通常由中断响应硬件自动保存。
- 通用寄存器由操作系统的中断入口程序保存。
- TLB 和 Cache 是硬件透明管理的高速缓存结构,处理中断时通常无需整体保存。
- 【2018-29】当定时器产生时钟中断后,由时钟中断服务程序更新的部分内容是
Ⅰ. 内核中时钟变量的值
Ⅱ. 当前进程占用 CPU 的时间
Ⅲ. 当前进程在时间片内的剩余执行时间
A. 仅Ⅰ、Ⅱ
B. 仅Ⅱ、Ⅲ
C. 仅Ⅰ、Ⅲ
D. Ⅰ、Ⅱ、Ⅲ
解析
答案:D(Ⅰ、Ⅱ、Ⅲ)
每次时钟中断到来时,系统需要维护系统时间,对当前进程的 CPU 使用时间进行记账,并减少其剩余时间片;若时间片耗尽,还可能触发调度。
系统调用¶
- 【2010-23】下列选项中,操作系统提供给应用程序的接口是( )。
A. 系统调用 B. 中断 C. 库函数 D. 原语
解析
答案:A(系统调用)
- 系统调用是操作系统内核提供给应用程序的服务接口。
- 中断是事件处理机制,不是应用程序接口。
- 库函数由函数库提供,其中有些封装系统调用,有些完全在用户态执行。
- 原语是内核中不可中断或具有原子性的操作,不是通常意义上的应用程序接口。
- 【2017-24】执行系统调用的过程包括如下主要操作:
① 返回用户态
② 执行陷入 (trap) 指令
③ 传递系统调用参数
④ 执行相应的服务程序
正确的执行顺序是( )。
A. ②→③→①→④
B. ②→④→③→①
C. ③→②→④→①
D. ③→④→②→①
解析
答案:C(③→②→④→①)
用户程序先准备系统调用参数,再执行陷入指令进入内核;内核执行服务程序,最后恢复现场并返回用户态。
- 【2019-25】下列关于系统调用的叙述中,正确的是( )。
Ⅰ. 在执行系统调用服务程序的过程中,CPU处于内核态
Ⅱ. 操作系统通过提供系统调用避免用户程序直接访问外设
Ⅲ. 不同的操作系统为应用程序提供了统一的系统调用接口
Ⅳ. 系统调用是操作系统内核为应用程序提供服务的接口
A. 仅Ⅰ、Ⅳ
B. 仅Ⅱ、Ⅲ
C. 仅Ⅰ、Ⅱ、Ⅳ
D. 仅Ⅰ、Ⅲ、Ⅳ
解析
答案:C(仅Ⅰ、Ⅱ、Ⅳ)
- Ⅰ正确:系统调用服务例程属于内核,在内核态执行。
- Ⅱ正确:用户程序通过系统调用请求内核和驱动程序访问外设。
- Ⅲ错误:不同操作系统的系统调用编号、语义和参数形式可能不同;较统一的通常是上层 API 标准,而非所有操作系统的原生系统调用。
- Ⅳ正确:这是系统调用的定义。
- 【2021-32】下列选项中,通过系统调用完成的操作是( )。
A. 页置换
B. 进程调度
C. 建新进程
D. 生成随机整数
解析
答案:C(建立新进程)
- 建立新进程需要分配进程控制块、地址空间和其他内核资源,必须请求内核服务。
- 页置换和进程调度是操作系统内部机制,不是应用程序主动请求的常规系统调用。
- 生成随机整数可由用户态算法或库函数完成,不必通过系统调用。需要操作系统随机源时可能使用系统调用,但题目问的是一般情形。
- 【2022-31】执行系统调用的过程涉及下列操作,其中由操作系统完成的是( )。
Ⅰ. 保存断点和程序状态字
Ⅱ. 保存通用寄存器的内容
Ⅲ. 执行系统调用服务程序
Ⅳ. 将CPU模式改为内核态
A. 仅Ⅰ、Ⅲ
B. 仅Ⅱ、Ⅲ
C. 仅Ⅱ、Ⅳ
D. 仅Ⅱ、Ⅲ、Ⅳ
解析
答案:B(仅Ⅱ、Ⅲ)
- Ⅰ由硬件自动完成。
- Ⅱ由操作系统的系统调用入口程序完成。
- Ⅲ由操作系统内核完成。
- Ⅳ由硬件在响应陷入指令时完成,用户程序和普通内核代码不能用普通赋值直接改模式位。
- 【2024-23】下面关于中断、异常和系统调用的叙述中,错误的是
A. 中断或异常发生时,CPU 处于内核态
B. 每个系统调用都有对应的内核服务例程
C. 中断处理程序开始执行时,CPU 处于内核态
D. 系统添加新类型设备时,需注册相应的中断服务例程
解析
答案:A(中断或异常发生时,CPU 处于内核态)
- A 错误:中断或异常可能在 CPU 正处于用户态时发生;CPU 在响应中断或异常、开始执行处理程序时才切换到内核态。
- B 正确:每种系统调用都需要内核中相应的服务例程处理。
- C 正确:中断处理程序开始执行时,CPU 已经进入内核态。
- D 正确:添加新类型设备时,需要安装驱动并为其可能产生的中断注册相应服务例程。
易错点:要区分“事件发生时 CPU 原来处于什么模式”和“处理程序执行时 CPU 处于什么模式”。
程序的链接与装入¶
程序运行时内存映像与地址空间¶
(四)操作系统结构(分层,模块化,宏内核,微内核,外核)¶
- 【2023-23】与宏内核操作系统相比,下列特征中微内核操作系统具有的是( )。
Ⅰ. 较好的性能
Ⅱ. 较高的可靠性
Ⅲ. 较高的安全性
Ⅳ. 较强的可扩展性
A. Ⅱ、Ⅳ
B. Ⅰ、Ⅱ、Ⅲ
C. Ⅰ、Ⅲ、Ⅳ
D. Ⅱ、Ⅲ、Ⅳ
解析
答案:D(Ⅱ、Ⅲ、Ⅳ)
- Ⅰ错误:微内核中许多服务运行在用户态,服务之间通过 IPC 协作,模式切换和通信次数较多,通常不具有相对宏内核更好的性能。
- Ⅱ正确:用户态服务相互隔离,单个服务故障较不容易导致整个内核崩溃。
- Ⅲ正确:微内核的内核代码量和特权代码量较少,攻击面更小,服务隔离更强。
- Ⅳ正确:新增或替换用户态服务通常更方便。
(五)操作系统引导¶
- 【2013-29】计算机开机后,操作系统最终被加载到( )。
A. BIOS
B. ROM
C. EPROM
D. RAM
解析
答案:D(RAM)
操作系统内核需要被 CPU 频繁读写并建立运行时数据结构,最终装入可读写的主存 RAM。BIOS 是固件系统;ROM 和 EPROM 是固件常用的非易失性存储介质。
- 【2022-24】下列选项中,需要在操作系统进行初始化过程中创建的是( )。
A. 中断向量表
B. 文件系统的根目录
C. 硬盘分区表
D. 文件系统的索引节点表
解析
答案:A(中断向量表)
- A:操作系统初始化时要建立或重新设置自己使用的中断向量表,使各类中断和异常指向正确处理程序。
- B:文件系统根目录在创建或格式化文件系统时建立,启动时只是挂载和使用。
- C:硬盘分区表在磁盘分区时创建。
- D:文件系统的索引节点表通常在格式化文件系统时创建。