0% found this document useful (0 votes)
18 views

bankersalgorithm

Uploaded by

nagendravijay28
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

bankersalgorithm

Uploaded by

nagendravijay28
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

#include<stdio.

h>

#include<conio.h>

int main()

int Max[10][10], need[10][10], alloc[10][10], avail[10], completed[10], safeSequence[10];

int p, r, i, j, process, count;

count = 0;

printf("Enter the no of processes : "); //processes are read.

scanf("%d", &p);

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

completed[i] = 0; // a finish vector that is initialised with 0.

printf("\n\nEnter the no of resources : "); // read no of resources.

scanf("%d", &r);

printf("\n\nEnter the Max Matrix for each process : "); //for loop statement to
enter the maximum matrix.

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

printf("\nFor process %d : ", i + 1);

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

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

printf("\n\nEnter the allocation for each process : "); //for loop statement to
enter the allocation of resources for each process.

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

{
printf("\nFor process %d : ",i + 1);

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

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

printf("\n\nEnter the Available Resources : "); //for loop for entering the
no of available resources.

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

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

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

for(j = 0; j<r; j++) //nested for loop for finding


the need matrix.

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

do

printf("\n Max matrix:\tAllocation matrix:\n"); // for loop to print the max


and allocation matrix.

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

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

printf("%d ", Max[i][j]);

printf("\t\t");

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

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

printf("\n");

process = -1;
for(i = 0; i<p; i++)

if(completed[i] == 0)//if not completed

process = i ;

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

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

process = -1;

break;

if(process != -1)

break;

if(process != -1)

printf("\nProcess %d runs to completion!", process + 1);

safeSequence[count] = process + 1;

count++;

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

avail[j] += alloc[process][j];

alloc[process][j] = 0;

Max[process][j] = 0;

completed[process] = 1;

}
}while(count != p && process != -1);

if(count == p)

printf("\nThe system is in a safe state!!\n");

printf("Safe Sequence : ");

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

printf("%d ", safeSequence[i]);

printf(" \n");

else

printf("\nThe system is in an unsafe state!!");

return 0;

You might also like