任何人都可以爲我解釋這個嗎?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