#include<stdio.h>
#include<malloc.h>
main()
{
float min,sum=0,avg=0;
int n,i,j,pos;
puts("Enter the number of processes");
scanf("%d",&n);
float p[n],a[n];
puts("Enter the arrival time and burst time with space");
for(i=0;i<n;i++)
scanf("%f%f",&a[i],&p[i]);
printf("Process\tArrival Time\tBurst time\n");
for(i=0;i<n;i++)
printf("P[%d]\t%.1f\t\t%.1f\n",i+1,a[i],p[i]);
float fin[n],k=0,wt[n];
for(i=0;i<n;i++)
{
wt[i]=fin[i]=0;
pos=i;
for(j=i+1;j<n;j++)
{
if(a[pos]>a[j])
pos=j;
}
a[pos]=a[pos]+a[i]-(a[i]=a[pos]);
p[pos]=p[pos]+p[i]-(p[i]=p[pos]);
}
pos=0;i=0;j=0;
int x;
while(i<n)
{
if(p[i]==0)
{
p[i]=-1;
i++;
}
else if(p[i]>0)
{
wt[pos]=k;
k+=p[pos];
fin[pos]=k;
while(j<n&&p[j]>0&&p[pos]>=a[j])
j++;
p[pos]=0;
pos=0;
while(p[pos]<=0)
pos++;
for(x=0;x<j;x++)
{
if(p[x]>0&&p[pos]>p[x])
pos=x;
}
}
}
float awt=0,atat=0;
for(i=0;i<n;i++)
{
printf("w=%.0f f=%.0f\n",wt[i],fin[i]);
awt+=wt[i]-a[i];
atat+=fin[i]-a[i];
}
printf("AVG WAITING TIME = %.02f\nAVG TURN AROUND TIME = %.02f\n",awt/n,atat/n);
}
Comments
Post a Comment