Untitled
unknown
plain_text
2 years ago
2.5 kB
6
Indexable
#include <stdio.h> int main() { int n, m, i, j, k; printf("Enter the Number of Processes : "); scanf("%d",&n); printf("Enter the Number of Resources : "); scanf("%d",&m); int alloc[n][m]; int max[n][m]; printf("\nEnter the Allocation Matrix : \n"); for (i = 0; i < n; i++) { printf("PROCESS %d : \n",i); for (j = 0; j < m; j++) { scanf("%d",&alloc[i][j]); } } printf("\nEnter the Max Matrix : \n"); for (i = 0; i < n; i++) { printf("PROCESS %d : \n",i); for (j = 0; j < m; j++) { scanf("%d",&max[i][j]); } } int avail[m]; // Available Resources printf("\nEnter Available Resources : \n"); for (i = 0;i < m; i++) { printf("Resources %d - ",i+1); 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]; } printf("\nNEED MATRIX\n"); for (i = 0; i < n; i++) { printf("\n"); for (j = 0; j < m; j++) printf("%d ",need[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("\nThe following system is not safe"); break; } } if (flag == 1) { printf("\n\nFollowing is the SAFE Sequence:\n"); for (i = 0; i < n - 1; i++) printf(" P%d ->", ans[i]); printf(" P%d\n", ans[n - 1]); } return (0); }
Editor is loading...