📝 操作系统原理 · 考试题库
基于2026春课件与作业整理,涵盖每章核心考点。
📘 第1章 操作系统引论
操作系统基本概念、发展过程、基本特征、功能、系统调用。
1
判断题2分操作系统是管理计算机硬件与软件资源,并为应用程序提供公共服务的系统软件。
✅ 答案:正确
📝 解析:操作系统是系统软件的核心,负责管理硬件资源和为应用程序提供公共服务接口。这是操作系统的基本定义。
2
判断题2分并发是指多个事件在同一时刻同时发生。
✅ 答案:错误
📝 解析:并发(Concurrency)是指多个事件在同一时间间隔内发生,而非同一时刻。同一时刻同时发生的是并行(Parallelism)。单CPU系统中的并发是宏观上同时、微观上交替执行的。
3
判断题2分系统调用是应用程序请求操作系统服务的唯一方式。
✅ 答案:错误
📝 解析:系统调用是应用程序请求OS服务的主要方式,但不是唯一方式。应用程序还可以通过中断(如硬件中断)、信号机制、共享内存等方式与OS交互。
4
判断题2分分时系统的关键目标是尽快响应用户请求。
✅ 答案:正确
📝 解析:分时系统的关键目标是及时响应用户请求,保证每个用户都能在可接受的时间内得到响应,使多个用户感觉各自独占计算机。这是分时系统与批处理系统的核心区别。
5
判断题2分多道程序设计可以提高CPU利用率,因为CPU在等待I/O时可以执行其他程序。
✅ 答案:正确
📝 解析:多道程序设计的核心思想:当某程序等待I/O时,CPU转去执行另一程序,从而提高CPU利用率。这是从单道到多道程序设计的根本改进。
6
选择题2分以下哪个不是操作系统的基本特征?
✅ 答案:C
📝 解析:操作系统的四个基本特征是:并发、共享、虚拟、异步。同步不是操作系统的基本特征,而是进程间的一种协作关系。同步是并发进程间的协调机制,不属于OS基本特征。
7
选择题2分用户态到内核态的切换由以下哪种方式触发?
✅ 答案:B
📝 解析:用户态到内核态的切换只能通过中断/异常/系统调用触发,其中系统调用是用户程序主动请求OS服务的方式。程序调用和函数调用都在用户态执行,不会触发态切换。
8
选择题2分以下哪个不是操作系统的主要功能?
✅ 答案:B
📝 解析:操作系统的主要功能包括:处理机管理、存储器管理、设备管理、文件管理。编译器管理属于系统软件范畴,不是操作系统的功能。
📗 第2章 进程与控制
进程概念、PCB、状态转换、进程控制原语、进程通信、线程。
9
判断题2分进程是程序的一次执行过程,是系统进行资源分配的基本单位。
✅ 答案:正确
📝 解析:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位(传统OS中)。每个进程拥有独立的地址空间和系统资源。
10
判断题2分程序与进程是一一对应的关系。
✅ 答案:错误
📝 解析:程序与进程不是一一对应的关系。一个程序可以对应多个进程(多次执行产生多个进程),一个进程在生命周期中也可以执行多个程序(如exec系统调用)。
11
判断题2分PCB是进程存在的唯一标识。
✅ 答案:正确
📝 解析:PCB(进程控制块)是进程存在的唯一标识。系统通过PCB感知进程的存在,PCB中记录了进程的全部管理信息。进程创建时建立PCB,进程撤销时回收PCB。
12
选择题2分以下哪个不是进程的基本状态?
✅ 答案:D
📝 解析:进程的三个基本状态是:就绪(Ready)、执行(Running)、阻塞(Blocked)。挂起状态是附加状态,不是基本状态。挂起是为了在内存不足时将进程换出到外存。
13
选择题2分进程从执行状态转换为就绪状态的原因是?
✅ 答案:B
📝 解析:进程从执行到就绪是因为时间片用完(抢占式调度)。I/O完成是从阻塞到就绪;等待事件是从执行到阻塞;进程创建后进入就绪态。
14
选择题2分进程通信方式中,速度最快的是?
✅ 答案:C
📝 解析:共享存储器通信速度最快,因为进程直接读写同一块内存区域,无需内核中转。消息传递和管道都需要内核参与数据拷贝,速度较慢。信号只能传递通知,不能传递数据。
15
选择题2分以下关于线程的描述,错误的是?
✅ 答案:C
📝 解析:线程切换开销小于进程切换,因为线程共享进程的地址空间和资源,切换时不需要切换页表等。C选项线程切换开销大于进程切换是错误的。
📙 第3章 处理机调度
调度层次、评价指标、经典调度算法、多核调度、实时调度。
16
判断题2分低级调度(进程调度)是三种调度中发生最频繁的。
✅ 答案:正确
📝 解析:低级调度即进程调度/处理机调度,是最基本的调度,发生频率最高(每几十毫秒一次)。高级调度(作业调度)频率最低,中级调度(内存调度)居中。
17
判断题2分FCFS调度算法适用于分时系统。
✅ 答案:错误
📝 解析:FCFS不适合分时系统。FCFS按到达顺序服务,可能导致短作业等待很长,无法保证响应时间。分时系统需要RR(时间片轮转)算法来保证响应性。
18
判断题2分SJF调度算法能保证最短的平均等待时间。
✅ 答案:正确
📝 解析:SJF(最短作业优先)在所有非抢占算法中能获得最短的平均等待时间,这是可证明的。但SJF需要预知运行时间,实际中难以实现,通常用抢占式SJF(SRTF)近似。
19
判断题2分抢占式调度方式下,时间片用完会导致进程被切换。
✅ 答案:正确
📝 解析:抢占式调度中,时间片用完会被强制切换到下一进程,这是RR算法的核心机制。非抢占式中,进程主动放弃CPU(如I/O请求、终止)才会切换。
20
选择题2分以下哪种调度算法可能导致长作业长期得不到服务(饥饿)?
✅ 答案:B
📝 解析:SJF/SPF可能导致长作业长期得不到服务,称为饥饿现象。因为不断有短作业到来时,长作业的等待时间会持续增加。FCFS不会饥饿(按顺序执行),RR也不会(轮流执行)。
21
选择题2分响应比优先算法(HRRN)中,响应比的计算公式为?
✅ 答案:B
📝 解析:HRRN响应比 = 1 + 等待时间/要求服务时间。该算法既照顾短作业(要求服务时间短则响应比高),又照顾长作业(等待时间长则响应比也会增大),从而避免饥饿。
22
选择题2分时间片轮转算法中,时间片过大可能导致什么?
✅ 答案:B
📝 解析:时间片过大时,RR退化为FCFS。如果时间片大到足以让每个进程一次执行完毕,就失去了轮转的意义,变成了先来先服务。时间片过小则切换开销过大。
23
选择题2分多级反馈队列调度算法中,新进程默认进入哪个队列?
✅ 答案:B
📝 解析:MLFQ中,新进程默认进入最高优先级队列(第一个队列),用完该队列时间片后降入下一级队列。只有当高优先级队列为空时,才调度低优先级队列中的进程。
必考重点 作业题:FCFS & SJF 计算
题目:P1(0,8), P2(1,4), P3(2,2), P4(4,1),分别用FCFS和抢占式SJF调度,求各进程的等待时间和平均周转时间。
✅ 解答:
FCFS:Gantt: P1[0-8] P2[8-12] P3[12-14] P4[14-15]
平均等待 = (0+7+10+10)/4 = 6.75,平均周转 = (8+11+12+11)/4 = 10.5
SJF(抢占):Gantt: P1[0-1] P2[1-5] P3[5-7] P4[7-8] P1[8-15]
平均等待 = (7+0+3+3)/4 = 3.25,平均周转 = (15+4+5+4)/4 = 7.0
FCFS:Gantt: P1[0-8] P2[8-12] P3[12-14] P4[14-15]
平均等待 = (0+7+10+10)/4 = 6.75,平均周转 = (8+11+12+11)/4 = 10.5
SJF(抢占):Gantt: P1[0-1] P2[1-5] P3[5-7] P4[7-8] P1[8-15]
平均等待 = (7+0+3+3)/4 = 3.25,平均周转 = (15+4+5+4)/4 = 7.0
📝 解析:MLFQ中,新进程默认进入最高优先级队列(第一个队列),用完该队列时间片后降入下一级队列。只有当高优先级队列为空时,才调度低优先级队列中的进程。
📕 第4章 进程同步与死锁
临界区、同步互斥、信号量、经典问题、死锁条件与处理、银行家算法。
24
判断题2分同步机制应遵循"空闲让进、忙则等待、有限等待"三条准则。
✅ 答案:正确
📝 解析:同步机制的四条准则:空闲让进、忙则等待、有限等待、让权等待。题目三条也是正确的(三条是必要条件)。
25
判断题2分记录型信号量在获取不到资源时会忙等。
✅ 答案:错误
📝 解析:记录型信号量采用让权等待方式,当S.value<0时,调用block原语将进程挂入等待队列,而非忙等。整型信号量才会忙等(while循环等待)。
26
判断题2分管程能保证任何时刻只有一个进程在其中操作。
✅ 答案:正确
📝 解析:管程的关键特性:任一时刻只能有一个进程进入管程执行。管程内部的共享变量只能被管程内的过程访问,由编译器保证互斥。条件变量用于同步。
27
判断题2分产生死锁的四个必要条件缺一不可。
✅ 答案:正确
📝 解析:死锁的四个必要条件:互斥、请求和保持、不可剥夺(非抢占)、循环等待。四个条件必须同时满足才可能发生死锁,缺一不可。
28
判断题2分死锁预防是允许死锁发生,然后检测并解除。
✅ 答案:错误
📝 解析:死锁预防是预先破坏四个必要条件之一,防止死锁发生。题目描述的是死锁检测与解除(允许死锁发生,然后检测并恢复)。注意区分预防、避免、检测三种策略。
29
选择题2分临界区是指?
✅ 答案:B
📝 解析:临界区是访问临界资源的那段代码。临界资源是一次仅允许一个进程使用的资源。临界区本身是代码段,不是资源本身。
30
选择题2分P操作(wait)对信号量S执行的操作是?
✅ 答案:C
📝 解析:P操作(wait):S--;若S<0则阻塞该进程。V操作(signal):S++;若S<=0则唤醒一个等待进程。P操作是申请资源(减1),V操作是释放资源(加1)。
31
选择题2分生产者-消费者问题中,wait(empty)和wait(mutex)的顺序如果写反可能导致?
✅ 答案:B
📝 解析:生产者-消费者中,wait(empty)必须在wait(mutex)之前。如果先wait(mutex)再加wait(empty),当缓冲区满时,生产者持有mutex又等empty,消费者需要mutex才能消费,双方互相等待,产生死锁。
32
选择题2分以下哪项不是死锁的四个必要条件之一?
✅ 答案:C
📝 解析:死锁四个必要条件:互斥、请求和保持、不可剥夺(非抢占)、循环等待。抢占与不可剥夺恰好相反,不是死锁的必要条件。
33
选择题2分银行家算法属于哪种死锁处理方法?
✅ 答案:B
📝 解析:银行家算法属于死锁避免策略。它在资源分配前检查是否存在安全序列,只有分配后系统仍安全才分配。预防是破坏条件,检测是事后发现,避免是事先检查安全性。
必考重点 作业题:银行家算法
题目:系统有5个进程P0~P4,3类资源A(10个)B(5个)C(7个)。T0时刻:Allocation=(0,1,0)/(2,0,0)/(3,0,2)/(2,1,1)/(0,0,2),Max=(7,5,3)/(3,2,2)/(9,0,2)/(2,2,2)/(4,3,3),Available=(3,3,2)。求安全序列。
✅ 解答:
Need=Max-Allocation: P0(7,4,3) P1(1,2,2) P2(6,0,0) P3(0,1,1) P4(4,3,1)
Work=Avail(3,3,2)
P1: Need(1,2,2)≤Work → Work=(5,3,2)
P3: Need(0,1,1)≤Work → Work=(7,4,3)
P4: Need(4,3,1)≤Work → Work=(7,4,5)
P2: Need(6,0,0)≤Work → Work=(10,4,7)
P0: Need(7,4,3)≤Work → 完成
✅ 安全序列:<P1, P3, P4, P2, P0>
Need=Max-Allocation: P0(7,4,3) P1(1,2,2) P2(6,0,0) P3(0,1,1) P4(4,3,1)
Work=Avail(3,3,2)
P1: Need(1,2,2)≤Work → Work=(5,3,2)
P3: Need(0,1,1)≤Work → Work=(7,4,3)
P4: Need(4,3,1)≤Work → Work=(7,4,5)
P2: Need(6,0,0)≤Work → Work=(10,4,7)
P0: Need(7,4,3)≤Work → 完成
✅ 安全序列:<P1, P3, P4, P2, P0>
📝 解析:银行家算法属于死锁避免策略。它在资源分配前检查是否存在安全序列,只有分配后系统仍安全才分配。预防是破坏条件,检测是事后发现,避免是事先检查安全性。