有参考书上的原分析如下:
事实上这个分析是错误的,但是答案是正确,为什么?
首先来明白什么是互斥信号量。互斥信号量是一个可以处于两态之一的变量:解锁态和加锁态。在该题中,即表示:PA、PB中任何一个在对管道进行读或写时,剩下的那个进程必须等待,而不能一起进行读写,只有当其中一个操作之后才可以让另一个对管道操作。而互斥信号量的使用如下:
// mutext是互斥信号量进程A:
// mutext是互斥信号量进程A:
{
......
P(mutext);
临界区;
V(mutext);
.....
}
进程B:
{
......
P(mutext);
临界区;
V(mutext);
.....
}
再回到那个题目,如果按照该题的原分析,使用一个同步信号量一个互斥信号量,不管你如何调整语句顺序,都不能使PA、PB正常并发执行。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页
责任编辑:虫虫