![]() |
VOOZH | about |
We have already discussed FCFS Scheduling of processes with same arrival time. In this post, scenarios, when processes have different arrival times, are discussed. Given n processes with their burst times and arrival times, the task is to find the average waiting time and an average turn around time using FCFS scheduling algorithm.
FIFO simply queues processes in the order they arrive in the ready queue. Here, the process that comes first will be executed first and next process will start only after the previous gets fully executed.
Process Wait Time : Service Time - Arrival Time
P0 0 - 0 = 0
P1 5 - 1 = 4
P2 8 - 2 = 6
P3 16 - 3 = 13
Average Wait Time: (0 + 4 + 6 + 13) / 4 = 5.75
Service Time: Also known as Burst Time, this is the amount of time a process requires to complete its execution on the CPU. It represents the time the CPU spends executing instructions of that particular process.
Waiting Time: It refers to the total amount of time that a process spends waiting in the ready queue before it gets a chance to execute on the CPU.
Changes in code as compare to code of FCFS with same arrival time: To find waiting time: Time taken by all processes before the current process to be started (i.e. burst time of all previous processes) - arrival time of current process
wait_time[i] = (bt[0] + bt[1] +...... bt[i-1] ) - arrival_time[i]
1- Input the processes along with their burst time(bt) and arrival time(at)
2- Find waiting time for all other processes i.e. for a given process i:
wt[i] = (bt[0] + bt[1] +...... bt[i-1]) - at[i]
3- Now find turn around time = waiting_time + burst_time for all processes
4- Average waiting time = total_waiting_time / no_of_processes
5- Average turn around time = total_turn_around_time / no_of_processes
Output:
Processes | Burst Time | Arrival Time | Waiting Time | Turn-Around Time | Completion Time |
|---|---|---|---|---|---|
1 | 5 | 0 | 0 | 5 | 5 |
2 | 9 | 3 | 2 | 11 | 14 |
3 | 6 | 6 | 8 | 14 | 20 |
Average waiting time = 3.33333
Average turn around time = 10.0
Output:
👁 ImageIn this program, the user is asked to input the number of processes and their respective burst times. Then, the program calculates the waiting time and turnaround time for each process and outputs the average waiting time and average turnaround time. Finally, the program displays a table showing the details of each process.