• 回答数

    8

  • 浏览数

    299

偶素小cici
首页 > 期刊论文 > 对银行家算法研究论文

8个回答 默认排序
  • 默认排序
  • 按时间排序

水中央1985

已采纳

#include #include #define M 3 //资源的种类数 #define N 5 //进程的个数 void output(int iMax[N][M],int iAllocation[N][M],int iNeed[N][M],int iAvailable[M],char cName[N]); //统一的输出格式 bool safety(int iAllocation[N][M],int iNeed[N][M],int iAvailable[M],char cName[N]); bool banker(int iAllocation[N][M],int iNeed[N][M],int iAvailable[M],char cName[N]); int main() { int i,j; //当前可用每类资源的资源数 int iAvailable[M]=; //系统中N个进程中的每一个进程对M类资源的最大需求 int iMax[N][M]=,,,,}; //iNeed[N][M]每一个进程尚需的各类资源数 //iAllocation[N][M]为系统中每一类资源当前已分配给每一进程的资源数 int iNeed[N][M],iAllocation[N][M]=,,,,}; //进程名 char cName[N]=; bool bExitFlag=true; //退出标记 char ch; //接收选择是否继续提出申请时传进来的值 bool bSafe; //存放安全与否的标志 //计算iNeed[N][M]的值 for(i=0;i>ch; switch(ch) { case 'y': //cout<<"调用银行家算法"; bSafe=banker(iAllocation,iNeed,iAvailable,cName); if (bSafe) //安全,则输出变化后的数据 output(iMax,iAllocation,iNeed,iAvailable,cName); break; case 'n': cout<<"退出。\n"; bExitFlag=false; break; default: cout<<"输入有误,请重新输入:\n"; } } } //输出 void output(int iMax[N][M],int iAllocation[N][M],int iNeed[N][M],int iAvailable[M],char cName[N]) { int i,j; cout<<"\n\t Max \tAllocation\t Need \t Available"<>ch; //定位ch对应的进程名在进程名数组中的位置 loc=locate(cName,ch); //没找到,重新输入 if (loc==-1) cout<<"\n您输入的进程名有误!请重新输入"; //找到,退出循环 else bFlag=false; } //输入提出申请的资源数 cout<<"输入申请各类资源的数量:\n"; for(i=0;i>iRequest[i]; //返回提出申请的进程名对应的下标 return loc; } bool banker(int iAllocation[N][M],int iNeed[N][M],int iAvailable[M],char cName[N]) { }这个是c++的 我的报告

95 评论

可乐狗DOGS

计算机操作系统-电子科技大学

链接:  

计算机操作系统-电子科技大学百度网盘

345 评论

潘朵拉的音乐

计算机导论就是概述一下计算机这门学科要学的内容,重要不重要吧。可能刚开始学习觉得没什么,可是当你学完计算机的全部内容以后发现计算机导论就是大纲。所以这个重要程度,没那么重要,谨代表个人观点。

313 评论

niuzhirong

西安工业大学操作系统课程设计报告课 目:¬¬¬¬ 银行家算法学 院: 计算机科学与工程学院指导教师: 姜虹学 生: 王丽娇班 级: 网络工程080610127完成时间:2010年12月25日操作系统课程设计报告课 目:¬¬¬¬ 银行家算法学 院: 计算机科学与工程学院指导教师: 姜虹学 生: 王丽娇班 级: 网络工程080610127目 录1、项目内容、要求与分组情况总体介绍 22、概要设计 开发工具及环境 任务及需求分析 功能模块设计 工作原理 33、 具体实现 类设计 模块及实现代码介绍 34、运行调试与分析讨论 45、设计体会与小结 66、参考文献 7附录:(源程序) 71、项目内容、要求与分组情况总体介绍项目内容、要求:本次实验的目标是制作一个计算器,可以进行简单的四则运算(加、减、乘、除)。小组的具体分工情况见下表:小组组长 谌江波成员 子项目名称 具体要求谌江波 模块的组合及测试 查找出程序的错误并改正肖权 数字键的注册 将数字键注册监听者,使其功能正常刘达辉 窗口的创建和分配 设计计算器的界面李晓阳 组合其余同学的工作 是程序完整化詹烨刚 编写具体的计算方法 添加运算符号及功能代码2、概要设计开发工具及环境文本编辑器:记事本;运行环境:命令提示符(DOS环境)。 任务及需求分析设计简易计算器程序,实现简单的运算(加减乘除),具体任务如下:1) 计算器窗口界面布局设计;2) 各种计算功能的算法分析;3) 编程实现具体的计算功能;4) 运行测试程序,调试纠正运行错误。5) 调试无误,运行,测试具体算法功能。 功能模块设计计算器的模块设计图如下: 工作原理点击相应的数字键,即会在显示文档中显示该数字。进行相应的运算,首先输入第一个计算数字,然后输入运算符,再输入第二个计算数字,点击“=”按钮即得计算结果。同时,还有归零功能,点击该按钮,显示栏中即可归零。3、 具体实现 类设计类名:jisuanqi作用:功能代码,窗口布局设定public class Calculator extends WindowAdapter{}¬WindowAdapter实现了WindowListener的类,实现了(new WindowAdapter(){});———————————————————————————类名:WindowDestroyer作用:用于退出窗口动作关键代码:class close implements ActionListener {public void actionPerformed(ActionEvent e) {(0);} 模块及实现代码介绍Frame fm = new Frame("简单计算器");for (int i = 0; i <= 16; i++) {b[i] = new Button(ss[i]);}for (int i = 0; i <= 15; i++) {(b[i]);} //创建按钮 并添加到P2b[16].setBackground();txt = new TextField(15);(false);for (int i = 0; i <= 16; i++) {b[i].addActionListener(new buttonlistener());…… }注:此方法主要设置窗口、面板、各个按键。对各个按键进行定义(定义好各按键该实现什么功能)、排布,将各个按键注册到监听器上。———————————————————————————(() + ());if (() == "归零")("");注:该代码使每次进入时的文本都清空———————————————————————————class close implements ActionListener {//退出public void actionPerformed(ActionEvent e) {(0);}注:该方法实现了窗口的关闭4、运行调试与分析讨论调试运行4*5运算,运算过程如下所示:1)命令提示符中运行计算器程序,如下图:2)计算器界面显示,输入第一个运算值“4”,如下图:3)输入运算符“*”,如下图:4)输入第二个运算值“5”,如下图所示:5)点击计算器按钮“=”,得出计算结果。如下图:5、设计体会与小结通过这次课程设计,我们了解到java也是可以分工合作的,虽然最后的整合过程非常麻烦,但是在整合完后,我们发现,课本被翻过很多遍,很多以前不知道的东西就这样豁然开朗了。我们还引用了很多从来没有用过的语句块,大多是从网上找到,然后自己整合进入代码,再实现我们想要的功能。编程是个艰难的过程,很多功能语句都需要上网或者是查其他书籍来查看他们的用法,课本上的东西对我们来说远远不够,我们要把目光放长远一些。这次的课程设计使我对JAVA的许多东西都有了更深一步的了解,以前对自己的要求是看得懂就行,现在才发现,光能看懂是远远不够的,能看懂并不代表你会!只有自己真的亲身体验到了,才会知道。这个礼拜的课程设计是这个学期最累的一个礼拜,但是,我们的付出总算有回报,虽然我们的计算器可能还存在不少的问题,但是,至少它可以正常运行四则运算,基本达到了我们预期的要求,所以,这个礼拜同样是我最充实的一个礼拜。6、参考文献[1]杜春涛,《面向对象程序设计—Java语言》,中国铁道出版社.[2]丁振凡,《JAVA语言实用教程》,北京邮电大学出版社.[3]附录:(源程序)import .*;import .*;public class jisuanqi extends WindowAdapter {Panel p1 = new Panel();Panel p2 = new Panel();Panel p3 = new Panel();TextField txt;private Button[] b = new Button[17];private String ss[] = { "7", "8", "9", "+", "4", "5", "6", "-", "1", "2", "3", "*", "归零", "0", "=", "/", "关闭" };static double a;static String s, str;//定义变量 创建对像public static void main(String args[]) {(new jisuanqi()).frame();}public void frame() {Frame fm = new Frame("简单计算器");for (int i = 0; i <= 16; i++) {b[i] = new Button(ss[i]);}for (int i = 0; i <= 15; i++) {(b[i]);} //创建按钮 并添加到P2b[16].setBackground();txt = new TextField(15);(false);for (int i = 0; i <= 16; i++) {b[i].addActionListener(new buttonlistener());//添加监听器}b[16].addActionListener(new close());(this);();(new BorderLayout());(txt, "North");(new GridLayout(4, 4));(new BorderLayout());(b[16]);(p1, "North");(p2, "Center");(p3, "South");();(true);//都是些窗中设置 添加相关组件和监听器}public void windowClosing(WindowEvent e) {(0);//退出系统}class buttonlistener implements ActionListener {//编写监听器事件 通过按键得出给果public void actionPerformed(ActionEvent e) {Button btn = (Button) ();if (() == "=") {jisuan();str = (a);(str);s = "";} else if (() == "+") {jisuan();("");s = "+";} else if (() == "-") {jisuan();("");s = "-";} else if (() == "/") {jisuan();("");s = "/";} else if (() == "*") {jisuan();("");s = "*";} else {(() + ());if (() == "归零")("");}}public void jisuan() {//编写具体计算方法if (s == "+")a += (());else if (s == "-")a -= (());else if (s == "*")a *= (());else if (s == "/")a /= (());elsea = (());}}}class close implements ActionListener {//退出public void actionPerformed(ActionEvent e) {(0);}}

150 评论

福建不吃辣

// : 定义控制台应用程序的入口点。//#include ""int _tmain(int argc, _TCHAR* argv[]){ return 0;}#pragma once#ifndef _WIN32_WINNT // 指定要求的最低平台是 Windows Vista。#define _WIN32_WINNT 0x0600 // 将此值更改为相应的值,以适用于 Windows 的其他版本。#endif#include <>#include <>#include using namespace std;#define Maxprocess 50 /*最大进程数*/#define Maxresource 100 /*最大资源数*/int Available[Maxresource]; /*可用资源数组*/int MAX[ Maxprocess][Maxresource]; /*最大需求矩阵*/int Allocation[ Maxprocess][Maxresource]; /*分配矩阵*/int need [Maxprocess][Maxresource]; /*需求矩阵*/int Request[Maxprocess][Maxresource]; /*进程需要资源数*/bool finish[Maxprocess]; /*系统是否有足够的资源分配*/int p[Maxprocess]; /*记录序列*/int m,n; /*m个进程,n个资源*/void Init();/*初始化算法*/bool Safe(); /*安全性算法*/void Bank(); /*银行家算法*/int main(){ Init(); Safe(); Bank(); return 1;}void Init() /*初始化算法*/{ int i,j; cout<<"请输入进程的数目:"; /*m个进程,n个资源*/ cin>>m; cout<<"请输入资源的种类数:"; cin>>n; cout<<"请输入每个进程最多所需的各资源数,按照"<>MAX[i][j]; cout<<"请输入每个进程已分配的各资源数,也按照"<>Allocation[i][j]; need[i][j]=MAX[i][j]-Allocation[i][j]; if(need[i][j]<0) { cout<<"您输入的第"<>Available[i]; }}void Bank() /*银行家算法*/{ int i,cusneed; char again; while(1) { cout<<"请输入要申请资源的进程号(注:第1个进程号为0,依次类推)"<>cusneed; cout<<"请输入进程所请求的各资源的数量"<>Request[cusneed][i]; } for(i=0;ineed[cusneed][i]) { cout<<"您输入的请求数超过进程的需求量!请重新输入!"<Available[i]) { cout<<"您输入的请求数超过系统有的资源数!请重新输入!"<>again; if(again=='y'||again=='Y') { continue; } break; }}bool Safe() /*安全性算法*/{ int i,j,k,l=0; int Work[Maxresource]; /*工作数组*/ for(i=0;iWork[j]) { break; } } if(j==n) { finish[i]=true; for(k=0;k"; } } cout<<""<

221 评论

jialing612

02汤子瀛、汤小丹【005】

链接:

若资源有问题欢迎追问~

87 评论

阳澄湖边

邮箱给我,给你发个种子,包你满意。

133 评论

嘉定美食客

银行家算法(Banker's Algorithm)是一个避免死锁(Deadlock)的著名算法,是由艾兹格·迪杰斯特拉在1965年为系统设计的一种避免死锁产生的算法。它以银行借贷系统的分配策略为基础,判断并保证系统的安全运行。该算法应用方面很广:(1)如银行贷款等。一定数量的本金要应多个客户的借贷周转,为了防止银行资金无法周转而倒闭,对每一笔贷款,必须考察其是否能限期归还。(2)利用银行家算法的思想,在高校排课系统中针对选修课程教室安排中的应用,并设计了一种排课的方案,从而使每个教室都能得到充分合理的安排。(3)还有基于银行家算法的操作系统。系统中有限的资源要供多个进程使用,必须保证得到的资源的进程能在有限的时间内归还资源,以供其他进程使用资源。如果资源分配不得到就会发生进程循环等待资源,则进程都无法继续执行下去的死锁现象。

304 评论

相关问答

  • 对银行的某个问题的研究论文

    [论文关键词] 银行会计 会计风险 风险防范 会计风险防范 银行会计风险 [论文摘要] 在市场经济加快发展的条件下,银行业高风险、高收益的特点日益突出。特别是银

    王豆豆228 3人参与回答 2023-12-09
  • 银行家杂志榜单

    中国工商银行、中国银行、中国建设银行、中国农业银行、交通银行

    wisteria爱发呆 5人参与回答 2023-12-07
  • 银行支付清算研究分析论文

    金融风险指的是与金融有关的风险,如金融市场风险、金融产品风险、金融机构风险等。 一家金融机构发生的风险所带来的后果,往往超过对其自身的影响。下面是我带来的金融风

    天堂的阶梯 3人参与回答 2023-12-11
  • 中信银行银行家杂志

    中信银行创立于1987年,原名中信实业银行,是中国改革开放中最早成立的新兴商业银行之一。伴随中国经济的快速发展,中信实业银行在中国金融市场改革的大潮中逐渐成长壮

    刘彦热茶 4人参与回答 2023-12-11
  • 银行家杂志舆情

    截止2022年12月20日,没有停刊。据查询《银行家》杂志官方消息显示,截止2022年12月20日,杂志还在正常发布,因此没有停刊。《银行家》杂志,于1984年

    站在时光深处 3人参与回答 2023-12-06