[理工] [OS]-臨界區域
do {
while(flag[j]);
flag[i]=true;
c.s
flag[i]=false;
r.e
}while(1)
滿足臨界區域三條件
1.互斥滿足
若pi和pj皆想進入c.s,則兩者都不能進去
若pi想進入c.s,且pj不想進入c.s,則pi進入c.s
若pi不想進入c.s,且pj想進入c.s,則pj進入c.s
所以pi和pj不會同時進入c.s=>滿足互斥
2.不滿足進入
若pi和pj皆想進入c.s,則產生死結。
3.bounded waiting滿足
如果pi進入c.s,則pj將在while。
如果pi離開c.s,即flag[i]=false,表示pj可以進入c.s.
如果pi離開後又想馬上企圖進入c.s,則pi將在while。
以保證pj進入c.s,所以pj最多等一次後即可進入c.s
請問,這個答案是否是正確的?謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.137.26.219
推
10/03 01:28, , 1F
10/03 01:28, 1F
→
10/03 01:30, , 2F
10/03 01:30, 2F
→
10/03 02:10, , 3F
10/03 02:10, 3F
→
10/03 02:10, , 4F
10/03 02:10, 4F
推
10/04 02:49, , 5F
10/04 02:49, 5F
→
10/04 02:50, , 6F
10/04 02:50, 6F
→
10/04 02:51, , 7F
10/04 02:51, 7F
討論串 (同標題文章)