银行家算法的java编程实现

上传人:飞*** 文档编号:40615077 上传时间:2018-05-26 格式:DOC 页数:8 大小:43.50KB
返回 下载 相关 举报
银行家算法的java编程实现_第1页
第1页 / 共8页
银行家算法的java编程实现_第2页
第2页 / 共8页
银行家算法的java编程实现_第3页
第3页 / 共8页
银行家算法的java编程实现_第4页
第4页 / 共8页
银行家算法的java编程实现_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《银行家算法的java编程实现》由会员分享,可在线阅读,更多相关《银行家算法的java编程实现(8页珍藏版)》请在金锄头文库上搜索。

1、/*死锁避免与死锁检测模拟程序【银行家算法】 网络工程 06-3 班 学号:310609040308*/ import java.util.*;public class TestTheBanker public static void main(String args) Scanner scanner = new Scanner(System.in);TheBanker tb = new TheBanker();tb.deadlockAvoidance();/死锁避免int gate = 1;while(gate!=0) tb.deadlockDetection();/死锁检测System.o

2、ut.println(“如果您要继续分配资源请输入“1“,退出请输入 “0“);System.out.print(“您输入的值为:“);gate = scanner.nextInt();System.out.println();System.out.println(“使用愉快!期待您下次使用!“); class TheBanker int m; int n; int max; int maxbak;/备份用 int allocation; int allocationbak;/备份用 int need; int needbak;/备份用 int available; int available

3、bak;/备份用public TheBanker() Scanner s = new Scanner(System.in);System.out.println(“初始化=“); System.out.print(“请依次输入系统中的【进程数】和【资源类型数】:“);m = s.nextInt();n = s.nextInt();max =new intmn;maxbak = new intmn;allocation = new intmn;allocationbak = new intmn;need = new intmn;needbak = new intmn;available = ne

4、w intn;availablebak = new intn;for(int i=0;i9)/如果是两位数,控制格式,在数字前少输出一个“ “。System.out.print(maxij + “ “);elseSystem.out.print(“ “ + maxij + “ “); System.out.print(“ “);for(int j=0;j9)System.out.print(allocationij + “ “);elseSystem.out.print(“ “ + allocationij + “ “);System.out.print(“ “);for(int j=0;j9

5、)System.out.print(needij + “ “);elseSystem.out.print(“ “ + needij + “ “);if(i=0)System.out.print(“ “);for(int j=0;j9)System.out.print(availablej + “ “);elseSystem.out.print(“ “ + availablej + “ “);System.out.println(); System.out.println(“=完成初始化=“);System.out.println(); public void deadlockAvoidance

6、()int security = new intm;boolean param = new booleanm;int tar = new intn;int count = 0;int num1 = m+1;/计数器,每循环一遍所有进程就自减 1int num2 = m;/计数器,每遇到一个被满足的进程就自减 1while(num10)/如果 num1=0,则说明依次循环下来没有能够满足的进程,因此中止 for(int i=0;i0)System.out.print(“【安全序列】为:“);for(int i=0;i“); System.out.println();System.out.prin

7、tln(“=【死锁避免】结束=“);System.out.println();return;while(num1=0)System.out.println(“=【死锁避免】结束=“);System.out.println();return; public void deadlockDetection()Scanner sc = new Scanner(System.in);int key;int security = new intm;boolean param = new booleanm;int temp = new intn;int tar = new intn;int count =

8、0;int num1 = m+1;/计数器,每循环一遍所有进程就自减 1int num2 = m;/计数器,每遇到一个被满足的进程就自减 1for(int i=0;i9)System.out.print(maxij + “ “);elseSystem.out.print(“ “ + maxij + “ “); System.out.print(“ “);for(int j=0;j9)System.out.print(allocationij + “ “);elseSystem.out.print(“ “ + allocationij + “ “);System.out.print(“ “);f

9、or(int j=0;j9)System.out.print(needij + “ “);elseSystem.out.print(“ “ + needij + “ “);if(i=0)System.out.print(“ “);for(int j=0;j9)System.out.print(availablej + “ “);elseSystem.out.print(“ “ + availablej + “ “);System.out.println(); System.out.println(“=完成状态展示=“);System.out.println();while(num10)/如果

10、num1=0,则说明依次循环下来没有能够满足的进程, 因此中止 for(int i=0;i0)System.out.print(“【安全序列】为:“);for(int i=0;i“); System.out.println();System.out.println(“可以产生新的安全序列!系统【能】将申请的资源 分配给 P“+ key +“!“);System.out.println(“=死锁检测结束=“);System.out.println();return;while(num1=0)System.out.println(“系统【不能】将申请的资源分配给 P“+ key +“!“);System.out.println(“=死锁检测结束=“);System.out.println();return;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号