Simulate the following CPU scheduling algorithms FCFS With Arrival Time
#include<stdio.h>
#include<conio.h>
void main()
{
int n,bt[5],wt[5],tt[5],t,c,d,j,i,at[5],p[5];
int twt=0,totaltt=0;
float avgtt=0,avgwt=0;
wt[0]=0;
clrscr();
printf("Enter No of Processors:");
scanf("%d",&n);
printf("\nEnter Process Name,Burst Time and Arrival Time:\n");
for(i=0;i<n;i++)
{
scanf("%d%d%d",&p[i],&bt[i],&at[i]);
}
tt[0]=bt[0];
wt[0]=0;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(at[i]>at[j])
{
t=at[i];
at[i]=at[j];
at[j]=t;
c=p[i];
p[i]=p[j];
p[j]=c;
d=bt[i];
bt[i]=bt[j];
bt[j]=d;
}
}
}
for(i=1;i<n;i++)
{
wt[i]=wt[i-1]+bt[i-1]-at[i];
tt[i]=wt[i]+bt[i];
}
for(i=0;i<n;i++)
{
twt+=wt[i];
totaltt+=tt[i];
}
printf("Pname\tBT\t AT\tWT\tTT\t\n");
for(i=0;i<n;i++)
{
printf("P%d\t%d\t%d\t%d\t%d\n",p[i],bt[i],at[i],wt[i],tt[i]);
}
avgwt=(float)twt/n;
avgtt=(float)totaltt/n;
printf("Avg WT =%.2f\n",avgwt);
printf("Avg TT =%.2f\n",avgtt);
getch();
}
Comments
Post a Comment