一、什么是死锁?
当两个或两个以上的进程同时执行时,因为竞争一个资源或彼此通信时产生的一种阻塞现象,如果没有外力的情况下,他们将一直处于互相等待的状态,不能继续推进下去,这种情况称为死锁。
二、产生死锁的原因:(两个)
1. 对共享资源的竞争 2. 进程推进顺序不当
三、产生死锁的四个必要条件:(四个条件中任意一个条件不满足都不会产生死锁)
1. 互斥条件 2. 请求与保持条件 3. 不可剥夺条件 4. 循环等待条件
四、死锁的避免与预防:
死锁避免的基本思想:系统会将进程发出的每一个满足资源申请的系统进行检查,根据检查的结果判断是否会产生死锁,会的话就不分配资源,不会产生死锁就分配资源。
我们可以通过产生死锁的四个原因进行避免、预防和解决死锁。只要打破四个条件中的任意一个条件就可以。
1. 打破互斥条件 2. 打破请求与保持条件 3. 打破不可剥夺条件 4. 打破循环等待条件