100% found this document useful (2 votes)
7K views6 pages

Program For Bankers Algorithm For Deadlock Avoidance in C

1) The document presents a C program implementation of the Banker's algorithm for deadlock avoidance. It takes input for the claim matrix, allocated matrix, and available resources and checks if the system is in a safe or unsafe state. 2) It initializes matrices to store the claim, allocated, need, and available resources. It then calculates the need matrix and checks if available resources can fulfill pending needs. 3) If resources are available, it marks that process as completed. Otherwise, the system is in an unsafe state. The output shows the various matrices and indicates the system is in a safe state with all processes completing allocation.

Uploaded by

Karunakar Ella
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
7K views6 pages

Program For Bankers Algorithm For Deadlock Avoidance in C

1) The document presents a C program implementation of the Banker's algorithm for deadlock avoidance. It takes input for the claim matrix, allocated matrix, and available resources and checks if the system is in a safe or unsafe state. 2) It initializes matrices to store the claim, allocated, need, and available resources. It then calculates the need matrix and checks if available resources can fulfill pending needs. 3) If resources are available, it marks that process as completed. Otherwise, the system is in an unsafe state. The output shows the various matrices and indicates the system is in a safe state with all processes completing allocation.

Uploaded by

Karunakar Ella
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

PROGRAM FOR BANKERS ALGORITHM FOR DEADLOCK AVOIDANCE IN C

#include<stdio.h>
#include<conio.h>
void main()
{
int cl[10][10],al[10][10],av[10],i,j,k,m,n,ne[10][10],flag=0;
clrscr();
printf("\nEnter the matrix:");
scanf("%d %d",&m,&n);
printf("\nEnter the claim matrix:");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&cl[i][j]);
}
}
printf("\nEnter allocated matrix:");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&al[i][j]);
}
}
printf("\nThe need matrix:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
ne[i][j]=cl[i][j]-al[i][j];
printf("\t%d",ne[i][j]);
}
printf("\n");
}
printf("\nEnter avaliable matrix");
for(i=0;i<n;i++)
scanf("%d",&av[i]);
printf("Claim matrix:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("\t%d",cl[i][j]);
}
printf("\n");
}
printf("\n Allocated matrix:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("\t%d",al[i][j]);
}
printf("\n");
}

printf("Available matrix:\n");
for(i=0;i<n;i++)
{
printf("%d\t",av[i]);
}
//for(k=0;k<m;k++)
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(av[j]>=ne[i][j])
flag=1;
else
flag=0;
}
}
if(flag==0)
printf("Unsafe State");
else
printf("Safe State");
getch();
}

Output
Enter the Matrix:4
3
Enter the claim matrix:3 2 2 6
1331
4422

Deadlock Prevention Using Bankers Algorithm In C Programming


#include< stdio.h>
#include< conio.h>
void main()
{
int allocated[15][15],max[15][15],need[15][15],avail[15],tres[15],work[15],flag[15];
int pno,rno,i,j,prc,count,t,total;
count=0;
clrscr();
printf("\n Enter number of process:");
scanf("%d",&pno);
printf("\n Enter number of resources:");
scanf("%d",&rno);
for(i=1;i< =pno;i++)
{
flag[i]=0;
}
printf("\n Enter total numbers of each resources:");
for(i=1;i<= rno;i++)
scanf("%d",&tres[i]);

printf("\n Enter Max resources for each process:");


for(i=1;i<= pno;i++)
{
printf("\n for process %d:",i);
for(j=1;j<= rno;j++)
scanf("%d",&max[i][j]);
}

printf("\n Enter allocated resources for each process:");


for(i=1;i<= pno;i++)
{
printf("\n for process %d:",i);
for(j=1;j<= rno;j++)
scanf("%d",&allocated[i][j]);
}
printf("\n available resources:\n");
for(j=1;j<= rno;j++)
{
avail[j]=0;
total=0;
for(i=1;i<= pno;i++)
{
total+=allocated[i][j];
}
avail[j]=tres[j]-total;
work[j]=avail[j];
printf("
%d \t",work[j]);
}
do
{
for(i=1;i<= pno;i++)
{
for(j=1;j<= rno;j++)
{

need[i][j]=max[i][j]-allocated[i][j];

}
}

printf("\n Allocated matrix


for(i=1;i<= pno;i++)
{
printf("\n");
for(j=1;j<= rno;j++)
{
printf("%4d",allocated[i][j]);
}
printf("|");
for(j=1;j<= rno;j++)
{
printf("%4d",max[i][j]);
}
printf("|");
for(j=1;j<= rno;j++)
{
printf("%4d",need[i][j]);
}
}
prc=0;

Max

for(i=1;i<= pno;i++)
{
if(flag[i]==0)
{
prc=i;
for(j=1;j<= rno;j++)
{
if(work[j]< need[i][j])
{
prc=0;
break;
}
}

if(prc!=0)
break;
}
if(prc!=0)
{
printf("\n Process %d completed",i);
count++;
printf("\n Available matrix:");
for(j=1;j<= rno;j++)
{
work[j]+=allocated[prc][j];
allocated[prc][j]=0;
max[prc][j]=0;
flag[prc]=1;
printf("
%d",work[j]);
}
}
}while(count!=pno&&prc!=0);

need");

if(count==pno)
printf("\nThe system is in a safe state!!");
else
printf("\nThe system is in an unsafe state!!");
getch();
}

OUTPUT
Enter number of process:5
Enter number of resources:3
Enter total numbers of each resources:10 5 7
Enter Max resources for each process:
for process 1:7 5 3
for process 2:3 2 2
for process 3:9 0 2
for process 4:2 2 2
for process 5:4 3 3
Enter allocated resources for each process:
for process 1:0 1 0
for process 2:3 0 2

for process 3:3 0 2


for process 4:2 1 1
for process 5:0 0 2
available resources:
2
3
0

Allocated
0
1
3
0
3
0
2
1
0
0
Process 2
Available
Allocated
0
1
0
0
3
0
2
1
0
0

matrix
0|
7
5
2|
3
2
2|
9
0
1|
2
2
2|
4
3
completed
matrix:
5
matrix
0|
7
5
0|
0
0
2|
9
0
1|
2
2
2|
4
3

Process 4 completed
Available matrix:
7
Allocated matrix
0
1
0|
7
5

Max
3|
2|
2|
2|
3|
3
Max
3|
0|
2|
2|
3|

7
0
6
0
4

need
3
0
0
1
1

4
2
0
1
3

need
3
0
0
1
1

7
0
6
0
4

4
0
0
1
3

4
3
Max
3|
7

need
3

0
0
3
0
0
0
0
0
Process 1
Available
Allocated
0
0
0
0
3
0
0
0
0
0
Process 3
Available
Allocated
0
0
0
0
0
0
0
0
0
0
Process 5
Available
The system

0|
0
0
2|
9
0
0|
0
0
2|
4
3
completed
matrix:
7
matrix
0|
0
0
0|
0
0
2|
9
0
0|
0
0
2|
4
3
completed
matrix:
10
matrix
0|
0
0
0|
0
0
0|
0
0
0|
0
0
2|
4
3
completed
matrix:
10
is in a safe

0|
2|
0|
3|

0
6
0
4

5
Max
0|
0|
2|
0|
3|

5
Max
0|
0|
0|
0|
3|

0
0
0
3

0
0
0
1
need
0
0
0
0
1

0
0
6
0
4

0
0
0
0
3
5

0
0
0
0
4

5
7
state!!

need
0
0
0
0
1

0
0
0
0
3

You might also like