先附上 test-and-set 用來改善 bounded-waiting 的 code
https://imgur.com/a/H4YkMyf
而這是恐龍書上面寫的某段話
https://imgur.com/a/pFIuods
上面那裡我用藍筆畫起來的那段話我一直不能理解
為什麼只有一個 waiting[i] 的值能被設成 false?
不是很多 process 的 waiting[i] 都可以是 false 嗎?
如果多個Process Waiting[i]為False,則唯一性就沒了這種情況會讓互斥不成立那些被設定成False的,通通可以進入Critical Section設定False的唯一辦法就是搶到Lock
作者:
skyHuan (Huan)
2018-12-13 03:02:00借版問一下test and set到底是不是特權指令XD 洪逸好像說不是但網路查到的資料幾乎都說是
筆記好像沒提到是不是,剛查到106中央有討論說是特權
作者:
DLHZ ( )
2018-12-13 09:42:00我認為必須是
修正一下b1講的可以多個waiting[i]為false只是只能同時有一個waiting[i]被剛做完critical session的process 設為false
照這Code的設計,不可能有多個False出現才對到底要怎樣的執行情形才會出現多個False的狀況?是前面幾個Process執行完後沒從Waiting Queue退出來?
我是想說假如已經有一些process執行完CS之後出來了然後他們已經進入Remainder section 但是他們各自的的waiting值自從進入CS之前被設成false之後就沒有被更動過了 所以這些在RS的process他們的waiting值應該都會是false才對