当前位置:首页 > 计算机操作系统实验讲义
}
System.out.println();
/**
* 检查安全序列 * */
int[] work=new int[3];//定义一个数组work用来存放可利用的资源for (int i = 0; i < work.length; i++) { }
work[i]=available[i];//初始化work
数目
boolean[] finish=new boolean[process];//定义标志finish,表示分配资源的置为true,没有非配的置为false
for (int i = 0; i < process; i++) { }
int[] array=new int[process];//定义一个数组保存安全序列 int num=1; int count1=1; while(num for (int i = 0; i < process; i++) { for (int j = 0; j < 3; j++) { if(finish[i]==false){ finish[i]=false;//初始化数组finish if(need[i][0]<=work[0]&&need[i][1]<=work[1]&&need[i][2]<=work[2]){ for (int j2 = 0; j2 < resource; j2++) { } finish[i]=true; array[count1-1]=i; count1++; work[j2]=work[j2]+allocation[i][j2]; } } } } }num++; int count=0; for (int i = 0; i < array.length; i++) { } if(count==process){ } else{System.out.println(\系统处于不安全状态!\System.out.println(); /** * 以下是进程请求资源时的情况 * */ boolean flag=true; while(flag){ int[] req=new int[resource]; System.out.print(\请输入您要请求资源的 编号>>\int choose=scanner.nextInt(); System.out.print(\请输入该进程的请求向量>>\for (int i = 0; i < resource; i++) { System.out.println(\存在一个安全序列:\for (int i = 0; i < array.length; i++) { } System.out.print(\if(finish[i]==true){ } count++; } req[i]=scanner.nextInt(); if(req[0]<=need[choose][0]&&req[1]<=need[choose][1]&&req[2]<=need[choose][2]){ if(req[0]<=available[0]&&req[1]<=available[1]&&req[2]<=available[2]){ for (int i = 0; i < resource; i++) { available[i]=available[i]-req[i]; allocation[choose][i]=allocation[choose][i]+req[i]; } int[] work1=new int[3]; for (int i = 0; i < work1.length; i++) { } boolean[] finish1=new boolean[process]; for (int i = 0; i < process; i++) { } int[] array1=new int[process]; int num1=1; int count11=1; while(num1 for (int i = 0; i < process; i++) { for (int j = 0; j < 3; j++) { if(finish1[i]==false){ finish1[i]=false; work1[i]=available[i]; need[choose][i]=need[choose][i]-req[i]; if(need[i][0]<=work1[0]&&need[i][1]<=work1[1]&&need[i][2]<=work1[2]){ resource; j2++) { for (int j2 = 0; j2 < work1[j2]=work1[j2]+allocation[i][j2]; \ } finish1[i]=true; array1[count11-1]=i; count11++; } } } }num1++; } int count2=0; for (int i = 0; i < array1.length; i++) { if(finish1[i]==true){ count2++; } } if(count2==process){ System.out.println(\存在一个安全序列:\ for (int i = 0; i < array1.length; i++) { System.out.print(\ } } else{System.out.println(\系统处于不安全状态! System.out.println(); }else{System.out.println(\资源不够清等待!\
共分享92篇相关文档