Thursday, November 25, 2010

SJF SCHEDULING ALG


/* SJF */
#include<stdio.h>
struct process
{
int id,w,b,ta;
}p[10];
void sort(int);
main()
{
int n,i,sw,sta;
float aw,ata;
printf("enter no of processes: ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("burst time for p %d: ",i+1);
scanf("%d",&p[i].b);
p[i].id=i+1;
}
sort(n);
p[0].w=0,p[0].ta=p[0].b;
sw=p[0].w;
sta=p[0].ta;
for(i=1;i<n;i++)
{
p[i].w=p[i-1].w+p[i-1].b;
p[i].ta=p[i-1].ta+p[i].b;
sw+=p[i].w;
sta+=p[i].ta;
}
aw=sw/(float)n;
ata=sta/(float)n;
printf("processes burst time wt tat \n");
for(i=0;i<n;i++)
{
printf("p %d",p[i].id);
printf("\t \t %d",p[i].b);
printf("\t \t %d",p[i].w);
printf("\t \t %d",p[i].ta);
printf("\n");
}
printf("average waiting time =%0.2f \n",aw);
printf("average TAT=%0.2f \n",ata);
}
void sort(int n)
{
int i,j;
struct process t;
for(i=0;i<n;i++)
for(j=0;j<(n-i-1);j++)
{
if(p[j].b>p[j+1].b)
{
t=p[j];
p[j]=p[j+1];
p[j+1]=t;
}
}
}

No comments:

Post a Comment

FOLLOWERS