Skip to content

2021年 408 操作系统 第 25 题

操作系统2021年选择题2分

题目

下列内核的数据结构或程序中,分时系统实现时间片轮转调度需要使用的是( )。

Ⅰ. 进程控制块 Ⅱ. 时钟中断处理程序 Ⅲ. 进程就绪队列 Ⅳ. 进程阻塞队列

错因

A

漏选 Ⅰ PCB——可能觉得"轮转就是按队列轮换、不涉及单个进程的细节"。但每次时间片到、进程被切下去时,必须把当前进程的 PC、寄存器、程序状态字等上下文保存到它的 PCB,等下次轮回到它时再从 PCB 恢复——没有 PCB 这个保存点,轮转切回来后进程就接不上原来的执行流了。

B

只挑 Ⅰ + Ⅳ,把"轮转"误当成"基于阻塞队列的调度"。但 RR 的核心是就绪队列内的轮换:到点就把当前进程踢回就绪队列尾部、从队首拿下一个跑——动的全是就绪队列,跟阻塞队列没关系。阻塞队列是 I/O 操作、等待信号量这些原因停下来的进程待的地方,跟时间片到期是两件事。

D

挑了 Ⅰ + Ⅱ + Ⅳ,漏了核心的 Ⅲ 就绪队列。RR 整个算法的载体就是就绪队列——"轮"指就绪队列里轮换、"转"指队尾队首接着转。把这个漏了,时间片到了从哪里挑下一个进程都没法回答。Ⅳ 阻塞队列反而不是 RR 本身需要的。

总解析

时间片轮转(RR)需要的内核组件,对应到"算法每一步要查 / 改什么"上:

组件RR 怎么用必需?
Ⅰ PCB时间片到时保存当前进程上下文;下次轮到它时恢复上下文
Ⅱ 时钟中断处理程序每个时钟节拍递减时间片计数,到 0 时触发调度
Ⅲ 就绪队列RR 的载体——队首取出当前进程跑、时间片到把它放回队尾
Ⅳ 阻塞队列跟 RR 无直接关系(进程因 I/O 等阻塞才进阻塞队列;这是另一种状态切换)

整个 RR 流程串起来:

时钟节拍 → 时钟中断处理程序 → 当前进程时间片 - 1
                            ↓ (减到 0)
                          保存上下文到 PCB

                          挂回就绪队列尾

                          从就绪队列首取下一个 PCB

                          恢复上下文,开始跑

阻塞队列是进程因 I/O / 等待事件停下时才用的——跟时间片到期"还能跑只是轮到下一个了"是两个完全不同的状态切换,不参与 RR 的主流程。

最终答案是 C

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数