操作系统银行家算法
创始人
2024-02-16 06:56:59
0次

文章目录

  • 问题描述
  • 问题回答一
  • 问题回答二


问题描述

多个资源的银行家算法习题
银行家算法中,若出现下述的资源分配情况:

进程AllocatedNeedAvailable
P00 0 3 20 0 1 21 6 2 2
P11 0 0 01 7 5 0
P21 3 5 42 3 5 6
P30 3 3 20 6 5 2
P40 0 1 40 6 5 6

问:

  1. 用银行家算法判断该状态是否安全?
  2. 如果P2请求(0,0,0,1),能否批准分配资源?

问题回答一

此时通过剩余资源计算是否有安全序列来判断:

进程workneedallocationwork+allocationfinish
P01 6 2 20 0 1 20 0 3 21 6 5 4ture
P31 6 5 40 6 5 20 3 3 21 9 8 6ture
P41 9 8 60 6 5 60 0 1 41 9 9 10ture
P11 9 9 101 7 5 01 0 0 02 9 9 10ture
P22 9 9 102 3 5 61 3 5 43 12 14 14ture

在计算过程中对 available 和 need 计算可以发现有多个安全序列,此处只选取一例,可以找到安全序列{P0, P3,P4,P1,P2},因此,此时系统是安全的。


问题回答二

由于 Request(0, 0, 0, 1)<= Need(2,3,5 ,6),
         Request(0, 0, 0, 1)<=Available(1,6, 2, 1)
因此可以先假定为P2分配资源,此时的资源变化情况如图:

进程AllocatedNeedAvailable
P00 0 3 20 0 1 21 6 2 1
P11 0 0 01 7 5 0
P21 3 5 52 3 5 5
P30 3 3 20 6 5 2
P40 0 1 40 6 5 6

此时对这一时刻的安全性进行检查,会发现:
此时Available中的资源,无法满足各个进程所需,故没有一个安全序列,所以不可以分配。

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...