OS-李治军-L19-死锁处理

死锁处理

一个死锁的栗子,来源于用户对信号量的错误使用,形成一种信号量需求环路,相互依赖,导致谁也无法向下进行。更坏的情况是,锁住的资源越来越多,导致最后cpu不工作了。
(这里应该是先使用P(mutex),再P(empty))先使用了mutex,然后由于empty不够则producer被阻塞,另一边costumer由于mutex被使用也进入了阻塞队列。

死锁的成因:


简单来说,站住了茅坑不拉屎,还要找旁边借厕纸。



银行家算法:用于预防


但是执行代价高。
请求出现的时候,首先假装分配,然后调用银行家算法。

因为银行家算法代价高,发现问题再处理:

实际上是总结

所以最好不要管死锁233333。

posted @ 2020-10-25 23:41  HermioneGranger  阅读(101)  评论(0)    收藏  举报