[理工] OS deadlock

楼主: yoz4ni (yoooooz)   2020-06-26 20:56:14
请问一下
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 的就不会发生吗?
还在学习,不太清楚,问题很奇怪的话请见谅
作者: Martie (马提)   2020-06-26 23:47:00
mutual exclusion里面指的nonshareable resource是像printer, cpu, memory之类的资源 而不是code里面的global/localvariable 我猜你是误解成这个了像是如果一台打印机可以同时印不同文件的话就不会存在mutual exclusion的问题然后你所谓的shareable data如果是read-only的话也不会有互斥存取的问题 另外processes间对共享变量读写的部分就要参考synchronization的章节
作者: DLHZ ( )   2020-06-27 12:30:00
怎么会没有variable? mutual exclusion指的就是避免大家能用的东西同时被修改啊这东西缩写就叫mutex
作者: Martie (马提)   2020-06-27 14:44:00
感谢楼上指正 mutual exclusion确实有包含global variable但我的理解是这里的互斥是另外加上去的mechanism 并非变量本身就有的性质 例如read-only就没有 不知这样是否有错
作者: DLHZ ( )   2020-06-27 18:46:00
的确是另外加上去 但要说变量不会具有mutual exclusion的性质我认为就有问题了counter, flag 等一些东西都需要criticalsection的设计 如果是其他无关紧要的东西自然不需要 如你说的read-only
楼主: yoz4ni (yoooooz)   2020-06-29 23:53:00
好的 感谢回答 我在思考思考~

Links booklink

Contact Us: admin [ a t ] ucptt.com