死锁产生的原因,死锁产生的必要条件是什么,如何预防死锁,如何避免死锁,死锁定理?
死锁产生的
原因
:
1)竞争资源;
2)进程推进顺序不当。 死锁产生的
必要条件
: (1)
互斥条件
:一个资源一次只能被一个进程所使用,即是排它性使用。 (2)
不剥夺条件
:一个资源仅能被占有它的进程所释放,而不能被别的进程强占。 (3)
请求与保持条件
:进程已经保持了至少一个资源,但又提出了新的资源要求,而该资源又已被其它进程占有,此时请求进程阻塞,但又对已经获得的其它资源保持不放。 (4)
环路等待条件
:当每类资源只有一个时,在发生死锁时,必然存在一个进程—资源的环形链。
预防死锁:破坏四个必要条件之一。 死锁的避免:银行家算法,该方法允许进程动态地申请资源,系统在进行资源分配之前,先计算资源分配的安全性。若此次分配不会导致系统从安全状态向不安全状态转换,便可将资源分配给进程;否则不分配资源,进程必须阻塞等待,从而避免发生死锁。