没有合适的资源?快使用搜索试试~ 我知道了~
讲解操作系统各种例题,详细分析。包括各个操作系统基本慨念,信号量、互斥等经典例题,
资源推荐
资源详情
资源评论
1. 单项选择题
【例 3-1-1】在操作系统中,临界区是 。
A. 一个缓冲区 B. 一段共享数据区
C. 一段程序 D. 一个互斥资源
解:进程中访问临界资源的那段代码称为临界区。本题答案为 C。
【例 3-1-2】以下关于临界资源的叙述中,正确的是 。
A. 临界资源是非共享资源 B. 临界资源是任意共享资源
C. 临界资源是互斥的共享资源 D. 临界资源是同时共享资源
解:对于多个进程而言,临界资源是共享的,但又是互斥访问的。本题答案为 C。
【例 3-1-3】以下 不属于临界资源。
A. 打印机 B. 非共享数据
C. 共享变量 D. 共享缓冲区
解:打印机、共享变量和共享缓冲区都只允许一次一个进程使用。本题答案为 B。
【例 3-1-4】在操作系统中,要对并发进程进行同步的原因是 。
A. 进程必须在有限的时间内完成 B. 进程具有动态性
C. 并发进程是异步的 D. 进程具有结构性
解:进程同步是指进程之间一种直接的协同工作关系,这些进程的并发是异步的,它们相互
合作,共同完成一项任务。本题答案为 C。
【例 3-1-5】关于临界区问题的一个算法(假设只有进程 P0 和 P1 可能会进入临界区)如下
(i 为 0 或 1):
repeat
retry:if (turn<>-1) turn=i;
if (turn<>i) goto retry;
turn:= -1;
临界区;
turn:=0;
其他区;
Until false;
该算法 。
A. 不能保证进程互斥进入临界区,且会出现“饥饿”现象
B. 不能保证进程互斥进入临界区,但不会出现“饥饿”现象
C. 保证进程互斥进入临界区,但会出现“饥饿”现象
D. 保证进程互斥进入临界区,不会出现“饥饿”现象
解:该算法是用类 PASCAL 语言描述的,改用类 C 语言如下:
int turn;
void P0() //进程 P0
{ do
{ while (turn!=0)
if (turn!= -1) turn=0;
turn=-1;
临界区;
turn=0;
其他区;
} while (true);
}
void P1() //进程 P1
{ do
{ while (turn!=1)
if (turn!= -1) turn=1;
turn=-1;
临界区;
turn=0;
其他区;
} while (true);
}
若一个进程 P0 已经判断 turn!= -1,还未修改 turn= 0 之前,时间片已用完,转入进程调
度,又选择另一个进程 P1 运行,该进程接着判断 turn!= -1,它将 turn=1,之后进入临界
区执行。当它未退出临界区之前,它的时间片已用完,转入进程调度,又选择进程 P0 运行。
进程 P0 继续完成 turn=0,之后它也进入临界区执行,这样两个进程同时处于临界区中,显
然错误。由于两个进程都能进入临界区,所以没有出现“饥饿”现象。本题答案为 B。
【例 3-1-6】下述选项中体现原语特点的是 。
A. 并发性 B. 共享性 C. 结构性 D.
不可分割性
解:原语指作为一个单一的、不可分割的原子操作。本题答案为 D。
【例 3-1-7】在操作系统中,P、V 操作是一种 。
A. 机器指令 B. 时钟中断
C. 作业控制命令 D. 低级进程通信原语
解:P、V 操作交换的信息量小,是低级进程通信原语。本题答案为 D。
【例 3-1-8】进程从执行状态到阻塞状态可能是由于 。
A. 进程调度程序的调度 B. 当前运行进程的时间片用完
C. 当前运行的进程执行了 P 操作 D. 当前运行进程执行了 V 操作
解:当前运行的进程执行 P 操作,若此时请求的资源不能分配,则进程从执行状态到阻塞状
态。本题答案为 C。
【例 3-1-9】在非抢占式调度下,运行进程执行 V 操作后,其状态 。
A. 不变 B. 要变 C. 可能要变 D.
可能不变
解:进程调度方式有抢占式和非抢占式两种,在抢占式方式下,一旦有优先级高于当前执行
进程优先级的进程时,便立即发生进程调度,转让 CPU。而在非抢占式方式下,即使在就绪
队列中有优先级高于当前执行进程优先级的进程,当前进程仍将继续占有 CPU,直到由于该
进程自已的原因而让出 CPU。当前运行的进程执行 V 操作可能唤醒一个新进程,由于采用非
抢占式调度方式,新进程不会立即分配到 CPU,当前进程仍将继续占有 CPU,所以其状态不
变。采用本题答案为 A。
【例 3-1-10】用 V 操作唤醒一个等待进程时,被唤醒进程的状态变为 。
A. 运 行 B. 阻 塞 C. 就 绪
D. 完成
解:被唤醒进程只能从等待状态变为就绪状态,当获得 CPU 后才能变为运行状态。本题答案
为 C。
【例 3-1-11】用来实现进程同步和互斥的 P、V 操作实际上是由 过程组成的。
A. 一个可被中断的 B. 一个不可被中断的
C. 两个可被中断的 D. 两个不可被中断的
解:P、V 原语通过操作信号量来处理进程之间同步和互斥的问题,其核心就是一段不可分
割、不可中断的程序。本题答案为 D。
【例 3-1-12】在用信号量机制实现互斥时,信号量的初值为 。
A. 0 B. 1 C. -1
D. 2
解:互斥时信号量的初值一般为 1,同步时信号量的初值大于等于 1。本题答案为 B。
【例 3-1-13】用 P、V 操作实现进程同步,信号量的初值为 。
A. -1
B. 0 C. 1
D. 由用户确定
解:用 P、V 操作实现进程同步,信号量的初值应根据具体情况来确定。若期望的消息尚未
产生,则对应的初值应设为 0;若期望的消息已经存在,则信号量的初值应设为一个非 0 的
正整数。本题答案为 D。
【例 3-1-14】实现进程同步时,每一个消息与一个信号量对应,进程 可把不同的消
息发送出去。
A. 在同一信号量上调用 P 操作 B. 在不同信号量上调用 P 操
作
C. 在同一信号量上调用 V 操作 D. 在不同信号量上调用V操作
解:在实现进程同步时,P、V 操作放在不同的进程中,V 操作用于向其他同步进程发送消息。
本题答案为 D。
【例 3-1-15】如果有 4 个进程共享同一程序段,则每次允许 3 个进程进入该程序段,若用 P、
V 操作作为同步机制,则信号量的取值范围是 。
A. -1~4 B. -2~2 C. -1~3
D. -3~2
解:每次允许 3 个进程进入,可能出现的情况是:①没有进程进入;②有一个进程进入;③
有两个进程进入;④有 3 个进程进入;⑤有 3 个进程进入并有一个进程等待进入。这 5 种情
况对应的信号量值为 3、2、1、0、-1。本题答案为 C。
【例 3-1-16】在 9 个生产者、6 个消费者共享 8 个单元缓冲区的生产者-消费者问题中,互
斥使用缓冲区的信号量的初始值为 。
A. 1 B. 6
C. 8
D. 9
解:在生产者-消费者问题中,缓冲区是临界资源,在同一时间段只允许一个进程使用它,
所以互斥信号量的初始值为 1。本题答案为 A。
【例 3-1-17】对信号量 X 执行 P 操作时,若 则进程进入等待状态。
A. X-1<0 B. X-1≤0 C. X-1>0 D.
X-1≥0
解:信息量 X 为整数,执行 P 操作后,X-1<0 即 X<1,不满足 X≥0,则该进程进入等待状态。
本题答案为 A。
【例 3-1-18】对信号量 X 执行 V 操作时,若 则唤醒阻塞队列中的队首进程。
A. X+1<0 B. X+1≤0 C. X+1>0 D.
X+1≥0
解:信息量 X 为整数,执行 V 操作后,X+1≤0 即 X≤-1,满足 X≤0,则从等待队列中移出
一个队首进程进入就绪队列。本题答案为 B。
【例 3-1-19】若信号量 S 的初值为 2,当前值为-1,则表示有 等待进程。
A. 0 个 B. l 个 C. 2 个
D. 3 个
解:当信号量的值小于 0 时,其绝对值表示系统中因请求该类资源而被阻塞的进程个数。本
题答案为 B。
【例 3-1-20】若信号量 S 的初值为 3,当前值为-2,则表示有 等待进程。
A. 2 个 B. 3 个 C. 4 个
D. 5 个
解:当信号量的值小于 0 时,其绝对值表示系统中因请求该类资源而被阻塞的进程个数。本
题答案为 A。
【例 3-1-21】若信号量 S 的初值为 3,当前值为 1,则表示有 等待进程。
A. 0 个 B. 1 个 C. 2 个
D. 3 个
解:当信号量的值大于 0 时,表示还有资源可以分配,没有等待的进程。本题答案为 A。
【例 3-1-22】两个并发进程共享一个临界资源,设互斥信号量为 mutex,若 mutex=0,
则 。
A. 表示没有进程进入临界区
B. 表示有一个进程进入临界区
C. 表示有一个进程进入临界区,另一个进程等待进入
D. 表示有两个进程进入临界区
解:对于两个并发进程,互斥信号量为 mutex,则 mutex 的初值为 1,任何时刻只能有一个
进程访问临界区。若没有进程进入临界区,则 mutex 为 1;若一个进程进入临界区,另一个
进程在等待进入,则 mutex 为-1;若一个进程进入临界区,则 mutex 为 0;不可能出现两个
进程都进入临界区的情况。本题答案为 B。
【例 3-1-23】对于两个并发进程,设互斥信号量为 mutex(初值为 1),若 mutex=1,则 。
A. 表示没有进程进入临界区
B. 表示有一个进程进入临界区
C. 表示有一个进程进入临界区,另一个进程等待进入
D. 表示有两个进程进入临界区
解:当没有进程等待进入临界区时,mutex 值为 1。本题答案为 A。
【例 3-1-24】对于两个并发进程,设互斥信号量为 mutex(初值为 1),若 mutex=-1,则 。
A. 表示没有进程进入临界区
B. 表示有一个进程进入临界区
C. 表示有一个进程进入临界区,另一个进程等待进入
D. 表示有两个进程进入临界区
解:当有一个进程进入临界区且有一个进程等待进入临界区时,mutex=-1。本题答案为 C。
【例 3-1-25】当一进程因在互斥信号量 mutex 上执行 P(mutex)操作而被阻塞,则此时 mutex
的值为 。
A. 大于 0 B. 小于 0 C. 大于等于 0 D.
小于等于 0
解:当 mutex<0,则将该进程插入到 mutex 的等待队列中。本题答案为 B。
【例 3-1-26】当一进程因在互斥信号量 mutex 上执行 V(mutex)操作而导致唤醒另一个进程
时,则此时 mutex 的值为 。
A. 大于 0 B. 小于 0 C. 大于等于 0 D.
小于等于 0
解:当 mutex≤0 时,则从 mutex 的等待队列中移出第一个该进程并插入到就绪队列中。本
题答案为 D。
【例 3-1-27】如果系统中有 n 个进程,则就绪队列中进程的个数最多为 。
A. n+1 B. n C. n-
1
D. 1
解:一个计算机系统中至少有一个处理器,通常处理器上有一个进程执行,因此就绪队列中
进程个数最多为 n-1。本题答案为 C。
【例 3-1-28】若一个系统中共有 5 个并发进程涉及某个相同的变量 A,则变量 A 的相关临界
区是由 个临界区构成的。
A. 1 B. 3 C. 5
D. 6
解:这里的临界区是操作共享变量 A 的程序段,5 个并发进程共有 5 个操作共享变量 A 的程
序段。本题答案为 C。
【例 3-1-29】设有 n 个进程共用一个相同的程序段,如果每次最多允许 m 个进程(m≤n)
同时进入临界区,则信号量的初值为 。
A. n B. m C. m-
n
D. -m
解:刚开始时,临界区中没有进程,此时信号量 S 的值为 m,每一个进程进入临界区,S 减
1,减到-(n-m)为止。本题答案为 B。
【例 3-1-30】下述哪个选项不是管程的组成部分 。
A. 局限于管程的共享数据结构
B. 对管程内数据结构进行操作的一组过程
C. 管程外过程调用管程内数据结构的说明
D. 对局限于管程的数据结构设置初始值的语句
解:管程由局限于管程的共享变量说明、对管程内的数据结构进行操作的一组过程以及对局
限于管程的数据设置初始值的语句组成,故本题答案为 C。
【例 3-1-31】以下关于管程的描述中错误的是 。
A. 管程是进程同步工具,解决信号量机制中大量同步操作分散的问题
B. 管程每次只允许一个进程进入管程
C. 管程中 signal 操作的作用和信号量机制中的 V 操作相同
D. 管程是被进程调用的,管程是语法单位,无创建和撤销
解:管程的 signal 操作与信号量机制中的 V 操作不同,前者必须在 wait 操作之后。本题答
案为 C。
2. 填空题
【例 3-1-32】原语是一种特殊的广义指令,又称原子操作,它应该在 的状态下执行。
解:本题答案为:不可中断。
【例 3-1-33】信号量的物理意义是,当信号量值大于零时表示 ① ,当信号量值小于
零时表示 ② 。
解:本题答案为:①可分配资源的个数 ②等待使用该资源的进程的个数。
【例 3-1-34】在使用 P、V 操作实现进程互斥时,调用 ① 相当于申请一个共享资源,
调用 ② 相当于归还共享资源的使用权。
解:本题答案为:①P 操作 ②V 操作。
剩余37页未读,继续阅读
资源评论
yanyong
- 粉丝: 1
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功