First Come First Served (FCFS) Scheduling
First Come First Served (FCFS) Scheduling is the simplest and one of the oldest CPU scheduling algorithms used in operating systems. In FCFS scheduling, the process that arrives first in the ready queue gets the CPU first. Once a process starts executing, it continues until it finishes or moves to the waiting state for I/O. Because it is easy to understand and implement, FCFS is commonly used to explain the basic concepts of CPU scheduling.
The main features of FCFS scheduling are given below:
- It is a non-preemptive CPU scheduling algorithm.
- The process that arrives first is executed first. Once a process starts execution, it cannot be interrupted until it finishes or requests I/O.
- It is simple and easy to implement with low scheduling overhead.
- Every process gets a chance to execute, so starvation does not occur.
In this article, you will learn the definition, working, algorithm, characteristics, advantages, disadvantages, examples, and applications of First Come First Served (FCFS) Scheduling in detail.
How First Come First Served (FCFS) Scheduling Works
FCFS scheduling works by maintaining a queue of ready processes. Whenever the CPU becomes free, the operating system selects the process at the front of the queue for execution.
The process continues running until:
- It completes execution, or
- It requests an I/O operation and leaves the CPU.
After that, the next process in the queue receives the CPU.
Working Steps of FCFS Scheduling
The First Come First Served (FCFS) scheduling algorithm works by executing processes in the same order in which they arrive in the ready queue. The process that arrives first gets the CPU first, while the others wait for their turn. The working steps are given below:
- A Process Enters the Ready Queue: Whenever a process arrives, it is added to the end of the ready queue.
- The First Process Gets the CPU: The operating system selects the process at the front of the ready queue and gives it the CPU.
- The Process Runs to Completion: The selected process keeps running until it finishes its execution or moves to the waiting state for an I/O operation. It is not interrupted by another process because FCFS is a non-preemptive scheduling algorithm.
- The Next Process Gets the CPU: After the current process finishes or leaves the CPU, the operating system selects the next process in the ready queue.
- The Same Steps Continue: The operating system continues executing processes one by one in the order they arrived until all processes have been completed.
Example of FCFS Scheduling
Consider three processes P1, P2, and P3 with the following arrival times and burst times.

Since all three processes arrive at the same time (AT = 0), FCFS executes them in the order they are placed in the ready queue. Here, the order is P1 → P2 → P3.
Let’s calculate Average Turnaround Time (ATAT) and Average Turnaround Time (ATAT)
| Process | AT | BT | CT | TAT = CT − AT | WT = TAT − BT |
| P1 | 0 | 15 | 15 | 15 | 0 |
| P2 | 0 | 5 | 20 | 20 | 15 |
| P3 | 0 | 10 | 30 | 30 | 20 |
Average Waiting Time (AWT)
= (0 + 15 + 20) / 3
= 11.67 ms
Average Turnaround Time (ATAT)
= (15 + 20 + 30) / 3
= 21.67 ms
In the very next lecture, we will see FCFS scheduling examples
Characteristics of FCFS Scheduling
First Come First Served (FCFS) scheduling has several characteristics that make it different from other CPU scheduling algorithms. The main characteristics are given below:
- Non-Preemptive Scheduling: Once a process starts executing, it keeps the CPU until it finishes its execution or moves to the waiting state for an I/O operation. It cannot be interrupted by another process.
- Follows FIFO Principle: FCFS follows the First-In, First-Out (FIFO) principle. The process that arrives first in the ready queue is executed first.
- Executes Processes by Arrival Time: The CPU is allocated to processes strictly according to their arrival time. The operating system does not consider the process’s burst time or priority.
- Simple to Implement: FCFS is one of the easiest CPU scheduling algorithms to implement because it only requires a simple queue to manage processes.
- Fair Scheduling: Every process gets a chance to execute in the order it arrives. No process is skipped, so starvation does not occur.
- Convoy Effect: FCFS may suffer from the Convoy Effect, where one long-running process delays many short processes waiting in the queue, reducing overall system performance.
Advantages of FCFS Scheduling
First Come First Served (FCFS) scheduling offers several advantages, especially in simple and batch processing systems. The main advantages are given below:
- Simple to Understand and Implement: FCFS is one of the easiest CPU scheduling algorithms because it uses a simple FIFO queue.
- Low Scheduling Overhead: The operating system spends very little time deciding which process to execute next, making scheduling efficient.
- Fair Scheduling: Processes are executed in the order they arrive, giving every process an equal chance to use the CPU.
- No Starvation: Every process eventually gets CPU time because no process is skipped or permanently delayed.
- Suitable for Batch Processing: FCFS works well in batch operating systems where quick response time is not a major requirement.
- Predictable Execution Order: Since processes are executed according to their arrival time, the execution order is easy to understand and predict.
- Easy to Maintain: Its simple design makes FCFS easy to implement, test, and maintain in an operating system.
Disadvantages of FCFS Scheduling
First Come First Served (FCFS) scheduling also has some disadvantages that can reduce system performance. The main disadvantages are given below:
- High Waiting Time: A process may have to wait for a long time if several processes are already waiting in the ready queue.
- High Turnaround Time: Since processes are executed one by one, the total time taken from a process’s arrival to its completion can be high.
- Poor Response Time: Interactive and time-sharing systems may experience slow response because new processes must wait for earlier processes to finish.
- Long Processes Delay Short Processes: If a long process arrives first, all shorter processes must wait until it completes, even if they require only a small amount of CPU time.
- Convoy Effect: FCFS may suffer from the Convoy Effect, where one long-running process delays many short processes, reducing overall CPU efficiency and system performance.
- Not Suitable for Real-Time Systems: FCFS cannot guarantee quick execution of urgent tasks, making it unsuitable for real-time operating systems.
- Does Not Consider Priority: All processes are treated equally based only on their arrival time, regardless of their priority or importance.
Performance Measures of FCFS Scheduling
The performance of First Come First Served (FCFS) scheduling is measured using different metrics. These metrics help evaluate how efficiently the CPU executes processes. The main performance measures are given below:
| Performance Measure | Description |
|---|---|
| Waiting Time (WT) | The total time a process waits in the ready queue before it starts execution. Lower waiting time indicates better performance. |
| Turnaround Time (TAT) | The total time taken by a process from its arrival until its completion. It includes both waiting time and execution time. |
| Response Time (RT) | The time between a process’s arrival and the moment it gets the CPU for the first time. This is important for interactive systems. |
| Throughput | The number of processes completed by the CPU in a given period. Higher throughput means better system performance. |
| CPU Utilization | The percentage of time the CPU remains busy executing processes. Higher CPU utilization indicates more efficient use of the processor. |
Applications of FCFS Scheduling
First Come First Served (FCFS) scheduling is widely used in systems where simplicity, fairness, and low scheduling overhead are more important than fast response time. The common applications of FCFS scheduling are given below:
- Batch Operating Systems: FCFS is commonly used in batch systems where jobs are executed one after another in the order they are submitted.
- Print Queue Management: Printers often process print requests in the order they are received, making FCFS suitable for print queue management.
- Job Scheduling: Simple job scheduling systems execute tasks based on their arrival time using the FCFS approach.
- Disk Request Processing: Basic disk scheduling systems may use FCFS to serve disk access requests in the order they arrive.
- Simple Embedded Systems: Some embedded systems use FCFS because it is easy to implement and requires very little scheduling overhead.
- Educational Operating System Simulations: FCFS is widely used in educational projects and operating system simulations to help students understand the basic concepts of CPU scheduling.
- Queue-Based Service Systems: FCFS is also used in systems where requests are handled on a first-come, first-served basis, ensuring fair processing of all requests.
When to Use FCFS Scheduling
First Come First Served (FCFS) scheduling is suitable for systems where simple process management and fair execution are more important than fast response time. It is commonly used in environments where process execution order is based on arrival time. The situations where FCFS scheduling is most suitable are given below:
- Batch Processing Systems: FCFS works well in batch operating systems where jobs are executed one after another without user interaction.
- When Fairness is Important: It is suitable when every process should be executed in the exact order it arrives, ensuring fair CPU allocation.
- Low Scheduling Overhead is Required: FCFS is a good choice when the operating system needs a simple scheduling algorithm with minimal overhead.
- Processes Have Similar Burst Times: It performs better when most processes require nearly the same amount of CPU time, reducing waiting time differences.
- Response Time is Not Critical: FCFS is suitable for systems where users do not require immediate responses, such as offline processing systems.
- Simple Operating Systems: It is commonly used in simple or educational operating systems because it is easy to understand and implement.
- Small Workloads: FCFS is effective when the number of processes is small and the system does not require advanced scheduling techniques.
Frequently Asked Questions (FAQs)
Is FCFS preemptive or non-preemptive?
FCFS is a non-preemptive CPU scheduling algorithm. Once a process starts executing, it continues running until it completes or moves to the waiting state for an I/O operation. It cannot be interrupted by another process.
Which data structure is used in FCFS scheduling?
FCFS uses a FIFO (First-In, First-Out) queue to manage processes. The process that enters the ready queue first is executed first.
Does FCFS cause starvation?
No. FCFS does not cause starvation because every process is executed in the order it arrives. Each process eventually gets a chance to use the CPU.
What is the biggest disadvantage of FCFS scheduling?
The biggest disadvantage of FCFS scheduling is the Convoy Effect. A long-running process can delay many short processes, increasing waiting time and reducing overall system performance.
Is FCFS suitable for real-time systems?
No. FCFS is not suitable for real-time operating systems because it cannot guarantee fast response times or the timely execution of high-priority tasks.
What is the main principle of FCFS scheduling?
FCFS follows the First-In, First-Out (FIFO) principle, meaning the process that arrives first in the ready queue is executed first.
Why is FCFS considered the simplest scheduling algorithm?
FCFS is considered the simplest scheduling algorithm because it schedules processes only based on their arrival time and requires a simple FIFO queue for implementation.
Conclusion
First Come First Served (FCFS) Scheduling is the simplest non-preemptive CPU scheduling algorithm in operating systems. It executes processes strictly according to their arrival order using the FIFO principle. Its simplicity, fairness, and low overhead make it suitable for batch processing and basic scheduling tasks. However, high waiting time, poor response time, and the Convoy Effect limit its use in modern interactive and real-time systems. Understanding FCFS provides a strong foundation for learning more advanced CPU scheduling algorithms such as SJF, Priority Scheduling, and Round Robin.