Non-preemptive scheduling based on arrival order
First-Come-First-Served (FCFS) is the simplest CPU scheduling algorithm where processes are executed in the order of their arrival. When a process enters the ready queue, it is placed at the tail, and the CPU is allocated to the process at the head of the queue. FCFS is non-preemptive, meaning once a process starts execution, it runs to completion without being interrupted. The main advantage of FCFS is its simplicity and ease of implementation with a simple FIFO queue. However, it suffers from several disadvantages: the convoy effect where short processes wait behind long processes, leading to poor average waiting time; poor responsiveness for interactive systems as processes may wait indefinitely; and no prioritization of important processes. FCFS can perform reasonably well when process burst times are similar but becomes inefficient with varying CPU burst times. The average waiting time under FCFS can be calculated by summing the waiting times of all processes and dividing by the number of processes. Despite its limitations, FCFS is used in some simple systems and serves as a baseline for comparing more sophisticated scheduling algorithms.