import java.util.*;
class Banker
{
public static void main(String args[])
{
Scanner s=new Scanner(System.in);
int r,p,n,count=0,i,j,flag,safe;
System.out.println("enter no of resources");
r=s.nextInt();
System.out.println("enter no of processes");
p=s.nextInt();
int running[]=new int[p];
for(i=0;i<p;i++)
{
running[i]=1;
count++;
}
int totrs[]=new int[r];
System.out.println("enter system resources");
for(i=0;i<r;i++)
totrs[i]=s.nextInt();
int occrs[][]=new int[p][r];
System.out.println("enter occupied resources");
for(i=0;i<p;i++)
{
for(j=0;j<r;j++)
{
occrs[i][j]=s.nextInt();
}
}
int add[]=new int[r];
int maxrs[][]=new int[p][r];
System.out.println("enter maximum rq resources");
for(i=0;i<p;i++)
{
for(j=0;j<r;j++)
{
maxrs[i][j]=s.nextInt();
}
}
System.out.println("adding resource using by processes");
for(i=0;i<p;i++)
{
for(j=0;j<r;j++)
{
add[j]+=occrs[i][j];
}
}
for(i=0;i<r;i++)
System.out.println(add[i]);
int avl[]=new int[r];
for(i=0;i<r;i++)
avl[i]=totrs[i]-add[i];
System.out.println("available resources");
for(i=0;i<r;i++)
System.out.println(avl[i]);
while(count!=0)
{
safe=0;
for(i=0;i<p;i++)
{
if(running[i]==1)
{
flag=1;
for(j=0;j<r;j++)
{
if(maxrs[i][j]-occrs[i][j]>avl[j])
{
flag=0;
break;
}
}
if(flag==1)
{
System.out.println(i+1+"is executing");
running[i]=0;
count--;
for(j=0;j<r;j++)
avl[j]+=occrs[i][j];
safe=1;
}
}
}
if(safe==1)
{
System.out.println("the process is in safe state");
System.out.println("the avl resource is");
for(j=0;j<r;j++)
System.out.println(avl[j]);
}
else
{
System.out.println("the process is in unsafe");
break;
}
}
}
}
class Banker
{
public static void main(String args[])
{
Scanner s=new Scanner(System.in);
int r,p,n,count=0,i,j,flag,safe;
System.out.println("enter no of resources");
r=s.nextInt();
System.out.println("enter no of processes");
p=s.nextInt();
int running[]=new int[p];
for(i=0;i<p;i++)
{
running[i]=1;
count++;
}
int totrs[]=new int[r];
System.out.println("enter system resources");
for(i=0;i<r;i++)
totrs[i]=s.nextInt();
int occrs[][]=new int[p][r];
System.out.println("enter occupied resources");
for(i=0;i<p;i++)
{
for(j=0;j<r;j++)
{
occrs[i][j]=s.nextInt();
}
}
int add[]=new int[r];
int maxrs[][]=new int[p][r];
System.out.println("enter maximum rq resources");
for(i=0;i<p;i++)
{
for(j=0;j<r;j++)
{
maxrs[i][j]=s.nextInt();
}
}
System.out.println("adding resource using by processes");
for(i=0;i<p;i++)
{
for(j=0;j<r;j++)
{
add[j]+=occrs[i][j];
}
}
for(i=0;i<r;i++)
System.out.println(add[i]);
int avl[]=new int[r];
for(i=0;i<r;i++)
avl[i]=totrs[i]-add[i];
System.out.println("available resources");
for(i=0;i<r;i++)
System.out.println(avl[i]);
while(count!=0)
{
safe=0;
for(i=0;i<p;i++)
{
if(running[i]==1)
{
flag=1;
for(j=0;j<r;j++)
{
if(maxrs[i][j]-occrs[i][j]>avl[j])
{
flag=0;
break;
}
}
if(flag==1)
{
System.out.println(i+1+"is executing");
running[i]=0;
count--;
for(j=0;j<r;j++)
avl[j]+=occrs[i][j];
safe=1;
}
}
}
if(safe==1)
{
System.out.println("the process is in safe state");
System.out.println("the avl resource is");
for(j=0;j<r;j++)
System.out.println(avl[j]);
}
else
{
System.out.println("the process is in unsafe");
break;
}
}
}
}
No comments:
Post a Comment