开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第28天,点击查看活动详情
本篇文章我们来简单给出《操作系统》第三章进程的互斥同步部分的一些习题的答案的分析。
一. 单选题
1. 若系统中有五个并发进程涉及某个相同的变量A,则变量A的相关临界区最少是由( )临界区构成。
- A. 2个
- B. 3个
- C. 4个
- D. 5个
2.设与某资源关联的信号量(K)初值为3,当前值为1。若M表示该资源的可用个数,N表示等待该资源的进程数,则当前M、N分别是( )。
- A. 0、1
- B. 1、0
- C. 1、2
- D. 2、0
3. 有三个进程共享同一个程序段,而每次只允许两个进程进入该程序段,如用PV操作同步机制,则信号量S的取值范围是( )。
- A. 2,1,0,-1
- B. 3,2,1,0
- C. 2,1,0,-1,-2
- D. 1,0,-1,-2
4. 两个旅行社甲和乙为旅客到某航空公司订飞机票,形成互斥资源的是( )。
- A. 旅行社
- B. 航空公司
- C. 飞机票
- D. 旅行社和航空公司
5. 进程P1和P2均包含并发执行的线程,部分伪代码如下。下面选项中,需要互斥执行的操作是( )。
- A. a=1与a=2
- B. x+=1与x+=2
- C. a=x与b=x
- D. x+=1与x+=3
6. 某一时刻某一资源的信号量s=0,它表示( )。
- A. 该时刻该类资源的可用数目为1
- B. 该时刻该类资源的可用数目为-1
- C. 该时刻等待该类资源的进程数目为1
- D. 该时刻等待该类资源的进程数目为0
7. 有一个资源信号量S:(1)假如若干个进程对S进行了28次P操作和18次V操作之后,信号量S的值为0。(2)假如若干个进程对信号量S进行了15次P操作和2次V操作,请问此时有( )个进程等待在信号量S的队列中。
- A. 2
- B. 3
- C. 5
- D. 7
8. 有两个并发进程P1和P2,x是它们的共享变量。其程序代码如下。可能打印z的值有( ),可能打印c的值有( )。
- A. z=1,-3;c=-1,9
- B. z=-1,3;c=1,9
- C. z=-1,3,1;c=9
- D. z=3;c=1,9
9. 有m个进程共享同一临界资源,若使用信号量机制实现对临界资源的互斥访问,则信号量值的变化范围是( )。
- A. -(m-1)至1
- B. 0至m-1
- C. 1至m
- D. -m至1
10. 进程A和B共享同一临界资源,并且进程A正处于对应的临界区执行。下列的描述中( )是一条正确的描述。
- A. 进程A的执行不能被中断,即临界区的代码具有原子性。
- B. 进程A的执行被中断,但中断A后,不能将CPU调度给进程B。
- C. 进程A的执行能被中断,而且只要B进程就绪,就可以将CPU调度给B进程。
- D. 进程A的执行能被中断,而且只要B进程就绪,就必定将CPU调度给B进程。
11. 下面关于临界区的叙述中,正确的是( )。
- A. 临界区可以允许规定数目的多个进程同时执行
- B. 临界区只包含一个程序段
- C. 临界区是必须互斥地执行的程序段
- D. 临界区的执行不能被中断
12. 进程P0和P1的共享变量定义和初值为:
- A. 不能保证进程互斥进入临界区,会出现“饥饿”现象
- B. 不能保证进程互斥进入临界区,不会出现“饥饿”现象
- C. 能保证进程互斥进入临界区,会出现“饥饿”现象
- D. 能保证进程互斥进入临界区,不会出现“饥饿”现象
二. 填空题(共6题,20分)
13. 哲学家进餐算法会出现什么问题______?限制同时允许哲学家进餐的人数可以避免这种问题出现。请对下面的算法进行补充。
//设置互斥信号量mutex为最多可以同时申请筷子的哲学家的数量。
mutex=______;
chopstick[0..4]=1;
Pi(i=0,1,…,4);
While(true)
{
______;
wait(chopstick[i]);
______;
Eat;
signal(chopstick[i]);
______;
______;
think;
}
(1) 死锁
(2) 4
(3) wait(mutex)
(4) wait(chopstick[(i+1)%5])
(5) signal(chopstick[(i+1)%5])
(6) signal(mutex)
14. Peterson算法是一种能够正确对两个进程进行互斥的方法。该方法中用了_____个标志进行互斥。
(1) 3
15. 有两个用户进程A和B,在运行过程中都要使用系统中的一台打印机输出计算结果,则A、B两进程之间为_____制约关系。
(1) 间接;互斥
16. 在具有N个进程的系统中,允许M个进程(N≥M≥1)同时进入它们的共享区,其信号量S的值的变化范围是_____,处于等待状态的进程数最多是_____个。
(1) M-N~M
(2) N-M
17. 下面用信号量实现读者/写者问题,请在空白处填写正确答案。设信号量mutex实现读者与写者,写者与写者之间互斥。readernum是统计读者个数的变量。信号量readermutex实现读者之间互斥使用readernum的信号量。
Mutex=_____;
readernum=_____;
readermutex=1;
Reader()
{
_____;
if (readernum==0)
_____;
readernum++;
_____;
读文件;
_____;
_____;
if (readernum==0)
_____;
signal(readermutex);
}
Writer()
{
Wait(mutex);
修改文件;
Signal(mutex);
}
(1) 1
(2) 0
(3) wait(readermutex)
(4) wait(mutex)
(5) signal(readermutex)
(6) wait(readermutex)
(7) readernum--
(8) signal(mutex)
18. 用P、V操作管理临界区时,任何一个进程在进入临界区之前应调用_____操作,退出临界区时应调用_____操作。
(1) P;wait
(2) V;signal
三. 简答题
19. 何谓进程同步?进程之间的制约关系分为几种,都是什么?
进程同步是异步环境下的一组并发进程因直接制约而互相发送消息、进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。
进程之间的制约关系分为两种,分为直接制约关系和间接制约关系
20. 信号量是被保护的数据结构,除信号量被赋初值外,信号量的值仅能由两个同步原语wait操作和signal操作才能改变。请说明这两个原语的物理意义。
进行wait操作意味着申请一个单位的该资源,signal操作操作意味着归还一个单位的该类资源。
21. 什么是临界资源?对临界资源采用什么方式进行访问?
一次仅允许一个进程访问的资源称为临界资源。
对临界资源采用互斥方式进行访问。
22. 什么是临界区?进入临界区的准则有哪些?
每个进程中访问临界资源的那段代码称为临界区。
进入临界区的准则有:
(1)空闲让进
(2)忙则等待
(3)有限等待
(4)让权等待
以上就是《操作系统》第三章进程的互斥同步部分的选择、判断和简答题的简单答案与分析,下一篇文章,我们将继续讲解进程的互斥同步相关习题。