→ jerry031181: d.I是說檢查有無safe sequence感覺是裡面最適合選項 12/26 11:53
→ jerry031181: Deadlock free要滿足1. 1<=max<=資源總量 12/26 11:54
→ jerry031181: 2. Process數乘上所需資源量<process+資源總量 12/26 11:55
→ lemonsheep: 感謝!你之前好像有問12 請問有解嗎? 12/26 12:44
→ jerry031181: 我有貼阿~ 12/26 13:21
→ lemonsheep: 恩恩我再想想看好了 感謝你~ 12/26 17:19
→ a37805: 第四題 你可以舉例2怎麼樣情況會發生嗎? 5~10沒錯阿 12/27 00:39
推 a37805: 至少process自己和自己不會發生race condition阿 12/27 00:42
T0 register1 = x //x=0 register1 = 0 register2 = 0
T1 register1 = register1+1 //x=0 register1 = 1 register2 = 0,
--------換processB執行-----------------------------------------
T2 register2 = x //x=0 register1 = 1 register2 = 0
T3 register2 = register2+1 //x=0 register1 = 1 register2 = 1
T4 x = register2 //x=1 register1 = 1 register2 = 1
T5 register2 = x //x=1 register1 = 1 register2 = 1
T6 register2 = register2+1 //x=1 register1 = 1 register2 = 2
T7 x = register2 //x=2 register1 = 1 register2 = 2
T8 register2 = x //x=2 register1 = 1 register2 = 2
T9 register2 = register2+1 //x=2 register1 = 1 register2 = 3
T10 x = register2 //x=3 register1 = 1 register2 = 3
T11 register2 = x //x=3 register1 = 1 register2 = 3
T12 register2 = register2+1 //x=3 register1 = 1 register2 = 4
T13 x = register2 //x=4 register1 = 1 register2 = 4
------------換processA執行----------------------------------
T14 x = register1 //x=1 register1 = 1 register2 = 4
------------換processB執行----------------------------------
T15 register2 = x //x=1 register1 = 1 register2 = 1
T16 register2 = register2+1 //x=1 register1 = 1 register2 = 2
------------換processA執行----------------------------------
T17 register1 = x //x=1 register1 = 1 register2 = 2
T18 register1 = register1+1 //x=1 register1 = 2 register2 = 2
T19 x = register1 //x=2 register1 = 2 register2 = 2
T20 register1 = x //x=2 register1 = 2 register2 = 2
T21 register1 = register1+1 //x=2 register1 = 3 register2 = 2
T22 x = register1 //x=3 register1 = 3 register2 = 2
T23 register1 = x //x=3 register1 = 3 register2 = 2
T24 register1 = register1+1 //x=3 register1 = 4 register2 = 2
T25 x = register1 //x=4 register1 = 4 register2 = 2
T26 register1 = x //x=4 register1 = 4 register2 = 2
T27 register1 = register1+1 //x=4 register1 = 5 register2 = 2
T28 x = register1 //x=5 register1 = 5 register2 = 2,processA結束
------------換processB執行-----------------------------------
T29 x = register2 //x=2 register1 = 5 register2 = 2,processB結束
大概是這樣想的 不知道是不是哪裡有甚麼盲點 感謝~
※ 編輯: lemonsheep (140.120.228.196), 12/27/2015 09:18:22