交大OS 95成大OS

作者: kaidi620 (萬能屎哥)   2019-01-29 20:01:52
想請問一下,各位大神,可以清楚的說明的越詳細越好嗎,因為這個問題困擾小弟很久了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可以以是否為迴圈為判斷,但不一個會不會阻礙另外一個這個要怎麼
判斷呢?請大神指教感謝。
作者: rockieloser (友善大隊長)   2019-01-29 21:08:00
Algo1中 一個要進去只能靠另一個幫忙我不幫你改=我沒要進去C.S. 但另一個就進不去了這樣就是阻礙到了別人了Algo3是哪邊不懂? 因為概念差不多
作者: kaidi620 (萬能屎哥)   2019-01-30 19:32:00
所以是那一個 turn=j 是幫別人改的意思嗎 大神沒有拉 因為我不太懂QAQ可以問一下那第一題為甚麼不滿足 bounded waiting嗎大
作者: Leaving   2019-01-30 22:58:00
就試試看同一支process有沒有辦法連續進去CS兩次(在另一支process想要進去的前提下)如果可以就違反這種題目通常同時只會有一個process在running state所以釋出lock後另一個process不一定會搶到 可能還在ready上面在說bounded waitingprogress就看 若裡面沒人 是不是可以進去這時要討論兩種case1 另一個人沒有要進去 2另一個人也要進去若都一定有人可以進得去就滿足turn想像成門的鑰匙 turn=j就是i把鑰匙丟給j了假設現在CS是空的 i想要進去 就開始討論上面兩種情況看會不會有進不去的狀況(啊現在在說成大的algo 1)1.j沒有要進去 可是turn可能在j那裡 所以i進不去 就違反了algo3也是差不多的討論法

Links booklink

Contact Us: admin [ a t ] ucptt.com