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

看板Grad-ProbAsk作者 (chunk)時間5年前 (2018/12/12 21:50), 編輯推噓3(3017)
留言20則, 6人參與, 5年前最新討論串1/1
先附上 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

12/12 22:13, 5年前 , 1F
如果多個Process Waiting[i]為False,則唯一性就沒了
12/12 22:13, 1F

12/12 22:14, 5年前 , 2F
這種情況會讓互斥不成立
12/12 22:14, 2F

12/12 22:38, 5年前 , 3F
那些被設定成False的,通通可以進入Critical Section
12/12 22:38, 3F

12/12 22:47, 5年前 , 4F
設定False的唯一辦法就是搶到Lock
12/12 22:47, 4F

12/13 03:02, 5年前 , 5F
借版問一下test and set到底是不是特權指令XD 洪逸好像
12/13 03:02, 5F

12/13 03:02, 5年前 , 6F
說不是但網路查到的資料幾乎都說是
12/13 03:02, 6F

12/13 07:14, 5年前 , 7F
筆記好像沒提到是不是,剛查到106中央有討論說是特權
12/13 07:14, 7F

12/13 09:42, 5年前 , 8F
我認為必須是
12/13 09:42, 8F

12/14 09:43, 5年前 , 9F
修正一下b1講的
12/14 09:43, 9F

12/14 09:44, 5年前 , 10F
可以多個waiting[i]為false
12/14 09:44, 10F

12/14 09:45, 5年前 , 11F
只是只能同時有一個waiting[i]被剛做完critical sess
12/14 09:45, 11F

12/14 09:45, 5年前 , 12F
ion的process 設為false
12/14 09:45, 12F

12/14 10:54, 5年前 , 13F
照這Code的設計,不可能有多個False出現才對
12/14 10:54, 13F

12/14 10:55, 5年前 , 14F
到底要怎樣的執行情形才會出現多個False的狀況?
12/14 10:55, 14F

12/14 11:00, 5年前 , 15F
是前面幾個Process執行完後沒從Waiting Queue退出來?
12/14 11:00, 15F

12/15 23:32, 5年前 , 16F
我是想說假如已經有一些process執行完CS之後出來了
12/15 23:32, 16F

12/15 23:33, 5年前 , 17F
然後他們已經進入Remainder section 但是他們各自的
12/15 23:33, 17F

12/15 23:34, 5年前 , 18F
的waiting值自從進入CS之前被設成false之後就沒有被
12/15 23:34, 18F

12/15 23:36, 5年前 , 19F
更動過了 所以這些在RS的process他們的waiting值應
12/15 23:36, 19F

12/15 23:36, 5年前 , 20F
該都會是false才對
12/15 23:36, 20F
文章代碼(AID): #1S4H8Ive (Grad-ProbAsk)