概念:
一组竞争系统资源或相互通信的进程间相互的“永久”阻塞。当一组进程中的所有进程都在等待一个事件(等待请求资源的释放)而只有在进程集合中的其他阻塞的进程才可以触发该事件,这时称一组进程死锁
百度百科
产生死锁的原因
1.竞争资源引起进程死锁
1)竞争不可剥夺资源
2)竞争临时资源
2.进程推进顺序不当引起死锁
1) 进程推进顺序非法
产生死锁的必要条件
1、互斥
一次只有一个进程可以使用一个资源。其他进程不能访问已分配给其他进程的资源
2、占有且等待
当一个进程在等待分配得到其他资源时,其继续占有已分配得到的资源
3、非抢占
不能强行抢占进程中已占有的资源
4、循环等待
存在一个封闭的进程链,使得每个资源至少占有此链中下一个进程所需要的一个资源
前三个条件是死锁存在的必要条件而非充分条件,第四个条件是前三个条件的潜在结果