2.4.3 避免死锁(银行家算法)——操作系统笔记

银行家算法是防止死锁的一种策略,通过预先判断资源分配是否会导致不安全状态来避免死锁。它包括检查进程最大需求、系统资源剩余情况、试探分配及安全性检查等步骤,确保能找到至少一个安全序列使所有进程能顺利完成。
摘要由CSDN通过智能技术生成


1. 什么是安全序列

  • 所谓安全序列,就是指如果系统按照这种序列分配资源,则每个进程都能顺利完成。只要能找出一个安全序列,系统就是安全状态。当然,安全序列可能有多个
  • 比如:银行家借钱:
    在这里插入图片描述
  • 如果分配了资源之后,系统中找不出任何一个安全序列,系统就进入了不安全状态。这就意味着之后可能所有进程都无法顺利的执行下去。
  • 如果系统处于安全状态,就一定不会发生死锁。如果系统进入不安全状态,就可能发生死锁。
  • 因此在分配资源之前预先判断是否会进入不安全状态,就是“银行家算法”的核心思想。

2. 银行家算法

  • 核心思想:在进程提出资源申请时,先预判断此次分配是否会导致系统进入不安全状态。如果会进入不安全状态,就暂时不答应这次请求,让该进程先阻塞等待。

  • 数据结构:

    Max:n * m 矩阵表示各进程对资源的最大需求数
    Allocation:n * m 矩阵表示已经给各进程最分配了多少资源
    Need &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值