任何人都可以为我解释这个吗?4个进程的信号量执行
在以下代码中,四个进程使用printf
产生输出,并使用三个信号量R
,S
和T
进行同步。我们假设printf
不会导致上下文切换。
/* initialization */
Semaphore R=1, S = 3, T = 0;
/* process 1 */
while(true) {
P(S);
printf('A');
}
/* process 2 */
while(true) {
P(T);
printf('B');
printf('C');
V(T);
}
/* process 3 */
while(true) {
P(T);
printf('D');
V(R);
}
/*process 4 */
while(true) {
P(R);
printf('E');
V(T);
}
当这组进程运行时会打印多少个A和B?
请格式化您的代码。这是'c'还是'java'? –
这是一种伪代码 –
认真!很难阅读和理解你在说什么。请看看[如何创建一个最小化,完整和可验证的示例](http://stackoverflow.com/help/mcve) – mmushtaq