1、产生死锁的必要条件
-
互斥条件
指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只you5一个进程占有。如果此时还有其他进程请求该资源,则请求者只能等待,直至占有该资源的进程用毕释放。 -
请求和保持条件
指进程已经保持至少一个资源,但又提出了新的资源请求,而该资源又已被其他进程占有,此时请求进程阻塞,但又对自己已获得的其他资源保持不放。 -
不剥夺条件
指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时自己释放。 -
环路等待条件
指在发生死锁时,必然存在一个进程–资源的环性链,即进程集合{P0,P1,…Pn}中P0正在等待一个P1占用的资源,P1正在等待P2占用的资源,…,pn正在等待已被P0占用的资源。
2、处理死锁的基本方法
-
预防死锁
设置某些限制条件,破坏四个必要条件中的一个或几个条件 -
避免死锁
在资源的动态分配过程中,用某种方法去阻止系统进入不安全状态 -
检测死锁
-
解除死锁
-
将进程从死锁状态中解脱出来,常用的方法是撤销或挂起一些进程。