死锁的条件,预防,避免,检测与消除

推荐观看:

https://www.cnblogs.com/xiaoxi/p/8311034.html

 

 

死锁产生的四个条件:

 死锁是指两个或两个以上线程在执行过程中,由于竞争资源或进程间彼此通信而造成的一种阻塞现象,若无外力作用,他们将永远无法进行下去。

 

1、互斥条件

一个进程占有一个资源这时别的进程对该资源进行申请时,进入等待状态

2、请求与保持

一个进程拥有一个资源,这时它又向系统申请一个资源,而该资源却被其他进程所拥有,这时候它原本拥有的资源保持不释放。

3、不可剥夺条件

一个进程拥有的资源在未使用完时其他线程不能够强行剥夺该资源,只能该进程主动释放

4、循环等待条件

若干个进程间形成首尾相接,循环等待资源的情况

 

死锁如何预防

 破坏四个条件中的其中几个。


预防死锁:通过设置某些限制条件,破坏四个产生条件之一,防止死锁的发生。

避免死锁:在资源动态分布过程中,用某些方法防止系统进入不安全状态。

检测死锁:允许系统运行过程中发生死锁,但可设置检测机构及时检测死锁的发生。

 

1、破坏互斥条件

 

posted @ 2020-03-25 20:38  cow09  阅读(414)  评论(0)    收藏  举报