[理工] [OS]-臨界區域

看板Grad-ProbAsk作者 (work)時間16年前 (2009/10/02 15:37), 編輯推噓2(205)
留言7則, 2人參與, 最新討論串4/4 (看更多)
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
while(flag[0]);while(flag[1]);flag[1]=true;flag[0]=true
10/03 01:30, 2F

10/03 02:10, , 3F
借標題問 若滿足互斥 則不會有Race condition?還是三個
10/03 02:10, 3F

10/03 02:10, , 4F
都要滿足?
10/03 02:10, 4F

10/04 02:49, , 5F
基本上互斥滿足 race condition就算解決
10/04 02:49, 5F

10/04 02:50, , 6F
但progress和bounded waiting未滿足的話又會造成別的問題
10/04 02:50, 6F

10/04 02:51, , 7F
如starvation或deadlock...
10/04 02:51, 7F
文章代碼(AID): #1AnQsoHI (Grad-ProbAsk)
文章代碼(AID): #1AnQsoHI (Grad-ProbAsk)