什么是死锁
来源:互联网 发布:网络格斗 编辑:程序博客网 时间:2024/05/20 08:27
进程死锁,它是操作系统或系统软件运行的一种状态:在多任务系统下,当一个或多个进程等待系统资源,而资源又被进程本身或其他进程占用时,就形成了死锁。
产生死锁的原因:
①系统资源不足;
②进程运行推进的顺序不合适;
③资源分配不当等。
产生死锁的四个必要条件:
①互斥条件:一个资源每次只能被一个进程使用;
②请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放;
③不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺;
④循环等待条件:若干进程之间形成一种头尾相连的循环等待资源关系。
避免死锁的方法:
①有序的资源分配法;
②银行家算法。
解决死锁:
①进行系统的重新启动(最简单粗暴)
②撤销进程,剥夺资源
银行家算法
银行家算法是一种最有代表性的避免死锁的算法。
我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。
阅读全文
0 0
- 什么是死锁
- 什么是死锁
- 什么是死锁?
- 什么是死锁?
- 什么是死锁
- 什么是死锁
- 什么是死锁?如何防止死锁?
- 什么是死锁?如何避免死锁?
- 什么是死锁?如何避免死锁!
- 什么是死锁?如何避免死锁?
- 什么是死锁,如何避免死锁?
- 什么是死锁?如何避免死锁?
- 什么是死锁?如何避免死锁?
- 什么是死锁?如何避免死锁?
- 什么是死锁?如何避免死锁?
- 什么是死锁?如何避免死锁?
- 什么是死锁?如何避免死锁?
- 什么是死锁?如何避免?
- 网络地址转换NAT原理及其作用
- 多排序的链表类型
- SQL中left join,right join,inner join
- 给 22 岁的自己六点建议
- Android开发资源(二)
- 什么是死锁
- Git 基础
- 底部始终在文档末尾,当文档较长时跟随在文档末尾,当文档较短时在窗口底部
- 【Scikit-Learn 中文文档】协方差估计 / 经验协方差 / 收敛协方差 / 稀疏逆协方差 / Robust 协方差估计
- selenium 判断元素是否存在
- 如何在Github中记录你的贡献值
- Maven项目错误解决小结
- Java浮点数运算
- 在websphere中修改web-inf下的配置文件不起作用