[理工] 102 交大 計組

看板Grad-ProbAsk作者 (沒咩約嗎)時間9年前 (2016/12/17 21:19), 9年前編輯推噓6(6015)
留言21則, 7人參與, 最新討論串2/2 (看更多)
http://i.imgur.com/Jx1eItZ.jpg
14題 不太懂整個moniter的流程,哪位神人大大可以解釋一下>"< -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.25.99 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1481980796.A.CC8.html

12/17 22:01, , 1F
是不是忘記貼啥了
12/17 22:01, 1F

12/17 22:29, , 2F
……
12/17 22:29, 2F

12/17 23:26, , 3F
這真的要神人才知道了
12/17 23:26, 3F

12/18 00:26, , 4F
這連神人都沒辦法 應該要神才有辦法了
12/18 00:26, 4F

12/18 02:59, , 5F
所以我說的那個醬汁呢?
12/18 02:59, 5F

12/18 03:00, , 6F
打錯,圖呢?
12/18 03:00, 6F
抱歉我漏了!已附上感恩>< ※ 編輯: ssssIssss (140.112.25.105), 12/18/2016 11:14:20

12/18 15:01, , 7F
這個code是hoare monitor: process在signal後會讓被救的p
12/18 15:01, 7F

12/18 15:01, , 8F
rocess先進來然後自己進去一個特別的queue(優先權比condi
12/18 15:01, 8F

12/18 15:01, , 9F
tion readyqueue還高的queue)
12/18 15:01, 9F

12/18 15:03, , 10F
next_count用來記錄有多少個「救命恩人」 因為在process
12/18 15:03, 10F

12/18 15:03, , 11F
wait的時候 代表cpu要給其他人 而此時若有救命恩人要優先
12/18 15:03, 11F

12/18 15:03, , 12F
救他 沒有才讓其他在等待的process進入monitor
12/18 15:03, 12F

12/18 15:04, , 13F
所以lineA lineB 就跟最左邊那格的code一樣
12/18 15:04, 13F

12/18 15:08, , 14F
然後wait的process會卡在wait(x_sem) lineC就是signal(x_
12/18 15:08, 14F

12/18 15:08, , 15F
sem) 要救在wait的process 然後wait(next) 就是讓救命恩
12/18 15:08, 15F

12/18 15:08, , 16F
人進去特別queue的用途
12/18 15:08, 16F

12/18 15:35, , 17F
補充一下 semaphore的wait跟monitor的wait意義不太一樣喔
12/18 15:35, 17F

12/18 15:35, , 18F
一個是搶執行權 一個是強迫去condition variable的queue
12/18 15:35, 18F

12/18 15:35, , 19F
休息
12/18 15:35, 19F

12/18 16:25, , 20F
看完樓上的講解感覺又好像再把洪逸講的聽了一遍,感謝
12/18 16:25, 20F
那我想再問一下關於兩種wait的不同@@ aa大是指若出現在code裡的wait,是在搶執行權,所以就如同最基本的那樣加一減一就好 ? 而在monitor上的wait框,就是由一連串code所組成,用來安排process進入queue? ※ 編輯: ssssIssss (140.112.4.190), 12/19/2016 13:31:03

12/19 15:21, , 21F
yes
12/19 15:21, 21F
文章代碼(AID): #1OLJjyp8 (Grad-ProbAsk)
文章代碼(AID): #1OLJjyp8 (Grad-ProbAsk)