Untitled
unknown
plain_text
a year ago
1.1 kB
8
Indexable
#include<stdio.h>
struct process{
int at;
int bt;
int wt;
int ct;
int tat;
int fl;
};
void main()
{
int i,n,pc=0,curt=0,avgtat=0,avgwt=0;
printf("enter the no of processes:");
scanf("%d",&n);
struct process p[n];
for(i=0;i<n;i++)
{
printf("enter the arrival time and burst time of process %d:\n",i+1);
scanf("%d%d",&p[i].at,&p[i].bt);
p[i].fl=0;
}
while(pc<n)
{
int min=-1;
for(i=0;i<n;i++)
{
if(p[i].at<=curt && p[i].fl==0)
{
if(min==-1 || p[i].bt<p[min].bt)
{
min=i;
}
}
}
if(min==-1)
curt++;
else
{
pc++;
p[min].ct=curt+p[min].bt;
curt+=p[min].bt;
p[min].tat=p[min].ct-p[min].at;
p[min].wt=p[min].tat-p[min].bt;
avgtat+=p[min].tat;
avgwt+=p[min].wt;
p[min].fl=1;
}
}
printf("\nprocess\t\tat\t\tbt\t\tct\t\ttat\t\twt\t\n");
for(i=0;i<n;i++)
{
printf("%d\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d\t\n",i+1,p[i].at,p[i].bt,p[i].ct,p[i].tat,p[i].wt);
}
printf("Average Turn Around Time:%.2f\n",(float)avgtat/n);
printf("Average Waiting Time:%.2f\n",(float)avgwt/n);
}Editor is loading...
Leave a Comment