Thursday 23 April 2015

FCFS Scheduling

/* FCFS Scheduling */

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()
{
int BT[10], AT[10], WT[10], TA[10],s[10],e[10];
int pname[10],temp3;
int N,i,temp1,temp2,j,n;
//clrscr();
printf("Enter no. of processes to be entered=");
scanf("%d",&N);
for(i=0;i<N;i++)
{
printf("\n\nEnter Process name, burst & arrival time=\n");
scanf("%d",&pname[i]);
scanf("%d",&BT[i]);
scanf("%d",&AT[i]);
}
printf("\n\nThe process table=\nPName\tBT\tAT\tWT\tTA\n");
printf("________________________________________________");
for(i=0;i<N;i++)
{
for(j=i+1;j<N;j++)
{
if(AT[i]>AT[j])
{
temp1=AT[i];
AT[i]=AT[j];
AT[j]=temp1;
temp2=BT[i];
BT[i]=BT[j];
BT[j]=temp2;
temp3=pname[i];
pname[i]=pname[j];
pname[j]=temp3;
}
}
}
s[0]=0;
if(AT[0]==0)
{
s[0]=AT[0];
e[0]=AT[0]+BT[0];
WT[0]=s[0]-AT[0];
TA[0]=WT[0]+BT[0];
printf("\n%d\t%d\t%d\t%d\t%d\n",pname[0],BT[0],AT[0],WT[0],TA[0]);
}
for(i=1;i<N;i++)
{
if(AT[i]<e[i-1])
{
s[i]=e[i-1];
e[i]=BT[i]+e[i-1];
WT[i]=s[i]-AT[i];
TA[i]=WT[i]+BT[i];
}
else if(AT[i]>=e[i-1])
{
s[i]=AT[i];
e[i]=s[i]+BT[i];
WT[i]=s[i]-AT[i];
TA[i]=WT[i]+BT[i];
}
else
{
break;
}
}
for(i=1;i<N;i++)
{
printf("\n%d\t%d\t%d\t%d\t%d\n",pname[i],BT[i],AT[i],WT[i],TA[i]);
}
getch();
}

No comments:

Post a Comment