银行家算法

  • 在讲银行家算法之前,首先介绍相关概念:
  1. 可利用资源向量Available:代表各类可利用的资源数目
  2. 最大需求矩阵Max:定义了系统中各个进程需要用到的各类资源的最大需求
  3. 分配矩阵Allocation:定义系统中各个进程已分配的资源总数
  4. 需求矩阵Need:定义各个进程还需要的资源总数。Need=Max-Allocation
  5. 工作向量Work:表示系统当前可提供给进程继续运行所需的资源数目


  • 安全性算法操作流程
  1. Work=初始Available
  2. 依次检查进程是否满足Max中各资源
  3. 依次类推


  • 银行家算法操作流程
  1. Request是进程P的请求向量,发出资源请求后执行下列操作。
  2. 如果Request<=Need,下一步;否则认为出错(所需资源超过最大资源数)。
  3. 如果Request<=Available,下一步;否则认为出错(系统中无足够资源)。
  4. 尝试分配资源给该进程,并重新修改数据结构。

Available=Available-Request

Allocation=Allocation+Request

Need=Need-Request

  1. 执行安全性算法,检查是否处于安全状态,若处于安全状态则可以分配,否则本次分配作废。


  • 例题

银行家算法

该题(1)问考察的知识点即安全性算法

银行家算法


*欢迎大家讨论,也欢迎大佬批评指正!

上一篇:云效峰会——Dapr在阿里云云原生的实践


下一篇:智能家居入口“乱战” 2016年都有哪些?