死锁的产生与解除
来源:互联网 发布:淘宝pc端首页代码装修 编辑:程序博客网 时间:2024/04/29 23:54
死锁的概念:
如果一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么改组进程是死锁的。
死锁的常见表现:
死锁不仅会发生多个进程中,也会发生在一个进程中。
(1)多进程死锁:有进程A,进程B,进程A拥有资源1,需要请求正在被进程B占有的资源2。而进程B拥有资源2,请求正在被进程A战友的资源1。两个进程都在等待对方释放资源后请求该资源,而相互僵持,陷入死锁。
(2)单进程死锁:进程A拥有资源1,而它又在请求资源1,而它所请求的资源1必须等待该资源使用完毕得到释放后才可被请求。这样,就陷入了自己的死锁。
产生死锁的原因:
(1)进程推进顺序不当造成死锁。
(2)竞争不可抢占性资源引起死锁。
(3)竞争可消耗性资源引起死锁。
死锁的四个必要条件(四个条件四者不可缺一):
(1)互斥条件。某段时间内,一个资源一次只能被一个进程访问。
(2)请求和保持条件。进程A已经拥有至少一个资源,此时又去申请其他资源,而该资源又正在被进程使用,此时请求进程阻塞,但对自己已经获得的资源保持不放。
(3)不可抢占资源。进程已获得的资源在未使用完不能被抢占,只能在自己使用完时由自己释放。
(4)循环等待序列。存在一个循环等待序列P0P1P2……Pn,P0请求正在被进程P1占有的资源,P1请求正在被P2占有的资源……Pn正在请求被进程P0占有的资源。
解除死锁的两种方法:
(1)终止(或撤销)进程。终止(或撤销)系统中的一个或多个死锁进程,直至打破循环环路,使系统从死锁状态中解除出来。
(2)抢占资源。从一个或多个进程中抢占足够数量的资源,分配给死锁进程,以打破死锁状态。
0 0
- 死锁的产生与解除
- 死锁的产生、解除与预防
- 死锁产生的原因和必要条件及预防死锁的方法及死锁的检测与解除
- 死锁产生的原因和必要条件及预防死锁的方法及死锁的检测与解除
- 死锁产生的原因和必要条件及预防死锁的方法及死锁的检测与解除
- 死锁产生的4个必要条件,如何检测,解除死锁
- 死锁产生的4个必要条件,如何检测,解除死锁
- 数据库死锁的预防与解除
- 数据库死锁的预防与解除
- 死锁的产生与处理
- 死锁的产生与检测
- 死锁的产生与预防
- 死锁的产生与解决
- 死锁的产生与解决
- 死锁的解除
- 操作系统(十三)------死锁的检测与解除
- Atitit.线程 死锁 跑飞 的检测与自动解除 与手动解除死锁 java c# .net php javascript.
- 构成死锁的必要条件是什么?如何检测死锁,解除死锁?
- ContentProvider数据库共享之——读写权限与数据监听
- 简单的2048的实现
- 解决ISE使用过程中出现 _SN.exe的问题
- 复选框CheckBox
- DataInputStream和DataOutputStream
- 死锁的产生与解除
- HDOJ 1002 A + B Problem II【大数,基础】
- 使用jstack和TDA进行java线程dump分析
- zzuli oj 1204: 剔除相关数
- 直播“CoSoLoMo”战略是地方电视台重大历史机遇
- 词汇的积累 —— 同义反复
- spring技术框架基础知识二(静态)动态代理
- android:drawable/text_cursor_material has unresolved theme attributes
- hihocoder-#1338 : A Game