一. 什么是死锁?安全
若是一个进程集合里面的每一个进程都在等待这个集合中的其余一个进程(包括自身)才能继续往下执行,若无外力他们将没法推动,这种状况就是死锁,处于死锁状态的进程称为死锁进程进程
二. 死锁产生的缘由?内存
1.因竞争资源发生死锁 现象:系统中供多个进程共享的资源的数目不足以知足所有进程的须要时,就会引发对诸资源的竞争而发生死锁现象资源
(1)可剥夺资源和不可剥夺资源:可剥夺资源是指某进程在得到该类资源时,该资源一样能够被其余进程或系统剥夺,不可剥夺资源是指当系统把该类资源分配给某个进程时,不能强制收回,只能在该进程使用完成后自动释放 请求
(2)竞争不可剥夺资源:系统中不可剥夺资源的数目不足以知足诸进程运行的要求,则发生在运行进程中,不一样的进程因争夺这些资源陷入僵局。方法
举例说明: 资源A,B; 进程C,D集合
资源A,B都是不可剥夺资源:一个进程申请了以后,不能强制收回,只能进程结束以后自动释放。内存就是可剥夺资源阻塞
进程C申请了资源A,进程D申请了资源B。系统
接下来C的操做用到资源B,D的资源用到资源A。可是C,D都得不到接下来的资源,那么就引起了死锁。
(3)竞争临时资源
2.进程推动顺序不当发生死锁
三. 产生死锁的四个必要条件?
(1)互斥条件:进程对所分配到的资源不容许其余进程进行访问,若其余进程访问该资源,只能等待,直至占有该资源的进程使用完成后释放该资源
(2)请求和保持条件:进程得到必定的资源以后,又对其余资源发出请求,可是该资源可能被其余进程占有,此事请求阻塞,但又对本身得到的资源保持不放
(3)不可剥夺条件:是指进程已得到的资源,在未完成使用以前,不可被剥夺,只能在使用完后本身释放
(4)环路等待条件:是指进程发生死锁后,必然存在一个进程--资源之间的环形链
四. 处理死锁的基本方法
1.预防死锁:经过设置一些限制条件,去破坏产生死锁的必要条件
2.避免死锁:在资源分配过程当中,使用某种方法避免系统进入不安全的状态,从而避免发生死锁
3.检测死锁:容许死锁的发生,可是经过系统的检测以后,采起一些措施,将死锁清除掉
4.解除死锁:该方法与检测死锁配合使用