Thursday, January 23, 2020

FCFS Scheduling with gannt chart and table in c program


#include<stdio.h>
void ganntchart(int p[],int arr2[],int n);

void displaytable(int arr[],int arr1[],int arr2[],int arr3[],int arr4[],int p[],int n);
int main()
{
/*
where arr for arival time
arr1 for burst time
arr2 for c.t
arr3 for tat
arr4 for waiting time
*/
int n,arr[15],arr1[15],arr2[15]={0},arr3[15],arr4[15],s=0;
int p[15];
float wt=0,tat=0;
int i,j,swap,swap1;
printf("Enter how many processers are there ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
p[i] = i+1;
printf("Enter p%d arival time",i+1);
scanf("%d",&arr[i]);

printf("Enter p%d burst time",i+1);
scanf("%d",&arr1[i]);

}


for(i=0;i<n;i++)
{
for(j=0;j<n-i-1;j++)
{
if(arr[j]>arr[j+1])
{
swap = arr[j];
arr[j] = arr[j+1];
arr[j+1] = swap;

swap1 = arr1[j];
arr1[j] = arr1[j+1];
arr1[j+1] = swap1;

int swap2 = p[j];
p[j]= p[j+1];
p[j+1] = swap2;

}

}
}
//ct
for(i=0;i<n;i++)
{
s = s+arr1[i];
arr2[i] = s;
}
//tat and wt
for(i=0;i<n;i++)
{
arr3[i] = arr2[i] - arr[i];
arr4[i] =  arr3[i] - arr1[i];
}
for(i=0;i<n;i++)
{
tat = tat+arr3[i];
wt = wt+arr4[i];
}
tat = tat/n;
wt = wt/n;
displaytable(arr,arr1,arr2,arr3,arr4,p,n);

ganntchart(p,arr2,n);

printf("\n\nAverage turn around time is : %f \nAverage waiting time is :%f",tat,wt);

}

//    Display table


void displaytable(int arr[],int arr1[],int arr2[],int arr3[],int arr4[],int p[],int n)
{
int i;
printf("\n                         printing table");
printf("\n                         --------------\n\n");

printf("p  |  Arival time  |  Burst time  |  complete time  |    TAT  |   WT  |\n");
 
for(i=0;i<n;i++)
    {
     printf("p%2d      %2d             %2d               %2d              %2d       %2d  \n",p[i],arr[i],arr1[i],arr2[i],arr3[i],arr4[i]);
}


}



// Gannt chart
void ganntchart(int p[],int arr2[],int n)
{
int i,j,k=1;
printf("\n                         Gannt chart");
printf("\n                         ----------- \n");
printf("\n");

for(i=0;i<n;i++)
{
printf(" ");
for(j=0;j<k;j++)
{


printf("--");

}

k++;

}
printf("\n");

for(i=0;i<n;i++)
{
printf("|p%d",p[i]);
k= i*2;
for(j=0;j<k;j++)
{
printf(" ");

}
}



printf("|\n");
k=1;

for(i=0;i<n;i++)
{
printf(" ");
for(j=0;j<k;j++)
{


printf("--");

}

k++;

}
printf("\n");
printf("0");
k=1;
int m=0;
for(i=0;i<n;i++)
{
for(j=0;j<k;j++)
{
printf("  ");
}

k++;
if(arr2[i]>=10)
{
if(m==0)
{
printf("%d",arr2[i]);

}
else
{
printf("\b");
printf("%d",arr2[i]);
}
m++;
}
else
{
printf("%d",arr2[i]);
}

}

}


No comments:

Post a Comment

Manhattan Distance Heuristic

#include<stdio.h> #include<stdlib.h> struct node{  int arr[10][10];  int i,j;  int md; }; int a[10][10]; struct node*...