操作系统——利用银行家算法避免死锁

.简介

银行家算法时最有代表性的避免死锁的算法,通过进程事先声明所需资源最大量,在系统分配资源前计算此次分配资源的安全性,若分配导致系统进入不安全状态,则等待,否则进行分配。

.数据结构

Available: array[1…m]of integer; //系统可用资源
Claim: array[1…n,1…m]of integer; //进程最大需求
Allocation: array[1…n,1…m]of integer; //当前分配
Need: array[1…n,1…m]of integer; //尚需资源
Request: array[1…n,1…m]of integer; //当前请求

临时变量:
Work: array[1…m]of integer;
Finish: array[1…n]of boolean;

设X,Y为下标1…l的一维数组:
X<=Y <—>j (1<=j<=l), X[j]Y[j]
X:=Y <—>j (1<=j<=l), X[j]:=Y[j]
X:=c <—>j (1<=j<=l), X[j]:=c
X±Y <—>j (1<=j<=l), X[j]±Y[j]

.资源分配

在这里插入图片描述

.安全性检测

在这里插入图片描述

.银行家算法的保守性

可能银行家算法不安全,但进程不一定死锁。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值