操作系统中关于银行家算法的java代码,采用输入的方式判断进程分配资源是否合理,亲测可用。主要是之前的好多银行家算法都是特定的数组大小,感觉用起来十分别扭,所以自己写了个银行家算法,代码总共500多行。
1
银行家算法详解:采用银行家算法来实现一个n 个并发进程共享m 个系统资源的系统。进程可以申请和释放资源,系统可以按照各进程的申请计算是否可以分配给其资源。
2022-03-20 11:50:12 19KB 银行家算法
1
用C语言或C++编写一个简单的银行家算法模拟程序,用银行家算法实现资源分配。程序能模拟多个进程共享多种资源的情况。进程可动态地申请资源,系统按各进程的申请动态地分配资源。要求程序具有显示各进程的某一时刻的资源分配表和安全序列;显示各进程依次要求申请的资源数量以及为某进程分配资源后的有关资源数据的情况。
2021-12-29 02:26:42 3.72MB 操作系统 银行家算法 资源分配 进程
1
里面包含C++源代码(已修改BUG)、可执行文件、详细报告。 目录 1 需求分析 3 1.1 输入的形式和输入值的范围 3 1.2 输出的形式 4 1.3 程序所能达到的功能 5 1.4 测试数据 5 2 概要设计 8 2.1 主程序的流程 8 2.2 数据类型的定义 9 2.3 各程序模块之间的层次(调用)关系 10 3 详细设计 10 3.1 数据类型定义 10 3.2数据初始化 11 3.3 安全性检查 12 3.4 显示系统数据 13 3.5 银行家算法分配资源 14 4 调试分析 16 4.1 设计与实现的分析 16 4.2 算法的时间复杂性和改进设想 17 4.3 实现过程中遇到的主要问题及解决方法 19 4.4 设计过程的经验和体会 20 5 用户使用说明 21 6 测试与运行结果 22
1
一.算法分析: (一)数据结构: 1.可利用资源向量Available 2.最大需求矩阵Max 3.分配矩阵Allocation 4.需求矩阵Need (二)功能介绍: 模拟实现Dijkstra的银行家算法以避免死锁的出现.分两部分组成: 第一部分:银行家算法(扫描) 1.如果Request<=Need,则转向2;否则,出错 2.如果Request<=Available,则转向3,否则等待 3.系统试探分配请求的资源给进程 4.系统执行安全性算法 第二部分:安全性算法 1.设置两个向量 (1).工作向量:Work=Available(表示系统可提供给进程继续运行所需要的各类资源数目 (2).Finish:表示系统是否有足够资源分配给进程(True:有;False:没有).初始化为False 2.若Finish[i]=False&&Need;<=Work,则执行3;否则执行4(I为资源类别) 3.进程P获得第i类资源,则顺利执行直至完成!并释放资源: Work=Work+Allocation;Finish[i]=true;转2 4.若所有进程的Finish[i]=true,则表示系统安全;否则,不安全!
2021-11-28 11:00:37 7KB 操作系统 银行家算法 代码实现
1
银行家算法 int Max[100][100]={0};//各进程所需各类资源的最大需求 int Avaliable[100]={0};//系统可用资源 char name[100]={0};//资源的名称 int Allocation[100][100]={0};//系统已分配资源 int Need[100][100]={0};//还需要资源 int Request[100]={0};//请求资源向量 int temp[100]={0};//存放安全序列 int Work[100]={0};//存放系统可提供资源 int M=100;//作业的最大数为100 int N=100;//资源的最大数为100 void showdata()//显示资源矩阵
2021-11-09 13:10:54 3KB 银行家算法
1
算法流程图,运行环境和编程工具,模块划分及关系,模板流程图,程序源代码,测试结果
2021-09-09 20:16:10 753KB 操作系统 银行家算法 代码
1
南昌大学操作系统实验报告,编程实现银行家算法,有流程图,实现代码,和运行结果截图及实验小结体会,对实验的建议。我大二做过的实验报告。
2019-12-21 20:01:51 153KB 实验报告 数据结构 银行家算法 代码
1