作者mqazz1 (無法顯示)
看板Grad-ProbAsk
標題[理工] [OS] binary semaphore
時間Fri Nov 11 20:50:23 2011
wait(S) signal(S)
wait(S1) wait(S1)
C-- C++
//
(1) 把下面的signal(S1)移到這會怎樣?
if(C<0) if(C <= 0)
{ {
signal(S1)
(1) signal(S2)
wait(S2) }
} signal(S1)
else
{
signal(S1) //
(2)沒這行會怎樣?
}
這是用binary semaphore模擬counting semaphore的code
請高手相助
謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.110.186
※ 編輯: mqazz1 來自: 140.118.110.186 (11/11 20:50)
→ da0910cc:我覺得(2)沒有的話C只要不是小於0,S1就卡住了 11/11 21:02
推 jim055006:對於(1)我的想法是移到那行的話...C值就不會互斥了 11/11 23:11
推 da0910cc:原本要做的如果是C<0,移上去的話有可能會做到else那邊了 11/12 00:23
推 da0910cc:原本要做C<0那段,變成作ELSE了 11/12 00:26