Thursday, November 25, 2010

ROUNDROBIN SCHEDULING ALG


/* Round Robin */
#include<stdio.h>
struct process
{
int id,b,w,ta;
}p[10];
main()
{
int rb[10],tq,n,i,d,j;
int sw,sta,st;
float aw,ata;
printf("enter time quantum: ");
scanf("%d",&tq);
printf("enter no.of processes: ");
scanf("%d",&n);
st=0;
for(i=0;i<n;i++)
{
 printf("enter burst time for p%d: ",i+1);
 scanf("%d",&p[i].b);
 st+=p[i].b;
 rb[i]=p[i].b;
 p[i].id=i+1;
 p[i].w=p[i].ta=0;
}
for(i=0;i<st;i++)
for(j=0;j<n;j++)
{
if(rb[j]<=tq&&rb[j]!=0)
{
p[j].w+=i;
i+=rb[j];
p[j].ta=i;
}
 if(rb[j]>tq)
{
p[j].w+=i;
i+=tq;
rb[j]-=tq;
p[j].w-=i;
}
}
sw=sta=0;
for(i=0;i<n;i++)
{
 sw+=p[i].w;
 sta+=p[i].ta;
}
aw=sw/(float)n;
ata=sta/(float)n;
printf("process burst time waiting time turn around time\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 turn around time=%0.2f\n",ata);
}

No comments:

Post a Comment

FOLLOWERS