We have already discussed FCFS Scheduling of processes with same arrival time. In this post, scenario when processes have different arrival times are discussed. Given n processes with their burst times and arrival times, the task is to find average waiting time and 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.
- Completion Time: Time at which process completes its execution.
- Turn Around Time: Time Difference between completion time and arrival time. Turn Around Time = Completion Time – Arrival Time
- Waiting Time(W.T): Time Difference between turn around time and burst time.
Waiting Time = Turn Around Time – Burst Time
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 : Service time means amount of time after which a process can start execution. It is summation of burst time of previous processes (Processes that came before)
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 + bt +…… 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 + bt +...... 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
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
This article is contributed by Sahil Chhabra (akku). If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
- Priority CPU Scheduling with different arrival time - Set 2
- Round Robin Scheduling with different arrival times
- Program for FCFS CPU Scheduling | Set 1
- Difference between Arrival Time and Burst Time in CPU Scheduling
- Difference between FCFS and SJF CPU scheduling algorithms
- Difference between First Come First Served (FCFS) and Longest Job First (LJF) CPU scheduling algorithms
- Difference between FCFS and Priority CPU scheduling
- Multilevel Feedback Queue Scheduling (MLFQ) CPU Scheduling
- Difference between Priority Scheduling and Round Robin (RR) CPU scheduling
- Difference between Priority scheduling and Shortest Job First (SJF) CPU scheduling
- Program for Shortest Job First (or SJF) CPU Scheduling | Set 1 (Non- preemptive)
- Program for Priority CPU Scheduling | Set 1
- FCFS Disk Scheduling Algorithms
- Difference between First Come First Served (FCFS) and Round Robin (RR) Scheduling Algorithm
- Difference between FCFS and SCAN disk scheduling algorithms
- FCFS Scheduling Full Form
- Difference between FCFS and SSTF Disk Scheduling Algorithm
- Difference between FCFS and C-LOOK disk scheduling algorithm
- Difference between Multi Level Queue Scheduling (MLQ) and First Come First Served (FCFS)
- Relation in FCFS and Round Robin Scheduling Algorithm