#include<stdio.h>
#define m1 100
int m,n,avail[m1],max[m1],alloc[m1][m1],need[m1][m1],safe[m1],req[m1][m1];
void result(){
int i,j,t=0,k=0,c=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
req[i][j]=need[i][j]-alloc[i][j];
while(c<n){
for(i=0;i<n;i++){
t=0;
if(safe[i]==1)continue;
for(j=0;j<m;j++){
if(req[i][j]<=avail[j]){
avail[j]=avail[j]-req[i][j];
t++;}
}
if(t==j){
printf("%d\t",i+1);
c++;
safe[i]=1;
for(k=0;k<m;k++)
avail[k]=avail[k]+need[i][k];
}}
}
}
int main(){
m=0;
n=0;
int i=0,j=0;
printf("Enter number of processes\n");
scanf("%d",&n);
printf("Enter number of resources\n");
scanf("%d",&m);
printf("Enter Resources available\n");
for(i=0;i<n;i++)
safe[i]=0;
for(i=0;i<m;i++)
scanf("%d",&avail[i]);
printf("Enter allocation matrix\n");
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&alloc[i][j]);
printf("Enter max need matrix\n");
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&need[i][j]);
printf("Safe Sequence is:\n");
result();
return 0;
}
#define m1 100
int m,n,avail[m1],max[m1],alloc[m1][m1],need[m1][m1],safe[m1],req[m1][m1];
void result(){
int i,j,t=0,k=0,c=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
req[i][j]=need[i][j]-alloc[i][j];
while(c<n){
for(i=0;i<n;i++){
t=0;
if(safe[i]==1)continue;
for(j=0;j<m;j++){
if(req[i][j]<=avail[j]){
avail[j]=avail[j]-req[i][j];
t++;}
}
if(t==j){
printf("%d\t",i+1);
c++;
safe[i]=1;
for(k=0;k<m;k++)
avail[k]=avail[k]+need[i][k];
}}
}
}
int main(){
m=0;
n=0;
int i=0,j=0;
printf("Enter number of processes\n");
scanf("%d",&n);
printf("Enter number of resources\n");
scanf("%d",&m);
printf("Enter Resources available\n");
for(i=0;i<n;i++)
safe[i]=0;
for(i=0;i<m;i++)
scanf("%d",&avail[i]);
printf("Enter allocation matrix\n");
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&alloc[i][j]);
printf("Enter max need matrix\n");
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&need[i][j]);
printf("Safe Sequence is:\n");
result();
return 0;
}
No comments:
Post a Comment