什么是死锁?其条件是什么?怎样避…
来源:互联网 发布:埃及叙利亚合并知乎 编辑:程序博客网 时间:2024/05/09 04:15
死锁的概念: 在两个或多个并发进程中,如果每个进程持有某种资源而又都等待别的进
程释放它们现在保持着的资源,否则就不能向前推进。此时,每个进程都占用了一定的资源
但是又不能向前推进,称这一组进程产生了死锁。通俗的讲,就是两个或多个进程无止境
的等候着永远不会成立的条件的一种系统状态。
源分配不当。
产生死锁的必要条件: (1)互斥(mutualexclusion) ,一个资源每次只能被一个进程使
用; (2)占有且等待(hold and wait),一个进程因请求资源而阻塞时,对已获得的资源保持
不放; (3)不可抢占(no preemption),进程已获得的资源,在未使用完之前,不能强行剥
夺; (4)环形等待(circular wait),若干进程之间形成一种首尾相接的循环等待资源关系。
这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之
一不满足,就不会发生死锁。
死锁的解除与预防:理解了死锁的原因,尤其是产生死锁的四个必要条件,就可以最大
可能地避免、预防和解除死锁。所以,在系统设计、进程调度等方面注意如何不让这四个
必要条件成立,如何确定资源的合理分配算法,避免进程永久占据系统资源。此外,也要
防止进程在处于等待状态的情况下占用资源。因此,对资源的分配要给予合理的规划。
死锁的处理策略:鸵鸟策略、预防策略、避免策略、检测与解除死锁
0 0
- 什么是死锁?其条件是什么?怎样避…
- 什么是死锁?其条件是什么?怎样避免死锁?
- 什么是死锁?其条件是什么?怎样避免死锁?
- 什么是死锁?它产生的必要的条件是什么?
- 什么是死锁及死锁产生条件和解决办法
- 什么是连接池,其工作原理是什么?
- 什么是连接池,其工作原理是什么?
- Linux_进程死锁?产生条件?产生原因?怎样预防?怎样检测死锁和解除死锁?
- 什么是通货紧缩和通货膨胀?其主要特征是什么〔转〕
- 死锁条件
- 什么是死锁
- 什么是死锁
- 什么是死锁?
- 什么是死锁?
- 什么是死锁
- 什么是死锁
- c# - if 条件中果有多个&& 或 || 条件,其执行顺序是怎样的?
- oracle死锁 怎样杀死死锁!
- 6. 什么是临界区?如何解决冲突?
- Linux 中常用到的命令
- 存储过程是什么?有什么用?有什么…
- 线程是否具有相同的堆栈?dll 是否…
- 什么是缓冲区溢出?有什么危害?其…
- 什么是死锁?其条件是什么?怎样避…
- 排列组合公式/排列组合计算公式
- 二叉树遍历算法
- 浮点数的表示范围
- C语言中函数参数的入栈顺序
- 面向对象和面向过程的区别
- 关联,聚合,组合的区别及C++实现
- c++笔试面试题
- C++经典笔试题及参考答案-趋势科技