//Worst fit algorithm :-
#include<stdio.h>
int main()
{
int np,nb,i,j;
puts("Enter number of processes and blocks");
scanf("%d%d",&np,&nb);
int p[np],m[nb],all[nb];
puts("Enter process sizes");
for(i=0;i<np;i++)
scanf("%d",&p[i]);
for(i=0;i<5;i++)
all[i]=-1;
puts("Enter block sizes");
for(i=0;i<nb;i++)
scanf("%d",&m[i]);
for(i=0;i<np;i++)
{
int flag=-1;
for(j=0;j<nb;j++)
{
if(all[j]==-1&&p[i]<=m[j])
{
if(flag==-1)
flag=j;
else if(m[flag]<m[j])
/*replace '<' with '>' in above else if statement to get the result of BEST FIT Algorithm*/
flag=j;
}
}
if(flag!=-1)
{
all[flag]=0;
printf("Process %d = %d is allocated to block %d\n",i+1,p[i],m[flag]);
}
else
printf("Process %d = %d is waiting\n",i+1,p[i]);
}
return 0;
}
Comments
Post a Comment