习题
3
进程同步与通信
一、选择?/p>
题号
1 2 3 4 5 6 7 8 9 10
答案
A D D C B C A B A A
题号
11 12
答案
D C
二、综合题
1
?/p>
答:
临界资源也称独占资源?/p>
互斥资源?/p>
它是指某段时间内只充许一个进程使用的资源?/p>
比如打印机等硬件资源?/p>
以及只能互斥使用的变量、表格、队列等软件资源?/p>
各个进程中访
问临界资源的?/p>
必须互斥执行的程序代码段称为临界区,
各进程中访问同一临界资源的程?/p>
代码段必须互斥执行?/p>
为防止两个进程同时进入临界区
,
可采用软件解决方法或同步机构来协调它们。但?/p>
,
不论?/p>
软件算法还是同步机构都应遵循下述准则
:
?/p>
空闲让进。②
忙则等待。③
有限等待。④
让权等待?/p>
2
、答:忙等待意味着一个进程正在等待满足一个没有闲置处理器的严格循环的条件。因?/p>
只有一?/p>
CPU
为多个进程服务,因此这种等待浪费?/p>
CPU
的时钟?/p>
其他类型的等待:与忙等待需要占用处理器不同,另外一种等待则允许放弃处理器。如?/p>
程阻塞自己并且等待在合适的时间被唤醒?/p>
忙等可以采用更为有效的办法来避免?/p>
例如?/p>
?/p>
行请求(类似于中断)机制以及
PV
信号量机制,均可避免“忙等待”现象的发生?/p>
3
、答?/p>
在生产?/p>
?/p>
消费者问题中?/p>
Producer
进程?/p>
P
?/p>
empty
)和
P(mutex)
互换先后次序。先
执行
P(mutex)
,假设成功,生产者进程获得对缓冲区的访问权,但如果此时缓冲池已满,没
有空缓冲区可供其使用,后续的
P
?/p>
empty
)原语没有通过?/p>
Producer
阻塞在信号量
empty
?/p>
,
而此?/p>
mutex
已被改为
0
,没有恢复成初?/p>
1
。切换到消费者进程后
,Consumer
进程执行
P
?/p>
full
)成功,但其执行
P
?/p>
mutex
)时由于
Producer
正在访问缓冲区,所以不成功,阻?/p>
在信号量
mutex
上?/p>
生产者进程和消费者进程两者均无法继续执行?/p>
相互等待对方释放资源?/p>
会产生死锁?/p>
在生产者和消费者进程中?/p>
V
操作的次序无关紧要,不会出现死锁现象?/p>
4
、答?/p>