Untitled

 avatar
unknown
plain_text
a year ago
1.9 kB
4
Indexable
  GNU nano 4.8                                                                                                                                                                                                                                                                                                 banker.c                                                                                                                                                                                                                                                                                                  Modified  
#include<stdio.h>
void main()
{
int alloc[20][20],max[20][20],need[20][20],avail[20];
int ans[10],f[10],pos,flag=0,i,j,k,y,n,r;
printf("enter the number of process");
scanf("%d",&n);
printf("enter the number of resourses");
scanf("%d",&r);
printf("enter the allocation matrix");
for(i=0;i<n;i++)
{
for(j=0;j<r;j++)
{
scanf("%d",&alloc[i][j]);
}
}
printf("enter the max matrix");
for(i=0;i<n;i++)
{
for(j=0;j<r;j++)
{
scanf("%d",&max[i][j]);
}
}
printf("enter the availabvle matrix");
for(i=0;i<r;i++)
{
scanf("%d",&avail[r]);
}
pos=0;
for(k=0;k>n;k++)
{
f[k]=0;
}
for(i=0;i<n;i++)
{
for(j=0;j<r;j++)
{
need[i][j]=max[i][j]-alloc[i][j];
}
}
y=0;
for(k=0;k<n;k++)
{
for(i=0;i<n;i++)
{
if(f[i]==0)
{
flag=0;
for(j=0;j<r;j++)
{
if(need[i][j]>avail[j])
{
flag=1;
break;
}
}
if(flag==0)
{
ans[pos++]=i;
for(y=0;y<r;y++)
avail[y]+=alloc[i][y];
f[i]=1;
}
}
}
}
printf("\tallocation\t\tmax\t\tneed\n");
for(i=0;i<n;i++)
{
for(j=0;j<r;j++)
{
printf("%d",alloc[i][j]);

}
for(j=0;j<r;j++)
{
printf("\t\t%d",max[i][j]);
}
for(j=0;j<r;j++)
{
printf("\t\t%d",need[i][j]);
}
printf("\n");
}
flag=1;
for(i=0;i<n;i++)
{
if(f[i]=0)
{
flag=0;
printf("not safe");
break;
}
}
if(flag==1)
{
printf("safe sequence exist");
printf("\nthe safe sequence is\n");
for(i=0;i<n-1;i++)
{
printf("p%d->",ans[i]);
printf("p%d->",ans[n-1]);
}
}
}
alloc[i][j]);




Editor is loading...
Leave a Comment