[理工] OS deadlock

看板Grad-ProbAsk作者 (yoooooz)時間3年前 (2020/06/26 20:56), 編輯推噓1(1018)
留言19則, 3人參與, 3年前最新討論串1/1
請問一下 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

06/26 23:47, 3年前 , 1F
mutual exclusion裡面指的nonshareable resource是像print
06/26 23:47, 1F

06/26 23:47, 3年前 , 2F
er, cpu, memory之類的資源 而不是code裡面的global/local
06/26 23:47, 2F

06/26 23:47, 3年前 , 3F
variable 我猜你是誤解成這個了
06/26 23:47, 3F

06/26 23:50, 3年前 , 4F
像是如果一台印表機可以同時印不同文件的話就不會存在mutu
06/26 23:50, 4F

06/26 23:50, 3年前 , 5F
al exclusion的問題
06/26 23:50, 5F

06/26 23:59, 3年前 , 6F
然後你所謂的shareable data如果是read-only的話也不會有
06/26 23:59, 6F

06/26 23:59, 3年前 , 7F
互斥存取的問題 另外processes間對共享變數讀寫的部分就要
06/26 23:59, 7F

06/26 23:59, 3年前 , 8F
參考synchronization的章節
06/26 23:59, 8F

06/27 12:30, 3年前 , 9F
怎麼會沒有variable? mutual exclusion指的就是避免大家能用
06/27 12:30, 9F

06/27 12:30, 3年前 , 10F
的東西同時被修改啊
06/27 12:30, 10F

06/27 12:34, 3年前 , 11F
這東西縮寫就叫mutex
06/27 12:34, 11F

06/27 14:44, 3年前 , 12F
感謝樓上指正 mutual exclusion確實有包含global variable
06/27 14:44, 12F

06/27 14:44, 3年前 , 13F
但我的理解是這裡的互斥是另外加上去的mechanism 並非變
06/27 14:44, 13F

06/27 14:45, 3年前 , 14F
數本身就有的性質 例如read-only就沒有 不知這樣是否有錯
06/27 14:45, 14F

06/27 18:46, 3年前 , 15F
的確是另外加上去 但要說變數不會具有mutual exclusion的性
06/27 18:46, 15F

06/27 18:46, 3年前 , 16F
質我認為就有問題了counter, flag 等一些東西都需要critical
06/27 18:46, 16F

06/27 18:46, 3年前 , 17F
section的設計 如果是其他無關緊要的東西自然不需要 如你說
06/27 18:46, 17F

06/27 18:46, 3年前 , 18F
的read-only
06/27 18:46, 18F

06/29 23:53, 3年前 , 19F
好的 感謝回答 我在思考思考~
06/29 23:53, 19F
文章代碼(AID): #1UzV1m6s (Grad-ProbAsk)