本文主要是介绍死锁的定义以及产生死锁的必要条件,死锁处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
死锁的定义:如果一组进程中的每个进程都在等待仅由该组进程中的其他进程才能引发的事件发生,那么该组进程是死锁的。
。产生死锁的必要条件:
1.互斥条件:进程对所分配到的资源进行排他性使用,即在一段时间内,某资源只能被一个进程占用。
2.请求和保持条件:进程已经占有了至少一个资源,但又提出了新的资源请求,而该被请求的资源已经被其他进程占有,此时请求进程被阻塞,同时其对自己已经占有的资源保持不放。
3.不可抢占条件:进程已经获得的资源在未使用完之前不能被抢占,只能在进程使用完毕由其自己释放。
4.循环等待条件:指在发生死锁时,必然存在一个“进程-资源”循环链,即一个进程集合中的前一个进程在等待被后一个进程所占有的资源。
。死锁的处理方法:
1.预防死锁:通过设置某些限制条件,去破坏死锁的4个必要条件的其中几个。
2.避免死锁:在资源的动态分配过程中,用某种方法防止系统进入不安全状态,从而避免发生死锁。
3。检测死锁;允许进程在运行过程中发生死锁,但可通过检测机构及时的检测出死锁的发生,然后采取适当措施把进程从死锁状态中解脱出来
4.解除死锁:当检测到系统中已发生死锁时就采取相应措施,把进程从死锁状态接触出来,通常采取的措施是撤销一些进程,回收他们的资源,并把资源分配给已处于阻塞状态的进程,使它们继续运行。
这篇关于死锁的定义以及产生死锁的必要条件,死锁处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!