FCFS Scheduling Full Form
FCFS stands for First Come First Serve. In the FCFS scheduling algorithm, the job that arrived first in the ready queue is allocated to the CPU and then the job that came second, and so on. We can say that the ready queue acts as a FIFO (First In First Out) queue thus the arriving jobs/processes are placed at the end of the queue.
FCFS is a non-preemptive scheduling algorithm as a process holds the CPU until it either terminates or performs I/O. Thus, if a longer job has been assigned to the CPU then many shorter jobs after it will have to wait. This algorithm is used in most batch operating systems.
- It follows the non-preemptive approach i.e. once a process has control over the CPU it will not preempt until it terminates.
- The criteria for the selection of processes is arrival time. The dispatcher selects the first job in the ready queue and this job runs to completion of its CPU burst.
- The average waiting time is very high so not optimal and thus gives poor performance.
- Simple and easy to understand: FCFS is a simple and easy-to-understand scheduling algorithm that does not require complex computations or heuristics.
- Non-preemptive approach: As mentioned, FCFS follows the non-preemptive approach, which means that once a process has control over the CPU, it will continue to run until it completes its CPU burst or voluntarily relinquishes the CPU.
- Queue management: FCFS uses a simple queue structure to manage the order in which processes are scheduled. The first process that arrives is added to the back of the queue, and subsequent processes are added to the end of the queue.
- Starvation: FCFS can lead to the problem of starvation, where a long-running process can cause other processes to wait for an extended period, leading to poor performance.
- Average turnaround time: FCFS can have a high average turnaround time, as longer processes may have to wait for shorter processes to complete, leading to longer waiting times.
- Limited scheduling flexibility: FCFS has limited scheduling flexibility, as it does not take into account the priority or resource requirements of the processes. This can lead to suboptimal performance in certain scenarios, such as when there are both CPU-bound and I/O-bound processes.
- Not optimal for interactive systems: FCFS is not optimal for interactive systems, as it may cause long waiting times for users, leading to a poor user experience.
- FCFS algorithm is simple, easy to implement into any preexisting system, and easy to understand.
- Better for processes with large burst time as there is no context switch involved between processes.
- It is a fair algorithm as priority is not involved, processes that arrive first get served first.
- Convoy effect occurs i.e. all small processes have to wait for one large process to get off the CPU.
- It is non-preemptive, the process will not release the CPU until it finishes its task and terminates.
- It is not appropriate for interactive systems as it cannot guarantee a short response time.
- Average waiting time is high and the turnaround time is unpredictable which leads to poor performance.
Share your thoughts in the comments
Please Login to comment...