作者TNC (code)
看板Grad-ProbAsk
標題[理工] OS process synchronization
時間Tue Nov 29 00:25:43 2011
consider the following program
boolean block[2];
int turn;
void p(int id){
while(true)
blocked[id]=true;
while(trun!=id){
while(blocked[1-id]) do noop;
turn = id;
}
/*critical section*/
block[id] = false;
/*remainder section*/
}
}
void main()
{
blocked[0]=false;
blocked[1]=false;
turn = 0;
parbegin(p(0),p(1));
}
is mutual exclusion satisfied?!
我想問的是parbegin是什麼意思?!
是說直接從程式的某個部分開始跑嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.77.45.92
→ metalalive:雖然不知道是不是完整的code,不過parbegin感覺很像 11/29 00:51
→ metalalive:會執行兩個thread (Process) 之類的 11/29 00:51
→ metalalive:可以請教上面的Code是不是 bounded waiting 不成立?3Q 11/29 00:52
→ robert527152:mutual成立~bounded我覺得不成立 11/29 14:26
→ TNC:本題只有問mutual exclusion,答案是不成立 11/29 22:20
→ TNC:所以我才想說parbegin是不是直接跳到turn的後面一行去執行 11/29 22:22
→ TNC:bounded waiting我也覺得不成立 11/29 22:23
推 kiwidoit:我覺得mutul跟progress都成立,bounded waiting不成立 11/29 22:54
推 kiwidoit:印象中parbegin是並行開始。 11/29 22:57