看板 Grad-ProbAsk 關於我們 聯絡資訊
先附上 test-and-set 用來改善 bounded-waiting 的 code https://imgur.com/a/H4YkMyf 而這是恐龍書上面寫的某段話 https://imgur.com/a/pFIuods 上面那裡我用藍筆畫起來的那段話我一直不能理解 為什麼只有一個 waiting[i] 的值能被設成 false? 不是很多 process 的 waiting[i] 都可以是 false 嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.136.218 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1544622610.A.E68.html
springleaf1: 如果多個Process Waiting[i]為False,則唯一性就沒了 12/12 22:13
springleaf1: 這種情況會讓互斥不成立 12/12 22:14
springleaf1: 那些被設定成False的,通通可以進入Critical Section 12/12 22:38
springleaf1: 設定False的唯一辦法就是搶到Lock 12/12 22:47
skyHuan: 借版問一下test and set到底是不是特權指令XD 洪逸好像 12/13 03:02
skyHuan: 說不是但網路查到的資料幾乎都說是 12/13 03:02
Dora5566: 筆記好像沒提到是不是,剛查到106中央有討論說是特權 12/13 07:14
DLHZ: 我認為必須是 12/13 09:42
kobebset105: 修正一下b1講的 12/14 09:43
kobebset105: 可以多個waiting[i]為false 12/14 09:44
kobebset105: 只是只能同時有一個waiting[i]被剛做完critical sess 12/14 09:45
kobebset105: ion的process 設為false 12/14 09:45
springleaf1: 照這Code的設計,不可能有多個False出現才對 12/14 10:54
springleaf1: 到底要怎樣的執行情形才會出現多個False的狀況? 12/14 10:55
springleaf1: 是前面幾個Process執行完後沒從Waiting Queue退出來? 12/14 11:00
leekevinming: 我是想說假如已經有一些process執行完CS之後出來了 12/15 23:32
leekevinming: 然後他們已經進入Remainder section 但是他們各自的 12/15 23:33
leekevinming: 的waiting值自從進入CS之前被設成false之後就沒有被 12/15 23:34
leekevinming: 更動過了 所以這些在RS的process他們的waiting值應 12/15 23:36
leekevinming: 該都會是false才對 12/15 23:36