Created
May 13, 2020 16:27
-
-
Save projjal1/26a0a75791aaff3f9a2f98d13426a84d to your computer and use it in GitHub Desktop.
FCFS implmentation in C.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #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