0% found this document useful (0 votes)
54 views2 pages

Bankers Algorithm

This C program implements the Banker's algorithm to check if a system is in a safe state. It takes input for the number of processes and resources, allocated resources for each process, maximum resources needed, and available resources. It calculates the needs of each process and determines a safe sequence in which processes can complete without violating resource allocation. If no such sequence exists, it prints that the system is not safe.

Uploaded by

Yeshwanth Yesh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views2 pages

Bankers Algorithm

This C program implements the Banker's algorithm to check if a system is in a safe state. It takes input for the number of processes and resources, allocated resources for each process, maximum resources needed, and available resources. It calculates the needs of each process and determines a safe sequence in which processes can complete without violating resource allocation. If no such sequence exists, it prints that the system is not safe.

Uploaded by

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

#include <stdio.

h>

int main()
{

int n, m, i, j, k;

int alloc[20][20], max[20][20], avail[20];

printf("Enter number of processes: ");

scanf("%d", &n);

printf("Enter number of resources: ");

scanf("%d", &m);

printf("\nEnter the Allocated Resources:\n");

printf("Pid\tA\tB\tC\n");

for (int i = 0; i < n; i++)

{
printf("P[%d]\t", i);

for (int j = 0; j < m; j++)

scanf("%d", &alloc[i][j]);

}
printf("\nEnter the MAX Resource:\n");

printf("Pid\tA\tB\tC\n");

for (int i = 0; i < n; i++)

{
printf("P[%d]\t", i);

for (int j = 0; j < m; j++)

scanf("%d", &max[i][j]);

}
printf("\nEnter the Available Resources:\n");

printf("A\tB\tC\n");

for (int i = 0; i < m; i++)

{
scanf("%d", &avail[i]);

int f[n], ans[n], ind = 0;

for (k = 0; k < n; k++)

f[k] = 0;

int need[n][m];

for (i = 0; i < n; i++)

{
for (j = 0; j < m; j++)

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

}
int y = 0;

for (k = 0; k < 5; k++)

{
for (i = 0; i < n; i++)

if (f[i] == 0)

int flag = 0;

for (j = 0; j < m; j++)

if (need[i][j] > avail[j])

flag = 1;

break;

if (flag == 0)

ans[ind++] = i;

for (y = 0; y < m; y++)

avail[y] += alloc[i][y];

f[i] = 1;

}
int flag = 1;

for (int i = 0; i < n; i++)

{
if (f[i] == 0)

flag = 0;

printf("\n\nThe following system is not safe.");

break;

}
if (flag == 1)

{
printf("\n\nThe system is in a SAFE State.\nFollowing is the SAFE Sequence.\n");

for (i = 0; i < n - 1; i++)

printf(" P%d ->", ans[i]);

printf(" P%d", ans[n - 1]);

}
printf("\n");

return (0);

/*

Output:

Enter number of processes: 5

Enter number of resources: 3

Enter the Allocated Resources:

Pid A B C

P[0] 0 1 0

P[1] 2 0 0

P[2] 3 0 2

P[3] 2 1 1

P[4] 0 0 2

Enter the MAX Resource:

Pid A B C

P[0] 7 5 3

P[1] 3 2 2

P[2] 9 0 2

P[3] 2 2 2

P[4] 4 3 3

Enter the Available Resources:

A B C

3 3 2

The system is in a SAFE State.

Following is the SAFE Sequence.

P1 -> P3 -> P4 -> P0 -> P2

*/

You might also like