What is FCFS Scheduling
First Come First Serve Scheduling
First Come First Serve is the full form of FCFS. It is the easiest and most simple CPU scheduling algorithm. In this type of algorithm, the process which requests the CPU gets the CPU allocation first. This scheduling method can be managed with a FIFO queue.
As the process enters the ready queue, its PCB (Process Control Block) is linked with the tail of the queue. So, when CPU becomes free, it should be assigned to the process at the beginning of the queue.
Characteristics of FCFS Method
- It offers non-preemptive and pre-emptive scheduling algorithm.
- Jobs are always executed on a first-come, first-serve basis
- It is easy to implement and use.
- However, this method is poor in performance, and the general wait time is quite high.
Disadvantages of FCFS Method
- The scheduling method is non preemptive, the process will run to the completion.
- Due to the non-preemptive nature of the algorithm, the problem of starvation may occur.
- Although it is easy to implement, but it is poor in performance since the average waiting time is higher as compare to other scheduling algorithms.
Example of First Come First Serve Scheduling
Let's take an example of The FCFS scheduling algorithm. In the Following schedule, there are 5 processes with process ID P0, P1, P2, P3 and P4. P0 arrives at time 0, P1 at time 1, P2 at time 2, P3 arrives at time 3 and Process P4 arrives at time 4 in the ready queue. The processes and their respective Arrival and Burst time are given in the following table.
The Turnaround time and the waiting time are calculated by using the following formula.
Example
Turn Around Time = Completion Time - Arrival Time Waiting Time = Turnaround time - Burst Time
The average waiting Time is determined by summing the respective waiting time of all the processes and divided the sum by the total number of processes.
Process ID | Arrival Time | Burst Time | Completion Time | Turn Around Time | Waiting Time |
---|---|---|---|---|---|
0 | 0 | 2 | 2 | 2 | 0 |
1 | 1 | 6 | 8 | 7 | 1 |
2 | 2 | 4 | 12 | 8 | 4 |
3 | 3 | 9 | 21 | 18 | 9 |
4 | 4 | 12 | 33 | 29 | 17 |
Example
Avg Waiting Time=31/5