死锁之银行家算法

死锁

一、什么是死锁

首先死锁是在多道程序系统进程并发运行背景下产生的概念,串行是不存在死锁这个概念。所谓死锁,是指多个进程因竞争资源而造成的一种僵局(互相等待-> P 1 {P_1} P1申请 P 2 {P_2} P2所拥有的资源进入等待态, P 2 {P_2} P2又申请 P 1 {P_1} P1所拥有的资源进入等待态,然后造成了两个进程互相等待对方释放资源),而若无外力作用,这两个进程都无法向前推进。

二、死锁产生的原因

  1. 互斥条件
  2. 不剥夺条件
  3. 请求并保持条件
  4. 循环等待条件

三、死锁的处理策略

1.死锁预防
  1. 破坏互斥条件
  2. 破坏不剥夺条件
  3. 破坏请求并保持条件
  4. 破坏循环等待条件
2.死锁避免

在资源的动态分配过程中,用某种方法防止系统进入不安全状态,从而避免死锁。

2.1银行家算法

数据结构描述

  1. 可利用资源向量 A v a i l a b l e {Available} Available
  2. 最大需求矩阵 M a x {Max}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值