作者kaidi620 (萬能史哥)
看板Grad-ProbAsk
標題交大OS 95成大OS
時間Tue Jan 29 20:01:52 2019
想請問一下,各位大神,可以清楚的說明的越詳細越好嗎,因為這個問題困擾小弟很久了QA
Q
https://i.imgur.com/hUpOlEb.jpg
(1)小弟的想法是設i已經進去了,但因為lock被i的1替換掉,所以j卡在while裡面。
當i執行到lock為0時,j立馬可以跑出去while, 這樣不就滿足bounded waiting了嗎?(答
案是不滿足bounded waiting)
https://i.imgur.com/rO30pfs.jpg
https://i.imgur.com/RwkFkk9.jpg
(2)接下來是成大這題的 algorithm(1) algorithm(3)的其中progress不懂寫的是什麼意
思。可以請大神講的越詳細越好嗎謝謝。
(3)我知道progress可以以是否為迴圈為判斷,但不一個會不會阻礙另外一個這個要怎麼
判斷呢?請大神指教感謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 110.28.227.242
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Grad-ProbAsk/M.1548763315.A.6B2.html
1F:→ rockieloser: Algo1中 一個要進去只能靠另一個幫忙 01/29 21:08
2F:→ rockieloser: 我不幫你改=我沒要進去C.S. 但另一個就進不去了 01/29 21:10
3F:→ rockieloser: 這樣就是阻礙到了別人了 01/29 21:10
4F:→ rockieloser: Algo3是哪邊不懂? 因為概念差不多 01/29 21:12
5F:→ kaidi620: 所以是那一個 turn=j 是幫別人改的意思嗎 大神 01/30 19:32
6F:→ kaidi620: 沒有拉 因為我不太懂QAQ 01/30 19:33
7F:→ kaidi620: 可以問一下那第一題為甚麼不滿足 bounded waiting嗎大 01/30 19:43
8F:→ Leaving: 就試試看同一支process有沒有辦法連續進去CS兩次 01/30 22:58
9F:→ Leaving: (在另一支process想要進去的前提下) 01/30 22:58
10F:→ Leaving: 如果可以就違反 01/30 22:59
11F:推 Leaving: 這種題目通常同時只會有一個process在running state 01/30 23:02
12F:→ Leaving: 所以釋出lock後另一個process不一定會搶到 可能還在ready 01/30 23:04
13F:→ Leaving: 上面在說bounded waiting 01/30 23:11
14F:→ Leaving: progress就看 若裡面沒人 是不是可以進去 01/30 23:12
15F:→ Leaving: 這時要討論兩種case 01/30 23:13
16F:→ Leaving: 1 另一個人沒有要進去 2另一個人也要進去 01/30 23:13
17F:→ Leaving: 若都一定有人可以進得去就滿足 01/30 23:14
18F:→ Leaving: turn想像成門的鑰匙 turn=j就是i把鑰匙丟給j了 01/30 23:23
19F:→ Leaving: 假設現在CS是空的 i想要進去 就開始討論上面兩種情況看會 01/30 23:26
20F:→ Leaving: 不會有進不去的狀況 01/30 23:26
21F:→ Leaving: (啊現在在說成大的algo 1) 01/30 23:27
22F:→ Leaving: 1.j沒有要進去 可是turn可能在j那裡 所以i進不去 就違反 01/30 23:28
23F:→ Leaving: 了 01/30 23:28
24F:→ Leaving: algo3也是差不多的討論法 01/30 23:30
25F:→ kaidi620: 好的謝謝大神 02/07 20:24