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

Os 7

This document contains C code to determine if a set of processes can be allocated resources in a safe manner. It initializes allocation and maximum resource arrays, calculates needed resources, and uses nested for loops to find a sequence of processes that can safely obtain resources without violating availability. If a safe sequence is found, it is printed, otherwise a unsafe message is displayed.

Uploaded by

Varsha Kulkarni
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)
14 views2 pages

Os 7

This document contains C code to determine if a set of processes can be allocated resources in a safe manner. It initializes allocation and maximum resource arrays, calculates needed resources, and uses nested for loops to find a sequence of processes that can safely obtain resources without violating availability. If a safe sequence is found, it is printed, otherwise a unsafe message is displayed.

Uploaded by

Varsha Kulkarni
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

OS EXPT 7

#include <stdio.h>
int main()
{
int n, m, i, j, k;
n = 5;
m = 3;
int alloc[5][3] =
{{0, 1, 0},
{2, 0, 0},
{3, 0, 2},
{2, 1, 1},
{0, 0, 2}};
int max[5][3] =
{{7, 5, 3},
{3, 2, 2},
{9, 0, 2},
{4, 2, 2},
{5, 3, 3}};
int avail[3] = {3, 3, 2};
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("The following system is not safe");
break;
}
}
if (flag == 1)
{
printf("Following is the SAFE Sequence\n");
for (i = 0; i < n - 1; i++)
printf(" P%d ->", ans[i]);
printf(" P%d", ans[n - 1]);
}
return (0);
}
OUTPUT:

You might also like