操作系统原理
本文件合并全部章节,便于全文搜索;分章文件更适合逐章学习。
第一章 操作系统概述
[!abstract] 本章学习路线 先理解计算机为什么需要操作系统,再看操作系统管理什么、怎样保护硬件,最后区分并发、系统调用、中断等高频概念。
1. 先建立整体图景:操作系统为什么存在
一台计算机至少包含 CPU、内存、磁盘、键盘、显示器等硬件。应用程序若直接操作这些硬件,会遇到三个问题:
- 硬件细节复杂:不同磁盘、网卡、显示设备的控制方式不同;
- 多个程序会争抢资源:它们可能同时使用 CPU、内存或打印机;
- 危险操作需要限制:普通程序不能随意修改页表、关闭中断或读写其他程序的内存。
因此在硬件和应用之间加入操作系统:
操作系统的核心作用可以压缩成一句话:
向上提供简单统一的服务,向下管理和保护复杂的软硬件资源。
2. 从三个角度理解操作系统
同一个操作系统,从不同角度会得到不同定义。
| 角度 | 看到的操作系统 | 典型考法 |
|---|---|---|
| 用户角度 | 用户与计算机之间的接口 | “为用户提供方便的使用环境” |
| 系统角度 | 资源管理者和程序执行控制者 | 管理 CPU、内存、设备、文件 |
| 扩充机器角度 | 对裸机功能的抽象与扩充 | 隐藏硬件细节,提供更易用的虚拟机器 |
例如,应用只需调用“读取文件”,不必知道磁盘磁头如何移动、扇区如何编号。这就是操作系统对硬件的抽象。
[!warning] 易错点 操作系统是系统软件,不是应用软件。编译器、数据库管理系统虽然也属于系统软件,但通常不是操作系统内核的组成部分。
3. 操作系统管理哪些资源
计算机资源不只是“程序和数据”,还包括硬件。
3.1 四大管理功能
| 管理对象 | 需要解决的问题 | 后续章节 |
|---|---|---|
| 处理机 | 哪个进程获得 CPU、运行多久 | 进程、调度 |
| 存储器 | 内存如何分配、地址如何转换、如何保护 | 内存、虚拟存储 |
| I/O 设备 | 设备如何驱动、分配、缓冲和并行工作 | 设备管理 |
| 文件 | 数据如何按名称组织、存储、共享和保护 | 文件管理 |
此外,操作系统还提供用户接口、网络、安全和错误处理等服务。
3.2 操作系统的设计目标
最常见的四个目标是:
- 方便性:让用户和程序更容易使用计算机;
- 有效性:提高资源利用率和系统吞吐量;
- 可扩充性:便于增加新功能和适配新硬件;
- 开放性:遵循标准,便于不同系统互操作。
单选题问“最主要目标”时,通常选 方便性和有效性。
4. 为什么会出现多道程序设计
早期系统一次只运行一道程序。程序发出磁盘 I/O 后,CPU 只能等待:
多道程序设计把多个程序同时放入内存:
这样可以让 CPU 与设备同时工作,减少 CPU 等待 I/O 的时间。
4.1 必须分清并发和并行
- 并发:多个事件在同一时间段内交替推进;
- 并行:多个事件在同一时刻真正同时执行。
单核 CPU 上:
P1、P2 是并发,不是并行。多核 CPU 可让多个进程真正并行。
但即使只有一个 CPU,CPU 与 I/O 设备之间仍可并行:CPU 执行 P2 时,磁盘可同时为 P1 传输数据。
[!tip] 判断关键词 “同一时间间隔”通常对应并发;“同一时刻”通常对应并行。
4.2 多道程序不是越多越好
程序太少,CPU 可能空闲;程序太多,又会造成:
- 内存不足;
- 调度和切换开销增大;
- 缺页频繁,甚至发生抖动。
因此系统需要控制合适的多道程序度。
5. 操作系统的四个基本特征
5.1 并发
多个程序在同一时间段内推进。它是现代操作系统最基本的特征之一。
5.2 共享
多个并发进程共同使用系统资源,有两种常见方式:
- 互斥共享:一段时间只允许一个进程使用,如打印机;
- 同时共享:宏观上可同时使用,如多个进程读取同一文件。
共享以并发为基础,不要求进程真正并行。
5.3 虚拟
通过技术把一个物理实体表现为多个逻辑实体。例如:
- 一颗 CPU 通过时间片让多个用户感觉各有一颗 CPU;
- 一台打印机通过 SPOOLing 表现为多台逻辑打印机;
- 较小的物理内存通过虚拟存储表现为较大的地址空间。
虚拟并不是凭空产生物理资源,而是改变资源的逻辑表现方式。
5.4 异步
并发进程会“走走停停”,每个进程何时运行、运行多久通常不可预知。但只要同步机制正确,最终结果仍应正确。
[!important] 最基本的两个特征 并发和共享相互依存:因为存在并发,才需要共享资源;为了正确共享资源,又必须控制并发。
6. 常见操作系统类型
6.1 单道批处理
作业成批提交并自动连续运行,但内存通常只有一道用户程序。用户不能随时干预,CPU 等待 I/O 时利用率较低。
6.2 多道批处理
多道作业同时驻留内存,某作业等待 I/O 时切换到其他作业。
- 优点:吞吐量和资源利用率高;
- 缺点:交互性差,作业周转时间可能较长。
6.3 分时系统
把 CPU 时间切成很短的时间片,轮流服务多个终端用户。
特征:多路性、独立性、及时性、交互性。
这里的“独立性”是每个用户感觉自己独占计算机,并不是真的独占全部资源。
若有 $n$ 个就绪进程,时间片为 $q$,一轮等待时间近似为:
$$ T\approx n q $$例如 100 个进程都要在 2 秒内获得一次运行机会,则最大时间片约为:
$$ q=\frac{2}{100}=0.02s=20ms $$6.4 实时系统
要求系统在规定截止时间内响应事件。
- 硬实时:错过截止时间可能造成严重后果,如飞控、工业控制;
- 软实时:偶尔超时可接受,但体验或质量下降,如多媒体播放。
实时系统强调的是可预测地按时完成,不只是平均速度快。
7. 用户态和内核态:为什么要分两种权限
若普通程序可以随意关闭中断、修改页表或直接控制磁盘,它就可能破坏整个系统。因此 CPU 提供不同运行模式:
| 模式 | 权限 | 典型代码 |
|---|---|---|
| 用户态(目态) | 只能执行非特权指令 | 普通应用、命令解释程序 |
| 内核态(管态) | 可执行特权和非特权指令 | 中断处理、调度、内存管理、驱动 |
典型特权操作包括:
- 设置中断屏蔽;
- 设置时钟;
- 启动 I/O;
- 修改页表或内存保护寄存器;
- 执行某些硬件状态访问。
[!warning] 易错点 内核态并不是“只能执行特权指令”,而是既能执行特权指令,也能执行普通指令。
8. 系统调用:应用如何安全地请求内核服务
应用不能直接执行特权操作,但可以通过系统调用提出请求。
常见系统调用服务包括:
- 创建和终止进程;
- 打开、读取、写入文件;
- 申请内存;
- 控制设备;
- 进程间通信。
8.1 三类接口不要混淆
| 接口 | 使用者 | 例子 |
|---|---|---|
| 命令接口 | 普通用户 | Shell 命令、GUI 操作 |
| 程序接口 | 应用程序 | 系统调用 |
| 库函数 | 程序员 | printf()、fopen(),内部可能调用系统调用 |
库函数不等于系统调用。部分库函数完全在用户态完成,部分库函数会进一步调用系统调用。
9. 中断、异常和系统调用的关系
三者都会使 CPU 从用户态进入内核态,但来源不同。
| 机制 | 来源 | 是否与当前指令直接相关 | 例子 |
|---|---|---|---|
| 外部中断 | CPU 外部硬件 | 通常无关 | 时钟中断、磁盘完成中断 |
| 异常 | 当前指令执行产生 | 相关 | 除零、缺页、非法指令 |
| 系统调用 | 程序主动请求 | 主动执行陷入指令 | read、fork |
典型中断处理流程:
“中断”不是停止整个系统,而是暂停当前程序,转去处理事件,之后通常还会回来继续执行。
10. 原语:为什么有些操作不能被打断
某些内核操作必须一次完成。例如创建进程时,若 PCB 只建立了一半就被其他代码访问,系统状态会不一致。
原语就是由若干指令组成、执行期间不可分割的操作。其关键性质是原子性。
常见原语:
- 创建、撤销进程;
- 阻塞、唤醒进程;
- P、V 操作;
- 某些队列和资源表更新。
原语通常运行在内核态,但“内核中的所有代码”并不都属于原语。
11. 系统启动时会做什么
操作系统启动时通常会:
- 初始化 CPU、内存管理和设备状态;
- 建立或装入中断向量表;
- 初始化内核数据结构;
- 创建系统进程或后台服务;
- 挂载已有文件系统。
根目录、inode 表等通常在文件系统格式化时创建,而不是每次操作系统启动时重新创建。
12. 做题时的判断框架
遇到本章判断题,可依次问:
- 题目说的是用户视角还是系统视角?
- “同一时刻”还是“同一时间段”?
- 是真实物理资源,还是逻辑上的虚拟表现?
- 操作是否涉及全局资源或硬件控制?若涉及,通常需要内核态;
- 应用请求服务是否通过系统调用?
13. 高频陷阱
- “操作系统是应用软件”——错,是系统软件。
- “计算机资源只有程序和数据”——错,还包括硬件资源。
- “并发是同一时刻发生”——错,那是并行。
- “共享必须以并行为条件”——错,并发即可产生共享问题。
- “分时用户真正独占全部资源”——错,只是具有独占感。
- “多道程序越多效率越高”——错,过多会增加资源压力。
- “内核态只能执行特权指令”——错,也能执行普通指令。
- “系统调用、库函数和命令是同一种接口”——错,使用层次不同。
14. 本章速记
OS 位于应用与硬件之间:向上提供服务,向下管理资源。
四大管理:处理机、存储器、设备、文件。
四大特征:并发、共享、虚拟、异步。
并发看时间段,并行看同一时刻。
用户程序通过系统调用进入内核请求服务。
外部中断来自硬件,异常来自当前指令,系统调用是程序主动请求。
第一章 操作系统概述(例题)
题目按知识点归类;完全重复题合并展示并保留全部题号。带“答案订正”的题,按课程理论给出修正答案。
- 本章题库记录数:70
- 去重后原题数:66
操作系统定义、作用与资源
例题 1|判断题|2026春OS1/R1-1
操作系统属于最重要的、最不可缺少的应用软件。
- T. T
- F. F
答案:F
解析: 操作系统属于系统软件,不是应用软件。
例题 2|判断题|2026春OS1/R1-2
操作系统完成的主要功能是与硬件相关的。
- T. T
- F. F
答案:F
解析: 操作系统还负责文件、进程、用户接口等管理,不只是硬件相关功能。
例题 3|判断题|2026春OS1/R1-3
当计算机系统没有用户执行时,处理机完全处于空闲状态。
- T. T
- F. F
答案:F
解析: 即使没有用户程序,系统也可能运行内核任务或后台服务,处理机不一定完全空闲。
例题 4|判断题|2026春OS1/R1-7
操作系统虚拟机在逻辑功能上与裸机一样,具有一个物理实体。
- T. T
- F. F
答案:F
解析: 虚拟机是逻辑上的扩充机器,不等同于一个真实物理实体。
例题 5|判断题|2026春OS1/R1-8、2026春OS1/R1-16
对用户而言,操作系统是一种人机交互的环境,对设计者而言,它是一种强功能的系统资源管理程序。
- T. T
- F. F
答案:T
解析: 从用户看 OS 提供交互环境,从系统设计看 OS 管理各类资源。
例题 6|判断题|2026春OS1/R1-10
若把计算机系统分为若干层次,则按由上而下顺序可分为应用系统与应用软件、操作系统、其它系统软件和裸机。
- T. T
- F. F
答案:F
解析: 层次通常是应用软件、其他系统软件、操作系统、裸机,题干顺序不对。
例题 7|判断题|2026春OS1/R1-12
操作系统的所有程序都在系统态执行。
- T. T
- F. F
答案:F
解析: 只有内核相关程序运行在系统态,部分系统服务也可能在用户态运行。
例题 8|判断题|2026春OS1/R1-15、2026春OS1/R1-20
计算机系统的资源包括程序和数据两大部分。
- T. T
- F. F
答案:F
解析: 计算机资源还包括处理机、存储器、设备等硬件资源,不能只说程序和数据。
例题 9|判断题|2026春OS1/R1-18
虚拟机不需要硬件的支持。
- T. T
- F. F
答案:F
解析: 虚拟机仍依赖底层硬件和系统软件支持。
例题 10|判断题|2026春OS1/R1-24
在现代操作系统中,“虚拟”是指通过某种技术把一个物理实体变为若干个逻辑上的对应物
- T. T
- F. F
答案:T
解析: “虚拟”就是把一个物理实体抽象成多个逻辑对应物。
例题 11|单选题|2026春OS1/R2-1
在计算机系统中配置操作系统的主要目的是()
- A. 增强计算机系统的功能
- B. 提高系统资源的利用率
- C. 提高系统的运行速度
- D. 合理组织系统的工作流程,以提高系统吞吐量
答案:B
解析: 配置 OS 的核心目的之一是提高资源利用率,因此选 B。
例题 12|单选题|2026春OS1/R2-2
22.从用户的观点看,操作系统是 ___ 。
- A. 用户与计算机之间的接口
- B. 控制和管理计算机资源的软件
- C. 合理地组织计算机工作流程的软件
- D. 由若干层次的程序按一定的结构组成的有机体
答案:A
解析: 从用户角度看,OS 是用户与计算机之间的接口,因此选 A。
例题 13|单选题|2026春OS1/R2-4
41.操作系统是对 进行管理的软件。
- A. 系统软件
- B. 系统硬件
- C. 计算机资源
- D. 计算机程序
答案:C
解析: OS 管理的是整个计算机资源,包括软硬件资源,因此选 C。
例题 14|单选题|2026春OS1/R2-9
下列哪些软件不属于操作系统的组成部分?____
- A. 数据管理系统
- B. 进程管理系统
- C. 主存管理系统
- D. 文件管理系统
答案:A
解析: 进程、主存、文件管理属于 OS 组成部分,数据管理系统通常不属于 OS,因此选 A。
例题 15|单选题|2026春OS1/R2-14
操作系统的主要功能是管理计算机系统中的资源,其中包括__管理和存储器管理,以及设备管理和文件管理。
- A. 存储器
- B. 虚拟存储器
- C. 硬盘
- D. 处理机
答案:D
解析: OS 四大管理通常是处理机、存储器、设备和文件管理,因此选 D。
例题 16|单选题|2026春OS1/R2-17
在计算机系统中,操作系统是()。
- A. 处于裸机之上的第一层软件
- B. 处于硬件之下的底层软件
- C. 处于应用软件之上的系统软件
- D. 处于系统软件之上的用户软件
答案:A
解析: OS 直接建立在裸机之上,为上层软件提供运行环境,因此选 A。
例题 17|单选题|2026春OS1/R2-19
21.以下关于操作系统作用的叙述中,不正确的是 _____。
- A. 管理系统资源
- B. 控制程序执行
- C. 改善人机界面
- D. 提高用户软件运行速度
答案:D
解析: OS 能管理资源和改善接口,但不能保证提高每个用户软件的运行速度,因此选 D。
例题 18|单选题|2026春OS1/R2-26
以下描述与操作系统无关的是 。
- A. 方便用户的程序集合
- B. 控制和管理计算机系统的硬件和软件资源
- C. 计算机系统的硬件和软件资源的集合
- D. 合理地组织计算机工作流程
答案:C
解析: OS 是管理资源的软件,不是资源本身的集合,因此选 C。
例题 19|单选题|2026春OS1/R2-34
下列说法中正确的是( )。
- A. 操作系统是用户和控制对象的接口
- B. 操作系统是控制对象、计算机和用户的接口
- C. 替换为正确项操作系统是计算机和控制对象的接口
- D. 操作系统是用户和计算机的接口
答案:D
解析: 从用户角度看,OS 是用户和计算机之间的接口,因此选 D。
例题 20|单选题|2026春OS1/R2-39
关于操作系统的叙述下列哪项是不正确的
- A. 管理资源的程序
- B. 管理用户程序执行的程序
- C. 能使系统资源提高效率的程序
- D. 能方便用户编程的程序
答案:D
解析: OS 方便使用和管理执行,但“方便用户编程”不是它的准确作用表述,因此选 D。
例题 21|多选题|2026春OS1/R3-5
计算机操作系统是方便用户、管理和控制计算机( )资源的系统软件
- A. 文件
- B. 数据
- C. 软件
- D. 硬件
答案:CD
解析: OS 管理和控制计算机的软件资源、硬件资源,因此选 C、D。
设计目标与基本特征
例题 22|单选题|2026春OS1/R2-5
58.操作系统的最主要设计目标是___________。
- A. 方便性和有效性
- B. 方便性和可扩展性
- C. 有效性和可扩展性
- D. 有效性和开放性
答案:A
解析: 最主要设计目标通常概括为方便性和有效性,因此选 A。
例题 23|多选题|2026春OS1/R3-2
设计现代OS的主要目标是
- A. 有效性
- B. 方便性
- C. 可扩充性
- D. 开放性
答案:ABCD
解析: 现代 OS 设计目标包括有效性、方便性、可扩充性和开放性,因此全选。
操作系统发展与基本类型
例题 24|判断题|2026春OS1/R1-4
分时系统的用户具有独占性,因此一个用户可以独占计算机系统的资源。
- T. T
- F. F
答案:F
解析: 分时系统让用户感觉独占,但并不真正独占所有计算机资源。
例题 25|判断题|2026春OS1/R1-5
批处理系统不允许用户随时干涉自己程序的运行。
- T. T
- F. F
答案:T
解析: 批处理作业提交后由系统自动处理,用户通常不能随时干预。
例题 26|判断题|2026春OS1/R1-14
分时系统不需要多道程序技术的支持。
- T. T
- F. F
答案:F
解析: 分时系统要轮流服务多个用户,需要多道程序技术支持。
例题 27|判断题|2026春OS1/R1-19
一般情况下,分时系统中处于就绪状态的进程最多。
- T. T
- F. F
答案:T
解析: 分时系统中多数进程通常在等待获得时间片,处于就绪状态。
例题 28|判断题|2026春OS1/R1-21
实时系统只能应用于生产控制系统,不能应用于信息处理系统。
- T. T
- F. F
答案:F
解析: 实时系统也可用于信息查询、交易处理等信息处理场景。
例题 29|判断题|2026春OS1/R1-22
批处理控制程序解决了作业间的自动转换,减少了时间浪费,尤其是主机CPU时间的浪费,如果一个用户的计算作业非常庞大,也不会独自一直占据CPU。
- T. T
- F. F
答案:F
解析: 单道批处理中的大型计算作业仍可能长时间占用 CPU,题干说法过绝对。
例题 30|单选题|2026春OS1/R2-10
现代OS引入多道程序的主要目的在于_____
- A. 充分利用容量越来越大的主、辅存储器
- B. 提高程序的实时响应速度
- C. 提高代码共享,缩减代码的复杂度
- D. 提高CPU的利用率
答案:D
解析: 多道程序让 CPU 在一道程序等待 I/O 时转去执行其他程序,从而提高 CPU 利用率。
例题 31|单选题|2026春OS1/R2-13
__不是一个操作系统环境。
- A. Intel
- B. Windows 2000
- C. Linux
- D. Solaris
答案:A
解析: Windows、Linux、Solaris 是操作系统环境,Intel 是硬件厂商或处理器相关名称。
例题 32|单选题|2026春OS1/R2-15
Linux is a __________ operating system.
- A. time-sharing
- B. batch processing
- C. uniprogramming
- D. real-time
答案:A
解析: Linux 是典型的多用户、多任务分时操作系统。
例题 33|单选题|2026春OS1/R2-32
在分时系统中,时间片一定,( ),响应时间越长
- A. 内存越多
- B. 用户数越多
- C. 后备队列
- D. 用户数越少
答案:B
解析: 时间片固定时,用户数越多,轮到每个用户的间隔越长,响应时间越长。
例题 34|单选题|2026春OS1/R2-33
以下哪个是实时操作系统追求的重要目标_________
- A. 快速响应
- B. 高吞吐率
- C. 充分利用内存
- D. 系统冗余
答案:A
解析: 实时系统强调在规定时间内响应事件,因此选快速响应。
例题 35|单选题|2026春OS1/R2-35
在分时系统中,为了使多个进程能够及时和系统交互,最关键的问题是能在短时间内,使所有就绪进程都能运行。当就绪进程数为100时,为保证响应时间不超过2s,此时最大时间片应为()。 【1ms=0.001s】
- A. 100ms
- B. 20ms
- C. 50ms
- D. 100ms
答案:B
解析: 最大时间片 q=2s/100=0.02s=20ms,因此选 B。
例题 36|单选题|2026春OS1/R2-38
操作系统的基本类型是_____。
- A. 批处理系统、分时系统和多任务系统
- B. 实时系统、分时系统和批处理系统
- C. 单用户系统、多用户系统和批处理系统``
- D. 实时系统、分时系统和多用户系统
答案:B
解析: 操作系统基本类型通常包括批处理、分时和实时系统。
例题 37|多选题|2026春OS1/R3-4
推动多道批处理系统形成和发展的主要动力是
- A. 不断提高计算机资源的利用率
- B. 方便用户
- C. 硬件的不断更新换代
- D. 计算机体系结构的不断发展
答案:ABCD
答案订正: 按课程理论,本题应选
ABCD。
解析: 教材将动力概括为提高资源利用率、方便用户、器件更新和体系结构发展,故按题库选 ABCD。
多道程序、并发与并行
例题 38|判断题|2026春OS1/R1-6、2026春OS1/R1-11
并发含有“同时进行”的概念,是指两个或者是多个事件在同一时刻发生。
- T. T
- F. F
答案:F
解析: 并发是同一时间段内发生,并行才是同一时刻发生。
例题 39|判断题|2026春OS1/R1-9、2026春OS1/R1-17
资源的共享是以程序的并行执行为条件的,没有程序的并行执行,就没有资源的共享。
- T. T
- F. F
答案:F
解析: 资源共享以并发为条件,不要求程序真正并行执行。
例题 40|判断题|2026春OS1/R1-13
在单处理机的环境下,多道程序的执行是并发的不是并行的,程序的执行与I/O操作也只能并发不能并行。
- T. T
- F. F
答案:F
解析: 单处理机上进程之间不能并行,但 CPU 与 I/O 设备可以并行工作。
例题 41|判断题|2026春OS1/R1-23
在批理系统中引入多道程序设计后,会使系统具有以下特征:间断性、失去封闭性、不可再现性
- T. T
- F. F
答案:T
解析: 多道程序并发执行会带来间断性、失去封闭性和不可再现性。
例题 42|判断题|2026春OS1/R1-25
采用多道程序设计的系统中,系统中的程序道数越多,系统的效率越高。
- T. T
- F. F
答案:F
解析: 程序道数过多会增加调度和内存压力,效率不一定更高。
例题 43|单选题|2026春OS1/R2-3
38.多道程序设计是指 。
- A. 在多台处理机上同时执行多道程序
- B. 在多台处理机上同一时刻执行多道程序
- C. 在一台处理机上同时执行多道程序
- D. 在一台处理机上同一时刻执行多道程序
答案:C
解析: 多道程序强调一台处理机上宏观同时推进多道程序,因此选 C。
例题 44|单选题|2026春OS1/R2-6
单处理机系统中,可并行的是() 1.进程与进程 2.处理机与设备 3.处理机与通道 4.设备与设备
- A. 1,2,3
- B. 1,2,4
- C. 1,3,4
- D. 2,3,4
答案:D
解析: 单处理机上进程与进程不能并行,但处理机、通道和设备之间可并行工作。
例题 45|单选题|2026春OS1/R2-8
构建多道程序系统的主要目的在于_______
- A. 充分利用存储器的存储空间
- B. 缩短作业运行时间
- C. 减少外设的等待时间
- D. 减少CPU等待时间
答案:D
解析: 多道程序主要让 CPU 少等 I/O,提高 CPU 利用率。
例题 46|单选题|2026春OS1/R2-11
下列关于多道程序系统的叙述中,不正确的是
- A. 支持进程的并发执行
- B. 不必支持虚拟存储管理
- C. 需要实现对共享资源的管理
- D. 进程数越多 CPU 利用率越高
答案:D
解析: 进程数过多会带来资源紧张和调度开销,CPU 利用率不一定越高。
例题 47|单选题|2026春OS1/R2-24
操作系统的进程管理模块并不负责___________。
- A. 进程的创建和删除
- B. 提供死锁处理机制
- C. 实现I/O设备的调度
- D. 通过共享内存实现进程间调度
答案:C
解析: I/O 设备调度属于设备管理,不属于进程管理模块。
例题 48|单选题|2026春OS1/R2-30
若干个事件在同一时刻发生称为
- A. 并行
- B. 并发
- C. 同步
- D. 异步
答案:A
解析: 同一时刻真正同时发生称为并行。
例题 49|单选题|2026春OS1/R2-31
若干个事件在同一时间间隔内发生称为
- A. 并行
- B. 并发
- C. 同步
- D. 异步
答案:B
解析: 同一时间间隔内发生称为并发。
例题 50|单选题|2026春OS1/R2-36
关于并发性的论述中,正确的是()
- A. 并发性是指若干事件在同一时刻发生
- B. 并发性是指若干事件在不同时刻发生
- C. 并发性是指若干事件在同一时间间隔内发生
- D. 并发性是指若干事件在不同时间间隔内发生
答案:C
解析: 并发性强调同一时间间隔,而不是同一时刻。
例题 51|单选题|2026春OS1/R2-37
20.下列各项中,____ 不是现代操作系统的主要特征。
- A. 并发性
- B. 共享性
- C. 确定性
- D. 虚拟性
答案:C
解析: 现代 OS 的主要特征包括并发、共享、虚拟和异步,不包括确定性。
例题 52|多选题|2026春OS1/R3-3
OS具有哪些基本特征
- A. 并发性
- B. 共享性
- C. 虚拟性
- D. 异步性
答案:ABCD
解析: OS 的基本特征是并发、共享、虚拟和异步,因此全选。
用户态、内核态、中断与原语
例题 53|单选题|2026春OS1/R2-7
现代操作系统的两个基本特征是资源共享与_______
- A. 并行处理
- B. 批处理
- C. 中断处理
- D. 并发处理
答案:D
解析: 并发与共享是现代操作系统最基本、相互依存的特征。
例题 54|单选题|2026春OS1/R2-12
下列关于 CPU 模式的叙述中,正确的是
- A. CPU 处于用户态时只能执行特权指令
- B. CPU 处于内核态时只能执行特权指令
- C. CPU 处于用户态时只能执行非特权指令
- D. CPU 处于内核态时只能执行非特权指令
答案:C
解析: 用户态不能执行特权指令,只能执行非特权指令。
例题 55|单选题|2026春OS1/R2-16
2.操作系统是一组___ 。
- A. 文件管理程序
- B. 中断处理程序
- C. 资源管理程序
- D. 设备管理程序
答案:C
解析: 从系统角度看,操作系统是一组管理计算机资源的程序。
例题 56|单选题|2026春OS1/R2-18
6.“中断”的概念是指_____
- A. 暂停处理机执行
- B. 暂停处理机对现行程序的执行
- C. 停止整个系统运行
- D. 使处理机空转
答案:B
解析: 中断是暂停当前程序,转去处理紧急事件,处理后再返回。
例题 57|单选题|2026春OS1/R2-20
25.在下列操作系统的各个功能组成部分中,_____ 不需要硬件的支持。
- A. 进程调度
- B. 时钟管理
- C. 地址影射
- D. 中断系统
答案:A
解析: 时钟、地址映射和中断系统依赖硬件机制,进程调度主要由软件完成。
例题 58|单选题|2026春OS1/R2-21
29.有关原语的说法中,____ 是正确的。
- A. 原语是不可中断执行的用户过程
- B. 原语是不可中断执行的操作系统过程
- C. 原语是可中断执行的用户过程
- D. 原语是可中断执行的操作系统过程
答案:B
解析: 原语是操作系统中不可中断执行的过程。
例题 59|单选题|2026春OS1/R2-27
30.原语应是 。
- A. 操作系统中的一个函数
- B. 操作系统中的一个过程
- C. 操作系统中的一个执行不可中断的过程
- D. 操作系统中的一个执行可中断的函数
答案:C
解析: 原语的关键特点是执行过程不可中断。
例题 60|单选题|2026春OS1/R2-28
61.下列选项中,在用户态执行的是 。(2011全国试题)
- A. 命令解释程序
- B. 缺页处理程序
- C. 进程调度程序
- D. 时钟中断处理程序
答案:A
解析: 命令解释程序通常运行在用户态,缺页、调度和时钟中断处理在内核态。
例题 61|单选题|2026春OS1/R2-40
下列选项中,需要在操作系统进行初始化过程中创建的是
- A. 中断向量表
- B. 文件系统的根目录
- C. 硬盘分区表
- D. 文件系统的索引节点表
答案:A
解析: OS 初始化需要建立中断向量表;根目录、分区表等不是每次初始化创建。
系统调用、接口与系统结构
例题 62|单选题|2026春OS1/R2-22
55.操作系统提供给用户程序的接口是 。
- A. 命令解释程序
- B. 系统调用
- C. P、V操作
- D. 对话框
答案:B
答案订正: 按课程理论,本题应选
B。
解析: 用户程序请求操作系统服务使用系统调用,正确答案是 B;P/V 是同步原语。
例题 63|单选题|2026春OS1/R2-23
下列选项中,通过系统调用完成的操作是:
- A. 页置换
- B. 进程调度
- C. 创建新进程
- D. 生成随机整数
答案:C
解析: 创建新进程需要请求操作系统服务,通常通过系统调用完成。
例题 64|单选题|2026春OS1/R2-25
用户在程序设计过程中,可通过()获得操作系统的服务。
- A. 库函数
- B. 键盘命令
- C. 系统调用
- D. 内部命令
答案:C
解析: 程序设计中请求操作系统服务应使用系统调用。
例题 65|单选题|2026春OS1/R2-29
下列选项中,操作系统提供给应用程序的接口是()。
- A. 系统调用
- B. 中断
- C. 库函数
- D. 原语
答案:A
解析: 操作系统提供给应用程序的接口是系统调用。
例题 66|多选题|2026春OS1/R3-1
32*.只能在核心态下执行的指令是 。
- A. 读时钟日期
- B. 屏蔽所有中断
- C. 改变文件内容
- D. 调用库函数
答案:AB
答案订正: 按课程理论,本题应选
AB。
解析: 屏蔽全部中断显然是特权操作;读取硬件时钟日期通常也需通过内核/特权 I/O 完成。题库部分得分表明应选 A、B。
第二章 进程与线程
[!abstract] 本章学习路线 先理解为什么“程序”不足以描述并发执行,再学习进程由什么组成、状态为什么转换,最后理解线程为何比进程更轻量。
1. 为什么需要进程概念
程序只是磁盘上的一组静态指令。例如同一个浏览器程序可以同时打开多个窗口,每个窗口的执行位置、数据和状态都不同。
因此操作系统不能只记录“正在运行浏览器程序”,还必须记录每一次具体执行的状态。这一次动态执行过程就是进程。
| 程序 | 进程 |
|---|---|
| 静态代码 | 动态执行过程 |
| 可长期保存在外存 | 有创建、运行、结束的生命周期 |
| 本身没有运行状态 | 有当前状态、寄存器和资源 |
| 一个程序文件 | 同一程序可对应多个进程 |
可以把两者类比为:
程序 = 菜谱;进程 = 按照菜谱进行的一次具体烹饪。
菜谱相同,但每次烹饪使用的材料、进度和结果状态不同。
2. 进程是什么
进程是程序的一次执行过程,也是系统进行资源分配和独立运行的基本单位。
进程具有:
- 动态性:会创建、运行、暂停和结束;
- 并发性:多个进程可在同一时间段内推进;
- 独立性:通常拥有独立地址空间和运行现场;
- 异步性:推进速度受到调度和事件影响。
3. 进程由什么组成
一个进程实体通常包括:
它由程序段、数据段和 PCB 共同组成。
3.1 PCB 为什么重要
PCB(Process Control Block,进程控制块)相当于进程在操作系统中的“档案”。操作系统不直接靠程序代码识别进程,而是靠 PCB 管理它。
PCB 中常见信息:
| 类别 | 典型内容 |
|---|---|
| 身份信息 | PID、父进程 PID、用户标识 |
| 处理机现场 | 程序计数器、寄存器、状态字、栈指针 |
| 调度信息 | 当前状态、优先级、时间片、等待事件 |
| 资源信息 | 地址空间、打开文件、I/O 状态、会计信息 |
PCB 是进程存在的唯一标志。 创建 PCB 意味着系统开始承认这个进程;撤销 PCB 意味着进程生命周期结束。
[!warning] 易错点 PCB 由操作系统创建、维护和删除,用户进程不能自己删除 PCB。
4. 三种基本状态:先看“还缺什么”
记忆状态最简单的方法不是背名字,而是问:进程现在还缺什么才能执行?
| 状态 | 当前情况 | 还缺什么 |
|---|---|---|
| 运行态 | 正在 CPU 上执行 | 什么都不缺 |
| 就绪态 | 资源和条件已具备 | 只缺 CPU |
| 阻塞态/等待态 | 正在等待 I/O、资源或事件 | 缺某个事件或条件 |
4.1 合法状态转换
逐个理解:
就绪 → 运行
调度程序从就绪队列选中该进程,把 CPU 分配给它。
运行 → 就绪
进程本身仍可继续执行,但暂时失去 CPU,例如:
- 时间片用完;
- 更高优先级进程到达并抢占;
- 操作系统主动调度。
运行 → 阻塞
进程在执行中发现条件不满足,只能等待,例如:
- 请求磁盘读取,数据尚未返回;
- 等待信号量;
- 等待其他进程发送消息。
阻塞 → 就绪
等待的事件已经发生,进程具备运行条件,但 CPU 可能正被其他进程使用,所以先回到就绪队列。
4.2 两种不可能的直接转换
就绪不能直接变阻塞
就绪进程没有在 CPU 上执行,不能主动发出“等待 I/O”或 P() 操作。
阻塞不能直接变运行
事件完成只说明它不再缺事件;它仍需等待调度程序分配 CPU。因此必须先:
阻塞 → 就绪 → 运行
[!tip] 一句话判断 就绪只缺 CPU,阻塞缺事件。
5. 状态转换由谁触发
状态转换由不同主体触发:
| 转换 | 主要触发者 |
|---|---|
| 就绪 → 运行 | 调度程序 |
| 运行 → 就绪 | 时钟中断、抢占式调度 |
| 运行 → 阻塞 | 运行中的进程主动请求等待 |
| 阻塞 → 就绪 | I/O 中断或其他进程的唤醒操作 |
这解释了为什么“阻塞条件解除后直接运行”是错误的:I/O 中断只能把它唤醒到就绪态,最终是否运行仍由调度决定。
6. 创建态、终止态与挂起态
三态模型适合基础题,但完整系统还可能有:
- 创建态:正在建立 PCB、地址空间和资源;
- 终止态:执行已经结束,系统正在回收资源;
- 就绪挂起:具备运行条件,但进程映像被换到外存;
- 阻塞挂起:既在外存,又仍等待事件。
6.1 阻塞和挂起的区别
| 阻塞 | 挂起 |
|---|---|
| 因等待某个事件而不能运行 | 被系统或用户主动暂停 |
| 即使有 CPU 也不能运行 | 激活并调回内存后可重新参与调度 |
| 原因通常来自进程执行 | 原因通常来自资源调节、调试或用户操作 |
挂起的核心含义是暂不参加调度,不等于死锁。
7. 进程如何创建
创建进程不是“立刻让它运行”,而是让它成为一个可被调度的实体。
典型步骤:
创建流程如上图所示,核心是先建立可被系统管理和调度的进程实体。
因此,下列操作通常是创建所必需的:
- 建立 PCB;
- 分配地址空间或相关资源;
- 初始化状态和上下文;
- 放入就绪队列。
而“立即分配 CPU”不是创建进程的必要步骤。新进程通常只是进入就绪态,之后由调度程序决定何时运行。
常见创建原因:用户登录、作业调度、系统提供服务、应用创建子进程。
8. 进程如何终止
进程可能因为以下原因结束:
- 正常执行完成;
- 出现无法恢复的错误;
- 被父进程、用户或系统终止;
- 系统关闭。
终止时操作系统会回收内存、文件和设备等资源,并最终撤销 PCB。
父子进程的具体终止关系取决于操作系统和题库口径。考试题若明确采用“父进程撤销时同时处理子进程”的教材模型,应按该模型作答。
9. 什么是进程切换
CPU 从进程 A 转去执行进程 B 时,不能只记住“换了程序”。操作系统必须保存 A 当前执行到哪里,并恢复 B 上次执行到哪里。
图中展示了从保存 A 的上下文到恢复 B 的上下文的完整过程。
需要保存的上下文通常包括:
- 程序计数器:下一条指令地址;
- 通用寄存器和暂存信息;
- 处理机状态字;
- 栈指针;
- 进程状态;
- 与系统调用相关的参数和返回位置。
9.1 模式切换不等于进程切换
应用执行系统调用时:
同一个进程:用户态 → 内核态 → 用户态
这只是模式切换,进程身份未变。
若内核处理完后选择另一个进程运行,才进一步发生进程切换。
10. 进程之间为什么需要协调
并发进程可能:
- 完全独立,彼此无关;
- 共享文件、内存或设备;
- 相互合作,存在先后次序。
因此会产生两类制约关系:
- 互斥:竞争同一资源,一次只能一个进程使用;
- 同步:合作进程必须按规定顺序推进。
具体机制将在第三章展开。
11. 为什么还需要线程
若一个进程内部需要同时做多件事,例如浏览器一边渲染页面、一边下载文件、一边响应用户输入,全部使用独立进程会带来较大的创建和切换开销。
线程把“资源拥有”和“执行活动”拆开:
- 进程主要负责拥有资源;
- 线程主要负责在 CPU 上执行和调度。
11.1 线程拥有与共享什么
同一进程的线程共享:
- 地址空间;
- 代码和全局数据;
- 打开的文件;
- 大部分进程资源。
每个线程自己拥有:
- 线程 ID;
- 程序计数器;
- 寄存器集合;
- 独立栈;
- 线程控制块。
所以“线程基本不拥有系统资源”通常正确,但“线程什么都没有”是错误的。
11.2 进程和线程对比
| 比较项 | 进程 | 线程 |
|---|---|---|
| 主要角色 | 资源分配单位 | CPU 调度单位 |
| 地址空间 | 进程间通常独立 | 同进程线程共享 |
| 创建和切换 | 开销较大 | 开销较小 |
| 通信 | 需要 IPC | 可直接访问共享数据 |
| 故障影响 | 隔离较强 | 一个线程错误可能影响整个进程 |
11.3 用户级线程和内核级线程
| 类型 | 谁管理 | 优点 | 局限 |
|---|---|---|---|
| 用户级线程 | 用户线程库 | 切换快,不必频繁进入内核 | 某些模型中一个线程阻塞会影响整个进程 |
| 内核级线程 | 操作系统内核 | 可由内核独立调度,可在多核并行 | 管理和切换开销较大 |
12. 数量类题目的基本判断
单处理器系统在同一时刻:
- 运行态进程最多 1 个;
- 就绪态可有 0 到多个;
- 阻塞态可有 0 到全部进程。
严格理论上,若系统中有 5 个进程,5 个都可处于阻塞态。若某道题答案认为最多 4 个,通常是题库额外假设“至少存在一个非等待进程”,应注意课程口径。
13. 高频陷阱
- “程序和进程一一对应”——错,同一程序可产生多个进程。
- “PCB 由用户建立或删除”——错,由操作系统管理。
- “三种状态任意两种都能直接转换”——错。
- “I/O 完成后阻塞进程直接运行”——错,先进入就绪态。
- “时间片用完进入阻塞态”——错,进入就绪态。
- “创建进程必须立即分配 CPU”——错,只需先成为可调度实体。
- “模式切换一定导致进程切换”——错。
- “同一进程中的线程不能并发”——错,可以并发,多个核心上还可并行。
14. 本章速记
程序是静态代码,进程是一次动态执行。
进程 = 程序段 + 数据段 + PCB;PCB 是存在的唯一标志。
就绪只缺 CPU,阻塞缺事件。
时间片到:运行→就绪;I/O 完成:阻塞→就绪。
进程切换要保存和恢复执行现场。
进程负责资源,线程负责调度;同进程线程共享地址空间。
第二章 进程与线程(例题)
题目按知识点归类;完全重复题合并展示并保留全部题号。带“答案订正”的题,按课程理论给出修正答案。
- 本章题库记录数:38
- 去重后原题数:38
程序、进程与PCB
例题 1|判断题|2026春OS2/1-11
并发性是指若干事件在同一个时刻发生。
- T. T
- F. F
答案:F
解析: 并发是同一时间间隔内发生,并行才是同一时刻发生。
例题 2|判断题|2026春OS2/1-12
多道程序的执行失去了封闭性和再现性,因此多道程序系统中引入进程的概念。
- T. T
- F. F
答案:T
解析: 多道程序并发执行会失去封闭性和可再现性,因此需要进程来描述动态执行过程。
例题 3|判断题|2026春OS2/1-17
PCB是系统为每个进程定义的的重要数据结构,其中记录了操作系统所需要的、用于描述进程当前情况以及控制进程运行的全部信息
- T. T
- F. F
答案:T
解析: PCB 记录进程状态、调度、资源等管理信息,是 OS 管理进程的依据。
例题 4|判断题|2026春OS2/1-22
原语是一种不可分割的操作。
- T. T
- F. F
答案:T
解析: 原语的特点就是执行过程不可分割。
例题 5|判断题|2026春OS2/1-23
多道程序的执行一定不具备再现性。
- T. T
- F. F
答案:F
解析: 多道程序可能失去再现性,但若控制好执行次序和共享资源,也可以得到可再现结果。
例题 6|判断题|2026春OS2/1-24
并发是并行的不同表述,其原理相同。
- T. T
- F. F
答案:F
解析: 并发强调同一时间段内推进,并行强调同一时刻同时执行,二者不同。
例题 7|判断题|2026春OS2/1-28
在PCB中可以直接或间接找到有关该进程的所有信息。
- T. T
- F. F
答案:T
解析: PCB 是进程管理信息的集中入口,可直接或间接找到进程相关信息。
例题 8|单选题|2026春OS2/2-11
操作系统通过()对进程进行管理。
- A. DCT
- B. JCB
- C. PCB
- D. FCB
答案:C
解析: 进程是程序的一次动态执行,由程序段、数据段和 PCB 组成;PCB 是进程存在和 OS 管理的唯一标志。 因此应选 C(PCB)。
例题 9|单选题|2026春OS2/2-14
进程之间的制约关系可以归结为
- A. 同步与互斥
- B. 并发与异步
- C. 同步与并发
- D. 同步与异步
答案:A
解析: 进程间的制约关系主要是合作引起的同步和竞争资源引起的互斥。
例题 10|单选题|2026春OS2/2-15
有关并发进程相互之间的关系,正确的说法是____。
- A. 肯定是无关的
- B. 肯定是有交往的
- C. 可能是无关的,也可能是有交往的
- D. 一定要互斥执行
答案:C
解析: 并发进程可能相互独立,也可能因共享资源或协作而发生联系。
例题 11|单选题|2026春OS2/2-28
有甲、乙两道算题,每道需执行1小时(其中处理器的工作时间为12分钟)。若它们在多道系统中执行,甲、乙两道题总共需执行80分钟,则处理器的利用率为______。
- A. 50%
- B. 40%
- C. 30%
- D. 20%
答案:C
解析: 两作业总 CPU 时间为 12+12=24 分钟,系统历时 80 分钟,利用率=24/80=30%。
例题 12|多选题|2026春OS2/3-5
进程由( )组成
- A. 程序
- B. 数据
- C. TCB
- D. PCB
答案:ABD
解析: 进程是程序的一次动态执行,由程序段、数据段和 PCB 组成;PCB 是进程存在和 OS 管理的唯一标志。 因此应选 ABD(程序;数据;PCB)。
进程状态与状态转换
例题 13|判断题|2026春OS2/1-8
若进程处于阻塞状态,当引起阻塞的条件被解除时,进程状态应变为就绪状态。
- T. T
- F. F
答案:T
解析: 阻塞条件解除后,进程只是具备运行条件,应先进入就绪态。
例题 14|判断题|2026春OS2/1-26
单机系统最多允许二个进程处于运行状态。
- T. T
- F. F
答案:F
解析: 单处理器同一时刻最多一个进程运行,多处理器才可能多个进程同时运行。
例题 15|判断题|2026春OS2/1-29
进程的3种基本状态:就绪、运行和阻塞,任意两种状态之间都可以相互转换。
- T. T
- F. F
答案:F
解析: 阻塞态不能直接转运行态,就绪态也不能直接转阻塞态。
例题 16|判断题|2026春OS2/1-30
进程状态的转换是由操作系统完成的,对用户是透明的。
- T. T
- F. F
答案:T
解析: 进程状态由 OS 调度和事件处理改变,对用户程序透明。
例题 17|单选题|2026春OS2/2-10
通常用户进程被建立后()。
- A. 便一直存在于系统中,直到被操作人员撤消
- B. 随着时间片轮转而撤消与建立
- C. 随着作业运行正常或不正常结束而撤消
- D. 随着进程的阻塞或唤醒而撤消与建立
答案:C
解析: 用户进程通常在作业正常结束或异常结束时被撤销。
例题 18|单选题|2026春OS2/2-12
关于挂起状态,正确的是()。
- A. 是一种系统状态,在此状态中所有进程都不活动
- B. 这是一种相当于死锁的状态
- C. 进程暂不参加系统调度的状态
- D. 以上都不对
答案:C
解析: 挂起表示进程暂时不参加调度,不等同于死锁或全系统停顿。
例题 19|单选题|2026春OS2/2-13
下面所述步骤中,()不是创建进程所必需的。
- A. 为进程分配内存
- B. 建立一个进程控制块
- C. 由调度程序为进程分配处理器
- D. 将进程控制块链入就绪队列
答案:C
解析: 创建进程要分配资源、建立 PCB 并入队,但不必立即分配处理器。
例题 20|单选题|2026春OS2/2-19
进程所请求的一次打印输出结束后,将使该进程状态从______。
- A. 运行态变为就绪态
- B. 运行态变为等待态
- C. 就绪态变为运行态
- D. 等待态变为就绪态
答案:D
解析: 就绪态只缺 CPU,阻塞态在等事件;阻塞解除后先进入就绪态,不能直接运行。 因此应选 D(等待态变为就绪态)。
例题 21|单选题|2026春OS2/2-20
某计算机系统中若同时存在5个进程,则处于等待状态的进程最多可有______个。
- A. 0
- B. 1
- C. 4
- D. 5
答案:C
解析: 按题库口径需至少保留一个非等待进程,因此等待状态最多为 4 个。
例题 22|单选题|2026春OS2/2-22
在下述进程状态的转换中,_______是不可能的。
- A. 运行态→就绪态
- B. 运行态→等待态
- C. 等待态→就绪态
- D. 就绪态→等待态
答案:D
解析: 就绪态只缺 CPU,阻塞态在等事件;阻塞解除后先进入就绪态,不能直接运行。 因此应选 D(就绪态→等待态)。
例题 23|单选题|2026春OS2/2-27
在一个单处理机系统中,若有4个用户进程,且假设当前时刻为用户态,则处于就绪状态的用户进程至少有____个。
- A. 0
- B. 1
- C. 2
- D. 3
答案:A
解析: 当前处于用户态说明已有一个用户进程在运行,其余进程可能都处于阻塞态,所以就绪进程最少为 0。
例题 24|单选题|2026春OS2/2-30
87.( ) 不是进程和程序的区别。
- A. 程序是一组有序的静态指令,进程是一次程序的执行过程
- B. 程序只能在前台运行,而进程可以在前台或后台运行
- C. 程序可以长期保存,进程是暂时的
- D. 程序没有状态,而进程是有状态的
答案:B
解析: 程序也可以作为后台任务对应的代码存在,前台/后台不是进程与程序的本质区别。
例题 25|多选题|2026春OS2/3-2
在进行进程切换时,所要保存的处理机状态信息有哪些?
- A. 进程当前暂存信息
- B. 下一指令地址信息
- C. 进程状态信息
- D. 过程和系统调用参数及调用地址信息
答案:ABCD
答案订正: 按课程理论,本题应选
ABCD。
解析: 进程切换需保存暂存信息、下一指令地址、进程状态及系统调用相关参数/地址,按题库应选 ABCD。
例题 26|多选题|2026春OS2/3-4
下面哪些会导致进程阻塞
- A. 启动硬盘驱动器
- B. 等待硬盘的数据传来
- C. 时间片用完
- D. 无新工作可做
答案:ABD
解析: 等待 I/O 或无事可做会阻塞;时间片用完只会从运行态转为就绪态。
进程创建、撤销与切换
例题 27|判断题|2026春OS2/1-16
用户为每个自己的进程创建PCB,并控制进程的执行过程
- T. T
- F. F
答案:F
解析: PCB 由操作系统创建和管理,用户不能直接控制。
例题 28|判断题|2026春OS2/1-18
进程不可以删除自己的PCB表
- T. T
- F. F
答案:T
解析: PCB 属于操作系统管理结构,进程不能自行删除。
例题 29|判断题|2026春OS2/1-27
进程可以删除自己的PCB
- T. T
- F. F
答案:F
解析: 删除 PCB 必须由操作系统完成,进程不能自己删除自己的 PCB。
例题 30|单选题|2026春OS2/2-18
进程控制块中的现场信息是在 ______保存的。
- A. 创建进程时
- B. 处理器执行指令时
- C. 中断源申请中断时
- D. 中断处理程序处理中断前
答案:D
解析: 进程控制由 OS 原语完成;切换时要保存程序计数器、寄存器、状态字、栈等运行现场。 因此应选 D(中断处理程序处理中断前)。
例题 31|单选题|2026春OS2/2-25
在下述关于父进程和子进程的叙述中,正确的是_____。
- A. 父进程创建了子进程,因此父进程执行完了,子进程才能运行
- B. 子进程执行完了,父进程才能运行
- C. 撤消子进程时,应该同时撤消父进程
- D. 撤消父进程时,应该同时撤消子进程
答案:D
解析: 按该题口径,父进程撤销时应同时处理其子进程。
例题 32|多选题|2026春OS2/3-3
引起进程创建的主要事件
- A. 用户登录
- B. 作业调度**
- C. 提供服务
- D. 应用请求
答案:ABCD
解析: 用户登录、作业调度、系统提供服务和应用请求都可能引起进程创建。
进程关系与通信
例题 33|判断题|2026春OS2/1-10
操作系统的进程管理是整个操作系统管理中的核心,它包含了进程的调度、协调以及进程通信。
- T. T
- F. F
答案:T
解析: 进程管理包括调度、同步协调、通信等内容,是 OS 的核心管理之一。
线程及其与进程的关系
例题 34|判断题|2026春OS2/1-19
线程中的实体基本不拥有资源
- T. T
- F. F
答案:T
解析: 线程基本共享进程资源,只保留少量运行所需信息。
例题 35|判断题|2026春OS2/1-20
线程可并发执行
- T. T
- F. F
答案:T
解析: 线程是可调度的执行单元,同一进程内多个线程也可以并发执行。
例题 36|单选题|2026春OS2/2-29
下列关于进程和线程的叙述中,正确的是____。(2012全国试题)
- A. 不管系统是否支持线程,进程都是资源分配的基本单位
- B. 线程是资源分配的基本单位,进程是调度的基本单位
- C. 系统级线程和用户级线程的切换都需要内核的支持
- D. 同一进程的各个线程拥有各自不同的地址空间
答案:A
解析: 进程是资源分配单位,线程是 CPU 调度单位;同进程线程共享地址空间和大部分资源。 因此应选 A(不管系统是否支持线程,进程都是资源分配的基本单位)。
例题 37|单选题|2026春OS2/2-49
进程和线程是两个不同的概念,但它们之间是有联系的。因为()。
- A. 进程是线程的一部分
- B. 进程和线程必须同步
- C. 线程是进程的一部分
- D. 进程和线程必须互斥
答案:C
解析: 线程存在于进程内部,是进程中的执行单元。
例题 38|单选题|2026春OS2/2-50
下列关于线程的描述中,哪一个是错误的____
- A. 线程是进程内部相对独立的,可调度的执行单元
- B. 同一进程中的线程基本不支持迸发,不同进程中的线程可以并发
- C. 一个进程中的多个线程共享该进程拥有的资源
- D. 某进程被挂起时,该进程中的所有线程也都将被挂起
答案:B
解析: 同一进程中的线程也可以并发执行,B 的说法错误。
第三章 进程同步与死锁
[!abstract] 本章学习路线 先理解并发为什么会产生错误,再学习临界区和 P/V 操作如何约束执行顺序;最后区分死锁的预防、避免、检测,并掌握银行家算法。
1. 并发为什么会出错
多个进程交替执行时,一条高级语言语句通常并不是一个不可分割的动作。
例如两个进程同时执行:
count = count + 1
底层可能分为:
读取 count
加 1
写回 count
若两个进程交叉执行:
P1 读取 count = 0
P2 读取 count = 0
P1 写回 1
P2 写回 1
理论上应增加两次,结果却只有 1。这种结果依赖执行先后次序的现象称为竞态条件。
因此,并发程序不仅要“都能运行”,还要保证共享数据在任何合法调度顺序下都正确。
2. 进程之间的两类制约关系
2.1 互斥:不能同时做
多个进程竞争同一不可同时使用的资源。例如两个进程不能同时控制同一台独占打印机。
2.2 同步:必须按顺序做
合作进程之间存在先后关系。例如生产者放入产品后,消费者才能取走产品。
| 关系 | 核心问题 | 例子 |
|---|---|---|
| 互斥 | 谁先进入,其他人必须等待 | 修改共享变量、使用打印机 |
| 同步 | 某事件发生后,另一个进程才能继续 | 生产后消费、写入后读取 |
互斥可看作一种特殊的同步:它同步的是“进入临界区的先后顺序”。
3. 临界资源和临界区
- 临界资源:一次只允许一个进程使用的资源;
- 临界区:进程中访问临界资源的那段代码。
若 5 个进程都要修改共享变量 A,则每个进程都有自己的临界区,共有 5 个临界区;但它们访问的是同一个临界资源。
一个规范结构通常是:
3.1 正确互斥应满足什么
- 空闲让进:临界区空闲时,允许请求者进入;
- 忙则等待:已有进程进入时,其他进程不能进入;
- 有限等待:不能让某进程永远等不到;
- 让权等待:等待时尽量释放 CPU,而不是一直空转。
前三项保证正确和公平;“让权等待”主要提高效率。
[!warning] 易错点 进程在临界区内发生 I/O 阻塞,并不会自动释放互斥锁。若程序没有执行退出区,其他进程仍不能进入。
4. 信号量:把资源状态变成一个可控制的数
信号量是只能通过原子操作访问的整型变量。两种操作是:
P(S) / wait(S):
S = S - 1
若 S < 0,则当前进程进入等待队列
V(S) / signal(S):
S = S + 1
若 S <= 0,则从等待队列唤醒一个进程
P 和 V 必须是原语,否则两个进程同时修改信号量本身又会发生竞态。
4.1 P 和 V 的直觉
P(S):尝试拿走一个许可或资源;V(S):归还一个许可或资源。
可以记为:
P = 申请 / 等待;V = 释放 / 通知。
4.2 信号量数值如何解释
对记录型信号量:
- $S>0$:还有 $S$ 个可用资源;
- $S=0$:没有空闲资源,也暂时没有等待者;
- $S<0$:有 $|S|$ 个进程正在等待。
例如信号量初值为 3,当前值为 -2,表示三个资源都已被占用,还有 2 个进程等待。
4.3 互斥信号量
保护一个一次只能一个进程进入的临界区:
semaphore mutex = 1;
P(mutex);
临界区;
V(mutex);
初值必须是 1:第一个进程执行 P 后变成 0 并进入;其他进程再执行 P 会变为负数并阻塞。
若有 4 个进程竞争该资源,信号量可能取值:
$$ 1,0,-1,-2,-3 $$最低为 -3,因为一个进程正在使用,另外三个最多都在等待。
5. 写 P/V 代码的固定方法
不要直接背代码,先识别两类约束。
第一步:找互斥资源
问:哪些操作不能同时执行?为它设置初值为 1 的互斥信号量。
第二步:找前驱关系
问:哪个动作必须在另一个动作之后?为“事件是否已经发生”设置同步信号量。
若 A 必须先于 B:
B 先运行时会因 S=0 阻塞;A 完成后执行 V,B 才能继续。
第三步:检查 P 的顺序
原则是:先检查资源数量或同步条件,再进入互斥区。
若先拿互斥锁,再等待其他条件,可能“拿着钥匙睡觉”,导致真正能改变条件的进程进不来。
6. 生产者—消费者问题
容量为 $N$ 的缓冲区需要解决三件事:
- 生产者不能向满缓冲区继续放;
- 消费者不能从空缓冲区继续取;
- 生产者和消费者不能同时修改缓冲区结构。
因此设置:
semaphore empty = N; // 空槽数量
semaphore full = 0; // 产品数量
semaphore mutex = 1; // 缓冲区互斥锁
生产者:
生产产品;
P(empty); // 先确认有空位
P(mutex); // 再进入缓冲区
放入产品;
V(mutex); // 先离开缓冲区
V(full); // 再通知产品数量增加
消费者:
P(full); // 先确认有产品
P(mutex); // 再进入缓冲区
取出产品;
V(mutex); // 先离开缓冲区
V(empty); // 再通知空位数量增加
消费产品;
6.1 为什么不能先 P(mutex) 再 P(empty)
假设缓冲区已满:
于是生产者等空位,消费者等锁,双方互相等待,形成死锁。
[!important] 顺序原则 P 操作的顺序可能决定是否死锁;V 操作通常先释放互斥锁,再通知同步条件。
7. 死锁是什么
死锁不是普通的“运行很慢”,而是多个进程永久互相等待,谁都无法继续。
例如,P1 和 P2 可能互相占有对方需要的资源,形成循环等待:
P1 不释放 R1,因为它还没完成;P2 不释放 R2,因为它也没完成,因此形成闭环。
7.1 死锁与其他现象的区别
| 现象 | 含义 |
|---|---|
| 死锁 | 一组进程相互等待,永久无法推进 |
| 饥饿 | 某进程长期得不到资源,但系统其他进程仍在推进 |
| 阻塞 | 等待某事件,事件发生后可以继续 |
| 死循环 | 进程一直运行,但逻辑无法结束 |
8. 死锁的四个必要条件
死锁发生时,以下四个条件必须同时成立:
| 条件 | 含义 | 直观解释 |
|---|---|---|
| 互斥 | 资源一次只能一个进程使用 | 不能同时共享 |
| 请求并保持 | 已持有资源时继续申请新资源 | 拿着一个,还要另一个 |
| 不可剥夺 | 资源不能被系统强行收回 | 只能由占有者主动释放 |
| 循环等待 | 形成首尾相接的等待链 | P1 等 P2,P2 又等 P1 |
四个条件是必要条件:死锁一定满足四个条件;满足四个条件时系统有可能死锁,但并不是任何时刻都已经死锁。
9. 四种死锁处理思路
| 方法 | 什么时候控制 | 核心思想 |
|---|---|---|
| 预防 | 资源分配规则设计时 | 破坏四个必要条件之一 |
| 避免 | 每次分配之前 | 只允许系统保持安全状态的分配 |
| 检测 | 分配后定期检查 | 允许死锁发生,再找出来 |
| 解除 | 检测到死锁之后 | 终止进程、剥夺资源或回滚 |
9.1 预防死锁
典型做法:
- 一次性申请全部资源,破坏请求并保持;
- 允许剥夺资源,破坏不可剥夺;
- 对资源统一编号并按递增顺序申请,破坏循环等待。
预防规则简单,但会降低资源利用率和并发性。
10. 银行家算法解决的到底是什么问题
银行家算法属于死锁避免。它不是等死锁发生后再检测,而是在每次分配前问:
现在把资源给出去以后,是否仍存在一种完成顺序,使所有进程最终都能完成?
若存在这样的顺序,系统处于安全状态;否则处于不安全状态。
10.1 三张核心表
| 名称 | 含义 |
|---|---|
Available |
系统当前尚未分配的资源 |
Allocation[i] |
进程 $P_i$ 当前已经占有的资源 |
Max[i] |
进程 $P_i$ 声明的最大总需求 |
剩余需求:
$$ Need[i]=Max[i]-Allocation[i] $$例如:
Max = <7,5,3>
Allocation = <2,1,1>
Need = <5,4,2>
含义是该进程最多还需要 5 个 A、4 个 B、2 个 C 才能完成。
11. 一次资源请求为什么要经过四步
假设进程 $P_i$ 请求 Request[i]。
第一步:请求合法性检查
$$ Request[i] \le Need[i] $$若不满足,说明进程请求超过了自己事先声明的最大需求,属于错误请求。
第二步:当前资源是否够
$$ Request[i] \le Available $$若不满足,说明系统现在拿不出这么多资源。请求本身可能合法,但进程必须等待。
第三步:试分配
前两步通过也不能立刻正式分配,因为“现在够”不代表“分配后安全”。先在账面上模拟:
$$ Available=Available-Request[i] $$ $$ Allocation[i]=Allocation[i]+Request[i] $$ $$ Need[i]=Need[i]-Request[i] $$这不是先真的给了再后悔,而是在内核数据结构中做一次可撤销的假设。
第四步:安全性检查
检查试分配后的系统能否找到安全序列:
- 能找到:正式批准;
- 找不到:恢复原数据,让该进程等待。
[!important] 四步的逻辑 合法性解决“能不能这样要”;资源检查解决“现在有没有”;试分配和安全检查解决“给了以后会不会把系统逼入危险状态”。
12. 安全性检查为什么这样做
安全性算法不是预测真实调度,而是在做一个保守模拟:
假设每个进程只要拿到它剩余所需资源,就能完成并归还当前占有资源。看现有资源能否通过不断周转,让所有进程依次完成。
12.1 为什么 Work = Available
Work 表示模拟过程中当前可拿来周转的资源。刚开始还没有任何模拟进程完成,因此可周转资源就是系统当前剩余资源:
Work 只是草稿变量,不会修改真实的 Available。
12.2 为什么先找 Need[i] <= Work
这表示当前可用资源足以满足 $P_i$ 的全部剩余需求。若把这些资源暂时给它,它就能执行到结束。
向量比较必须每一类资源都满足:
Need[i] = <1,2,1>
Work = <2,1,3>
这里不能完成,因为第二类资源 2 > 1。不是看资源总数相加。
12.3 为什么完成后加的是 Allocation[i]
当进程完成时,它会归还自己当前占有的全部资源。
模拟时没有真的从 Work 中减去 Need 再加回全部资源,是因为“把剩余资源借给它并完成”这两个动作合并后:
原有 Work
- 借出的 Need
+ 归还的 (Allocation + Need)
= Work + Allocation
所以更新公式是:
$$ Work=Work+Allocation[i] $$这也是安全性算法最容易困惑的地方。
12.4 Finish 为什么需要
Finish[i] 记录进程是否已经在模拟中完成,避免重复把同一个进程的资源加入 Work。
初始化:
Finish[i] = false
找到可完成进程后:
Work = Work + Allocation[i]
Finish[i] = true
最终:
- 所有
Finish=true:安全; - 仍有
Finish=false且再也找不到可完成进程:不安全。
12.5 安全性算法伪代码
Work = Available
对所有进程:Finish[i] = false
重复:
找一个 Finish[i] == false 且 Need[i] <= Work 的进程 Pi
若找到:
Work = Work + Allocation[i]
Finish[i] = true
把 Pi 加入安全序列
若找不到:
停止
若所有 Finish[i] 都为 true:安全
否则:不安全
12.6 安全、不安全和死锁的关系
因此:
- 安全状态一定不是死锁;
- 不安全状态不等于已经死锁;
- 死锁状态一定是不安全状态。
13. 银行家算法完整示例
资源表:
| 进程 | Allocation | Need |
|---|---|---|
| P0 | <2,0,1> |
<0,2,1> |
| P1 | <0,2,0> |
<1,2,3> |
| P2 | <1,0,1> |
<0,1,3> |
初始:
Available = <1,3,2>
Work = <1,3,2>
第一轮:
- P0:
<0,2,1> <= <1,3,2>,可完成; - P1:第三类资源
3 > 2,不可完成; - P2:第三类资源
3 > 2,不可完成。
所以只能先完成 P0:
$$ Work=<1,3,2>+<2,0,1>=<3,3,3> $$第二轮:
- P1 的 Need
<1,2,3>可满足; - P2 的 Need
<0,1,3>也可满足。
因此有两条安全序列:
P0 → P1 → P2P0 → P2 → P1
安全序列不一定唯一。
14. 资源分配图怎么读
- 圆形:进程;
- 方框:一类资源;
- 方框内小圆点:该类资源的实例;
进程 → 资源:请求边;资源实例 → 进程:分配边。
“实例”就是同一类资源中可分别分配的具体单位。例如某类打印设备有 3 台,就有 3 个实例。
判断规则:
| 图的情况 | 结论 |
|---|---|
| 无环 | 一定没有死锁 |
| 每类资源只有一个实例,且有环 | 一定死锁 |
| 某类资源有多个实例,且有环 | 可能死锁,不能直接确定 |
多实例时,即使存在环,也可能还有未占用实例让某个进程先完成并释放资源。
15. 保证不死锁的资源数量题
有 $n$ 个进程,每个进程最多需要同类资源 $k$ 个。最危险的情况是每个进程都先拿到 $k-1$ 个,再各自等待最后 1 个。
此时已占用:
$$ n(k-1) $$只要再多 1 个资源,就能让至少一个进程完成并释放全部资源。因此保证不死锁的最小资源数:
$$ R_{min}=n(k-1)+1 $$反过来:
$$ n_{max}=\left\lfloor\frac{R-1}{k-1}\right\rfloor $$这类公式只适用于“同类资源、每个进程最大需求相同”的特定模型。
16. 高频陷阱
- “互斥和同步完全相同”——错,互斥强调竞争,同步强调先后关系。
- “P/V 操作本身可以被打断”——错,它们必须是原语。
- “V 操作会使进程阻塞”——通常错,V 释放资源并可能唤醒进程。
- “资源总量够就一定能分配”——错,还要看每类资源和分配后安全性。
- “有环就一定死锁”——仅在每类资源单实例时成立。
- “不安全状态已经死锁”——错,只是存在死锁风险。
- “安全序列只有一条”——错,可能有多条。
- “安全性检查完成进程后要加 Need”——错,应加
Allocation。 - “向量比较看总和”——错,必须逐类资源比较。
17. 本章速记
临界资源一次只允许一个进程使用,临界区是访问它的代码。
P:申请,减 1,负数阻塞;V:释放,加 1,非正时唤醒。
写 P/V:先找互斥,再找前驱关系;先检查条件,再拿互斥锁。
死锁四条件:互斥、请求并保持、不可剥夺、循环等待。
请求检查:Request≤Need、Request≤Available、试分配、安全检查。
安全检查:Work=Available;找Need≤Work;完成后Work+=Allocation。
第三章 进程同步与死锁(例题)
题目按知识点归类;完全重复题合并展示并保留全部题号。带“答案订正”的题,按课程理论给出修正答案。
- 本章题库记录数:47
- 去重后原题数:44
临界资源、临界区与互斥
例题 1|判断题|2026春OS2/1-5、2026春OS2/1-25
并发进程可以同时进入临界区,交替访问临界资源。
- T. T
- F. F
答案:F
解析: 临界资源一次只能一个进程访问,不能让多个进程同时进入相关临界区。
例题 2|判断题|2026春OS2/1-6
只要能使程序并发执行,这些并发执行的程序便可对临界资源实现共享
- T. T
- F. F
答案:F
解析: 并发执行不等于能安全共享临界资源,访问临界资源必须互斥。
例题 3|判断题|2026春OS2/1-7
对临界资源,应采取互斥访问方式,来实现共享
- T. T
- F. F
答案:T
解析: 临界资源必须互斥访问,才能在并发环境下安全共享。
例题 4|单选题|2026春OS2/2-21
若系统中有5个并发进程涉及某个相同的变量A,则变量A的相关临界区是由______临界区构成。
- A. 2个
- B. 3个
- C. 4个
- D. 5个
答案:D
解析: 5 个进程各有一段访问变量 A 的代码,所以相关临界区共有 5 个。
例题 5|单选题|2026春OS2/2-38
一次只允许一个进程访问的资源叫( )
- A. 临界区
- B. 临界资源
- C. 信号量
- D. 互斥资源
答案:B
解析: 临界资源一次只能一个进程访问,访问它的代码段称临界区,必须满足忙则等待等互斥要求。 因此应选 B(临界资源)。
例题 6|单选题|2026春OS2/2-39
临界区是指并发进程中访问互斥共享资源的_____
- A. 数据部分
- B. 代码部分
- C. 函数部分
- D. 模块部分
答案:B
解析: 临界资源一次只能一个进程访问,访问它的代码段称临界区,必须满足忙则等待等互斥要求。 因此应选 B(代码部分)。
例题 7|单选题|2026春OS2/2-40
共享变量是指( )访问的变量
- A. 只能被系统进程
- B. 只能被多个进程互斥
- C. 只能被用户进程
- D. 可被多个进程
答案:D
解析: 共享变量指可被多个进程访问的变量。
例题 8|单选题|2026春OS2/2-41
一个正在访问临界资源的进程由于申请等待I/O操作而被中断时,它( )。
- A. 允许其他进程进入该进程相关的临界区
- B. 不允许其他进程进入任何临界区
- C. 允许其他进程抢占处理器,但不得进入该进程的临界区
- D. 不允许任何进程抢占处理器
答案:C
解析: 该进程等待 I/O 时可让出处理器,但未退出临界区前其他进程不能进入同一临界区。
例题 9|单选题|2026春OS2/2-42
进程P1和P2均包含并发执行的线程,部分伪代码可描述如下。那么选项中,需要互斥的操作是( )。
//进程P1 int x=0; Thread1(){ int a; a=1; x+=1; } Thread2(){ int a; a=2; x+=2; }
//进程P2 int x=0; Thread3(){ int a; a=x; x+=3; } Thread2(){ int b; b=x; x+=4; }
- A. a=1 与 a=2
- B. a=x 与 b=x
- C. x+=1 与 x+=2
- D. x+=1 与 x+=3
答案:C
解析: P1 中两个线程共享同一个 x,x+=1 和 x+=2 会竞争同一变量,需要互斥。
信号量与P/V操作
例题 10|单选题|2026春OS2/2-16
有n个并发进程竞争必须互斥使用的共享资源时,若某进程调用P操作后成为第一个等待使用该资源者,则这时信号量的值为____。
- A. 0
- B. 1
- C. -1
- D. n-1
答案:C
解析: 互斥信号量从 1 经第一个进程 P 后为 0;第二个进程 P 后为 -1并成为第一个等待者,选 C。
例题 11|单选题|2026春OS2/2-17
涉及PV操作的正确说法是______。
- A. PV操作只能解决进程互斥问题
- B. PV操作只能解决进程同步问题
- C. PV操作能用于解决进程互斥问题,也能解决进程同步问题
- D. PV操作是一种高级通信方式
答案:C
解析: PV 操作既可用互斥信号量实现互斥,也可用同步信号量实现先后关系。
例题 12|单选题|2026春OS2/2-23
若P、V操作的信号量S的初值为3,当前值为-1,则表示在S上有______个等待进程。
- A. 0
- B. 1
- C. 2
- D. 3
答案:B
解析: 信号量为 -1,等待数为 |-1|=1,选 B。
例题 13|单选题|2026春OS2/2-24
下列有关PV操作和死锁的叙述中,正确的是____。
- A. V操作可能引起死锁
- B. P操作不会引起死锁
- C. 使用PV操作不会引起死锁
- D. 以上说法均不正确
答案:D
解析: P 操作可能因等待资源参与死锁,V 操作通常释放资源;前三项都不严谨。
例题 14|单选题|2026春OS2/2-31
设有四个进程共享一个资源,如果每次只允许一个进程使用该资源,则用P、V操作管理时信号量S的可能取值是_____。
- A. 3,2,1,0,-1
- B. 2,1,0,-1,-2
- C. 1,0,-1,-2,-3
- D. 4,3,2,1,0
答案:C
解析: 互斥信号量初值 1,最多其余 3 个进程等待,故可能值为 1、0、-1、-2、-3。
例题 15|单选题|2026春OS2/2-32
信号量可以用来实现进程之间的______。
- A. 调度
- B. 同步
- C. 同步与互斥
- D. 互斥
答案:C
解析: 信号量既能表示资源互斥,也能表示进程间的同步条件。
例题 16|单选题|2026春OS2/2-33
不需要信号量就能实现的功能是()。
- A. 进程的同步
- B. 进程互斥
- C. 执行的前驱关系
- D. 进程的并发执行
答案:D
解析: 同步、互斥和前驱关系常用信号量实现;并发执行本身不靠信号量实现。
例题 17|单选题|2026春OS2/2-34
若一个信号量初值为3,经过多次PV操作后当前值是-1,这表示等待进入临界区的进程数是()。
- A. 1
- B. 2
- C. 3
- D. 4
答案:A
解析: S=-1 表示 1 个进程等待,选 A。
例题 18|单选题|2026春OS2/2-35
在操作系统中,P, V操作(或wait, signal操作)是一种( )。
- A. 机器指令
- B. 系统调用命令
- C. 作业控制命令
- D. 低级进程通信原语
答案:D
解析: P/V 是用于同步和互斥的低级进程通信原语。
例题 19|单选题|2026春OS2/2-36
用Signal()操作唤醒一个等待进程时,被唤醒的进程变为()态。
- A. 就绪态
- B. 等待态
- C. 完成态
- D. 阻塞态
答案:A
解析: 被 Signal/V 操作唤醒后,等待进程进入就绪态,等待 CPU 调度。
例题 20|单选题|2026春OS2/2-37
有一个计数信号量S:
(1)假如若干进程对S进行28次P操作和18次V操作后,信号量的值为0;
(2)假如若干进程对信号量S进行了15次P操作和2次V操作,请问此时有多少进程等待在信号量S的队列中。( )
- A. 2
- B. 3
- C. 5
- D. 7
答案:B
解析: 由 0=S0−28+18 得初值 S0=10;第二种操作后 S=10−15+2=-3,等待进程数为3,选 B。
经典同步问题与操作次序
例题 21|判断题|2026春OS2/1-13
在生产者消费者进程中,V操作的次序无关紧要,而P操作次序不能颠倒。
- T. T
- F. F
答案:T
解析: 本题判断为正确。生产者/消费者应先申请数量信号量,再申请互斥信号量;P 操作次序错误可能导致死锁。
死锁概念、原因与必要条件
例题 22|判断题|2026春OS2/1-3
多个进程竞争比经常数目少的资源就可能产生死锁,而当资源数目大于进程数目时就一定不会发生死锁。
- T. T
- F. F
答案:F
解析: 资源数大于进程数也可能死锁,关键还要看每个进程最大需求和分配顺序。
例题 23|判断题|2026春OS2/1-14、2026春OS2/1-21
产生死锁的原因之一是对计算机操作不当,造成计算机死机。
- T. T
- F. F
答案:F
解析: 死锁是资源竞争和推进顺序不当造成的等待,不是简单的误操作死机。
例题 24|单选题|2026春OS2/2-1
系统产生死锁是指()。
- A. 系统发生重大故障
- B. 若干进程正在等待永远不可能得到的资源
- C. 请求的资源数大于系统提供的资源数
- D. 若干进程等待被其他进程所占用而又不可能被释放的资源
答案:D
解析: 死锁是若干进程等待对方占有且不会释放的资源,因此选 D。
例题 25|单选题|2026春OS2/2-4
以下哪个情况会导致死锁发生_______
- A. 进程执行signal操作
- B. 进程执行wait操作
- C. 多个进程竞争共享资源
- D. 某个进程因为竞争临界资源导致循环等待出现
答案:D
解析: 死锁的关键是竞争资源并形成循环等待,因此选 D。
例题 26|单选题|2026春OS2/2-5
产生死锁的基本原因是____
- A. 竞争资源和进程推进顺序不当
- B. 进程访问资源顺序不当
- C. 系统中资源太少
- D. 系统中进程数目太多
答案:A
解析: 死锁的基本原因是竞争资源和进程推进顺序不当。
例题 27|单选题|2026春OS2/2-26
在有m个进程的系统中出现死锁时,死锁进程的个数k应满足的条件是____。
- A. k≥2
- B. 1<k<m
- C. 1<k≤m
- D. k≥1
答案:A
答案订正: 按课程理论,本题应选
A。
解析: 死锁至少涉及两个进程,所以标准单选通常选 A(k≥2)。在 m 个进程系统中自然还有 k≤m。
例题 28|单选题|2026春OS2/2-43
在多道程序的环境中,不会因竞争()而产生死锁
- A. 可被抢占的资源
- B. 不可抢占的资源
- C. 消耗性资源
- D. 可重复使用的资源
答案:A
解析: 可抢占资源能被系统收回再分配,通常不会因竞争它而形成死锁。
例题 29|单选题|2026春OS2/2-44
产生死锁的基本原因是系统资源不足和_____?
- A. 进程调度不当
- B. 系统中进程太多
- C. CPU运行太快
- D. 进程推进顺序非法
答案:D
解析: 死锁的基本原因包括资源不足和进程推进顺序不当。
例题 30|单选题|2026春OS2/2-45
两个进程争夺同一个资源_____。
- A. 一定死锁
- B. 不一定死锁
- C. 只要互斥就不会死锁
- D. 以上说法都不对
答案:B
解析: 两个进程争夺同一资源只会导致等待,不一定形成循环等待。
例题 31|单选题|2026春OS2/2-46
有关产生死锁的叙述中,正确的是_____。
- A. V操作可能引起死锁
- B. P操作不会引起死锁
- C. PV操作使用得当不会引起死锁
- D. 以上说法均不正确
答案:D
答案订正: 按课程理论,本题应选
D。
解析: V 释放资源;P 可能因申请资源参与形成死锁;即使单个 PV 写法看似正确,多锁顺序仍可死锁,因此前三项都不严谨,选 D。
例题 32|多选题|2026春OS2/3-1
产生死锁的必要条件是
- A. 互斥条件
- B. 请求和保持
- C. 不剥夺条件
- D. 环路条件
答案:ABCD
解析: 死锁四个必要条件是互斥、请求并保持、不剥夺和循环等待。
死锁预防、避免、检测与解除
例题 33|判断题|2026春OS2/1-1
【信号量】当同时需要用两个互斥信号量时,总是让它们以交错的顺序加锁,以避免死锁。
- T. T
- F. F
答案:F
解析: 多个互斥量应按统一顺序加锁;交错顺序反而容易形成循环等待。
例题 34|判断题|2026春OS2/1-2
如果系统在所有进程运行前,一次性地将其在整个运行过程中所需地全部资源分配给进程,即所谓"静态分配",可以预防死锁发生。
- T. T
- F. F
答案:T
解析: 静态分配一次拿齐所需资源,破坏了“请求并保持”条件。
例题 35|判断题|2026春OS2/1-9、2026春OS2/1-15
死锁产生,必须要满足四个必要条件,所以,为避免死锁产生,主要注意如何不让这四个必要条件成立,并打破循环等待资源的环路。
- T. T
- F. F
答案:T
解析: 预防死锁的思路就是破坏必要条件,常见做法是破坏循环等待。
例题 36|单选题|2026春OS2/2-7
死锁预防是保证系统不进入死锁状态的静态策略,其解决的是破坏产生死锁的四个必要条件之一。下列方法中破坏了“循环等待“条件的是( )。
- A. 银行家算法
- B. 一次性分配策略
- C. 剥夺资源法
- D. 资源有序分配策略
答案:D
解析: 资源有序分配要求按固定顺序申请资源,可破坏循环等待条件。
例题 37|单选题|2026春OS2/2-8
死锁与安全状态的关系是( )。
- A. 死锁状态可能有安全状态
- B. 安全状态有可能称为死锁状态
- C. 不安全状态就是死锁状态
- D. 死锁状态一定是不安全状态
答案:D
解析: 死锁状态一定不安全,但不安全状态不一定已经死锁。
例题 38|单选题|2026春OS2/2-9
系统的资源分配图在下列情况下,无法判断是否处于死锁状态的有( )。
Ⅰ. 出现了环路; Ⅱ. 没有环路;
Ⅲ. 每种资源只有一个,并出现环路;
Ⅳ. 每个进程结点至少有一条请求边
- A. Ⅰ、Ⅱ、Ⅲ、Ⅳ
- B. Ⅰ、Ⅲ、Ⅳ
- C. Ⅰ、Ⅳ
- D. 以上答案都不正确
答案:C
解析: 有环不一定死锁;仅知道每个进程有请求边也无法判断是否死锁。
例题 39|单选题|2026春OS2/2-47
对资源采用按序分配策略能达到____的目的。
- A. 防止死锁
- B. 避免死锁
- C. 检测死锁
- D. 解除死锁
答案:A
解析: 按序分配资源属于死锁预防方法,可防止循环等待。
例题 40|单选题|2026春OS2/2-48
采用资源剥夺法可以解除死锁,还可以采用_____方法解除死锁。
- A. 执行并行操作
- B. 撤消进程
- C. 拒绝分配新资源
- D. 修改信号量
答案:B
解析: 解除死锁可剥夺资源,也可撤销部分死锁进程。
资源数量与银行家算法计算
例题 41|判断题|2026春OS2/1-4
在银行家算法中,对某时刻的资源分配情况进行安全分析,如果该时刻状态是安全的,则存在一个安全序列,且这个安全序列是唯一的。
- T. T
- F. F
答案:F
解析: 安全状态只要求存在安全序列,安全序列不一定唯一。
例题 42|单选题|2026春OS2/2-2
若系统中有 n (n≥2)个进程,每个进程均需要使用某类临界资源 2 个,则系统不会发生死锁所需的该类资源总数至少是
- A. 2
- B. n
- C. n+1
- D. 2n
答案:C
解析: 最坏时 n 个进程各占 1 个并再申请 1 个,需要再多 1 个使某进程完成,所以至少 n+1。
例题 43|单选题|2026春OS2/2-3
若系统中有7台绘图仪,有多个进程均需要使用3台,规定每个进程一次仅允许申请1台,则至多允许多少个进程参于竞争,而不会发生死锁____
- A. 2
- B. 3
- C. 4
- D. 5
答案:B
解析: 由 R≥n(k−1)+1 得 7≥2n+1,故 n≤3,选 B。
例题 44|单选题|2026春OS2/2-6
系统中有三个进程 P0、P1、P2 及三类资源 A、B、C。若某时刻系统分配资源的情况如下表所示,则此时系统中存在的安全序列的个数为
解题所需表格如下:
| 进程 | 已分配 A B C | 尚需 A B C | 可用 A B C |
|---|---|---|---|
| P0 | 2 0 1 | 0 2 1 | 1 3 2 |
| P1 | 0 2 0 | 1 2 3 | — |
| P2 | 1 0 1 | 0 1 3 | — |
- A. 1
- B. 2
- C. 3
- D. 4
答案:B
解析: 初始 Available=<1,3,2>,只有 P0 可完成;P0 释放后 P1、P2 均可完成,所以有 P0→P1→P2 和 P0→P2→P1 两条安全序列。
第四章 处理机调度
[!abstract] 本章学习路线 先弄清“谁在什么时候做选择”,再掌握评价指标;最后用统一的事件时间轴分析 FCFS、SJF、优先级和 RR 等算法。
1. 调度在决定什么
当多个进程都想使用 CPU 时,操作系统必须决定:
- 选择哪个进程;
- 让它运行多久;
- 是否允许新到达的进程抢占它。
这就是处理机调度。
2. 三级调度:不要把“进入内存”和“获得 CPU”混淆
| 层次 | 又称 | 从哪里选到哪里 | 频率 |
|---|---|---|---|
| 高级调度 | 作业调度 | 外存后备队列 → 内存 | 最低 |
| 中级调度 | 内存/交换调度 | 内存 ↔ 外存挂起区 | 中等 |
| 低级调度 | 进程/处理机调度 | 就绪队列 → CPU | 最高 |
2.1 高级调度
决定哪些作业被接纳进入内存,控制系统中的多道程序度。
2.2 中级调度
内存紧张时把部分进程挂起到外存,条件合适时再激活。
2.3 低级调度
从就绪队列选一个进程真正获得 CPU。考试中“给进程分配处理器”通常指低级调度。
[!warning] 易错点 作业被调入内存不等于立即运行。它通常只是建立进程并进入就绪队列。
3. 调度何时发生
常见事件:
- 当前进程运行结束;
- 当前进程因 I/O 或事件阻塞;
- 时间片用完;
- 更高优先级进程到达;
- I/O 完成,某阻塞进程变为就绪;
- 进程主动让出 CPU。
前两种情况下当前进程已经不能继续,必须调度;后几种是否立即换人取决于是否采用抢占式算法。
4. 抢占式与非抢占式
4.1 非抢占式
一旦某进程获得 CPU,除非它完成或主动阻塞,否则不会被强行换下。
- 优点:实现简单,切换少;
- 缺点:长作业可能让短作业等待很久。
4.2 抢占式
系统可因时间片用完或更高优先级进程到达而收回 CPU。
- 优点:响应快,适合分时和实时系统;
- 缺点:上下文切换更多,实现复杂。
时间片轮转一定是抢占式;FCFS 通常是非抢占式;优先级和短作业算法都可能有抢占或非抢占版本。
5. 评价调度结果的时间指标
设某进程:
- 到达时间:$A$;
- 第一次获得 CPU:$S$;
- 完成时间:$C$;
- CPU 服务时间:$B$。
5.1 周转时间
从到达系统到最终完成:
$$ T=C-A $$5.2 带权周转时间
周转时间相对于自身服务时间的倍数:
$$ W=\frac{T}{B} $$服务 1 秒却等了 10 秒的作业,比服务 100 秒、总共用 110 秒的作业感受更差,因此需要带权指标。
5.3 响应时间
从到达到第一次获得 CPU:
$$ R=S-A $$响应时间关注“多久开始回应”,不要求进程已经完成,特别适合交互系统。
5.4 等待时间
若题目只考虑 CPU 运行、没有 I/O:
$$ 等待时间=周转时间-CPU服务时间 $$若存在 I/O,还应减去 I/O 执行时间。
5.5 系统级指标
- CPU 利用率;
- 吞吐量:单位时间完成的作业数;
- 公平性;
- 截止时间满足率;
- 平均周转和平均响应时间。
一个算法通常不能同时使所有指标最优。
6. FCFS:谁先来谁先运行
FCFS(First Come First Served,先来先服务)按到达顺序排队,通常非抢占。
到达顺序为 P1 → P2 → P3 时,运行顺序也是 P1 → P2 → P3。
优点:简单、容易实现、不会饥饿。
缺点:若长作业先到,后面的短作业都要等待,称为护航效应。
因此 FCFS:
- 较有利于长作业和 CPU 繁忙型进程;
- 不利于短作业和频繁 I/O 的交互进程。
7. SJF 与 SRTF:优先完成短任务
7.1 SJF
SJF(Shortest Job First,短作业优先调度)选择预计服务时间最短的作业,通常非抢占。
当所有作业同时到达且服务时间已知时,SJF 能使平均等待时间和平均周转时间最小。
7.2 SRTF
SRTF(Shortest Remaining Time First,最短剩余时间优先调度)是 SJF 的抢占版本。新进程到达时,若它的服务时间小于当前进程的剩余时间,则抢占。
7.3 局限
- 实际系统很难准确预知服务时间;
- 长作业可能不断被短作业插队,产生饥饿。
8. HRRN:让等待过久的长作业逐渐占优
HRRN(Highest Response Ratio Next,最高响应比优先调度)。
高响应比优先算法计算:
$$ 响应比=\frac{等待时间+服务时间}{服务时间} =1+\frac{等待时间}{服务时间} $$理解:
- 服务时间短,响应比天然较高,照顾短作业;
- 等待时间不断增加,长作业响应比也会逐渐提高,缓解饥饿。
HRRN 通常是非抢占式:当前作业完成后,重新计算等待队列中各作业的响应比。
例:
| 作业 | 等待 | 服务 | 响应比 |
|---|---|---|---|
| A | 6 | 2 | 4 |
| B | 10 | 10 | 2 |
虽然 B 等得更久,但 A 的相对等待更严重,因此先选 A。
9. 优先级调度
PSA(Priority Scheduling Algorithm,优先级调度算法)。
每个进程有一个优先级,选择最高优先级者运行。
做题前必须先看清:
做题前必须确认题目约定:数值越大越高,还是数值越小越高。
两种教材约定都可能出现。
对于抢占式优先级调度,直接基于优先级抢占。
对于非抢占式优先级调度,同优先级按照到达时间调度。
9.1 静态和动态优先级
- 静态优先级:创建后基本不变;
- 动态优先级:根据等待时间、运行行为等调整。
常见调整:
- 长期等待则逐渐提高优先级,称为老化;
- 时间片经常用完,说明偏 CPU 密集,可降低优先级;
- I/O 完成后可适当提高优先级,使交互进程快速响应。
优先级调度若没有老化机制,低优先级进程可能饥饿。
10. 时间片轮转 RR
RR(Round Robin,时间片轮转调度)把就绪进程排成队列,每个进程每次最多运行一个时间片 $q$。
进程在时间片内完成则退出,只有时间片用完仍未完成才回到就绪队尾。
10.1 时间片大小的影响
- $q$ 很大:进程往往一次运行完,RR 接近 FCFS;
- $q$ 很小:响应更及时,但上下文切换频繁;
- 合适的 $q$:在响应速度和切换开销之间折中。
[!warning] 易错点 时间片用完说明进程仍具备运行条件,只是暂时失去 CPU,所以是运行态 → 就绪态,不是阻塞态。
11. 多级队列与多级反馈队列
11.1 多级队列
按进程类型划分多个固定队列,例如:
- 系统进程队列;
- 交互进程队列;
- 批处理进程队列。
不同队列可使用不同算法,但进程通常不能在队列间移动。
总是跑最高优先级且优先级队列非空的任务。
11.2 MLFQ
MLFQ(Multilevel Feedback Queue,多级反馈队列调度)。
进程可根据运行行为在队列间移动:
新进程先进入最高优先级队列;用完整个时间片仍未完成则逐级下降;等待过久可周期性提升。
设计直觉:
- 短作业通常在高层很快完成;
- 交互进程经常因 I/O 提前让出 CPU,保持较高优先级;
- 长作业逐渐下降到时间片较长的低层;
- 周期性提升避免低层饥饿。
也就是,多级反馈队列通过动态维护每个任务的优先级进行调度。
越高优先级的任务拥有越短的时间片。每当一个新的任务加入队列,把这个任务首先视为最高优先级。如果这个任务在最高优先级的时间片内无法跑完,就下降一个优先级。
通过这样的算法来动态维护优先级。
因此 MLFQ 不需要预先知道作业长度,而是通过运行行为进行动态判断。
12. 常见算法对比
| 算法 | 选择依据 | 抢占性 | 主要优点 | 主要问题 |
|---|---|---|---|---|
| FCFS | 到达顺序 | 通常否 | 简单、无饥饿 | 护航效应 |
| SJF | 最短服务时间 | 通常否 | 平均周转小 | 长作业饥饿、需预测 |
| SRTF | 最短剩余时间 | 是 | 短作业响应更快 | 切换多、长作业饥饿 |
| HRRN | 最高响应比 | 否 | 兼顾长短作业 | 每次需计算响应比 |
| 优先级 | 最高优先级 | 可抢占/非抢占 | 支持任务重要性 | 低优先级饥饿 |
| RR | 就绪队列轮转 | 是 | 公平、响应好 | 时间片难选择 |
| MLFQ | 过往运行行为 | 是 | 综合性能灵活 | 规则复杂 |
13. 调度计算题的统一方法
第一步:整理输入
写表格:
| 进程 | 到达时间 | 服务时间 | 优先级 |
|---|
并注明:
- 抢占还是非抢占;
- 优先级数值方向;
- 时间片大小;
- 同时到达时的排队规则。
第二步:只在事件点重新决策
事件点包括:
- 新进程到达;
- 当前进程完成;
- 时间片用完;
- 当前进程阻塞;
- I/O 完成。
在事件之间,当前选择通常不变。
第三步:画甘特图
每段写清开始和结束时刻。
第四步:记录首次运行和完成时间
记录首次运行时间 S 和完成时间 C。
第五步:统一代公式
$$ 周转=C-A $$ $$ 带权周转=\frac{C-A}{B} $$ $$ 响应=S-A $$第六步:最后求平均
不要边画边心算平均值,先得到每个进程的完整结果再统计。
14. 抢占式优先级示例
| 进程 | 到达 | 优先级(小者高) | 服务时间 |
|---|---|---|---|
| P0 | 0 | 15 | 100 |
| P1 | 10 | 20 | 60 |
| P2 | 10 | 10 | 20 |
| P3 | 15 | 6 | 10 |
过程:
0~10:P0;10~15:P2,优先级 10 高于 P0 的 15;15~25:P3,优先级 6 抢占 P2;25~40:P2;40~130:P0;130~190:P1。
甘特图:
若题目把每次“选择一个进程运行”记作一次调度,则依次为 P0、P2、P3、P2、P0、P1,共 6 次。
15. 高频陷阱
- “高级调度直接把 CPU 给作业”——错,它主要决定作业是否进入内存。
- “时间片用完进入阻塞态”——错,进入就绪态。
- “SJF 不会饥饿”——错,长作业可能饥饿。
- “RR 时间片越小越好”——错,切换开销会增大。
- “优先级数字越大一定越高”——错,必须看题目约定。
- “响应时间等于完成时间减到达时间”——错,那是周转时间。
- “普通多级队列允许进程自由移动”——通常错,允许移动的是多级反馈队列。
- “平均周转最优的算法一定最公平”——错,不同指标可能冲突。
16. 本章速记
高级调作业进内存,中级调挂起与激活,低级调就绪进程上 CPU。
周转 = 完成−到达;响应 = 首次运行−到达。
FCFS 看先来,SJF 看最短,HRRN 看相对等待,RR 看时间片。
时间片到:运行→就绪。
MLFQ:新进程进高层,用完整个时间片则逐级下降。
调度题只在到达、完成、阻塞、唤醒、时间片结束等事件点重新选择。
第四章 处理机调度(例题)
题目按知识点归类;完全重复题合并展示并保留全部题号。带“答案订正”的题,按课程理论给出修正答案。
- 本章题库记录数:17
- 去重后原题数:17
调度层次、目标与评价指标
例题 1|判断题|2026春OS4/1-29
作业调度能使作业获得CPU。
- T. T
- F. F
答案:F
解析: 作业调度只决定哪些作业进入内存;获得 CPU 由低级调度决定。
例题 2|单选题|2026春OS4/2-6
在单处理器的多进程系统中,进程什么时候占用处理器以及决定占用时间的长短是由()决定的。
- A. 进程相应的代码长度
- B. 进程总共需要运行的时间
- C. 进程特点和进程调度策略
- D. 进程完成什么功能
答案:C
解析: 进程何时运行、运行多久,取决于进程特点和调度策略。
例题 3|单选题|2026春OS4/2-12
作业从进入系统并驻留在外存的后备队列上开始,直至作业运行完成,可能要经历三级调度(低级调度、中级调度、高级调度),其中低级调度的作用:____
- A. 用于决定就绪队列中的哪个进程将获得处理机
- B. 用于决定把外存上处于后备队列中的哪些作业调入内存
- C. 用于决定系统中哪个活动进程被挂起
- D. 用于将阻塞队列中的哪个进程唤醒,并将其挂在就绪队列的尾部
答案:A
答案订正: 按课程理论,本题应选
A。
解析: 低级调度就是进程调度,从就绪队列选择一个进程获得处理机,选 A。
FCFS、SJF 与 HRRN
例题 4|判断题|2026春OS4/1-30
短作业(进程)优先调度算法具有最短的平均周转时间。
- T. T
- F. F
答案:T
解析: 在已知运行时间的情况下,短作业优先通常能取得最短平均周转时间。
例题 5|单选题|2026春OS4/2-1
Which of the following scheduling algorithms could result in starvation ?
- A. First come first served
- B. Round robin
- C. Shortest job first
- D. Highest response_ratio next
答案:C
解析: 短作业优先可能让长作业长期等待,产生饥饿。
例题 6|单选题|2026春OS4/2-7
( )有利于CPU繁忙型的作业,而不利于I/O繁忙型的作业。
- A. 优先权调度算法
- B. 时间片轮转调度算法
- C. 短作业(进程)优先算法
- D. 先来先服务调度算法
答案:D
解析: FCFS 容易让长时间占用 CPU 的作业先运行,因此更有利于 CPU 繁忙型作业。
例题 7|单选题|2026春OS4/2-11
FCFS作业调度算法有利于_____
- A. I/O繁忙型作业
- B. 优先权高的作业
- C. 执行时间短的作业
- D. CPU繁忙型作业
答案:D
解析: FCFS 不会因作业短或 I/O 多而优待它们,更有利于先到达的 CPU 繁忙型作业。
优先级调度
例题 8|单选题|2026春OS4/2-4
Consider the following five processes, with the length of CPU burst in milliseconds and priority number (the smaller number means the higher priority) given below. Assume the five processes arrived with the order P1, P2, P3, P4, P5.
| Process | CPU burst time | Priority |
|---|---|---|
| P1 | 10 | 3 |
| P2 | 1 | 1 |
| P3 | 2 | 3 |
| P4 | 1 | 4 |
| P5 | 5 | 2 |
If the system uses non-preemptive priority scheduling algorithm, which process has the longest turnaround time ?
- A. P1
- B. P3
- C. P4
- D. P5
答案:C
解析: 非抢占优先级顺序为 P2→P5→P1→P3→P4(同优先级按到达顺序),P4 最后完成,周转时间最长。
例题 9|单选题|2026春OS4/2-10
下列选项中,降低进程优先级的合理时机是()。
- A. 进程刚完成I/O操作,进入就绪队列
- B. 进程从就绪状态转为运行状态
- C. 进程时间片用完
- D. 进程长期处于就绪队列
答案:C
答案订正: 按课程理论,本题应选
C。
解析: 时间片用完说明进程持续占用 CPU,可适当降低优先级;I/O 完成的交互型进程通常反而可提高优先级。
时间片轮转 RR
例题 10|单选题|2026春OS4/2-3
Consider the following five processes, with the length of CPU burst in milliseconds and priority number (the smaller number means the higher priority) given below. Assume the five processes arrived with the order P1, P2, P3, P4, P5.
| Process | CPU burst time | Priority |
|---|---|---|
| P1 | 10 | 3 |
| P2 | 1 | 1 |
| P3 | 2 | 3 |
| P4 | 1 | 4 |
| P5 | 5 | 2 |
If the system uses RR scheduling algorithm, which process has the shortest turnaround time?
- A. P2
- B. P3
- C. P4
- D. P5
答案:A
解析: 按 q=1 轮转,P2 只需一个时间片,在 t=2 最先完成,故周转时间最短。
例题 11|单选题|2026春OS4/2-5
Consider the following five processes, with the length of CPU burst in milliseconds and priority number (the smaller number means the higher priority) given below. Assume the five processes arrived with the order P1, P2, P3, P4, P5.
| Process | CPU burst time | Priority |
|---|---|---|
| P1 | 10 | 3 |
| P2 | 1 | 1 |
| P3 | 2 | 3 |
| P4 | 1 | 4 |
| P5 | 5 | 2 |
In the RR scheduling algorithm, the turnaround time of P5 is __________.
- A. 13
- B. 14
- C. 15
- D. 16
答案:B
答案订正: 按课程理论,本题应选
B。
解析: 按 q=1 轮转,P5 的五次运行结束时刻依次为 5、8、10、12、14,因此周转时间为14,选 B。
例题 12|单选题|2026春OS4/2-8
采用时间片轮转调度算法分配CPU时,当处于运行状态的进程用完一个时间片后,他的状态是( )状态。
- A. 消亡
- B. 就绪
- C. 运行
- D. 阻塞
答案:B
解析: 时间片用完且进程未结束时,会回到就绪队列等待下次调度。
例题 13|单选题|2026春OS4/2-9
下列调度算法中,()调度算法是绝对可抢占的。
- A. 时间片轮转
- B. 短进程优先
- C. 先来先服务
- D. 优先级
答案:A
解析: 时间片轮转在时间片到时必然抢占当前进程,是绝对可抢占算法。
多级队列与多级反馈队列
例题 14|单选题|2026春OS4/2-2
Which of the following scheduling is most flexible?
- A. Multilevel scheduling
- B. Multilevel feedback queue scheduling
- C. First-come, first-served scheduling
- D. Round-robin scheduling
答案:B
解析: 多级反馈队列能动态调整进程所在队列,因此最灵活。
例题 15|单选题|2026春OS4/2-13
以下调度算法中,哪一个能使短作业,长作业及交互作业用户都比较满意____
- A. 时间片轮转法
- B. 多级反馈队列调度算法
- C. 高优先权优先的抢占式调度算法
- D. 高响应比优先调度算法
答案:B
答案订正: 按课程理论,本题应选
B。
解析: 多级反馈队列通过不同优先级和时间片兼顾短作业、长作业及交互进程,选 B。
例题 16|单选题|2026春OS4/2-14
下列关于多级反馈队列调度算法中,哪一个是错误的____
- A. 多级反馈队列调度算法中设有多个就绪队列
- B. 各个队列中采用PSA调度算法
- C. 不同队列的优先级不同
- D. 仅当1至i-1个队列为空时,才会调度第i个队列中的进程运行
答案:B
解析: 多级反馈队列常在各队列内用 FCFS 或 RR,不要求各队列都采用 PSA 调度算法。
综合调度计算
例题 17|单选题|2026春OS4/2-15
进程 P0、P1、P2 和 P3 进入就绪队列的时刻、优先级(值越小优先权越高)及 CPU 执行时间如下表所示。
若系统采用基于优先权的抢占式进程调度算法, 则从 0 ms 时刻开始调度, 到 4 个进程都运行结束为止,发生进程调度的总次数为
解题所需表格如下:
| 进程 | 到达时间 | 优先级(小者高) | CPU时间 |
|---|---|---|---|
| P0 | 0ms | 15 | 100ms |
| P1 | 10ms | 20 | 60ms |
| P2 | 10ms | 10 | 20ms |
| P3 | 15ms | 6 | 10ms |
- A. 4
- B. 5
- C. 6
- D. 7
答案:C
解析: 执行序列为 P0、P2、P3、P2、P0、P1,共选中进程6次,故选 C。
第五章 内存管理
[!abstract] 本章学习路线 先理解程序地址和真实内存地址为什么不同,再比较连续分配、分页、分段和段页式;最后掌握地址转换与碎片判断。
1. 内存管理要解决什么问题
多个进程同时运行时,操作系统必须解决:
- 每个进程分到哪一块内存;
- 程序中的地址如何变成真实物理地址;
- 一个进程如何避免访问另一个进程的内存;
- 内存不够或空间零散时怎么办;
- 程序能否在运行中移动位置。
可以把内存管理概括为:
2. 为什么程序不能直接写死物理地址
假设程序中的第一条指令要求访问地址 1000。若 1000 是真实物理地址,那么程序每次都必须装入同一位置;多个程序还可能同时想使用这一区域。
因此程序通常使用自己的逻辑地址,操作系统和硬件在运行时把它转换为物理地址。
| 地址 | 含义 |
|---|---|
| 逻辑地址/相对地址/虚地址 | 程序看到并使用的地址 |
| 物理地址/绝对地址 | 内存芯片中的真实位置 |
| 地址映射/重定位 | 逻辑地址转换为物理地址 |
3. 程序从磁盘进入内存的过程
通常经历:
编译 → 链接 → 装入 → 运行
3.1 三种装入与重定位方式
| 方式 | 地址何时确定 | 特点 |
|---|---|---|
| 绝对装入 | 编译时 | 只能装入固定位置 |
| 静态重定位 | 装入内存时 | 装入后不能移动 |
| 动态重定位 | 每次访问内存时 | 可在运行中移动,依赖硬件 |
3.2 静态重定位
假设程序逻辑地址从 0 开始,装入物理地址 10000。装入程序一次性把所有相关地址加上 10000。
例如,逻辑地址 200 在装入时改为物理地址 10200。
转换完成后地址已写死,运行中再移动程序会导致地址失效。
3.3 动态重定位
程序仍保留逻辑地址,每次访问时由 MMU 转换:
物理地址的基本形式是:物理地址 = 基址 + 逻辑地址。
若基址改变,程序无需修改即可移动。
4. 内存保护为什么主要依赖硬件
操作系统可以规定“进程只能访问某一区域”,但若每条指令都靠软件检查,效率太低。因此通常由硬件在每次访问时检查:
- 基址与界限寄存器;
- 页表中的读写执行权限;
- 段表中的访问权限;
- 用户态/内核态权限。
操作系统负责设置规则,硬件负责快速执行检查。
5. 连续分配:让一个进程占用一整段内存
连续分配要求一个进程的内存区域在物理地址上连续。
5.1 固定分区
系统启动时预先划分若干固定大小分区,每个分区最多放一个进程。
优点:实现简单,分配速度快。
问题:进程小于分区时,分区内部剩余空间无法分给其他进程,形成内碎片。
例如分区大小为 100KB,进程只使用 70KB,剩余 30KB 位于已分配分区内部,因此属于内碎片。
5.2 动态分区
进程到达时,按实际大小从空闲内存中切出一块连续区域。
优点:比固定分区更灵活,内部浪费少。
问题:反复分配和回收后,空闲空间会被分散成很多小块,形成外碎片。
已用 20 | 空闲 5 | 已用 30 | 空闲 8 | 已用 10 | 空闲 7
虽然总空闲为 20,但无法给需要连续 15 的进程,因为最大单块只有 8。
6. 内碎片和外碎片怎么判断
| 类型 | 浪费位置 | 常见方案 |
|---|---|---|
| 内碎片 | 已分配区域内部 | 固定分区、分页 |
| 外碎片 | 已分配区域之间的零散空闲块 | 动态分区、分段 |
判断口诀:
已经分给你,但你没用完 → 内碎片;还没有分出去,但散得无法使用 → 外碎片。
6.1 紧凑
动态分区可通过移动进程,把零散空闲区合并成大块:
但紧凑需要动态重定位,且移动正在进行 I/O 的内存区域可能造成设备仍向旧地址传输,因此代价较大。
7. 动态分区分配算法
有多个空闲区时,需要决定选哪一个。
缩写:FF = First Fit(首次适应算法),NF = Next Fit(循环首次适应算法),BF = Best Fit(最佳适应算法),WF = Worst Fit(最坏适应算法)。
| 算法 | 选择规则 | 直观特点 |
|---|---|---|
| FF | 从低地址找第一个足够大的空闲区 | 快,但低地址容易积累碎片 |
| NF | 从上次查找结束处继续 | 空闲区分布较均匀 |
| BF | 选满足要求的最小空闲区 | 剩余部分很小,易产生小碎片 |
| WF | 选最大的空闲区 | 切割后仍可能留下较大空闲块 |
[!warning] 名称陷阱 “最佳适应”只是每次选择最贴合的空闲区,不代表长期整体效果一定最佳。
7.1 回收空闲区
回收一块内存时,内存从已用变成了空闲。因此需要检查前后相邻区域并进行合并:
| 前邻区 | 后邻区 | 处理 |
|---|---|---|
| 已用 | 已用 | 新建一个空闲区 |
| 空闲 | 已用 | 与前邻区合并 |
| 已用 | 空闲 | 与后邻区合并 |
| 空闲 | 空闲 | 三块合并为一块 |
8. 为什么分页能消除外碎片
连续分配要求进程占用一整块连续内存。分页则把:
- 逻辑地址空间分成固定大小的页;
- 物理内存分成相同大小的页框/块。
每一页可装入任意空闲页框:
因此进程整体不必连续,只要每个页框内部连续即可。
分页特点:
- 页面大小相等;
- 物理页框大小与页面相等;
- 无外碎片;
- 最后一页可能装不满,产生内碎片;
- 每个进程有自己的页表。
9. 页表是什么
页表记录逻辑页号到物理页框号的映射。
| 页号 | 页框号 |
|---|---|
| 0 | 5 |
| 1 | 1 |
| 2 | 8 |
程序访问页 1 时,系统查页表得知它实际位于页框 1。
页号不是物理地址;必须先通过页表得到页框号。
10. 分页地址转换
页大小为 $L$ 字节,逻辑地址为 $A$。
第一步:求页号和页内偏移
$$ p=\left\lfloor\frac{A}{L}\right\rfloor $$ $$ d=A\bmod L $$第二步:查页表
由页号 $p$ 找到页框号 $f$。
第三步:拼出物理地址
$$ PA=f\times L+d $$10.1 示例
页大小 1KB,即 1024B。逻辑地址为 2500。
$$ p=2500\div1024=2 $$ $$ d=2500\bmod1024=452 $$若页 2 位于页框 7:
$$ PA=7\times1024+452=7620 $$10.2 二元地址形式
题目若直接给逻辑地址 (页号, 页内偏移),无需再除页大小:
例如逻辑地址 (2, 452),若页表中“页2 → 页框7”,则物理地址为 7×1024+452。
11. 用地址位数求页大小
若逻辑地址共 $m$ 位,页号占 $p$ 位:
因此:
$$ 页大小=2^{m-p}\text{B} $$ $$ 最多页数=2^p $$例如 24 位地址,页号 14 位:
$$ 偏移位数=24-14=10 $$ $$ 页大小=2^{10}=1024B $$ $$ 页数=2^{14}=16384 $$[!warning] 数量与最大编号 14 位页号可表示 16384 个页号,编号范围是 0 到 16383。页数是 $2^{14}$,最大页号是 $2^{14}-1$。
12. 为什么基本分页通常要访问两次内存
页表通常也在内存中。
第一次访存读取页表项,得到页框号;第二次访存读取真正的数据或指令。
因此没有快表时,一次逻辑地址访问通常需要两次内存访问。
12.1 TLB 快表
TLB 是缓存近期页表项的高速相联存储器。
若 TLB 查询时间为 $t$,内存访问时间为 $m$,命中率为 $\alpha$:
$$ EAT=\alpha(t+m)+(1-\alpha)(t+2m) $$这里未包含缺页处理;基本分页默认页面已在内存。
13. 为什么需要多级页表
地址空间很大时,单级页表可能占用大量连续内存。多级页表把页表本身也分页:
一级页号定位页目录项,二级页号定位页表项,页内偏移定位页框内部位置。
优点:只需为实际使用的地址范围建立下级页表,减少页表占用。
代价:不使用 TLB 时,级数越多,地址转换访问次数越多。
页表基址寄存器通常指向最高级页表的物理起始地址。
14. 分段:按照程序的逻辑结构划分
程序员看程序时,更自然的单位通常是:
- 代码段;
- 全局数据段;
- 栈段;
- 共享库段。
分段管理按逻辑意义划分,每段长度可不同。
逻辑地址是二维的:
$$ (段号s, 段内偏移d) $$段表项通常包含:
- 段基址;
- 段长;
- 访问权限。
15. 分段地址转换
第一步:检查段号
段号不能超过段表长度。
第二步:查段表
得到该段的基址和段长。
第三步:检查段内偏移
必须满足:
$$ d<段长 $$第四步:求物理地址
$$ PA=段基址+d $$例:段 2 基址 9000、段长 100,逻辑地址 (2,110)。
因为:
$$ 110\ge100 $$所以地址越界,不能直接算成 9110。
[!important] 分段题顺序 先越界检查,再做加法。
16. 分页和分段为什么不同
| 比较项 | 分页 | 分段 |
|---|---|---|
| 划分者 | 系统自动划分 | 按程序逻辑结构划分 |
| 大小 | 页等长 | 段不等长 |
| 地址形式 | 一维地址可拆成页号+偏移 | 二维的段号+偏移 |
| 主要目的 | 离散分配、提高内存利用率 | 逻辑组织、共享和保护 |
| 碎片 | 内碎片 | 外碎片 |
| 共享保护 | 可实现但不直观 | 按逻辑段更方便 |
分段并不要求整个进程连续,只要求每个段内部连续;不同段可分散在不同物理区域。
17. 段页式:先分段,再分页
段页式希望同时获得:
- 分段的逻辑组织、共享和保护;
- 分页的离散分配和无外碎片。
逻辑地址通常为:
$$ (段号s, 段内页号p, 页内偏移d) $$转换流程:
段页式转换先由段号查段表得到该段页表,再由页号查页表得到页框,最后用页内偏移定位页框内部。
不考虑 TLB 时通常需要:
- 访问段表;
- 访问页表;
- 访问目标数据。
共三次内存访问。
段页式的代价是表结构和地址转换更复杂。
18. 四种方式的整体关系
19. 地址转换题的固定流程
分页题
分页题通常按“确认页大小、求页号和页内偏移、检查页号、查页表、拼物理地址”的顺序处理。
分段题
分段题通常按“取段号和偏移、检查段号、查段表、检查段内偏移、基址加偏移”的顺序处理。
段页式题
段页式题通常按“段号查段表、页号查页表、得到页框号、拼物理地址”的顺序处理。
20. 高频陷阱
- “逻辑地址就是物理地址”——错,需要地址转换。
- “动态重定位在装入时一次完成”——错,它在运行时逐次转换。
- “空闲总量足够就一定能进行连续分配”——错,可能存在外碎片。
- “分页没有任何碎片”——错,可能有内碎片。
- “同一系统的页面大小可以不同”——基本分页中错,页等长。
- “页号直接等于页框号”——错,必须查页表。
- “分段要求整个作业连续”——错,只要求每段内部连续。
- “分段地址直接用基址加偏移”——不完整,必须先检查偏移越界。
- “段页式天然就是虚拟存储”——错,是否虚拟取决于是否支持请求调入和置换。
21. 本章速记
逻辑地址由程序使用,物理地址是真实内存位置,重定位负责二者转换。
固定分区和分页容易产生内碎片;动态分区和分段容易产生外碎片。
分页:页号=A÷页大小,偏移=A mod 页大小,PA=页框×页大小+偏移。
分段:先检查偏移<段长,再算PA=基址+偏移。
无 TLB 时:基本分页通常两次访存,段页式通常三次访存。
第五章 内存管理(例题)
题目按知识点归类;完全重复题合并展示并保留全部题号。带“答案订正”的题,按课程理论给出修正答案。
- 本章题库记录数:45
- 去重后原题数:43
地址、装入、重定位与保护
例题 1|判断题|2026春OS4/1-2
用绝对地址编写的程序不适合多道程序系统运行。
- T. T
- F. F
答案:T
解析: 绝对地址固定绑定物理位置,多道程序中装入位置变化会导致运行困难。
例题 2|判断题|2026春OS4/1-12
地址映射是指将程序空间中的逻辑地址变为内存空间的物理地址()。
- T. T
- F. F
答案:T
解析: 地址映射就是把逻辑地址转换为物理地址。
例题 3|判断题|2026春OS4/1-14
为了提高内存保护的灵活性,内存保护通常由软件实现()
- T. T
- F. F
答案:F
解析: 内存保护需要每次访问时检查,通常主要依赖硬件支持。
例题 4|判断题|2026春OS4/1-15
内存分配最基本的任务是为每道程序分配内存空间,其所追求的主要目标是提高存储空间的利用率。()
- T. T
- F. F
答案:T
解析: 内存分配要为程序安排空间,目标是尽量提高内存利用率。
例题 5|判断题|2026春OS4/1-16
页式管理易于实现不同进程间的信息共享。
- T. T
- F. F
答案:F
解析: 页按固定大小划分,不按逻辑单位组织,共享通常不如分段方便。
例题 6|判断题|2026春OS4/1-17
采用动态重定位技术的系统,目标程序可以不经任何改动,而装入物理内存。
- T. T
- F. F
答案:T
解析: 动态重定位在运行时完成地址转换,目标程序可装入不同物理位置。
例题 7|判断题|2026春OS4/1-27
无论何时想要提高CPU的利用率,都应该增加多道程序的道。
- T. T
- F. F
答案:F
解析: 多道程序道数过多会增加内存压力和调度开销,不一定提高 CPU 利用率。
例题 8|判断题|2026春OS4/1-32
进行程序的相对地址到物理地址的转换,就是地址重定位。
- T. T
- F. F
答案:T
解析: 相对地址转换为物理地址的过程就是地址重定位。
例题 9|判断题|2026春OS4/1-37
页式的地址是一维的,段式的地址是二维的
- T. T
- F. F
答案:T
解析: 分页地址可看作一维地址,分段地址通常表示为段号和段内地址。
例题 10|判断题|2026春OS4/1-38
页式管理易于实现不同进程间的信息共享
- T. T
- F. F
答案:F
解析: 信息共享更适合按逻辑单位组织的分段管理,分页不如分段方便。
例题 11|判断题|2026春OS4/1-43
虚地址即程序执行时所要访问的内存地址。
- T. T
- F. F
答案:F
解析: 虚地址是逻辑地址,不是程序最终访问到的物理内存地址。
例题 12|单选题|2026春OS4/2-36
下列关于常规存储器的论述中,正确的论述是( )。
- A. 存业在运行前,必须全部装入内存,且在运行过程中也一直驻留内存
- B. 作业在运行前,不必全部装入内存,且在运行过程中也不必一直驻留内存
- C. 作业在运行前,必须全部装入内存,但在运行过程中不必一直驻留内存
- D. 作业在运行前,不必全部装入内存,但在运行过程中必须一直驻留内存
答案:A
解析: 常规存储管理要求作业运行前全部装入内存,并在运行期间驻留内存。
例题 13|单选题|2026春OS4/2-41
若一个系统内存有2GB,处理器是32位地址,则它的虚拟地址最大空间为多少字节____
- A. 2GB
- B. 4GB
- C. 8GB
- D. 16GB
答案:B
解析: 32位地址可表示2^32个字节地址,最大虚拟空间4GB,与实际2GB内存无关。
例题 14|单选题|2026春OS4/2-47
对于采用虚拟内存管理方式的系统,下列关于进程虚拟地址空间的叙述中,错误的是:
- A. 每个进程都有自己独立的虚拟地址空间
- B. C 语言中 malloc() 函数返回的是虚拟地址
- C. 进程对数据段和代码段可以有不同的访问权限
- D. 虚拟地址空间的大小由内存和硬盘的大小决定
答案:D
解析: 虚拟地址空间主要由地址位数和系统设计决定,不直接由内存和硬盘大小决定。
连续分配与碎片
例题 15|判断题|2026春OS4/1-6
固定内存分配会产生内碎片。
- T. T
- F. F
答案:T
解析: 固定分区大小固定,作业未用完的分区内部空间会形成内碎片。
例题 16|判断题|2026春OS4/1-7、2026春OS4/1-35
碎片的总容量如果超过某个作业申请的容量,就可以将其再次分配给该作业。
- T. T
- F. F
答案:F
解析: 碎片总量足够但若不连续,连续分配方式下仍不能直接分配给作业。
例题 17|判断题|2026春OS4/1-10
分区管理取消了存储分配连续性要求,使一个作业的地址空间在内存中可以是若干个不一定连续的区域。
- T. T
- F. F
答案:F
解析: 分区管理属于连续分配,作业地址空间仍要求占用连续内存区域。
例题 18|判断题|2026春OS4/1-18
页式存储管理中,一个作业可以占用不连续的内存空间,而段式存储管理,一个作业则是占用连续的内存空间。
- T. T
- F. F
答案:F
解析: 段式管理只要求每个段内部连续,整个作业的多个段不必连续。
例题 19|判断题|2026春OS4/1-39
页式存储管理中,一个作业可以占用不连续的内存空间,而段式存储管理,一个作业则是占用连续的内存空间
- T. T
- F. F
答案:F
解析: 段式管理中各段可分散存放,不要求整个作业连续。
例题 20|单选题|2026春OS4/2-20
在使用紧缩技术解决外碎片时,如果一个进程正在( )时,则不能在内存中移动。
- A. 处于临界区
- B. 创建
- C. I/O操作
- D. 死锁
答案:C
解析: 进程正在 I/O 时,设备可能直接使用其内存地址,此时不宜移动该进程。
动态分区分配算法
例题 21|判断题|2026春OS4/1-36
最佳适应法将能满足作业需求量的最小空闲区分配给作业。
- T. T
- F. F
答案:T
解析: 本题判断为正确。首次适应找第一个,循环首次从上次处继续,最佳适应找最小合适块,最坏适应找最大块。
例题 22|单选题|2026春OS4/2-25
在动态分区式内存管理中,能使内存空间中空闲区分布较均匀的算法是_____
- A. 最佳适应算法
- B. 最差适应算法
- C. 首次适应算法
- D. 循环首次适应算法
答案:D
解析: 首次适应找第一个,循环首次从上次处继续,最佳适应找最小合适块,最坏适应找最大块。 因此应选 D(循环首次适应算法)。
例题 23|单选题|2026春OS4/2-26
在动态分区式内存管理中,每次分配时把既能满足要求,又是最小的空闲区分配给进程的算法是_____
- A. 最佳适应算法
- B. 最差适应算法
- C. 首次适应算法``
- D. 循环首次适应算法
答案:A
解析: 首次适应找第一个,循环首次从上次处继续,最佳适应找最小合适块,最坏适应找最大块。 因此应选 A(最佳适应算法)。
例题 24|单选题|2026春OS4/2-28
在可变式分区分配方案中,某一作业完成后,系统收回其主存空间,并与相邻空闲区合并,为此需修改空闲区表,只造成空闲区大小变化的情况是____
- A. 无上邻空闲区,也无下邻空闲区
- B. 有上邻空闲区,也有下邻空闲区
- C. 有下邻空闲区,但无上邻空闲区
- D. 有上邻空闲区,但无下邻空闲区
答案:D
解析: 只有上邻空闲时,只需扩大上邻空闲区大小,不必新增或删除表项。
基本分页与页表/TLB
例题 25|判断题|2026春OS4/1-3
引入TLB(快表)是为了解决分页时两次内存访问的问题。
- T. T
- F. F
答案:T
解析: TLB 缓存页表项,用来减少分页地址转换中的额外内存访问。
例题 26|判断题|2026春OS4/1-4
在分页时,每个进程拥有一个页表,且页表驻留在内存中。
- T. T
- F. F
答案:T
解析: 分页系统通常每个进程有自己的页表,页表保存在内存中。
例题 27|判断题|2026春OS4/1-5
在分页内存管理中 ,CPU每次从内存中取一个数据需要1次内存访问。
- T. T
- F. F
答案:F
解析: 无快表时,取数据通常要先访问页表,再访问数据,共两次内存访问。
例题 28|判断题|2026春OS4/1-9
在分页管理中所产生的内存碎片,最多小于帧的大小。
- T. T
- F. F
答案:T
解析: 分页只可能在最后一页产生内碎片,大小小于一个页框。
例题 29|判断题|2026春OS4/1-11
静态分配是指在目标程序运行之前完成的存储分配。例如分区管理和分页管理。
- T. T
- F. F
答案:F
解析: 分页管理可在运行中动态分配页框,不属于题干所说的运行前静态分配。
例题 30|判断题|2026春OS4/1-13
分页管理中,作业地址空间是一维的,页的长度是等长的。
- T. T
- F. F
答案:T
解析: 分页地址空间是一维的,页大小在同一系统中固定相等。
例题 31|判断题|2026春OS4/1-19
分页式存储管理中,页的大小是可以不相等的。
- T. T
- F. F
答案:F
解析: 同一分页系统中页大小固定,页与页框大小相等。
例题 32|单选题|2026春OS4/2-17
In a paging memory management system, there is a page table as following:
| Page # | Frame # |
|---|---|
| 0 | 1 |
| 1 | 2 |
| 2 | 4 |
| 3 | 3 |
| 4 | 0 |
If the page size is 4KB, then paging address hardware will convert logical address (0,4) into physical address _____。
- A. 8192
- B. 4100
- C. 4096
- D. 4
答案:B
答案订正: 按课程理论,本题应选
B。
解析: 页0映射到页框1,页大小4096B,物理地址=1×4096+4=4100,选 B。
例题 33|单选题|2026春OS4/2-23
在采用二级页表的分页系统中,CPU 页表基址寄存器中的内容是:
- A. 当前进程的一级页表的起始虚拟地址
- B. 当前进程的一级页表的起始物理地址
- C. 当前进程的二级页表的起始虚拟地址
- D. 当前进程的二级页表的起始物理地址
答案:B
解析: 二级页表中,页表基址寄存器保存当前进程一级页表的物理起始地址。
例题 34|单选题|2026春OS4/2-27
分页式存储管理中,地址转换工作是由以下哪一部分完成的____
- A. 硬件
- B. 装入程序
- C. 系统程序
- D. 编译程序
答案:A
解析: 分页地址转换由硬件地址转换机构完成。
例题 35|填空题|2026春OS4/4-2
某页式存储管理系统中,地址寄存器长度为24位,其中页号占14位,则主存的分块大小应该是(空1)字节,程序最多占有(空2)页。
答案: 空1 = 1024,空2 = 16384
判题说明: 理论结果为 1024 和 16384;若判题未完全通过,优先检查输入格式。
解析: 地址共24位、页号14位,所以偏移10位;页框大小为2^10=1024B,最多有2^14=16384页。若判题未完全通过,更可能是输入格式或判题设置问题,理论结果无误。
分段存储管理
例题 36|单选题|2026春OS4/2-16
consider the following segment table:
| Segment | Base | Length |
|---|---|---|
| 0 | 210 | 600 |
| 1 | 2300 | 14 |
| 2 | 90 | 100 |
| 3 | 1327 | 580 |
| 4 | 1950 | 90 |
What is the physical address for the logical address (2,110)?
- A. illegal address
- B. 110
- C. 200
- D. 210
答案:A
答案订正: 按课程理论,本题应选
A。
解析: 段2长度为100,合法偏移范围0~99;偏移110越界,故是非法地址,选 A。
例题 37|单选题|2026春OS4/2-18
下列选项中对分段存储管理叙述正确的是( )
- A. 分段存储管理中每个段必须是大小相等的。
- B. 每一段必须是连续的存储区
- C. 每一段不必是连续的存储区
- D. 段间的存储区必须是连续的
答案:B
解析: 分段管理中每个段内部必须连续,但不同段之间不要求连续。
段页式存储管理与综合计算
例题 38|判断题|2026春OS4/1-20
段页式管理实现了段式、页式两种存储方式的优势互补。
- T. T
- F. F
答案:T
解析: 段页式兼有分段便于逻辑组织和分页便于离散分配的优点。
例题 39|判断题|2026春OS4/1-31、2026春OS4/1-33
段页式存储管理是通过请求调入和替换功能,对内外存进行统一管理,为用户提供了比实际内存容量大的多的物理存储空间。
- T. T
- F. F
答案:F
解析: 题干描述的是虚拟存储思想,而且扩充的是逻辑地址空间,不是物理存储空间。
例题 40|判断题|2026春OS4/1-40
段页式管理方式下,不考虑快表,存取一个数据需要访问三次内存
- T. T
- F. F
答案:T
解析: 无快表时,段页式需访问段表、页表和目标数据,共三次内存访问。
例题 41|单选题|2026春OS4/2-19
采用( )不会产生内部碎片。
- A. 分页式存储管理
- B. 分段式存储管理
- C. 固定分区式存储管理
- D. 段页式存储管理
答案:B
解析: 分段按逻辑段实际大小分配,不会产生页式或固定分区那样的内部碎片。
例题 42|单选题|2026春OS4/2-21
段页式管理中,用于地址转换的数据结构是( )。
- A. 每个进程一张段表,一张页表。
- B. 每个进程的每个段一张段表,一张页表。
- C. 每个进程一张段表,每个段一张页表 。
- D. 每个进程一张页表,每个段一张段表。
答案:C
解析: 段页式中每个进程有一张段表,每个段再对应一张页表。
例题 43|单选题|2026春OS4/2-24
段页式存储管理汲取了页式管理和段式管理的长处,其实现原理结合了页式和段式管理的基本思想,即_______
- A. 用分段方法来分配和管理物理存储空间,用分页方法来管理用户地址空间
- B. 用分段方法来分配和管理用户地址空间,用分页方法来管理物理存储空间
- C. 用分段方法来分配和管理主存空间,用分页方法来管理辅存空间
- D. 用分段方法来分配和管理辅存空间,用分页方法来管理主存空间
答案:B
解析: 段页式用分段管理用户逻辑空间,用分页实现物理内存离散分配。
第六章 虚拟存储
[!abstract] 本章学习路线 本章建立在分页和分段之上。先理解为什么程序不必全部装入内存,再学习缺页中断、页面置换和抖动。
1. 基本分页还有什么限制
第五章的基本分页允许各页分散装入内存,但通常仍假设:
进程运行前,所有页面都已经在内存中。
若程序很大,或同时运行的进程很多,这个要求会使内存很快用完。
实际程序在一段时间内通常只访问少量代码和数据。因此可以只装入当前需要的页面,其他页面暂时留在外存。这就是虚拟存储的出发点。
2. 虚拟存储到底“虚拟”了什么
虚拟存储让每个进程看到一个较大的、连续的逻辑地址空间,而实际只有部分页面驻留物理内存。
它不是增加了物理内存,而是通过内存和外存之间的换入换出,用时间换空间。
2.1 三个基本特征
- 多次性:程序分多次调入,不必一次装完;
- 对换性:页面可在内存和外存之间换入换出;
- 虚拟性:逻辑地址空间可大于实际物理内存。
虚拟地址空间仍受地址位数限制。例如 32 位字节地址理论上可表示:
$$ 2^{32}\text{B}=4\text{GB} $$3. 为什么只装一部分页面仍能运行
基础是局部性原理。
3.1 时间局部性
刚访问过的内容很可能不久后再次访问。
例子:循环中的指令、频繁调用的函数、重复使用的变量。
3.2 空间局部性
访问某个地址后,很可能继续访问附近地址。
例子:顺序执行指令、遍历数组、读取连续结构体字段。
时间局部性强调“刚用过,可能再用”;空间局部性强调“用了这里,可能用附近”。
因为访问集中在局部区域,系统只需让当前活跃页面驻留内存。
4. 请求分页与基本分页的区别
| 基本分页 | 请求分页 |
|---|---|
| 运行前通常全部装入 | 首次访问时再调入 |
| 页表主要记录页框号和权限 | 页表还需记录是否在内存、外存位置等 |
| 不考虑缺页 | 允许并处理缺页 |
请求分页页表项常见字段:
| 字段 | 作用 |
|---|---|
| 页框号 | 页面在内存中的位置 |
| 存在位/状态位 P | 页面当前是否在内存 |
| 访问位 R/A | 最近是否被访问,供置换使用 |
| 修改位 M/D | 页面是否被写过 |
| 外存地址 | 页面在磁盘中的位置 |
| 保护位 | 读、写、执行权限 |
5. 缺页中断是什么
CPU 访问一个合法页面,但页表发现该页不在内存时,会产生缺页异常。
缺页不是程序错误。它是请求分页正常运行的一部分。
若地址本身越界或权限非法,则是非法访问,不应简单调页。
6. 缺页处理为什么要重新执行原指令
一条指令访问页面时,页面尚未到位,所以该指令并未正确完成。页面调入后,必须重新执行这条指令,而不是从下一条继续。
标准流程:
- 保存现场;
- 检查地址是否合法;
- 找到所缺页面在外存的位置;
- 寻找空闲页框;
- 若无空闲页框,选择牺牲页;
- 若牺牲页已修改,先写回外存;
- 把所缺页读入页框;
- 修改页表和 TLB;
- 恢复现场;
- 重新执行引发缺页的指令。
6.1 为什么修改页要写回
若页面调入后从未修改,外存中的原副本仍然有效,淘汰时可直接丢弃。
若页面被修改,内存内容比外存新,淘汰前必须写回,否则修改丢失。
6.2 缺页不一定要置换
若系统还有空闲页框,可直接装入缺页,无需淘汰其他页面。
缺页 ≠ 必然置换;无空闲页框时才需要置换。
7. 页面置换算法在选择什么
当没有空闲页框时,必须选择一个驻留页面作为牺牲页。目标是尽量减少未来缺页。
7.1 OPT:看未来最久不用谁
OPT(Optimal Page Replacement,最佳页面置换算法)淘汰未来最长时间不会被访问的页面。
优点:理论缺页数最低。
缺点:实际系统无法准确知道未来访问序列,因此只用于理论比较。
7.2 FIFO:谁最早进来就换谁
FIFO(First In First Out,先进先出置换算法)维护进入内存的先后队列,淘汰驻留时间最长的页面。
优点:简单。
问题:它不考虑页面是否经常使用,可能淘汰热点页;还可能出现 Belady 异常:页框增加后缺页次数反而增多。
7.3 LRU:谁最久没用就换谁
LRU(Least Recently Used,最近最久未使用置换算法)淘汰过去最长时间未访问的页面,用近期访问情况近似未来访问趋势。
优点:通常比 FIFO 好,不会出现 Belady 异常。
代价:需要记录访问时间或维护访问顺序,精确实现成本较高。
7.4 Clock:用访问位近似 LRU
Clock(时钟置换算法)把页框组成环形队列,指针循环扫描:
- 若
R=0:淘汰该页; - 若
R=1:把R清 0,给第二次机会,指针后移。
Clock 不需精确记录每次访问时间,因此实现成本低于 LRU。
7.5 改进型 Clock
同时考虑访问位 R 和修改位 M:
| 类型 | 含义 | 淘汰优先级 |
|---|---|---|
(0,0) |
最近未访问、未修改 | 最高 |
(0,1) |
最近未访问、已修改 | 次高 |
(1,0) |
最近访问、未修改 | 较低 |
(1,1) |
最近访问、已修改 | 最低 |
为什么优先未修改页?因为淘汰时无需写回磁盘。
8. 四种置换算法怎样快速区分
| 算法 | 依据 | 记忆关键词 |
|---|---|---|
| OPT | 未来多久不用 | 看未来 |
| FIFO | 进入内存时间 | 看进来多久 |
| LRU | 过去多久没访问 | 看最近过去 |
| Clock | 访问位和循环指针 | 给第二次机会 |
[!tip] 做题时不要凭感觉 每次访问都要更新页框内容、进入顺序、最近访问顺序或访问位。不同算法的“状态”不同。
9. 页面置换题的统一表格法
假设 3 个页框,访问序列为:
1 2 3 1 4
可画:
| 访问 | 1 | 2 | 3 | 1 | 4 |
|---|---|---|---|---|---|
| 页框1 | |||||
| 页框2 | |||||
| 页框3 | |||||
| 是否缺页 |
每一列按以下流程:
9.1 命中也要更新状态
- FIFO 命中通常不改变进入顺序;
- LRU 命中后该页变成最近使用;
- Clock 命中后访问位置 1。
这是计算错误最常见的来源之一。
10. OPT 题怎么选择牺牲页
缺页且页框已满时,对每个驻留页从当前位置向后看:
- 未来最晚再次出现:淘汰;
- 未来再也不出现:优先淘汰。
OPT 只在发生置换的时刻看未来,不需要每一步都重新排序。
11. FIFO 题怎么做
维护一个“进入页框的先后队列”。
- 新装入页面排到队尾;
- 置换队首最早页面;
- 页面命中时通常不重新入队。
FIFO 看的是进入时间,不是最近访问时间。
12. LRU 题怎么做
维护从“最久未用”到“最近使用”的顺序。
每次访问:
- 命中:把该页移到最近使用端;
- 缺页:淘汰最久未用页,新页成为最近使用页。
也可从访问序列向前回看,谁最久没出现就淘汰谁。
13. Clock 题怎么做
记录:
- 每个页框的页面;
- 每个页的访问位 R;
- 当前指针位置。
缺页时从指针开始:
R=1:清 0,继续;R=0:淘汰,装入新页,通常把新页R置 1,指针后移。
必须严格按题目给定的初始指针和访问位处理。
14. 十六进制地址与页号计算
页大小为 2KB:
$$ 2KB=2048=0x800 $$对逻辑地址 $A$:
$$ 页号=A\div0x800 $$ $$ 页内偏移=A\bmod0x800 $$查到页框号 $F$ 后:
$$ PA=F\times0x800+偏移 $$连续访问多个地址时,必须按题目顺序处理。前一次访问可能装入或淘汰页面,并改变 LRU 次序、Clock 位或修改位,从而影响下一次访问。
若题目说“向该地址写入数据”,应把该页修改位 M 置为 1。
15. 页框如何分配给不同进程
15.1 分配数量
- 固定分配:每个进程页框数固定;
- 可变分配:根据运行情况增减;
- 平均分配:平均分给各进程;
- 按比例分配:进程越大,分配越多;
- 优先权分配:高优先级进程可获得更多。
15.2 置换范围
| 范围 | 含义 |
|---|---|
| 局部置换 | 只能淘汰本进程自己的页面 |
| 全局置换 | 可从系统可替换页框中选择,可能淘汰其他进程页面 |
全局置换灵活,但进程之间相互影响更强;局部置换隔离更好,但某进程页框不足时调整不够灵活。
16. 工作集:进程当前真正需要的页面
工作集是在某个时间窗口内,进程频繁访问的页面集合。
例如最近一段时间访问:
1, 2, 3, 2, 1, 3, 2
工作集可能是 {1,2,3}。
只要这些活跃页面大部分驻留内存,缺页率通常较低。
17. 抖动为什么发生
若进程获得的页框装不下工作集,它会:
- 访问页 A:调入 A,淘汰 B;
- 马上访问 B:调入 B,淘汰 C;
- 马上访问 C:调入 C,淘汰 A。
系统大部分时间都在换页,CPU 反而等待磁盘,称为抖动。
抖动常见原因:
- 多道程序度过高;
- 每个进程页框太少;
- 全局置换导致进程互相抢页框。
17.1 处理抖动
- 减少并发进程数,挂起部分进程;
- 给活跃进程增加页框;
- 使用工作集模型;
- 根据缺页率动态调整页框;
- 使用局部置换减少相互干扰。
单纯扩大交换区或提高进程优先级,不能解决工作集装不下的问题。
18. 请求分段
请求分段是在分段管理基础上,让段按需调入并支持置换。
段表通常增加:
- 存在位;
- 访问字段;
- 修改位;
- 外存起始地址;
- 增补位/扩充位:记录段是否允许或发生动态增长。
其思想与请求分页相似,但调入和置换单位是长度可变的段。
19. 基本分页与请求分页的核心差别
基本分页解决“页面可以放在不连续页框中”;请求分页进一步解决“页面不必全部同时在内存中”。
因此请求分页必须额外处理:
- 页面是否在内存;
- 缺页中断;
- 页面置换;
- 修改页写回;
- 页框分配和抖动。
20. 高频陷阱
- “虚拟存储增加了物理内存”——错,只是逻辑扩充。
- “地址空间可以无限大”——错,仍受地址位数和系统实现限制。
- “缺页说明程序出错”——错,合法缺页是正常机制。
- “缺页一定要淘汰页面”——错,有空闲页框时无需置换。
- “缺页处理完执行下一条指令”——错,应重新执行原指令。
- “OPT 是实际系统最常用算法”——错,它无法预知未来。
- “FIFO 页框越多缺页一定越少”——错,可能出现 Belady 异常。
- “LRU 命中时不用更新状态”——错,必须更新最近使用顺序。
- “工作集只要存在虚拟地址空间即可”——错,关键是尽量驻留物理内存。
- “增加多道程序度总能提高 CPU 利用率”——错,过高会导致抖动。
21. 本章速记
虚存让程序只把当前需要的页面装入内存,用时间换空间。
时间局部性:刚访问过还会再访问;空间局部性:会访问附近地址。
缺页流程:找页框,无空框才置换,脏页先写回,最后重启原指令。
OPT 看未来,FIFO 看进入时间,LRU 看最近过去,Clock 看访问位。
工作集装不下会产生抖动;应减少进程或增加页框,而不是盲目提高并发度。
第六章 虚拟存储(例题)
题目按知识点归类;完全重复题合并展示并保留全部题号。带“答案订正”的题,按课程理论给出修正答案。
- 本章题库记录数:37
- 去重后原题数:36
虚拟存储器与局部性
例题 1|判断题|2026春OS4/1-1
虚拟存储器时物理上扩充内存容量。()
- T. T
- F. F
答案:F
解析: 虚拟存储是逻辑上扩充内存容量,不是物理增加主存。
例题 2|判断题|2026春OS4/1-8
相对于简单分页管理来说,请求页式管理是“用时间换取了空间”,这是该种管理方式的一个缺点。
- T. T
- F. F
答案:T
解析: 请求分页节省主存空间,但缺页时要付出调页和置换时间。
例题 3|判断题|2026春OS4/1-21、2026春OS4/1-41
虚存容量的扩大是以牺牲CPU工作时间以及内、外存交换时间为代价的。
- T. T
- F. F
答案:T
解析: 虚存扩大逻辑空间,需要 CPU 处理缺页并进行内外存交换。
例题 4|判断题|2026春OS4/1-25
虚拟存储器的最大容量是任意的。
- T. T
- F. F
答案:F
解析: 虚存最大容量受地址结构、外存容量等限制,不是任意大小。
例题 5|判断题|2026春OS4/1-26
时间局部性是指,当程序访问了某个存储单元,在不久之后,其附近的存储单元也会被访问。
- T. T
- F. F
答案:F
解析: 访问附近单元是空间局部性;时间局部性是近期可能再次访问同一单元。
例题 6|判断题|2026春OS4/1-34
请求页式存贮管理中,若一个作业要求的全部存贮需求不能满足,该作业只能等待。
- T. T
- F. F
答案:F
解析: 请求分页不要求作业全部页面同时装入内存,缺页时再调入需要的页。
例题 7|判断题|2026春OS4/1-42
在虚拟存储方式下,程序员编制程序时不必考虑主存的容量,但系统的吞吐量在很大程度上依赖于主存储器的容量;
- T. T
- F. F
答案:T
解析: 虚存让程序员少受主存容量限制,但实际吞吐量仍受主存容量影响。
例题 8|判断题|2026春OS4/1-45
外存对换空间保存的是虚拟内存管理系统调出的程序
- T. T
- F. F
答案:F
解析: 对换空间保存的是被换出的页面或进程映像,不是“虚拟内存管理系统调出的程序”这种表述。
例题 9|单选题|2026春OS4/2-40
虚拟存储管理系统的基础是程序的( )理论。
- A. 动态性
- B. 全局性
- C. 局部性
- D. 虚拟性
答案:C
解析: 虚拟存储依赖程序访问的局部性原理。
请求分页与请求页表
例题 10|判断题|2026春OS4/1-23
在请求分页式存储管理中,页面的调入、调出只能在内存和对换区之间进行。
- T. T
- F. F
答案:T
解析: 按该题库口径,请求分页的页面调入调出发生在内存与对换区之间。
例题 11|单选题|2026春OS4/2-49
在请求分页系统中,页表中的() 指示该页是否调入内存,供程序访问时参考
- A. 状态位P
- B. 访问字段A
- C. 修改位M
- D. 外存地址
答案:A
解析: 请求页表除页框号外还有存在位、访问位、修改位和外存地址等扩充字段。 因此应选 A(状态位P)。
例题 12|填空题|2026春OS4/4-4
某操作系统采用请求页式存储管理机制,用户进程总共有7个页面,系统为其固定分配了4个物理块,页面大小为2K,进程在当前时刻的页表状态如下所示。此后进程将依次向以下三个逻辑地址进行赋值:0X1ECB,0X27BE,0X16DB。请给出上述逻辑地址对应的物理地址.
填写须注意:括号内直接给出16进制的值(前缀为0X,且其中字母都必须大写,不得在数据中输入空格)。
| 逻辑地址 | 页内偏移地址(16进制) | 块号(16进制) | 物理地址(16进制) |
|---|---|---|---|
| 0X1ECB | (空1) | (空2) | (空3) |
| 0X27BE | (空4) | (空5) | (空6) |
| 0X16DB | (空7) | (空8) | (空9) |
题目给出的当前页表状态如下:
| 页号 | 块号 | 存在位 | 访问位 | 修改位 |
|---|---|---|---|---|
| 0 | 0 | |||
| 1 | 0X18E | 1 | 1 | 1 |
| 2 | 0 | |||
| 3 | 0X9D | 1 | 0 | 0 |
| 4 | 0X1AB | 1 | 0 | 0 |
| 5 | 0 | |||
| 6 | 0XD9 | 1 | 1 | 0 |
答案:
| 逻辑地址 | 页内偏移 | 页框号 | 物理地址 |
|---|---|---|---|
| 0X1ECB | 0X6CB | 0X9D | 0X4EECB |
| 0X27BE | 0X7BE | 0X1AB | 0XD5FBE |
| 0X16DB | 0X6DB | 0XD9 | 0X6CEDB |
解析: 页大小2KB=0X800。三个地址分别为页3/偏移0X6CB、页4/偏移0X7BE、页2/偏移0X6DB;查表得到页框0X9D、0X1AB、0XD9,物理地址依次为0X4EECB、0XD5FBE、0X6CEDB。题目是赋值操作,访问后相应页的修改位M应置1。
缺页中断处理
例题 13|判断题|2026春OS4/1-22
请求分页存储管理系统,若把页面的大小增加一倍,则缺页中断次数会减少50%。
- T. T
- F. F
答案:F
解析: 页面变大不代表缺页次数按固定比例下降,还取决于访问序列和局部性。
例题 14|判断题|2026春OS4/1-28
缺页中断是在指令执行期间产生和处理中断信号,而非一条指令执行之后。
- T. T
- F. F
答案:T
解析: 缺页发生在访问某条指令或操作数时,属于指令执行期间产生的异常。
例题 15|单选题|2026春OS4/2-37
进程在执行中发生了缺页中断,经操作系统处理后,应让其执行()指令。
- A. 被中断的那一条
- B. 被中断的后一条
- C. 启动时的那一条
- D. 被中断的前一条
答案:A
解析: 缺页处理后要重新执行引发缺页的那条指令。
例题 16|单选题|2026春OS4/2-39
在请求分页系统中,若逻辑地址中的页号超过页表寄存器中的页表长度,则会引起( )。
- A. 输入输出中断
- B. 时钟中断
- C. 越界中断
- D. 缺页中断
答案:C
解析: 页号超过页表长度属于地址越界,不是普通缺页。
例题 17|单选题|2026春OS4/2-42
在请求分页存储管理方式中,一条指令在执行过程中,可能产生 _____ 缺页中断
- A. 一次
- B. 二次
- C. 三次
- D. 多次
答案:D
解析: 一条指令可能跨页,且还可能访问跨页操作数,因此执行一条指令可能发生多次缺页,选 D。
页面置换算法
例题 18|单选题|2026春OS4/2-31
Assume that the page reference string as 1,3,7,3,4,2, 3,2,6,2,1,5,6,2,1; the system has 3 frames and all 3 frames are initially empty. OPT replacement will make __________ page faults.
- A. 8
- B. 9
- C. 10
- D. 11
答案:A
解析: 逐次按未来最晚使用原则置换,OPT 缺页8次,选 A。
例题 19|单选题|2026春OS4/2-32
Assume that ,the page reference string as 2,1,3,4,2,1,5,6,2,1,3,7,6,3,2; the system has 3 frames and all 3 frames are initially empty. FIFO replacement will have ____page faults.
- A. 11
- B. 12
- C. 13
- D. 14
答案:D
解析: 按进入内存的先后顺序淘汰,题给序列在3个页框下 FIFO 缺页14次,选 D。
例题 20|单选题|2026春OS4/2-33
Assume that ,the page reference string as 2,1,3,4,2,1,5,6,2,1,3,7,6,3,2; the system has 3 frames and all 3 frames are initially empty. LRU replacement will have ____page faults.
- A. 11
- B. 12
- C. 13
- D. 14
答案:D
解析: 每次淘汰最久未访问页,逐列模拟得到 LRU 缺页14次,选 D。
例题 21|单选题|2026春OS4/2-34
Assume that ,the page reference string as 2,1,3,4,2,1,5,6,2,1,3,7,6,3,2; the system has 3 frames and all 3 frames are initially empty. Second chance(Clock) replacement will have ____page faults.
- A. 11
- B. 12
- C. 13
- D. 14
答案:D
解析: 维护循环指针和访问位,逐列模拟 Second Chance 得14次缺页,选 D。
例题 22|单选题|2026春OS4/2-35
页式虚拟存储管理的主要特点是()。
- A. 不要求将作业装入到主存的连续区域
- B. 不要求进行缺页中断处理
- C. 不要求进行页面置换
- D. 不要求将作业同时全部装入到主存的连续区域
答案:D
解析: 页式虚拟存储不要求作业一次全部装入内存,也不要求连续存放。
例题 23|单选题|2026春OS4/2-38
( )不是页面置换常用算法。
- A. 先进先出置换算法
- B. 后进先出置换算法
- C. 最近最少用置换算法
- D. 最近最久未使用置换算法
答案:B
解析: 常用页面置换算法有 FIFO、LRU、OPT、Clock 等,后进先出不是常用算法。
例题 24|单选题|2026春OS4/2-43
()其含义与请求分页的相应字段相同,用于记录该段被访问的频繁程度。提供给置换算法选择换出页面时参考。
- A. 存取方式
- B. 访问字段
- C. 修改位M
- D. 增补位
答案:B
解析: 访问字段记录页面或段的访问情况,供置换算法参考。
例题 25|单选题|2026春OS4/2-44
()用于表示该页在进入内存后是否已被修改过,供置换页面时参考该字段用于指示本段是否己调入内存,供程序访问时参考。
- A. 存取方式
- B. 访问字段
- C. 修改位M
- D. 增补位
答案:C
解析: 修改位表示页面调入内存后是否被写过,影响置换时是否需要写回。
例题 26|单选题|2026春OS4/2-48
在请求分页存管理的页表中増加了若干项信息,其中修改位和访间位供( )参考。
- A. 程序访问
- B. 分配页面
- C. 置换算法
- D. 调入页面
答案:C
解析: 修改位和访问位用于判断换出代价和访问情况,供置换算法参考。
例题 27|填空题|2026春OS4/4-1
某操作系统采用请求页式存储管理机制,用户进程总共有7个页面,系统为其固定分配了4个物理块,页面大小为2K,置换策略采用 LRU(最近最久未使用置换算法),进程在当前时刻的页表状态如下所示,此前的页面访问顺序为….2,3,4,1,5,此后进程将依次连续访问以下三个逻辑地址:0X145A,0X245A,0X2D5A。请给出上述逻辑地址对应的物理地址。
填写须注意:括号内直接给出16进制的值(前缀为0X,且其中字母都必须大写,不得在数据中输入空格)。
| 逻辑地址 | 页内偏移地址(16进制) | 块号(16进制) | 物理地址(16进制) |
|---|---|---|---|
| 0X145A | (空1) | (空2) | (空3) |
| 0X245A | (空4) | (空5) | (空6) |
| 0X2D5A | (空7) | (空8) | (空9) |
题目给出的当前页表状态如下:
| 页号 | 块号 | 存在位 |
|---|---|---|
| 0 | 0 | |
| 1 | 0XEA | 1 |
| 2 | 0 | |
| 3 | 0XDA | 1 |
| 4 | 0X8B | 1 |
| 5 | 0X9C | 1 |
| 6 | 0 |
答案:
| 逻辑地址 | 页内偏移 | 页框号 | 物理地址 |
|---|---|---|---|
| 0X145A | 0X45A | 0XDA | 0X6D45A |
| 0X245A | 0X45A | 0X8B | 0X45C5A |
| 0X2D5A | 0X55A | 0X9C | 0X4E55A |
解析: 页大小2KB=0X800。三个地址依次分解为:页2/偏移0X45A、页4/偏移0X45A、页5/偏移0X55A。按题给页表与连续LRU过程得到页框0XDA、0X8B、0X9C,再用“页框×0X800+偏移”得到0X6D45A、0X45C5A、0X4E55A。
例题 28|填空题|2026春OS4/4-3
一个进程的大小为5个页面,为它分配了四个物理块。当前每个块的情况如下表所示(都为十进制数,且从0开始计数。时间单位为“秒”)。当虚页4发生缺页时,使用CLOCK改进算法,哪一个物理块将被换出?并解释原因.若每块的大小为1K,请计算4111单元的物理地址。(都使用十进制)
页号 块号 加载时刻 访问时刻 访问位R 修改位M
2 0 60 161 0 1
1 1 130 160 0 0
0 2 26 162 1 0
3 5 20 163 1 1
空格2请在如下选项中选择正确的内容填入空格(只需要写A、B、C… 即可,如果有多个答案,直接写诸如AB、BCD即可),其余空格直接填写数字。
第(空1)号物理块将被换出,因为(空2)
A)最近被访问 B)最近被修改 C)最近没被访问 D)最近没被修改
4111 = (空3) * 1024 + (空4)
地址 = (空5) * 1024 + (空6) = (空7)
答案: 空1 = 1,空2 = CD,空3 = 4,空4 = 15,空5 = 1,空6 = 15,空7 = 1039
解析: 改进型Clock优先淘汰(R,M)=(0,0)的页面。页1所在物理块1满足该条件,因此块1被换出。4111=4×1024+15,虚页4装入块1后,物理地址=1×1024+15=1039。
页框分配、工作集与抖动
例题 29|判断题|2026春OS4/1-24
请求分页存储管理中,页面置换算法很多,但只有最佳置换算法能完全避免进程的抖动,因此目前应用最多。其他(如改进型CLOCK)算法虽然也能避免进程的抖动,但其效率一般很低。
- T. T
- F. F
答案:F
解析: OPT 不能实际预知未来,且页面置换算法本身不能完全避免抖动。
例题 30|判断题|2026春OS4/1-44
在进程运行时,如果它的工作集页面都在虚拟存储器内,能够使该进程有效的运行, 否则会出现频繁的页面调入调出现象
- T. T
- F. F
答案:F
解析: 工作集页面必须在物理内存中才有利于运行;只在虚拟存储器内这个说法不准确。
例题 31|单选题|2026春OS4/2-22
某请求分页存储系统的页大小为 4 KB,按字节编址。系统给进程 P 分配 2 个固定的页框,并采用改进型 Clock 置换算法,进程 P 页表的部分内容如下表所示。
若 P 访问虚拟地址为 02A01H 的存储单元,则经地址变换后得到的物理地址是:
题目给出的页表部分内容如下:
| 页号 | 页框号 | 存在位 | 访问位 | 修改位 |
|---|---|---|---|---|
| 2 | 20H | 0 | 0 | 0 |
| 3 | 60H | 1 | 1 | 0 |
| 4 | 80H | 1 | 1 | 1 |
- A. 00A01H
- B. 20A01H
- C. 60A01H
- D. 80A01H
答案:C
解析: 地址02A01H的页号为02H、偏移A01H。页2缺页,改进Clock淘汰页3并占用页框60H,故物理地址为60A01H。
例题 32|单选题|2026春OS4/2-29
某进程访问的页 b 不在内存中,导致产生缺页异常,该缺页异常处理过程中不一定包含的操作是
- A. 淘汰内存中的页
- B. 建立页号与页框号的对应关系
- C. 将页 b 从外存读入内存
- D. 修改页表中页 b 对应的存在位
答案:A
解析: 若有空闲页框,缺页处理不需要淘汰内存中的页。
例题 33|单选题|2026春OS4/2-30
下列选项中,不会影响系统缺页率的是
- A. 页置换算法
- B. 工作集的大小
- C. 进程的数量
- D. 页缓冲队列的长度
答案:D
解析: 页缓冲队列主要影响置换后的处理效率,不直接决定缺页率。
例题 34|单选题|2026春OS4/2-50
当系统发生抖动(thrashing)时,可以采取的有效措施是()。 Ⅰ.撤销部分进程 Ⅱ.增加磁盘交换区的容量 Ⅲ.提高用户进程的优先级
A. 仅I B.仅Ⅱ C.仅Ⅲ D.仅Ⅰ、Ⅱ
- A. 仅Ⅰ
- B. 仅Ⅱ
- C. 仅Ⅲ
- D. 仅Ⅰ、Ⅱ
答案:A
解析: 抖动通常是并发进程过多、物理页框不足造成的,撤销部分进程可缓解。
请求分段及扩充字段
例题 35|单选题|2026春OS4/2-45
()是请求分段式管理中所特有的字段,用于表示本段在运行过程中是否做过动态增长。
- A. 访问字段
- B. 修改位M
- C. 增补位
- D. 外存始址
答案:C
解析: 请求分段在段表中增加存在、访问、修改、外存地址和动态增长等字段。 因此应选 C(增补位)。
例题 36|单选题|2026春OS4/2-46
()指示本段在外存中的起始地址,即起始盘块号。
- A. 访问字段
- B. 修改位M
- C. 增补位
- D. 外存始址
答案:D
解析: 请求分段在段表中增加存在、访问、修改、外存地址和动态增长等字段。 因此应选 D(外存始址)。
第七章 I/O 设备管理
[!abstract] 本章学习路线 先理解 CPU 为什么不能直接高效管理所有设备,再学习 I/O 控制方式、软件层次、缓冲、设备分配和 SPOOLing。
1. 为什么设备管理很复杂
计算机外设差异很大:
- 键盘按字符输入;
- 磁盘按块读写;
- 网卡按数据包传输;
- 打印机速度慢且通常一次只能服务一个任务。
若每个应用都直接控制这些设备,程序会与具体硬件强绑定,还会发生多个进程争抢设备的问题。
设备管理的目标是:
向上提供统一、简单的 I/O 接口;向下驱动硬件、处理中断、分配设备并控制数据传送。
主要任务包括:
- 控制主机与设备之间的数据传输;
- 分配和回收设备、控制器与通道;
- 提高 CPU 与设备的并行程度;
- 屏蔽不同设备的硬件差异;
- 提供缓冲、保护和错误处理。
主存与外部设备之间的信息传送称为 I/O 操作。
2. 设备如何分类
2.1 按数据传输单位
| 类型 | 传输特点 | 例子 |
|---|---|---|
| 字符设备 | 按字符或字节顺序传输 | 键盘、鼠标、串口、打印机 |
| 块设备 | 按固定大小数据块传输,可定位 | 磁盘、SSD |
| 网络设备 | 按报文或数据包传输 | 网卡 |
块设备通常支持随机访问;字符设备通常按数据到达顺序处理。
2.2 按共享属性
| 类型 | 含义 | 例子 |
|---|---|---|
| 独占设备 | 一段时间只能分配给一个进程 | 传统打印机 |
| 共享设备 | 多个进程可交替发出访问请求 | 磁盘 |
| 虚拟设备 | 用软件把独占设备表现为多个逻辑设备 | SPOOLing 打印机 |
“共享设备”不表示硬件在同一瞬间真的执行多个请求,而是操作系统可以为多个进程排队和交替服务。
3. 逻辑设备名为什么重要
应用程序若写死“使用第 2 台某型号打印机”,设备故障或更换后程序就必须修改。
设备独立性要求应用使用逻辑设备名:
好处:
- 更换设备不必修改应用;
- 设备分配更灵活;
- 可在设备故障时切换;
- 便于负载均衡。
逻辑设备名表示“我需要哪类服务”,不是固定指定某个物理设备。
4. 一次 I/O 请求如何到达硬件
以文件读取为例:
这条路径解释了为什么设备管理不是单一程序,而是多层软件和硬件协作。
5. I/O 控制方式为何不断演进
核心问题是:数据传输过程中 CPU 需要参与多少?
5.1 程序直接控制 / 轮询
CPU 不断读取设备状态:
while (设备未就绪) {
继续查询;
}
传送一个数据;
优点:简单。
缺点:CPU 一直忙等,设备很慢时浪费大量处理机时间。
5.2 中断驱动 I/O
CPU 启动设备后去执行其他任务;设备准备好时发中断通知 CPU。
中断驱动 I/O 的位置可在上图中与轮询、DMA 和通道方式对比。
比轮询高效,但若每个字符都中断一次,高速传输会产生大量中断开销。
5.3 DMA
DMA 控制器可在设备和内存之间成块传输数据。
CPU 只需设置:
- 内存起始地址;
- 数据量;
- 传输方向;
- 设备和控制命令。
随后 DMA 完成整个数据块传输,结束后再中断 CPU。
5.4 通道控制
通道是一种专门执行 I/O 程序的硬件处理机。它不仅能搬运数据,还能控制一组更复杂的 I/O 操作。
CPU 启动通道后,通道独立执行通道程序并管理多个设备,CPU 与通道可并行工作。
但“独立”不等于完全不需要 CPU:CPU 仍要启动通道、设置任务并处理完成中断。
5.5 四种方式对比
| 方式 | CPU 主要行为 | 数据单位 | CPU 干预 |
|---|---|---|---|
| 轮询 | 持续查询并传送 | 字/字符 | 最多 |
| 中断驱动 | 启动后等待中断 | 字/少量数据 | 较多 |
| DMA | 初始化一次,块传送完成后中断 | 数据块 | 较少 |
| 通道 | 启动 I/O 程序,通道管理一组操作 | 多块/多设备操作 | 最少 |
记忆顺序:
$$ 程序直接控制 > 中断驱动 > DMA > 通道 $$这里比较的是 CPU 干预程度。
6. I/O 软件为什么要分层
自上而下:
上图展示了用户层、设备独立层、驱动程序、中断处理和实际硬件之间的层次。
6.1 用户层 I/O 软件
提供库函数、格式化输入输出和部分 SPOOLing 接口。例如 printf() 先在用户层格式化,再请求内核输出。
6.2 设备独立性软件
处理与具体型号无关的公共功能:
- 统一读写接口;
- 逻辑设备命名;
- 设备保护;
- 缓冲;
- 设备分配;
- 错误报告。
6.3 设备驱动程序
把通用请求转换为具体设备控制命令。
例如通用请求是“读取第 100 个块”,驱动负责设置该控制器的寄存器、命令和 DMA 参数。
驱动与具体硬件密切相关,通常运行在内核态。
6.4 中断处理程序
设备完成或出错时:
- 保存必要现场;
- 读取设备状态;
- 确认传输结果;
- 更新内核数据结构;
- 唤醒等待进程;
- 必要时启动下一个 I/O 请求。
7. 设备控制器、驱动和设备不要混淆
- 驱动程序是软件;
- 控制器是连接 CPU/总线和设备的硬件;
- 通道也是硬件处理机构;
- 中断处理程序属于操作系统软件。
8. 缓冲为什么有效
CPU 和设备速度差异很大。若设备每产生一个字符都要求 CPU 立即处理,CPU 和设备会频繁互相等待。
缓冲是在内存中设置的临时数据区:
缓冲区位于内存,用来在设备和用户进程之间暂存数据。
作用:
- 缓和速度不匹配;
- 减少中断和系统调用次数;
- 提高 CPU 与设备并行程度;
- 适配不同数据传输粒度;
- 提高吞吐量。
8.1 单缓冲
一个缓冲区。设备填充时,进程可能等待;进程处理时,设备可能等待。
8.2 双缓冲
两个缓冲区交替工作:
可增加并行程度。
8.3 循环缓冲和缓冲池
多个缓冲区组成队列或共享池,适合连续流和多个设备请求。
[!warning] 易错点 普通 I/O 缓冲区位于内存。SPOOLing 的“井”位于磁盘,两者不要混淆。
9. 设备分配为什么不仅是分配设备本身
设备可能通过控制器和通道连接:
设备、控制器和通道往往共同组成一条可用路径。
要完成 I/O,整条路径都必须可用。因此分配通常需要检查:
- 目标设备是否空闲或可共享;
- 相连控制器是否可用;
- 相连通道是否可用;
- 进程是否有权限;
- 分配是否可能导致死锁。
独占设备无法立即分配时,请求进程通常进入该设备的等待队列。
10. 独占设备为什么容易降低效率
假设进程直接占有打印机:
若打印机从进程开始到结束一直被占有,大部分时间都空闲,却不能服务其他进程。
解决思路是让进程把打印数据快速交给系统,再由后台程序统一控制打印机。这就是 SPOOLing。
11. SPOOLing 如何把独占设备虚拟化
SPOOLing(假脱机)利用磁盘和后台进程,将独占设备在逻辑上改造成可供多个进程使用的虚拟设备。
以打印为例:
用户进程把打印内容写入磁盘输出井,提交打印请求后继续运行;后台打印进程从输出井取任务,并按顺序送给真实打印机。
组成:
- 输入井/输出井:磁盘上的暂存区域;
- 输入/输出缓冲区:内存中的中转区;
- 输入/输出进程:负责设备和井之间传送;
- 请求队列:保存待处理作业。
11.1 SPOOLing 带来的变化
用户进程看到的效果:
每个进程似乎都拥有自己的打印机。
实际情况:
多个逻辑打印任务 → 一个后台打印进程 → 一台物理打印机
因此增加的是逻辑设备数量,不是物理设备数量。
11.2 缓冲与 SPOOLing 的区别
| 缓冲 | SPOOLing |
|---|---|
| 主要在内存 | 主要利用磁盘井和后台进程 |
| 缓和速度差、减少等待 | 把独占设备虚拟化并组织排队 |
| 通常容量较小 | 可暂存大量作业 |
12. CPU、设备和通道如何并行
即使单处理器一次只能执行一个进程的 CPU 指令,以下仍可并行:
- CPU 执行进程 A,磁盘为进程 B 传输数据;
- CPU 计算,DMA 在设备和内存间搬运数据;
- CPU 执行用户程序,通道执行 I/O 程序;
- 多个不同设备同时工作。
这也是多道程序设计能提高资源利用率的重要基础。
13. 本章做题判断框架
遇到设备管理题,按以下顺序判断:
- 题目说的是逻辑设备还是物理设备?
- 数据按字符、块还是报文传输?
- CPU 是忙等、逐次处理中断,还是只初始化块传输?
- 该功能属于设备独立层、驱动还是中断处理?
- 临时区在内存还是磁盘?
- 是普通缓冲,还是 SPOOLing 虚拟设备?
14. 高频陷阱
- “低速设备一定是共享设备”——错,打印机通常是独占设备。
- “用户程序应直接指定物理设备”——错,应使用逻辑设备名。
- “DMA 传输每个字都需要 CPU 处理”——错,它可成块传输。
- “通道是软件”——错,是专门处理 I/O 的硬件机构。
- “通道运行完全不需要 CPU”——错,仍需启动和完成中断。
- “驱动程序与具体设备无关”——错,驱动高度依赖硬件。
- “缓冲区通常位于磁盘”——错,普通缓冲通常在内存。
- “SPOOLing 增加了物理打印机数量”——错,只增加逻辑设备。
- “虚拟设备就是普通共享设备”——不准确,它通常由 SPOOLing 把独占设备虚拟化。
15. 本章速记
设备管理向上提供统一接口,向下驱动和分配硬件。
应用使用逻辑设备名,系统映射到物理设备。
CPU 干预:轮询 > 中断驱动 > DMA > 通道。
软件层次:用户层 → 设备独立层 → 驱动 → 中断处理 → 硬件。
缓冲通常在内存;SPOOLing 的井在磁盘。
SPOOLing 用磁盘队列和后台进程把独占设备表现为多个逻辑设备。
第七章 I/O 设备管理(例题)
题目按知识点归类;完全重复题合并展示并保留全部题号。带“答案订正”的题,按课程理论给出修正答案。
- 本章题库记录数:33
- 去重后原题数:33
设备分类与设备独立性
例题 1|判断题|2026春OS5/1-1
低速设备一般被设置成共享设备。
- T. T
- F. F
答案:F
解析: 低速设备常可能是独占设备,如打印机,不能笼统说一般是共享设备。
例题 2|判断题|2026春OS5/1-25
从设备的资源属性分类,可把设备分为独占设备、共享设备和虚拟设备。
- T. T
- F. F
答案:T
解析: 按资源属性可分为独占设备、共享设备和虚拟设备。
例题 3|判断题|2026春OS5/1-26
操作系统设备管理模块的主要任务是如何有效地分配和使用设备,如何协调处理机与设备操作的时间差异,提高系统总体性能。
- T. T
- F. F
答案:T
解析: 设备管理负责分配使用设备,并协调 CPU 与设备速度差异。
例题 4|单选题|2026春OS5/2-32
设备管理的主要任务是控制设备和CPU之间进行()操作。
- A. 读写
- B. I/O
- C. 调度
- D. 文件
答案:B
解析: 设备管理控制 CPU 与设备之间的输入输出操作。
例题 5|单选题|2026春OS5/2-54
主存储器与外围设备之间的信息传送操作称为()操作。
- A. 低级调度
- B. 中级调度
- C. 高级调度
- D. 输入输出
答案:D
解析: 主存与外设之间传送信息称为输入输出操作。
I/O控制方式
例题 6|单选题|2026春OS5/2-28
在下面的I/O控制方式中,需要CPU干预最少的方式是()。
- A. 程序I/O方式
- B. 中断驱动I/O控制方式
- C. 直接存储器访问DMA控制方式
- D. I/O通道控制方式
答案:D
解析: CPU 干预由多到少为程序查询、中断驱动、DMA、通道;通道仍需 CPU 启动和处理结束中断。 因此应选 D(I/O通道控制方式)。
例题 7|单选题|2026春OS5/2-52
在下面的I/O控制方式中,需要CPU干预最少的方式是( )。
- A. 程序I/O方式
- B. 中断驱动I/O控制方式
- C. DMA控制方式
- D. I/O通道控制方式
答案:D
解析: CPU 干预由多到少为程序查询、中断驱动、DMA、通道;通道仍需 CPU 启动和处理结束中断。 因此应选 D(I/O通道控制方式)。
I/O软件层次与驱动程序
例题 8|单选题|2026春OS5/2-33
IO软件涉及的面很宽,向下与()有密切关系
- A. 硬件
- B. 文件系统
- C. 虚拟存储系统
- D. 用户
答案:A
解析: I/O 软件向下直接面对具体设备和控制器,因此与硬件密切相关。
例题 9|单选题|2026春OS5/2-34
()实现与用户交互的接口,用户可直接调用该层所提供的、与IO操作有关的库函数对设备进行操作。
- A. 用户层IO软件
- B. 设备独立性软件
- C. 设备驱动程序
- D. 中断处理程序
答案:A
解析: I/O 软件自上而下为用户层、设备独立层、驱动程序、中断处理和硬件;驱动与具体设备相关。 因此应选 A(用户层IO软件)。
例题 10|单选题|2026春OS5/2-35
()用于实现用户程序与设备驱动器的统一接口、设备命名、设备的保护以及设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间。
- A. 用户层IO软件
- B. 设备独立性软件
- C. 设备驱动程序
- D. 中断处理程序
答案:B
解析: I/O 软件自上而下为用户层、设备独立层、驱动程序、中断处理和硬件;驱动与具体设备相关。 因此应选 B(设备独立性软件)。
例题 11|单选题|2026春OS5/2-36
()与硬件直接相关,用于具体实现系统对设备发出的操作指令,驱动IO与硬件直接相关,用于具体实现系统对设备发出的操作指令,驱动IO设备工作的驱动程序设备工作的驱动程序。
- A. 用户层IO软件
- B. 设备独立性软件
- C. 设备驱动程序
- D. 中断处理程序
答案:C
解析: I/O 软件自上而下为用户层、设备独立层、驱动程序、中断处理和硬件;驱动与具体设备相关。 因此应选 C(设备驱动程序)。
例题 12|单选题|2026春OS5/2-38
下列关于驱动程序的叙述中,不正确的是
- A. 驱动程序与 I/O 控制方式无关
- B. 初始化设备是由驱动程序控制完成的
- C. 进程在执行驱动程序时可能进入阻塞态
- D. 读/写设备的操作是由驱动程序控制完成的
答案:A
解析: I/O 软件自上而下为用户层、设备独立层、驱动程序、中断处理和硬件;驱动与具体设备相关。 因此应选 A(驱动程序与 I/O 控制方式无关)。
例题 13|单选题|2026春OS5/2-50
______ present a uniform device-access interface to the I/O subsystem, while as system calls provide a standard interface between the application and the operating system.
- A. Kernel
- B. Bus
- C. Operating system
- D. Device drivers
答案:D
解析: 设备驱动程序向 I/O 子系统提供统一的设备访问接口。
缓冲技术
例题 14|判断题|2026春OS5/1-27
系统与设备间的协调主要是速度上的协调,要解决快速处理器与慢速的I/O设备间的操作匹配矛盾,只有通过建立硬件缓冲区的方法。
- T. T
- F. F
答案:F
解析: 缓冲可以由软件在内存中实现,不只有硬件缓冲区一种方法。
例题 15|判断题|2026春OS5/1-29
缓冲是一种暂存技术,它利用外存的一部分,在数据传送过程中进行暂时的存放。
- T. T
- F. F
答案:F
解析: 缓冲区通常设在内存中,不是利用外存的一部分。
例题 16|单选题|2026春OS5/2-29
引入缓冲技术的主要目的_____
- A. 为主机与设备提供存储空间
- B. 提高主机和设备交换信息的速度
- C. 提高设备的工作速度
- D. 扩充虚拟地址空间
答案:B
解析: 缓冲用于协调主机与设备速度差异,提高信息交换效率。
例题 17|单选题|2026春OS5/2-30
以下描述中,哪一个不属于操作系统引入缓冲的原因?____
- A. 缓和CPU与I/O设备之间速度不匹配的矛盾
- B. 减少对CPU的中断频率,放宽对中断响应时间的限制
- C. 提高CPU和I/O设备之间的并行性
- D. 解决I/O设备上没有缓存的矛盾
答案:D
解析: 引入缓冲不是为了解决设备没有缓存,而是缓和速度差异、减少中断并提高并行性。
例题 18|单选题|2026春OS5/2-51
引入缓冲区可以( )。
- A. 提高CPU与设备之间的并行程度
- B. 提高CPU的处理速度
- C. 改善用户编程环境
- D. 降低计算机的硬件成本
答案:A
解析: 缓冲让 CPU 与设备可更好地重叠工作,提高并行程度。
设备分配与逻辑/物理映射
例题 19|判断题|2026春OS5/1-24
逻辑设备是物理设备属性的表示,用来指定某一具体设备。
- T. T
- F. F
答案:F
解析: 逻辑设备名不指定具体物理设备,具体映射由操作系统完成。
例题 20|判断题|2026春OS5/1-28
用户在使用I/O设备时,通常采用物理设备名,指明具体的设备。
- T. T
- F. F
答案:F
解析: 用户通常使用逻辑设备名,由系统映射到具体物理设备。
例题 21|单选题|2026春OS5/2-39
下列因素中,设备分配需要考虑的是: I、 设备的类型 II、 设备的访问权限 III、 设备的占用状态 IV、 逻辑设备与物理设备的映射关系
- A. 仅 I、II
- B. 仅 II、III
- C. 仅 III、IV
- D. I、II、III、IV
答案:D
解析: 设备分配要检查类型、权限、占用状态和控制器/通道,并完成逻辑到物理设备映射。 因此应选 D(I、II、III、IV)。
SPOOLing与虚拟设备
例题 22|判断题|2026春OS5/1-2
虚拟设备是指把一个物理设备变换成多个对应的逻辑设备,它通过逻辑设备表来实现的
- T. T
- F. F
答案:F
解析: 虚拟设备主要通过 SPOOLing 实现,不只是靠逻辑设备表。
例题 23|判断题|2026春OS5/1-3
SPOOLing技术可以解决进程使用设备死锁问题
- T. T
- F. F
答案:F
解析: SPOOLing 可缓解独占设备使用问题,但不能笼统说能解决设备死锁。
例题 24|判断题|2026春OS5/1-20
采用Spooling技术,就可使独占设备增加,使用户同时面对独立的同类设备。
- T. T
- F. F
答案:F
解析: SPOOLing 增加的是逻辑上的虚拟设备,不会增加真实独占设备数量。
例题 25|判断题|2026春OS5/1-30
虚拟设备是指把一个物理设备变换成多个对应的逻辑设备,它通过逻辑设备表来实现的。
- T. T
- F. F
答案:F
解析: 虚拟设备依靠 SPOOLing 等机制实现,不能说只通过逻辑设备表实现。
例题 26|判断题|2026春OS5/1-31
SPOOLing技术可以解决进程使用设备死锁问题。
- T. T
- F. F
答案:F
解析: SPOOLing 不能保证解决所有进程使用设备造成的死锁问题。
例题 27|判断题|2026春OS5/1-33
虚拟设备是指被多个用户或进程交替使用的设备,宏观上好象多个用户同时在使用。
- T. T
- F. F
答案:F
解析: 交替使用且宏观看似同时使用更像共享设备;虚拟设备强调把独占设备虚拟成多个逻辑设备。
例题 28|单选题|2026春OS5/2-31
在设备管理中,为了克服独占设备速度较慢、降低设备资源利用率的缺点,引入了()技术,即用共享设备模拟独占设备。
- A. 虚拟分配
- B. 模拟共享
- C. 缓冲
- D. 暂存
答案:A
解析: 用共享设备模拟独占设备属于虚拟分配技术。
通道、中断与CPU并行
例题 29|判断题|2026春OS5/1-32
I/O通道控制方式不需要任何CPU干预。
- T. T
- F. F
答案:F
解析: 通道方式仍需要 CPU 启动通道并处理中断。
例题 30|判断题|2026春OS5/1-34
通道技术根本上是从软件上解决操作系统对输入输出操作的控制问题。
- T. T
- F. F
答案:F
解析: 通道本质上是硬件机制,不是单纯从软件上解决 I/O 控制。
例题 31|判断题|2026春OS5/1-35
通道一旦被启动就能独立于CPU运行,这样可使CPU和通道并行操作
- T. T
- F. F
答案:T
解析: 通道启动后可独立执行 I/O 程序,使 CPU 与通道并行工作。
例题 32|单选题|2026春OS5/2-37
()用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完毕再恢复被中断进程的现场后,返回到被中断的进程。
- A. 用户层IO软件
- B. 设备独立性软件
- C. 设备驱动程序
- D. 中断处理程序
答案:D
解析: 保存和恢复被中断进程现场,并转入相应处理逻辑的是中断处理程序。
例题 33|单选题|2026春OS5/2-53
所谓(),是一块能控制一台或多台外围设备与CPU并行工作的硬件。
- A. 设备选择器
- B. 设备虚拟表
- C. 设备控制器
- D. 设备编码器
答案:C
解析: 设备控制器负责控制一台或多台外设,并可配合 CPU 并行工作。
第八章 文件管理
[!abstract] 本章学习路线 先理解文件系统为用户隐藏了什么,再区分文件的逻辑结构与物理结构;最后掌握 FCB、目录、打开文件、空闲空间和多级索引计算。
1. 为什么需要文件系统
磁盘硬件只认识盘块和地址,但用户希望使用:
/notes/os/chapter1.md
而不是记住“数据位于第 18342、18343、19001 号盘块”。
文件系统在用户和外存之间建立抽象:
核心目标:
- 按名称访问数据;
- 组织和管理外存空间;
- 提供创建、打开、读写、关闭和删除接口;
- 支持共享、保护和可靠性;
- 隐藏磁盘物理细节。
文件系统最基本的功能是按名存取。
2. 文件是什么
文件是具有名称的一组相关信息的集合。
一个文件通常包含两部分:
- 文件数据:真正的内容;
- 文件元数据:名称、大小、位置、权限、时间等管理信息。
常见属性:
- 文件名和系统内部标识;
- 文件类型;
- 文件长度;
- 所有者和访问权限;
- 创建、修改、访问时间;
- 数据所在的物理位置;
- 链接计数等。
一个文件可通过硬链接拥有多个路径名,但系统内部对象或 inode 标识通常仍是同一个。
3. 文件的分类
可按不同标准分类:
3.1 按用途
- 系统文件;
- 用户文件;
- 库文件。
3.2 按内容或处理阶段
- 源文件;
- 目标文件;
- 可执行文件;
- 数据文件。
“用户可以调用”并不代表它就是用户文件。例如编译器通常属于系统软件。
4. 逻辑结构:用户怎样理解文件内容
逻辑结构关注文件内部记录在用户眼中的组织方式。
4.1 无结构文件 / 流式文件
文件被看作连续字节流:
文本、源代码、可执行文件都可按字节流处理。
4.2 有结构文件 / 记录式文件
文件由一个个记录组成,记录可定长或变长。数据库数据通常具有记录结构。
4.3 顺序文件
记录按顺序组织,适合批量读取和连续处理;但中间插入、删除或随机更新可能不方便。
[!important] 先分清观察角度 流式/记录式说的是用户看到的逻辑结构;连续/链接/索引说的是磁盘上的物理结构。
5. 物理结构:文件数据块怎样放在磁盘上
文件通常被拆成若干逻辑块,文件系统再把这些逻辑块映射到物理盘块。
主要有连续分配、链接分配和索引分配。
6. 连续分配
文件占用一组连续盘块:
目录只需记录起始块和文件长度。
6.1 优点
- 顺序访问快;
- 随机访问也快,可直接计算:
- 管理信息少。
6.2 缺点
- 容易产生外碎片;
- 文件增长困难;
- 创建时常需预先估计大小。
连续分配适合大小稳定、访问连续的文件。
7. 链接分配
文件的数据块可分散,每个块指向下一个块:
链接分配示例如上图所示,数据块不必连续,只需记录下一块的位置。
目录记录首块,必要时也记录尾块。
7.1 优点
- 无外碎片;
- 文件可方便增长;
- 不必预先知道大小。
7.2 缺点
- 随机访问慢,必须沿链查找;
- 指针占用空间;
- 指针损坏可能导致后续数据丢失。
7.3 FAT
FAT 把每个盘块的“下一块指针”集中存放在文件分配表中,而不是散落在数据块内部。
| 表项 | 下一块 |
|---|---|
FAT[9] |
16 |
FAT[16] |
1 |
FAT[1] |
10 |
仍属于链接分配思想,但链表集中管理。
8. 索引分配
为每个文件建立索引块,索引块保存所有数据块号:
索引分配示例如上图所示,索引块集中保存数据块号。
8.1 优点
- 支持直接/随机访问;
- 文件可动态增长;
- 数据块可分散,无外碎片。
8.2 缺点
- 索引块占额外空间;
- 小文件也可能需要索引开销;
- 访问数据前可能先访问索引块。
“索引文件采用连续分配”是错误的;索引分配正是离散分配方式之一。
9. 三种物理结构对比
| 结构 | 随机访问 | 文件增长 | 碎片/开销 | 主要问题 |
|---|---|---|---|---|
| 连续 | 快 | 困难 | 外碎片 | 需连续空间 |
| 链接 | 慢 | 容易 | 指针开销,无外碎片 | 链式查找和可靠性 |
| 索引 | 快 | 容易 | 索引块开销,无外碎片 | 索引结构占空间 |
物理结构还受到设备特性影响:磁带天然适合顺序访问,磁盘和 SSD 支持直接访问。
10. FCB 是什么
FCB(File Control Block,文件控制块)是文件在操作系统中的管理档案,与文件对象相对应。
典型信息:
- 文件标识和类型;
- 长度;
- 所有者与权限;
- 物理地址或索引信息;
- 时间信息;
- 状态和链接计数。
目录项通常保存文件名以及指向 FCB/inode 的信息。
可以类比:
PCB 描述进程;FCB 描述文件。
11. 目录到底存什么
目录不是简单的“文件内容列表”,而是一种用于名称查找的数据结构。
目录项保存 文件名 → FCB/inode 或其编号 的映射。
用户提供路径后,文件系统逐级查找目录项,最终定位文件的控制信息。
12. 为什么要先 open 再 read/write
若每次读一个字节都从根目录重新查路径,代价很大。因此 open 先建立一个快速连接。
典型过程:
之后,read(fd, ...) 和 write(fd, ...) 可通过 fd 直接找到打开文件表项,不必再次从完整路径开始查找。
12.1 两级打开文件表的直觉
多个进程可通过各自的描述符指向同一个系统打开文件表项或同一文件对象。
打开文件并不是把整个文件内容读入内存,而是把管理信息和访问状态建立起来。
13. 读文件的完整路径
一次读取大致经历:
读取路径如上图所示,从文件描述符出发,逐步找到文件控制信息、完成块号转换并发出 I/O 请求。
课程题库若要求特定编号顺序,应按其给定步骤和课程口径作答;理解上只需抓住:先找到文件控制信息并检查权限,再完成块号转换和设备 I/O。
14. close 和 delete 有什么不同
14.1 关闭文件
close 结束当前进程与文件的打开关系:
- 更新文件偏移和状态;
- 刷新必要的缓存;
- 减少打开计数;
- 最后一个进程关闭时回收系统打开表项。
磁盘文件仍然存在。
14.2 删除文件
delete/unlink 通常:
- 检查权限;
- 删除目录项或减少链接计数;
- 无引用且不再打开时释放数据块和索引结构。
删除不需要先把整个文件内容读入内存。
15. 目录结构为什么逐步发展
15.1 单级目录
所有文件放在一个目录。
- 简单;
- 文件不能重名;
- 多用户和分类管理困难。
15.2 二级目录
每个用户拥有自己的用户文件目录:
不同用户可使用相同文件名,但目录层次仍有限。
15.3 树形多级目录
支持:
- 文件分类;
- 绝对路径与相对路径;
- 当前工作目录;
- 不同目录中使用相同名称。
同一目录内通常不能有同名项;不同目录可以同名。
15.4 链接与图结构
若一个文件被多个目录项链接,目录不再是严格的树,可能成为有向无环图。若允许目录形成循环,还需额外机制避免遍历无限循环。
16. 绝对路径、相对路径和当前目录
- 绝对路径:从根目录开始,如
/home/alice/a.txt; - 相对路径:从当前工作目录开始,如
notes/a.txt; - 当前目录:进程解析相对路径的起点。
当前目录不仅让路径更短,也避免每次都从根目录开始查找。
17. 目录查找计算
若 FCB 大小为 32B,盘块大小为 1KB:
$$ 每块可放\frac{1024}{32}=32个FCB $$3200 个 FCB 占:
$$ \frac{3200}{32}=100\text{块} $$若顺序查找且目标平均位于中间,平均读取约:
$$ \frac{100}{2}=50\text{个目录块} $$这类题默认目录项定长且顺序存放;若题目使用索引或哈希目录,算法会不同。
18. 文件共享与保护
文件共享要求多个用户或进程访问同一数据;文件保护要求限制谁能做什么。
常见机制:
- 用户身份认证;
- 所有者、用户组和其他用户权限;
- 访问控制表 ACL;
- 口令和加密;
- 文件锁;
- 备份、日志和审计。
访问控制信息适合放在 FCB/inode 中,因为它属于文件元数据。
18.1 保护和并发控制不是同一件事
- 权限控制:某用户是否有权读写;
- 文件锁:多个有权限的进程如何避免同时写坏数据。
二者解决的问题不同。
19. 磁盘空闲空间为什么需要单独管理
删除文件后会释放盘块。系统必须知道哪些块空闲,才能为新文件分配。
常见方法:
- 空闲表法;
- 空闲链表法;
- 位示图法;
- 成组链接法。
位示图用于管理空闲盘块,不是磁盘请求调度算法。
20. 位示图怎么计算
每个盘块对应一个二进制位。常见约定:
0 = 空闲,1 = 已分配。
具体题目若给出相反约定,应以题面为准。
20.1 由行列求盘块号
每行 $w$ 位,行号 $i$、列号 $j$ 均从 0 开始:
$$ N=i\times w+j $$例如每行 30 位,第 11 行第 18 列:
$$ N=11\times30+18=348 $$20.2 由盘块号求位置
$$ i=N\div w $$ $$ j=N\bmod w $$20.3 位示图占多少机器字
磁盘共有 $B$ 个盘块,机器字长 $w$ 位:
$$ 字数=\left\lceil\frac{B}{w}\right\rceil $$例如 500 个盘块、字长 32 位:
$$ \left\lceil\frac{500}{32}\right\rceil=16\text{字} $$21. 为什么需要多级索引
单个索引块能保存的块号有限。大文件需要更多索引层级。
设:
- 盘块大小 $B$ 字节;
- 每个盘块号占 $p$ 字节。
一个索引块能保存:
$$ N=\frac{B}{p} $$个块号。
21.1 直接地址
inode 直接保存数据块号。访问快,但能表示的数据块有限。
21.2 一级间接
inode 指向一个索引块,该索引块保存数据块号。
可表示:
$$ N\text{ 个数据块} $$21.3 二级间接
inode 指向一级索引块,其中每项再指向一个二级索引块:
$$ N^2\text{ 个数据块} $$21.4 三级间接
可表示:
$$ N^3\text{ 个数据块} $$22. UNIX 多级索引容量示例
假设 inode 含:
- 10 个直接地址;
- 1 个一级间接;
- 1 个二级间接;
- 1 个三级间接。
盘块 1KB,块号 4B:
$$ N=\frac{1024}{4}=256 $$最大数据块数:
$$ 10+256+256^2+256^3 $$最大文件大小:
$$ (10+256+65536+16777216)\times1KB\approx16GB $$22.1 访问次数怎么数
若索引块均不在内存:
| 地址类型 | 需要读取 |
|---|---|
| 直接地址 | 数据块 |
| 一级间接 | 一级索引块 + 数据块 |
| 二级间接 | 一级索引块 + 二级索引块 + 数据块 |
| 三级间接 | 三级索引路径的 3 个索引块 + 数据块 |
因此三级间接访问通常是 4 次磁盘访问,不是 3 次。
若 inode 或部分索引块已缓存,实际次数会减少,必须看题目条件。
23. 文件系统和设备管理的关系
文件系统负责“文件名、目录、逻辑块和权限”;设备管理负责“把物理块请求送到磁盘并完成 I/O”。
文件系统提出“我要读文件的逻辑块 5”,设备管理负责把请求转换为磁盘控制命令并读回物理块。
因此二者职责不同,但文件读写最终依赖设备管理。
24. 文件题的固定判断流程
遇到文件管理题,先判断题目属于哪一层:
25. 高频陷阱
- “文件分配的基本单位是逻辑记录”——通常错,外存分配基本单位是盘块。
- “流式文件和连续分配属于同一类结构”——错,前者是逻辑结构,后者是物理结构。
- “链接分配支持快速随机访问”——错,通常需沿链查找。
- “索引分配要求数据块连续”——错,数据块可分散。
- “open 会把整个文件内容读入内存”——错,主要建立控制信息和访问联系。
- “close 等于删除文件”——错,关闭不删除磁盘文件。
- “同一目录允许两个同名文件”——通常错;不同目录可以同名。
- “位示图用于磁盘调度”——错,用于空闲空间管理。
- “三级间接访问只需读 3 次”——若索引均未缓存,还要再读数据块,共 4 次。
- “文件系统与设备管理无关”——错,文件物理读写依赖设备 I/O。
26. 本章速记
文件系统把“文件名和路径”映射到磁盘盘块,核心是按名存取。
逻辑结构:流式/记录式;物理结构:连续/链接/索引。
PCB 描述进程,FCB/inode 描述文件。
open建立打开文件表并返回描述符,不是把整个文件读入内存。
位示图:块号=行号×每行位数+列号。
多级索引容量按 $N,N^2,N^3$ 扩展;访问次数还要加最终数据块。
第八章 文件管理(例题)
题目按知识点归类;完全重复题合并展示并保留全部题号。带“答案订正”的题,按课程理论给出修正答案。
- 本章题库记录数:62
- 去重后原题数:61
文件概念与逻辑结构
例题 1|判断题|2026春OS5/1-4
文件系统中分配存储空间的基本单位是记录。
- T. T
- F. F
答案:F
解析: 文件系统分配存储空间的基本单位通常是盘块,不是记录。
例题 2|判断题|2026春OS5/1-7
文件系统中每个文件的系统标识符可以有多个。
- T. T
- F. F
答案:F
解析: 每个文件在系统中通常只有一个唯一标识符。
例题 3|判断题|2026春OS5/1-8
数据库文件是一种无结构的字符流式文件。
- T. T
- F. F
答案:F
解析: 数据库文件通常有组织结构,不是无结构的字符流式文件。
例题 4|判断题|2026春OS5/1-9
采取顺序文件结构,连续存取一批相邻的记录时,存取速度很慢。
- T. T
- F. F
答案:F
解析: 顺序文件连续访问相邻记录效率较高,不是很慢。
例题 5|判断题|2026春OS5/1-13
文件系统中,系统修改某文件内容,只要修改文件中对应数据信息即可。
- T. T
- F. F
答案:F
解析: 修改文件内容还可能需要更新文件长度、时间、目录项等控制信息。
例题 6|判断题|2026春OS5/1-15
编译程序是用户用以编译程序的应用工具,因此,它是用户文件。
- T. T
- F. F
答案:F
解析: 编译程序属于系统软件或工具程序,不因用户使用它就变成用户文件。
例题 7|判断题|2026春OS5/1-19
文件系统中分配存储空间的基本单位是记录
- T. T
- F. F
答案:F
解析: 文件存储空间分配的基本单位通常是盘块。
例题 8|判断题|2026春OS5/1-23
文件系统最基本的功能是实现按名存取
- T. T
- F. F
答案:T
解析: 文件系统最基本功能就是让用户按文件名访问文件。
例题 9|判断题|2026春OS5/1-38
文件系统最基本的功能是实现按名存取。
- T. T
- F. F
答案:T
解析: 按名存取是文件系统面向用户的基本功能。
例题 10|单选题|2026春OS5/2-4
逻辑文件的组织结构是由_____确定的。
- A. 操作系统
- B. 存储容量
- C. 用户
- D. 文件长度
答案:C
解析: 逻辑文件结构反映用户对文件中信息的组织方式,由用户决定。
例题 11|单选题|2026春OS5/2-10
文件系统中文件被按照名字存取是为了_____。
- A. 方便操作系统对信息的管理
- B. 方便用户的使用
- C. 确定文件的存取权限
- D. 加强对文件内容的保密
答案:B
解析: 按名存取让用户不用关心文件的具体存放位置,便于使用。
例题 12|单选题|2026春OS5/2-11
文件系统与_____密切相关,它们共同为用户使用文件提供方便。
- A. 处理器管理
- B. 存储管理
- C. 设备管理
- D. 作业管理
答案:C
答案订正: 按课程理论,本题应选
C。
解析: 文件最终存放在外部设备上,文件读写依赖设备管理完成 I/O,因此选 C。
例题 13|单选题|2026春OS5/2-14
从用户观点看,文件系统的主要目的是_____。
- A. 实现对文件的按名存取
- B. 实现虚拟存储
- C. 提高外存的读写速度
- D. 用于存储系统文件
答案:A
解析: 从用户角度看,文件系统主要提供按名存取。
例题 14|单选题|2026春OS5/2-15
下列文件中属于逻辑结构的文件是_____。
- A. 连续文件
- B. 系统文件
- C. 目录文件
- D. 流式文件
答案:D
解析: 流式文件属于逻辑结构;连续文件属于物理结构。
例题 15|单选题|2026春OS5/2-42
操作系统提供给编程人员的接口是
- A. 命令接口
- B. 系统调用
- C. 网络接口
- D. 图形用户接口
答案:B
解析: 编程人员通过系统调用获得操作系统服务。
文件物理结构与存取方法
例题 16|判断题|2026春OS5/1-5
文件的存取方法仅依赖于文件的物理结构,而与存放文件的存储特性无关。
- T. T
- F. F
答案:F
解析: 文件存取方法还受存储设备特性影响,不只取决于物理结构。
例题 17|判断题|2026春OS5/1-40
文件的存储结构又称为文件的物理结构,是指文件在外存上的存储组织形式,具体分为流式文件和记录式文件两种结构。
- T. T
- F. F
答案:F
解析: 流式和记录式是逻辑结构;物理结构通常是连续、链接、索引等。
例题 18|单选题|2026春OS5/2-1
(FFGG)下面的( )不是文件的存储结构。
- A. 索引文件
- B. 记录式文件
- C. 串联文件
- D. 连续文件
答案:B
解析: 记录式文件是逻辑结构,不是文件的存储结构。
例题 19|单选题|2026春OS5/2-2
文件的存储方法依赖于_______
- A. 文件的大小
- B. 文件的数据特性
- C. 文件的逻辑
- D. 文件的物流结构与存放文件的存储设备的特性
答案:D
解析: 文件存储方法取决于文件物理结构和存储设备特性。
例题 20|单选题|2026春OS5/2-13
按文件的物理组织结构可将文件分成_____ 等。
- A. 数据文件,命令文件,文本文件
- B. 命令文件,库文件,索引文件
- C. 连续文件,链式文件,索引文件
- D. 输入文件,输出文件,随机文件
答案:C
解析: 按物理组织可分为连续、链式和索引文件。
例题 21|单选题|2026春OS5/2-17
下列对于索引文件的描述中,错误的是_____。
- A. 索引文件和主文件配合使用
- B. 使用索引文件是为了加快对主文件的检索速度
- C. 索引文件和顺序文件没有什么联系
- D. 可以说利用索引文件,是空间换取时间
答案:C
解析: 索引文件常与主文件配合,加快检索;说它与顺序文件毫无联系不准确。
例题 22|单选题|2026春OS5/2-25
下列文件物理结构中,适合随机访问且易于文件扩展的是__________。(2009全国试题)
- A. 连续结构
- B. 索引结构
- C. 链式结构且磁盘块定长
- D. 链式结构且磁盘块变长
答案:B
解析: 索引结构既支持随机访问,也便于文件动态扩展。
例题 23|单选题|2026春OS5/2-43
采用直接存取(随机存取)方法来读写磁盘上的物理记录时,效率最低的是_____。
- A. 连续结构文件
- B. 索引结构文件
- C. 隐式链接结构文件
- D. 显式链接结构文件
答案:C
解析: 隐式链接结构必须沿链查找,随机访问效率最低。
FCB、打开文件与文件操作
例题 24|判断题|2026春OS5/1-6
打开文件的目的是指该文件的有关目录表目复制到主存中约定的区域,以建立用户和该文件的联系。
- T. T
- F. F
答案:T
解析: 本题判断为正确。FCB 与文件一一对应;open 建立打开文件表项,read 根据逻辑块映射到物理块再发 I/O。
例题 25|单选题|2026春OS5/2-3
文件系统中,用于文件的描述和控制并与文件一一对应的是()
- A. 进程控制块
- B. 线程控制块
- C. 文件控制块
- D. 文件分配表
答案:C
解析: FCB 与文件一一对应;open 建立打开文件表项,read 根据逻辑块映射到物理块再发 I/O。 因此应选 C(文件控制块)。
例题 26|单选题|2026春OS5/2-16
不包含在文件控制块(又称文件目录项)中的信息是_____。
- A. 存储介质
- B. 文件名
- C. 存取控制信息
- D. 文件的物理结构
答案:A
解析: FCB 与文件一一对应;open 建立打开文件表项,read 根据逻辑块映射到物理块再发 I/O。 因此应选 A(存储介质)。
例题 27|单选题|2026春OS5/2-23
下面是关于文件的一些操作。若需要读一个文件,那么描述次序正确的是_____。 ① 将文件的目录信息读入内存 ② 向设备管理程序发出I/O请求,完成数据读入操作 ③ 指出文件在外存上的存储位置,并进行文件逻辑块号到屋里块号的转换 ④ 按存取控制说明检查访问的合法性 ⑤ 按文件名从用户打开文件表找到该文件的文件目录项
- A. ⑤③②④①
- B. ①⑤④③②
- C. ④①⑤③②
- D. ⑤①④③②
答案:D
答案订正: 按课程理论,本题应选
D。
解析: 按题库流程先从打开文件表定位,再调入控制信息、检查权限、完成块号转换、发I/O,顺序⑤①④③②,选 D。
例题 28|单选题|2026春OS5/2-27
若文件 F 仅被进程 P 打开并访问,则当进程 P 关闭 F 时,下列操作中,文件系统需要完成的是:
- A. 删除目录中文件 F 的目录项
- B. 释放 F 的索引节点所占的内存空间
- C. 释放 F 的索引节点所占的外存空间
- D. 将文件磁盘索引节点中的链接计数减 1
答案:B
解析: 关闭文件只解除进程与文件的打开关系,需释放内存中的索引节点等打开文件信息。
例题 29|单选题|2026春OS5/2-41
下列哪个是文件控制块的缩写( )。
- A. TCB
- B. PCB
- C. FAT
- D. FCB
答案:D
解析: 文件控制块的英文缩写是 FCB。
例题 30|单选题|2026春OS5/2-46
下列选项中,_____不是删除文件所需要完成的工作。
- A. 释放文件所占用的存储空间
- B. 对文件原占用的存储单元全部清零
- C. 删除该文件的目录项,即文件控制块(FCB)
- D. 若文件为共享文件,还要对共享设置进行处理
答案:B
解析: 删除文件要释放空间和目录项,但不需要把原存储单元全部清零。
目录结构与路径
例题 31|判断题|2026春OS5/1-10
多级目录结构中,重名问题得到了解决,同一目录中文件或目录重名是允许的。
- T. T
- F. F
答案:F
解析: 多级目录允许不同目录下重名,但同一目录中仍不允许重名。
例题 32|判断题|2026春OS5/1-21
树型目录结构能够解决文件重名问题
- T. T
- F. F
答案:T
解析: 树形目录用路径区分文件,可以解决不同目录下的重名问题。
例题 33|判断题|2026春OS5/1-36
树型目录结构能够解决文件重名问题。
- T. T
- F. F
答案:T
解析: 树形目录通过不同路径区分同名文件。
例题 34|判断题|2026春OS5/1-39
单级目录结构能够解决文件重名问题
- T. T
- F. F
答案:F
解析: 单级目录所有文件在同一目录中,不能解决重名问题。
例题 35|单选题|2026春OS5/2-5
采用树形目录结构后,不同用户对同一个文件定义的文件名_____。
- A. 应该相同
- B. 不能相同
- C. 可以不同
- D. 应该不同
答案:C
解析: 树形目录下,同一文件可通过不同路径或链接被不同用户用不同名字引用。
例题 36|单选题|2026春OS5/2-6
关于多级目录结构的论述,错误的说法是_____。
- A. 便于文件分类
- B. 查找速度快
- C. 同一子目录下可以建立同名文件
- D. 可以实现文件的连接
答案:C
答案订正: 按课程理论,本题应选
C。
解析: 多级目录能分类、支持链接并缩小单目录搜索范围;同一子目录仍不允许同名,因此错误项是 C。
例题 37|单选题|2026春OS5/2-7、2026春OS5/2-21
文件系统采用多级目录结构可以_____。
- A. 节省存储空间
- B. 解决命名冲突
- C. 缩短文件传送时间
- D. 减少系统开销
答案:B
解析: 多级目录用路径区分文件,可解决不同目录下的命名冲突。
例题 38|单选题|2026春OS5/2-8
在有关文件管理的下述叙述中,_____是正确的。
- A. “在二级目录结构中,不同用户不能用相同的文件名”
- B. “逻辑记录的大小与存储介质分块的大小必须一致”
- C. “文件系统主要是实现按名存取”
- D. “在一级目录结构中,不同用户可以用相同的文件名”
答案:C
解析: 文件系统的核心功能是按名存取,其他选项说法不对。
例题 39|单选题|2026春OS5/2-12
如果允许不同用户的文件可以具有相同的文件名,通常采用_____来保证按名存取的安全。
- A. 重名翻译机构
- B. 建立索引表
- C. 建立指针
- D. 多级目录结构
答案:D
解析: 多级目录用路径名区分同名文件,保证按名存取的安全。
例题 40|单选题|2026春OS5/2-18
操作系统中对目录管理的主要要求,不包括_____。
- A. 对文件实现按名存取
- B. 节省文件存储空间
- C. 提高对目录的检索速度
- D. 允许文件重名
答案:B
解析: 目录管理关注按名存取、检索速度和重名处理,不以节省文件数据空间为主要要求。
例题 41|单选题|2026春OS5/2-19
某系统中,一个FCB占用32B,盘块大小为1KB,文件目录中共有3200个FCB,查找该目录中的一个文件,平均启动磁盘次数为_____。
- A. 50
- B. 64
- C. 100
- D. 200
答案:A
解析: 每盘块可放1024/32=32个FCB,3200个FCB占100块,顺序查找平均读50块。
例题 42|单选题|2026春OS5/2-20
下列各项描述中,不是树型目录优点的是_____ 。
- A. 解决了文件重名问题
- B. 提高了文件检索速度
- C. 根目录到指定文件有多条路径
- D. 便于进行存储权限控制
答案:C
解析: 树形目录中从根到指定文件通常只有一条路径,多条路径不是其优点。
例题 43|单选题|2026春OS5/2-22
在有关文件管理的下述叙述中,_____是正确的。
- A. “在一级目录结构中,不同用户可以用相同的文件名”
- B. “在二级目录结构中,不同用户不能用相同的文件名”
- C. “逻辑记录的大小与存储介质分块的大小必须一致”
- D. “从用户的观点看,文件系统主要功能是实现按名存取”
答案:D
解析: 从用户角度看,文件系统主要功能是按名存取。
例题 44|单选题|2026春OS5/2-24
设置当前工作目录的主要目的是_____。(2010全国试题)
- A. 节省外存空间
- B. 节省内存空间
- C. 加快文件的检索速度
- D. 加快文件的读/写速度
答案:C
解析: 当前目录可缩短路径查找范围,从而加快文件检索。
例题 45|单选题|2026春OS5/2-40
文件系统中,使用()管理文件。
- A. 堆栈结构
- B. 指针
- C. 目录
- D. 页表
答案:C
解析: 文件系统通过目录组织和管理文件。
文件共享、保护与安全
例题 46|判断题|2026春OS5/1-11
通过对用户分类和限定各类用户对目录和文件的访问权限来保护系统中目录和文件的安全,这种文件安全管理方式指的是系统级安全管理。
- T. T
- F. F
答案:F
解析: 按用户类别限定目录和文件权限属于用户级访问控制,不是系统级安全管理。
例题 47|判断题|2026春OS5/1-12
每一个用户使用系统前必须注册,由系统记录下用户名和口令,只有已注册的用户才能使用系统,这种文件安全管理方式是指用户级安全管理。这是一个判断题的样例。答案为T,分值为5分。
- T. T
- F. F
答案:F
解析: 题干夹带“样例、答案、分值”等无关文字,作为正式判断题表述不成立。
例题 48|单选题|2026春OS5/2-9
为了防止用户共享文件时造成破坏,可以采用_____。
- A. 对文件设置口令
- B. 把文件译成密码
- C. 对文件加锁
- D. 对文件的访问权限进程控制
答案:D
解析: 防止共享文件被破坏,应对文件访问权限进行控制。
例题 49|单选题|2026春OS5/2-26
文件系统中,文件访问控制信息存储的合理位置是__________。(2009全国试题)
- A. 文件控制块
- B. 文件分配表
- C. 用户口令表
- D. 系统注册表
答案:A
解析: 文件访问控制信息通常放在文件控制块或 inode 中。
磁盘空间分配与空闲空间管理
例题 50|判断题|2026春OS5/1-22
位示图方法可用于磁盘的调度管理
- T. T
- F. F
答案:F
解析: 位示图用于管理磁盘空闲空间,不用于磁盘调度。
例题 51|判断题|2026春OS5/1-37
位示图方法可用于磁盘的调度管理。
- T. T
- F. F
答案:F
解析: 位示图是空闲空间管理方法,不是磁盘调度方法。
例题 52|单选题|2026春OS5/2-44
h706.以下_____不是磁盘存储空间的常用管理方法。
- A. 位示图
- B. 记录的成组操作
- C. 空闲块表
- D. 空闲块链
答案:B
解析: 常用空闲空间管理方法有位示图、空闲块表、空闲块链等,不包括记录的成组操作。
例题 53|单选题|2026春OS5/2-45
位示图可用于_____。
- A. 文件目录的查找
- B. 磁盘空间的管理
- C. 主存空间的共享
- D. 实现文件的保护和保密
答案:B
解析: 位示图用位标记盘块空闲或占用,用于磁盘空间管理。
例题 54|单选题|2026春OS5/2-49
如果利用200行,30列的位示图来标志盘块的使用情况,在进行盘块分配时,当第一次找到的空闲盘块(即该位为0)处于11行,18列,则相应的盘块号为_____ 。假设行号、列号、盘块号皆从0开始编号。
- A. 330
- B. 348
- C. 318
- D. 300
答案:B
解析: 盘块号=11×30+18=348,选 B。
例题 55|填空题|2026春OS5/4-1
某操作系统的磁盘文件空间共有500块,若用字长为32位的位示图管理磁盘空间。
(1) 位示图占用字数为(空1)(向上取整)个字。
(2) 第 i 字第 j 位对应的块号为:N =(空2)。
(3) 申请时自上至下、自左至右扫描位示图,跳过为(空3)的位,找到第一个遇到的(空4)位,根据它是第 i 字第 j 位算出对应块号,并分配出去。归还时已知块号,块号 /(空5)算出第 i 字第 j 位,并把位示图相应位置(空6)。
选项:
A)500 B)32
C)15 D)16
E)32*i+j F)32*j+I
G)31*i+j H)31*j+I
I)1 J)0
答案: 空1~空6依次为 D、E、I、J、B、J(对应内容:16,32*i+j,1,0,32,0)
作答格式提示: 本题题面提供了选项字母,自动判题可能要求填写字母。
解析: 500块、32位字长需要⌈500/32⌉=16个字。零起始编号时N=32×i+j;按0空闲、1已分配的约定,申请时跳过1、找0,归还时按N÷32求字号和位号并清0。若空格要求选项字母,应填D、E、I、J、B、J。
索引结构与容量计算
例题 56|判断题|2026春OS5/1-14
索引文件是一种对文件存储进行连续分配的方式,文件系统为每个文件另建一张指示逻辑记录和物理块之间的对应关系的表,即索引表,文件本身和索引表组成的文件即是索引文件。
- T. T
- F. F
答案:F
解析: 索引文件不是连续分配方式,而是通过索引表建立逻辑块与物理块的对应关系。
例题 57|判断题|2026春OS5/1-16
索引表的建立会占用额外的存储空间和访问时间。
- T. T
- F. F
答案:T
解析: 索引表本身需要存储空间,访问文件时也可能多读索引块。
例题 58|判断题|2026春OS5/1-17
对于一个具有三级索引表的文件,存取一个记录需要访问三次磁盘
- T. T
- F. F
答案:F
解析: 三级索引通常要先访问多级索引块,再访问数据块,不是只访问三次磁盘。
例题 59|判断题|2026春OS5/1-18
索引文件中的索引表是一个定长记录的顺序文件
- T. T
- F. F
答案:T
解析: 索引表由定长索引项顺序排列,可看作定长记录的顺序文件。
例题 60|单选题|2026春OS5/2-47
在有随机(直接)存取需求和允许文件动态增长的情况下,宜选择_____文件形式。
- A. 顺序
- B. 链接
- C. 索引
- D. 记录式
答案:C
解析: 索引分配支持随机访问和文件扩展,但需额外索引块;多级索引容量按每级可寻址块数逐级相乘。 因此应选 C(索引)。
例题 61|单选题|2026春OS5/2-48
在UNIX System V中,如果一个盘块的大小为1KB,每个盘块号占4B,那么,该系统中允许的文件最大长度约为_____ 。
- A. 1GB
- B. 16GB
- C. 256GB
- D. 4TB
答案:B
解析: 每索引块含256个地址;最大块数约10+256+256²+256³,乘1KB约为16GB,选 B。
题库答案注意事项
一、资料完整性
- OS4 包含 4 道填空题,OS5 包含 1 道填空题。
- 涉及图片表格的题目在题面下方提供 Markdown 表格,便于直接阅读和搜索。
2026春OS4/4-2的理论答案 1024、16384 正确;若判题未完全通过,优先检查输入格式。2026春OS5/4-1结合题面选项,自动判题更可能要求输入字母D、E、I、J、B、J。
二、答案订正题
| 题号 | 订正答案 | 说明 |
|---|---|---|
| 2026春OS1/R2-22 | B | 操作系统提供给用户程序的接口是系统调用。 |
| 2026春OS1/R3-1 | AB | 只能在核心态下执行的指令包括读取硬件时钟日期、屏蔽所有中断。 |
| 2026春OS1/R3-4 | ABCD | 推动多道批处理系统形成和发展的动力包括资源利用率、方便用户、器件更新和体系结构发展。 |
| 2026春OS2/2-26 | A | 死锁至少涉及两个进程。 |
| 2026春OS2/2-46 | D | 关于产生死锁的前三个说法都不严谨。 |
| 2026春OS2/3-2 | ABCD | 进程切换要保存暂存信息、下一指令地址、进程状态及系统调用相关信息。 |
| 2026春OS4/2-5 | B | 按调度计算结果选择。 |
| 2026春OS4/2-10 | C | 降低进程优先级的合理时机按调度规则判断。 |
| 2026春OS4/2-12 | A | 作业可能经历高级、中级、低级调度。 |
| 2026春OS4/2-13 | B | 多级反馈队列兼顾短作业、长作业和交互作业。 |
| 2026春OS4/2-16 | A | 分段地址越界时为非法地址。 |
| 2026春OS4/2-17 | B | 分页地址转换按页号和页内偏移计算。 |
| 2026春OS5/2-6 | C | 多级目录下,同一子目录仍不允许同名文件。 |
| 2026春OS5/2-11 | C | 文件系统与设备管理密切相关。 |
| 2026春OS5/2-23 | D | 读文件流程按打开文件表、控制信息、权限检查、块号转换和 I/O 顺序判断。 |
三、需要注意的题库口径
- 个别判断题的教材口径可能比现代操作系统实现更简化,例如请求分页页面与对换区的关系。复习时以题目对应的课程口径为准。
2026春OS2/2-26中,选项 A“k≥2”与选项 C“1<k≤m”在已知系统只有 m 个进程时逻辑等价。单选题按标准表述选 A,上界自然成立。

Comments | NOTHING