下载 >  开发技术 >  C++ > c++银行家算法.rar
3

c++银行家算法.rar

c++银行家算法.rarc++银行家算法.rarc++银行家算法.rarc++银行家算法.rarc++银行家算法.rarc++银行家算法.rarc++银行家算法.rarc++银行家算法.rarc++银行家算法.rar
2011-11-16 上传大小:1008KB
分享
收藏 举报

评论 共4条

mrshero 程序不完整
2012-12-14
回复
purplefade 程序不完整
2012-06-24
回复
qq745639151 程序并不是完整的,没有实现安全性算法
2012-05-22
回复
kangdacompany 程序不完整,实现了部分功能
2012-03-15
回复
银行家算法 c++实现(代码+报告)

本文件中,用c++代码具体实现了银行家算法,并配有实验报告详述。

立即下载
银行家算法实验报告(C++版)

有关银行家算法的实验报告(C++版) 支持从文件中读入数据 有分析,有总结,有完成的进度等。

立即下载
银行家算法C++实现(穷举所有安全序列)

本人原创 思路:将所有进程全排列 挑选出符合安全算法的序列(首先过滤掉首进程无法分配资源的)界面友好 输出结果用文件存储 编译环境VS2005

立即下载
银行家算法的C++实现

#pragma once #include "Processor.h" #include <iostream> using namespace std; class Control { private : Processor * progress; int num; int *Available; public: Control(int n,int *A,int m) { num=n; Available=A; progress=new Processor [num]; string na=""; cout<<"请依次输入各个进程的名字及其资源的最大需求量:"<<endl; for(int i=0;i<num;i++) { cin>>na; int *temp=new int [num]; for(int j=0;j<m;j++) { cin>>temp[j]; } progress[i].Change(m,temp,na); } } void Distribute() { int n=0; while(!Allover()) { int i=n%num; n++; if(!progress[i].Finish) { cout<<"当前进程名:"<<progress[i].name<<endl; progress[i].Request(); cout<<"资源请求:"; for(int j=0;j<progress[i].num;j++) { cout<<progress[i].Req[j]<<" "; } cout<<"资源需要:"; for(int j=0;j<progress[i].num;j++) { cout<<progress[i].Need[j]<<" "; } cout<<endl; if(Finderror(i)) { for(int j=0;j<progress[i].num;j++) { Available[j]=Available[j]-progress[i].Req[j]; progress[i].Allocation[j]=progress[i].Allocation[j]+progress[i].Req[j]; progress[i].Need[j]=progress[i].Need[j]-progress[i].Req[j]; } if(Isover(i)) { progress[i].Finish=true; for(int k=0;k<progress[i].num;k++) { Available[k]=Available[k]+progress[i].Max[k]; } cout<<progress[i].name<<"进程运行结束!"<<endl; } if(!Detecting()) { for(int j=0;j<progress[i].num;j++) { Available[j]=Available[j]+progress[i].Req[j]; progress[i].Allocation[j]=progress[i].Allocation[j]-progress[i].Req[j]; progress[i].Need[j]=progress[i].Need[j]+progress[i].Req[j]; } cout<<"会出现死锁,请求被驳回。进程被暂停!执行下一进程……"<<endl; } } else { cout<<"请求资源出错!进程被暂停!执行下一进程……"<<endl; } } } cout<<"进程全部运行结束!"<<endl; } bool Finderror(int n)//判断请求是否错误 { for(int i=0;i<progress[n].num;i++) { if(progress[n].Need[i]<progress[n].Req[i]) { return false; } } return true; } bool Detecting()//死锁检测 { string name=""; int *Work=new int [progress[0].num]; bool *Finish=new bool [num]; for(int i=0;i<progress[0].num;i++) { Work[i]=Available[i]; } for(int i=0;i<num;i++) { Finish[i]=progress[i].Finish; } int m=num; int n=0; while(m) { int temp=n%num; if(!Finish[temp]) { if(compare(temp,Work)) { Finish[temp]=true; name=name+progress[temp].name+" "; for(int i=0;i<progress[0].num;i++) { Work[i]=Work[i]+progress[temp].Allocation[i]; } m=num; } } n++; m--; } for(int i=0;i<num;i++) { if(!Finish[i]) { return false; } } cout<<"安全序列:"<<name<<endl; return true; } bool compare(int n,int *Work)// { for(int i=0;i<progress[n].num;i++) { if(progress[n].Need[i]>Work[i]) { return false; } } return true; } bool Isover(int n)//判断进程是否可以执行结束 { for(int i=0;i<progress[n].num;i++) { if(progress[n].Allocation[i]!=progress[n].Max[i]) { return false; } } return true; } bool Allover()//判断所有进程是否已执行结束 { for(int i=0;i<num;i++) { if(!progress[i].Finish) { return false; } } return true; } void Display(int n,int * temp) { for(int i=0;i<n;i++) { cout<<temp[i]<<" "; } } public: ~Control(void) { } }; 环境:Visual Studio 2005

立即下载
银行家算法 C++

用C++写的银行家算法问题,利用文档输入初始值,例子遵循西安电子科技大学出版社 操作系统 汤小丹

立即下载
操作系统 银行家算法 C++

通过实例模拟银行家算法实现死锁预防,即输入实例数据后,能够使用银行家算法判断资源分配后是否存在安全序列。

立即下载
银行家算法C++程序

实现操作系统中的银行家算法用c++编写,易于理解银行家算法

立即下载
银行家算法c++源代码

银行家算法c++源代码

立即下载
银行家算法(C++)源代码

进程的并发于死锁之银行家算法,Dijkstra把系统比作一个银行家,它占有有限资源。通过银行家算法来给资源请求的进程分配资源,以避免资源占用发生死锁。

立即下载
银行家算法C++实现

银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但是银行家算法统在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。为实现银行家算法,系统必须设置若干数据结构。 1)可利用资源向量Available 是个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目。如果Available[j]=K,则表示系统中现有Rj类资源K个。 2)最大需求矩阵Max 这是一个n×m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果Max[i,j]=K,则表示进程i需要Rj类资源的最大数目为K。 3)分配矩阵Allocation 这也是一个n×m的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。如果Allocation[i,j]=K,则表示进程i当前已分得Rj类资源的 数目为K。 4)需求矩阵Need。 这也是一个n×m的矩阵,用以表示每一个进程尚需的各类资源数。如果Need[i,j]=K,则表示进程i还需要Rj类资源K个,方能完成其任务。 Need[i,j]=Max[i,j]-Allocation[i,j]

立即下载
银行家算法源代码(操作系统)银行家算法

银行家算法用c语言写的!希望对你的学习有用,不会写程序我们可以参考,但这只是开始我们要写下去,坚持!

立即下载
银行家算法简单实现(多线程 VC)

用多线程模拟多进程实现银行家算法,或者不是最好,但是有效,程序写的较乱

立即下载
实现银行家算法(有界面 )

仿真模拟银行家算法对死锁的避免。对于进程死锁的避免问题,分为两种状态:安全状态和非安全状态。在避免死锁的方法中,允许进程动态地申请资源分配之前,应先计算此次资源分配的安全性。若此次分配不会导致系统进入不安全状态,则将资源分配给进程;否则,令进程等待。 所谓安全状态是指系统能按某种进程顺序,来为每个进程pi分配所需的资源,直至满足每个进程对资源的最大需求,使每个进程都可顺利地完成。如果系统无法找到这样一个序列,则系统处于不安全状态。只要系统处于安全状态,系统便可避免进入死锁状态。因此避免死锁的实质在于:系统在进行资源分配时,如何使系统不进入不安全状态。银行家算法就是一种最有代表性的避免死锁的算法。

立即下载
银行家算法(c语言代码)

这是我参考了很多的同类代码后,自己写的一个实现银行家算法以及随机分配算法的c语言代码。这个代码符合操作系统课程设计有关银行家算法的实现。这是我的老师验收之后,并且修改过后的代码。欢迎大家下载。这个代码简单易懂,不复杂,适合大多数人使用。代码内注释较详细,更加方便读懂程序。

立即下载
用C++实现银行家算法

因为考虑到银行家算法主要是对数组的运算,所以选择了C++而没有选择JAVA

立即下载
银行家算法代码c++

银行家算法代码 用C语言编写一个简单的银行家算法模拟程序,用银行家算法实现资源分配。程序能模拟多个进程共享多种资源的情形。进程可动态地申请资源,系统按各进程的申请动态地分配资源。要求程序具有显示和打印各进程的某一时刻的资源分配表和安全序列;显示和打印各进程依次要求申请的资源数量以及为某进程分配资源后的有关资源数据的情况。

立即下载
资源分配和管理的银行家算法

eclipse环境下开发的java资源分配和管理的银行家算法,为操作系统课程实验的程序代码

立即下载
操作系统课程设计之银行家算法.rar

操作系统课程设计之银行家算法.rar操作系统课程设计之银行家算法.rar

立即下载
银行家算法 安全性算法 C++源代码

银行家算法 安全性算法 C++ 源代码 操作系统实验

立即下载
银行家算法(代码+实验报告)

本实验要求设计并实现银行家算法。银行家算法是死锁避免的经典算法,其核心思想是:进程动态地申请资源,每次申请资源时系统都执行安全状态检查算法判断本次申请是否会造成系统处于不安全状态,如果不安全则阻塞进程;如果安全状态,则完成资源分配。 安全状态检查算法的思想是找到一个安全序列,使所有进程都能执行完毕。如果找到,则处于安全状态,否则为不安全状态。

立即下载
关闭
img

spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
点击完成任务获取下载码
输入下载码
为了良好体验,不建议使用迅雷下载
img

c++银行家算法.rar

会员到期时间: 剩余下载个数: 剩余C币: 剩余积分:0
为了良好体验,不建议使用迅雷下载
VIP下载
您今日下载次数已达上限(为了良好下载体验及使用,每位用户24小时之内最多可下载20个资源)

积分不足!

资源所需积分/C币 当前拥有积分
您可以选择
开通VIP
4000万
程序员的必选
600万
绿色安全资源
现在开通
立省522元
或者
购买C币兑换积分 C币抽奖
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
为了良好体验,不建议使用迅雷下载
确认下载
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
为了良好体验,不建议使用迅雷下载
VIP和C币套餐优惠
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
确认下载
下载
您还未下载过该资源
无法举报自己的资源

兑换成功

你当前的下载分为234开始下载资源
你还不是VIP会员
开通VIP会员权限,免积分下载
立即开通

你下载资源过于频繁,请输入验证码

您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:webmaster@csdn.net!

举报

若举报审核通过,可返还被扣除的积分

  • 举报人:
  • 被举报人:
  • *类型:
    • *投诉人姓名:
    • *投诉人联系方式:
    • *版权证明:
  • *详细原因: