操作系统综合题之“银行家算法,计算各资源总数和Need还需要数量和解释什么是安全状态以及银行家进阶题(额外提出资源请求计算是否满足)”
一、问题:某系统在某时刻的进程和资源状态如下表所示:
| 进程 |
Allocation(已分配资源数) (A B C D) |
Max(最大需要资源数) (A B C D) |
Avaliable(可用资源数) (A B C D) |
| P1 | 0 0 1 1 | 0 2 2 2 | 1 5 2 0 |
| P2 | 1 1 2 0 | 1 5 4 1 | |
| P3 | 1 3 5 4 | 1 3 6 4 | |
| P4 | 1 3 2 1 | 2 6 4 2 | |
| P5 | 0 0 2 3 | 1 5 4 4 |
用银行家算法回答下列问题:
1.计算该系统中个资源的总数
2.计算Need矩阵的内容
3.解释什么是安全状态
4.如果进程P5提出资源请求(0,4,2,1),这个请求能否被满足?为什么?
5.如果进程P2提出资源请求(0,3,1,0),这个请求能否被满足?为什么?
二、参考答案
1.(A,B,C,D)的总数为(4,12,14,9)
A = 1+1+1+1 =4
B = 1+3+3+5=12
C=1+2+5+2+2+2=14
D=1+4+1+3=9
2.
| 进程 |
Need(还需要资源数) (A B C D) |
| P1 | 0 2 1 1 |
| P2 | 0 4 2 1 |
| P3 | 0 0 1 0 |
| P4 | 1 3 2 1 |
| P5 | 1 5 2 1 |
3.安全状态::若系统能够找到一个进程执行序列,使得系统只要按此序列为每个进程分配资源,就可以保证进程的资源分配和执行顺序完成,此时称系统处于安全状态
4.不能满足,因为P5请求的资源比系统可用资源多,D资源没有
5.能满足,系统为P2分配资源后,仍然可以找到一个安全序列:P3、P1、P2、P4、P5
因为满足了请求所以P2变化了已分配资源数等
| 进程 |
Allocation(已分配资源数) (A B C D) |
Max(最大需要资源数) (A B C D) |
Need(还需要资源数) (A B C D) |
Avaliable(可用资源数) (A B C D) |
顺序 |
| P1 | 0 0 1 1 | 0 2 2 2 | 0 2 1 1 | 3 9 9 4 | 3 |
| P2 | 1 4 3 0 | 1 5 4 1 | 0 1 1 1 | 2 5 6 4 | 2 |
| P3 | 1 3 5 4 | 1 3 6 4 | 0 0 1 0 | 1 5 2 0 | 1 |
| P4 | 1 3 2 1 | 2 6 4 2 | 1 3 2 1 | 3 9 10 5 | 4 |
| P5 | 0 0 2 3 | 1 5 4 4 | 1 5 2 1 | 3 9 12 8 | 5 |
操作系统综合题之“银行家算法,计算各资源总数和Need还需要数量和解释什么是安全状态以及银行家进阶题(额外提出资源请求计算是否满足)”的更多相关文章
- 用python实现银行家算法
编制模拟银行家算法的程序,并以下面给出的例子验证所编写的程序的正确性. 进程 已占资源 最大需求数 资源种类 A B C D A B C D P0 0 0 1 2 0 0 1 2 P1 1 0 0 0 ...
- 【操作系统】银行家算法实现(C语言)
[操作系统]银行家算法实现(C语言) 注意:本人编码水平很菜.算是自己的一个总结.可能会有我还没有发现的bug.如果有人发现后可以指出,不胜感激. 1.银行家算法: 我们可以把操作系统看作是银行家,操 ...
- Round() 四舍五入 js银行家算法(转)
首先问一下round(0.825,2) 返回的结果,大家猜一猜, 首先SQL server 返回的是 0.83 js的返回结果 是0.83,code 如下: var b = 0.825; ...
- 银行家算法java实现
关于银行家算法的理论知识,课本或者百度上有好多资料,我就不再多说了,这里把我最近写的银行家算法的实现带码贴出来. 由于这是我们的一个实验,对系统资源数和进程数都指定了,所以这里也将其指定了,其中系统资 ...
- 操作系统,银行家算法模拟实现(Windows 环境 C++)
计算机操作系统课设需要,写了两个下午的银行家算法(陷在bug里出不来耽误了很多时间),参考计算机操作系统(汤子瀛) 实现过程中不涉及难度较大的算法,仅根据银行家算法的思想和步骤进行实现.以下为详细步骤 ...
- Round() 四舍五入 js银行家算法
首先问一下round(0.825,2) 返回的结果,大家猜一猜, 首先SQL server 返回的是 0.83 js的返回结果 是0.83,code 如下: var b = 0.825; ...
- [OS] 死锁相关知识点以及银行家算法详解
因此我们先来介绍一下死锁: 死锁特征 当出现死锁时,进程永远不能完成,并且系统资源被阻碍使用,阻止了其他作业开始执行.在讨论处理死锁问题的各种方法之前,先深入讨论一下死锁的特征. ·必要条件 (1)互 ...
- 银行家算法之JavaScript实现
上学期有个课程叫做操作系统,期末的时候这课程还有个课程设计,其中有个题目叫做银行家算法. 什么是银行家算法我就不解释了! 看着同学们的设计,大同小异甚至前篇一律. 清一色的控制台程序,清一色的蛋疼输入 ...
- C语言实现 操作系统 银行家算法
/**************************************************** 银行家算法 算法思想: 1. 在多个进程中,挑选资源需求最小的进程Pmin. 可能存在多类资 ...
- java面试题之死锁产生的条件,以及如何避免死锁,银行家算法,产生死锁后如何解决(阿里面试题)
死锁产生的四个必要条件: 互斥:一个资源每次只能被一个进程使用(资源独立) 请求与保持:一个进程因请求资源而阻塞时,对已获得的资源保持不放(不释放锁) 不剥夺:进程已获得的资源,在未使用之前,不能强行 ...
随机推荐
- 【忍者算法】从十字路口相遇到链表交点:探索相交链表问题|LeetCode第160题 相交链表
从十字路口相遇到链表交点:探索相交链表问题 生活中的相遇问题 想象两个人从不同的地方出发,最后在一个十字路口相遇.他们可能走过不同长度的路程,但最终会在同一个点汇合.这就很像我们今天要讨论的相交链表问 ...
- kubernetes 集群中部署 nginx 服务
kubernetes 部署nginx服务 本章节将介绍如何在kubernetes集群中部署一个nginx服务,并且能够对其进行访问. Namespace Namespace是kubernetes系统中 ...
- IPEX几代接口的区别
IPEX共分五代,简单判别IPEX接口是几代的方法是测量直径. IPEX 1代 高度小于3.0mm,端子口径φ2.0 IPEX 2代 高度小于2.1mm,端子口径φ2.0 IPEX ...
- class com.ttsx.activity.item.dao.entity.RoleMenu ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. 报错解决办法
启动项目的时候,有几条WARN警告,如图: 引起原因: 是因为数据表实体类 没有di导致的. 例如: 解决办法: 增加实体id字段!或可以忽略!不影响程序!
- datagrid源码
/** * jQuery EasyUI 1.2.3 * * Licensed under the GPL terms * To use it on other terms please contact ...
- Jupyter Notebook的所有文件ipynb保存下来
前言 如果你想要保存整个 Jupyter Notebook 工作目录,包括所有笔记本和其他相关文件,最直接的方法是将整个文件夹压缩为一个 ZIP 或 TAR 文件. 下载单个文件 压缩文件夹下载 在 ...
- Oracle 强行断开用户连接的方法
1.查找目标用户的当前进程 select sid,serial# from v$session where username='test'; 2.使用上述语句会返回一个进程列表,每行有两个数字,用数字 ...
- Pydantic Mixin:构建可组合的验证系统体系
title: Pydantic Mixin:构建可组合的验证系统体系 date: 2025/3/22 updated: 2025/3/22 author: cmdragon excerpt: Pyda ...
- FFT & NTT & FWT 基础
FFT Part 公式 欧拉公式: \(e^{i\theta}=\cos{\theta}+i\sin{\theta}\) 特殊形式:\(e^{i\pi}=-1\) Begin 一个多项式 \(F=x^ ...
- 【Python】面向对象版学员管理系统
面向对象版学员管理系统 一. 系统需求 使用面向对象编程思想完成学员管理系统的开发,具体如下: 系统要求:学员数据存储在文件中 系统功能:添加学员.删除学员.修改学员信息.查询学员信息.显示所有学员信 ...