解决僵局的四种基本方法

1.防止死锁:设置一些限制,破坏导致死锁的必要条件

2、防止死锁:在资源分配期间,使用某种方法防止系统进入不安全状态,从而避免出现死锁。

3、死锁检测:允许出现死锁,但在系统检测后采取一些措施消除死锁。

4、解除死锁:该方法与死锁检测一起使用

僵局介绍

死锁是两个或更多进程在执行过程中由于竞争资源或相互通信而产生的阻塞现象,没有外力就无法推进。此时,系统处于死锁状态,或者系统出现死锁,这种相互等待的过程称为死锁过程。

生成条件

进程运行时可能会出现死锁,但死锁的发生也必须有特定的条件,死锁的发生必须有以下四个必要条件:

1)互不相容条件:指流程独占使用分配的资源。也就是说,在一段时间内,只有一个进程使用资源。此时,如果存在请求资源的其他进程,请求者可以等待拥有资源的进程被释放。

2)请求和保留条件:如果流程拥有一个或多个资源,但提出了已被其他流程占用的新资源请求,则请求流程将被阻止,但对于已获得的其他资源,请求流程将保持不变。

3)不剥夺条件:指流程已经获得的资源。不使用前不能被剥夺,只有在使用结束时才能自行释放。

4)循环等待条件:发生死锁时,进程——资源的环链,即进程集{P0,P1,P2,Pn}上的P0应该在等待P1占用的资源。P1正在等待P2占用的资源.Pn已经在等待P0占用的资源。

相关推荐