#include<stdio.h>
#define S 20
void main()
{
int bt[S],at[S],sum_bt=0,smallest,n,i,j,wt[S],ct[S],p[S],w=-1;
int sum_turnaround=0,sum_wait=0;
float awt,att;
printf("Enter no of processes : ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Enter burst time and arrival time for proces P%d : ",i+1);
scanf("%d %d",&bt[i],&at[i]);
sum_bt+=bt[i];
}
printf("\n\nProcess\t|\tBT\t|\tAT\t|\tCT\t| Waiting Time|Turnaround Time\n\n");
for(j=0;j<sum_bt;)
{
smallest=n-1;
for(i=0;i<n;i++)
{
if(at[i]<=j && bt[i]>0 && bt[i]<bt[smallest])
smallest=i;
}
if(smallest==S-1)
{
j++;
continue;
}
printf("P[%d] \t|\t %d \t|\t%d\t|\t%d\t|\t%d\t%d\n",smallest+1,bt[smallest],at[smallest],at[smallest]+j+bt[smallest]-at[smallest],j-at[smallest],j+bt[smallest]-at[smallest]);
w++;
p[w]=smallest+1;
ct[w]=(j+bt[smallest]-at[smallest])+at[smallest];
sum_turnaround+=j+bt[smallest]-at[smallest];
sum_wait+=j-at[smallest];
j+=bt[smallest];
bt[smallest]=0;
}
for(i=0;i<n;i++)
{
printf("\tp%d",p[i]);
}
printf("\nat[\t");
for(i=0;i<n;i++)
{
printf("%d\t",ct[i]);
/*printf("");*/
}
awt=sum_wait*1.0/n;
att=sum_turnaround*1.0/n;
printf("\n\n average waiting time = %f",awt);
printf("\n\n average turnaround time = %f",att);
}
No comments:
Post a Comment