FCFS: First Come First Serve Scheduling in OS
FCFS is a non-preemptive and preemptive scheduling algorithm that is easy to understand and use. In this, the process which reaches first is executed first, or in other words, the process which requests first for a CPU gets the CPU first.
Example of FCFS: buying tickets at the ticket counter.
FCFS is similar to the FIFO queue data structure. In FCFS, the element which is added in the queue first will leave first.
FCFS is used in Batch Operating Systems.
Characteristics of FCFS Scheduling
The characteristics of FCFS Scheduling are:
- FCFS is simple to use and implement.
- In FCFS, jobs are executed in a First-come First-serve (FCFS) manner.
- FCFS supports both preemptive as well as non-preemptive scheduling algorithm.
- FCFS is poor in performance due to high waiting times.
Advantages of FCFS
The advantages of FCFS are:
- Easy to program
- First come, first serve
- Simple scheduling algorithm.
Disadvantages of FCFS
- Because of non-preemptive nature, the problem of starvation arises.
- More Average waiting time.
- Due to its simplicity, FCFS is not effective.
- FCFS is not the ideal scheduling for the time-sharing system.
- FCFS is a Non-Preemptive Scheduling algorithm, so allocating the CPU to a process will never release the CPU until it completes its execution.
- In FCFS, it is not possible to use the resources in a parallel manner, which causes the convoy effect, so the resource utilization is poor in FCFS.
What is Convoy Effect
In FCFS, Convoy Effect is a condition that arises in the FCFS Scheduling algorithm when one process holds the CPU for a long time, and another process can get the CPU only when the process holding the CPU finishes its execution. Due to this, resource utilization is poor and also affects the performance of the operating system.
Example of FCFS Scheduling
In the following example, we have 4 processes with process ID P0, P1, P2, and P3. The arrival time of P0 is 0, P1 is 1, P2 is 2, and P3 is 3. The arrival time and burst time of the processes are given in the following table.
The waiting time and Turnaround time are calculated with the help of the following formula.
Waiting Time = Turnaround time – Burst Time
Turnaround Time = Completion time – Arrival time
|Process ID||Arrival Time||Burst Time||Completion Time||Turnaround Time||Waiting Time|
Average Waiting Time = 0+5+12+21/4
= 9.5 ms
Average Turnaround Time = 6+13+22+33/4
= 18.5 ms