进程管理 -银行家算法(假设系统中有三类互斥资源R1 R2 R3 可用资源分别是9,8,5.在T0时刻系统中有P1,P2,P3,P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下所示,)

本文主要是介绍进程管理 -银行家算法(假设系统中有三类互斥资源R1 R2 R3 可用资源分别是9,8,5.在T0时刻系统中有P1,P2,P3,P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下所示,),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

银行家算法的目的

解决死锁问题,也就是旧进程资源不释放,新进程得不到资源。

什么是银行家算法

银行家就理解成放贷的人,放贷的人,是需要通过放贷赚钱的,所以他必须准确的把握放出去的钱能不能收回来,因为众所周知,有很多老赖,拖着钱不还,甚至自杀,携款潜逃,所以放贷的人必须确保钱能收回盈利,因为银行家自己的钱也是有限的,他要有资源,给更多对他有利的人放贷。操作系统就是一个银行家,它有很多资源,也有很多进程向他申请资源,所以操作系统必须管控好这些资源,避免造成死锁。

银行家算法的具体规则

1.当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳进该进程
2.进程可以分期请求资源,但请求的总数不能超过最大需求量
3.当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间内得到资源

具体例子:
假设系统中有三类互斥资源R1 R2 R3 可用资源分别是9,8,5.在T0时刻系统中有P1,P2,P3,P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下所示,如果进程按 序列执行,那么系统状态是绝对安全。

这个很好算,在图片右侧有已经分配好的资源数,所以我们得先计算,系统还剩下多少资源。
R1: 9-1-2-2-1-1=2
R2: 8-2-1-1-2-1=1
R3: 5-1-1-3=0

而P1还缺 5个R1 3 R2 1R3 A选项排除
P2还缺 1个R2 可先走R2
P4还缺 1个R3 但是R3已经没了 所以D排除

所以先走P2 P2执行完空闲资源变成
R1:4 R2:3 R3:1 此时走P1以及资源不足,所以C排除,答案选B

在这里插入图片描述

这篇关于进程管理 -银行家算法(假设系统中有三类互斥资源R1 R2 R3 可用资源分别是9,8,5.在T0时刻系统中有P1,P2,P3,P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下所示,)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/288583

相关文章

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

Linux环境变量&&进程地址空间详解

《Linux环境变量&&进程地址空间详解》本文介绍了Linux环境变量、命令行参数、进程地址空间以及Linux内核进程调度队列的相关知识,环境变量是系统运行环境的参数,命令行参数用于传递给程序的参数,... 目录一、初步认识环境变量1.1常见的环境变量1.2环境变量的基本概念二、命令行参数2.1通过命令编程

Linux之进程状态&&进程优先级详解

《Linux之进程状态&&进程优先级详解》文章介绍了操作系统中进程的状态,包括运行状态、阻塞状态和挂起状态,并详细解释了Linux下进程的具体状态及其管理,此外,文章还讨论了进程的优先级、查看和修改进... 目录一、操作系统的进程状态1.1运行状态1.2阻塞状态1.3挂起二、linux下具体的状态三、进程的

解读静态资源访问static-locations和static-path-pattern

《解读静态资源访问static-locations和static-path-pattern》本文主要介绍了SpringBoot中静态资源的配置和访问方式,包括静态资源的默认前缀、默认地址、目录结构、访... 目录静态资源访问static-locations和static-path-pattern静态资源配置

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.