看板 Grad-ProbAsk 關於我們 聯絡資訊
請問一下 1. Mutual exclusion 是一次只能有一個人使用資源,所以是包含 share data 跟 non share data 嗎? 2. 我記得是有 share data 才會產生 deadlock,因為共享 所以別人用你就不能用? 我 看課本 deadlock prevention 裡要不成立 mutual exclusion 是寫這樣(At least one resource must be non-sharable)、(Sharable resources do not require mutually exclusive access and thus cannot be involved in a deadlock),如果沒有 share data 不會有 deadlock,可是為什麼有 non share data 就可以,其他有 share data 的就不會發生嗎? 還在學習,不太清楚,問題很奇怪的話請見諒 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.173.113.113 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1593176176.A.1B6.html
Martie: mutual exclusion裡面指的nonshareable resource是像print 06/26 23:47
Martie: er, cpu, memory之類的資源 而不是code裡面的global/local 06/26 23:47
Martie: variable 我猜你是誤解成這個了 06/26 23:47
Martie: 像是如果一台印表機可以同時印不同文件的話就不會存在mutu 06/26 23:50
Martie: al exclusion的問題 06/26 23:50
Martie: 然後你所謂的shareable data如果是read-only的話也不會有 06/26 23:59
Martie: 互斥存取的問題 另外processes間對共享變數讀寫的部分就要 06/26 23:59
Martie: 參考synchronization的章節 06/26 23:59
DLHZ: 怎麼會沒有variable? mutual exclusion指的就是避免大家能用 06/27 12:30
DLHZ: 的東西同時被修改啊 06/27 12:30
DLHZ: 這東西縮寫就叫mutex 06/27 12:34
Martie: 感謝樓上指正 mutual exclusion確實有包含global variable 06/27 14:44
Martie: 但我的理解是這裡的互斥是另外加上去的mechanism 並非變 06/27 14:44
Martie: 數本身就有的性質 例如read-only就沒有 不知這樣是否有錯 06/27 14:45
DLHZ: 的確是另外加上去 但要說變數不會具有mutual exclusion的性 06/27 18:46
DLHZ: 質我認為就有問題了counter, flag 等一些東西都需要critical 06/27 18:46
DLHZ: section的設計 如果是其他無關緊要的東西自然不需要 如你說 06/27 18:46
DLHZ: 的read-only 06/27 18:46
yoz4ni: 好的 感謝回答 我在思考思考~ 06/29 23:53