看板 Grad-ProbAsk 關於我們 聯絡資訊
http://ppt.cc/o9Rf 題目如上,OS的最後一題 想了很久 只擠出了一點點想法 my_turn(Who[ Order[i]+1 ])=true 不過感覺不太對QQ 不知道有沒有人能夠解救一下^^" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.67.162.88
kyodaisuki:這題很難 .. 程式碼一定不只5行 02/24 16:29
kyodaisuki:你大概要拚斷 first-count second-count來wait( delay) 02/24 16:30
kyodaisuki:你可以這樣想 如果一個process先進入的second的地方 02/24 16:31
kyodaisuki:讓之後的prcoess都以為在second delay有工作 02/24 16:31
kyodaisuki:所以 它們會瘋狂的增加signal(second-delay) 02/24 16:32
kyodaisuki:0.0.... 等等 我想一下 02/24 16:33
kyodaisuki:if(first-count >0 ) signal(first-delay); 02/24 16:40
kyodaisuki:else if(second-count > 0) signal(second-delay); 02/24 16:41
kyodaisuki:else siganl(mutex); 02/24 16:42
kyodaisuki:這三行就夠了 02/24 16:42
kyodaisuki:有問題再推文問我 你用上去 追蹤看看就知到了 02/24 16:42
dingfun:恩恩~樓上應該是對的!!謝謝^^ 02/24 19:54
dingfun:不過感覺上 是不是應該先檢查second-count讓卡在 02/24 20:07
dingfun:second-delay的process先過@@? 02/24 20:08
kyodaisuki:其實沒差 因為你讓第一個過 到了deconf-delay 02/24 20:14
kyodaisuki:等等= =. 好吧 先讓decond-count過吧 02/24 20:15
kyodaisuki:second-delay先判斷好. 可以減少判斷次數 02/24 20:16
kyodaisuki:其實是沒差的 因為到了第2個delay 在first-count = 0 02/24 20:17
kyodaisuki:他一樣會signal(second-delay) 02/24 20:17
kyodaisuki:先讓第2個過的效率 大概比第一個過的效率好 02/24 20:18
dingfun:恩恩 還是感謝 K大真是強大! 02/24 21:20
sneak: if(first-co https://daxiv.com 09/11 14:58