死锁的原因
2016-03-14 10:07
295 查看
产生死锁的原因主要是:
(1) 因为系统资源不足。
(2) 进程运行推进的顺序不合适。
(3) 资源分配不当等。
如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则
就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。
产生死锁的四个必要条件:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之
一不满足,就不会发生死锁。
(1) 因为系统资源不足。
(2) 进程运行推进的顺序不合适。
(3) 资源分配不当等。
如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则
就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。
产生死锁的四个必要条件:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之
一不满足,就不会发生死锁。
相关文章推荐
- Eclipse启动不了问题总结
- View的绘制流程
- Watch App 与 iOS App 之间进行数据共享
- SQL Server常用技巧
- spoj COT2 - Count on a tree II 树上莫队
- 关于即时通讯的一点记录
- 九度题目1438最小公倍数
- warning: directory not found for option
- Zend Framework自定义Helper类相关注意事项总结
- WebApi接口测试工具:WebApiTestClient
- DB理论--数据库的最简单实现
- chmod()函数和fchmod()函数,open()函数和creat()函数,close()函数,umask命令
- read()函数,write()函数,lseek()函数
- jquery 获取某元素的兄弟元素
- int argc, char *argv[] 的使用
- dedecms友情链接flink的调用方法
- myeclipse Available Memory is low问题解决方法
- 设计模式:抽象工厂模式
- 【Python学习笔记】macosx 10.11 python pip install 出现错误OSError: [Errno 1] Operation not permitted:
- caffe中mnist数据集的运行