[理工] OS test-and-set問題

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

Links booklink

Contact Us: admin [ a t ] ucptt.com