#include<stdio.h>
main()
{
int n,i;
printf("enter the No. processes ");
scanf("%d",&n);
int at[n],bt[n],pri[n];
for(i=0;i<n;i++)
{
printf("Enter the arrival time, burst time and priority of %d process ",i+1);
scanf("%d%d%d",&at[i],&bt[i],&pri[i]);
}
int j,temp;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(at[i]<at[j])/*sorting acc to arrival time*/
{
temp=at[j];
at[j]=at[i];
at[i]=temp;
temp=bt[j];
bt[j]=bt[i];
bt[i]=temp;
}
}
}
int k=1,burst=0,min;
for(j=0;j<n;j++)
{
burst=burst+bt[j];
min=bt[k];
for(i=k;i<n;i++)/*main logic*/
{
min=pri[k];
if(burst>=at[i])
{
if(pri[i]<min)
{
temp=at[k];
at[k]=at[i];
at[i]=temp;
temp=bt[k];
bt[k]=bt[i];
bt[i]=temp;
temp=pri[k];
pri[k]=pri[i];
pri[i]=temp;
}
}
}
k++;
}
int wt[n],tt[n];
int sum=0,ta=0;
float wsum=0,wavg,tsum=0,tavg;
wt[0]=0;
for(i=1;i<n;i++)
{
sum=sum+bt[i-1];
wt[i]=sum-at[i];
wsum=wsum+wt[i];
}
wavg=wsum/n;
for(i=0;i<n;i++)
{
ta=ta+bt[i];
tt[i]=ta-at[i];
tsum=tsum+tt[i];
}
tavg=tsum/n;
printf("************************");
printf("\nRESULT:-\tVARIOUS TIMES");
printf("\npro\tarrival\tburst\tpriority");
for(i=0;i<n;i++)
printf("\np%d\t%d\t%d\t%d",i+1,at[i],bt[i],pri[i]);
printf("\nwaiting\tturnaround");
for(i=0;i<n;i++)
printf("\n%d\t%d",wt[i],tt[i]);
printf("\nAVERAGE WAITING TIME:- %f ms",wavg);
printf("\nAVERAGE TURN AROUND TIME:- %f ms" ,tavg);
}
Comments
Post a Comment