银行家算法

简介: 银行家算法相关概念与题目实操
  • 在讲银行家算法之前,首先介绍相关概念:
  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. 执行安全性算法,检查是否处于安全状态,若处于安全状态则可以分配,否则本次分配作废。


  • 例题

image.png

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

image.png


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

相关文章
|
7月前
|
算法 安全
【操作系统】死锁处理-银行家算法
【操作系统】死锁处理-银行家算法
268 0
|
7月前
|
存储 算法 安全
操作系统:银行家算法
操作系统:银行家算法
174 0
|
7月前
|
算法 安全
死锁相关知识点以及银行家算法(解题详细步骤)
死锁相关知识点以及银行家算法(解题详细步骤)
333 2
|
7月前
|
算法 安全 Java
银行家算法代码
银行家算法代码
110 0
|
算法 安全 C语言
C语言实现的操作系统银行家算法
C语言实现的操作系统银行家算法
270 0
|
算法 安全
【软考学习11】死锁问题和银行家算法
【软考学习11】死锁问题和银行家算法
276 0
|
算法 安全 数据可视化
C语言实现银行家算法
C语言实现银行家算法
178 0
|
算法 安全
银行家算法
银行家算法
|
算法 安全 IDE
操作系统 进程调度-银行家算法实验报告
操作系统 进程调度-银行家算法实验报告
306 0
操作系统 进程调度-银行家算法实验报告
|
算法 安全
操作系统之银行家算法
银行家算法是学习计算机操作系统中最重要的算法之一,银行家算法又称资源分配拒绝法,是用来避免死锁的。
324 1