Skip to content

Instantly share code, notes, and snippets.

@projjal1
Created May 13, 2020 16:27
Show Gist options
  • Select an option

  • Save projjal1/26a0a75791aaff3f9a2f98d13426a84d to your computer and use it in GitHub Desktop.

Select an option

Save projjal1/26a0a75791aaff3f9a2f98d13426a84d to your computer and use it in GitHub Desktop.
FCFS implmentation in C.
#include <stdio.h>
// Function to find the waiting time for all
// processes
void findWaitingTime (int processes [], int n, int bt [], int wt [])
{
// waiting time for first process is 0
wt [0] = 0;
// calculating waiting time
for (int i = 1; i < n; i++)
wt[i] = bt[i-1] + wt[i-1];
}
// Function to calculate turn around time
void findTurnAroundTime(int processes[], int n,
int bt[], int wt[], int tat[])
{
// calculating turnaround time by adding
// bt[i] + wt[i]
for (int i = 0; i < n ; i++)
tat[i] = bt[i] + wt[i];
}
//Function to calculate average time
void findavgTime( int processes[], int n, int bt[])
{
int wt[n], tat[n], total_wt = 0, total_tat = 0;
//Function to find waiting time of all processes
findWaitingTime(processes, n, bt, wt);
//Function to find turn around time for all processes
findTurnAroundTime(processes, n, bt, wt, tat);
// Calculate total waiting time and total turn
// around time
for (int i=0; i<n; i++)
{
total_wt = total_wt + wt[i];
total_tat = total_tat + tat[i];
printf("Process id: %d \nBurst time: %d \nWaiting time: %d \nTurnaround time: %d\n",i+1,bt[i],wt[i],tat[i]);
}
float avg_tt=total_tat/n;
float avg_wt=total_wt/n;
printf("The average turnaround time is: %f \n",avg_tt);
printf("The average waiting time is: %f \n",avg_wt);
}
// Driver code
int main()
{
//process id's
int processes[] = { 1, 2, 3};
int n = sizeof processes / sizeof processes[0];
//Burst time of all processes
int burst_time[] = {10, 5, 8};
findavgTime(processes, n, burst_time);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment