×

FCFS Scheduling in OS

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:

  1. FCFS is simple to use and implement.
  2. In FCFS, jobs are executed in a First-come First-serve (FCFS) manner.
  3. FCFS supports both preemptive as well as non-preemptive scheduling algorithm.
  4. FCFS is poor in performance due to high waiting times.

Advantages of FCFS

The advantages of FCFS are:

  1. Easy to program
  2. First come, first serve
  3. Simple scheduling algorithm.

Disadvantages of FCFS

  1. Because of non-preemptive nature, the problem of starvation arises.
  2. More Average waiting time.
  3. Due to its simplicity, FCFS is not effective.
  4. FCFS is not the ideal scheduling for the time-sharing system.
  5. FCFS is a Non-Preemptive Scheduling algorithm, so allocating the CPU to a process will never release the CPU until it completes its execution.
  6. 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
P0 0 6 6 6 0
P1 1 8 14 13 5
P2 2  10 24 22 12
P3 3 12 36 33 21
FCFS Scheduling in OS

Average Waiting Time = 0+5+12+21/4

                                         = 38/4

                                          = 9.5 ms

Average Turnaround Time = 6+13+22+33/4

                                              =74/4

                                               = 18.5 ms


Related Topics

Test Set Lock Mechanism | Operating System

Modification in the Assembly Code The problem in the lock variable is that, in some cases, the process reads the previous or old value of the lock variable and enters into the critical...

4 minutes read.

Swapping in Operating System

Swapping in operating systems refers to temporarily transferring a program or process from main memory to a secondary storage device, such as a hard drive or solid-state drive when there...

4 minutes read.

Bit Vector in Operating System

What is Bit vector? Bit vector is one of the most important methods used in the free space management of operating system. Free space management which is used by the operating...

3 minutes read.

Resource Allocation Graph in Operating System

Resource Allocation Graph in OS We use the resource allocation graph for the pictographic representation of the state of a system. The resource allocation graph contains all the information related to the processes that...

5 minutes read.

What is Scheduling on OS

Scheduling is the process which is used to share the computing resources such as memory, processor time, and bandwidth to the different processes, data flows, threads, and applications which need them. Scheduling is...

5 minutes read.

Directory Structure in Operating System

Directory Structure in Operating System What is a Directory A Directory is the collection of the correlated files on the disk. In simple words, a directory is like a container which contains...

8 minutes read.

File Allocation Methods in Operating System

A file allocation method is a way that an operating system stores and retrieves files on a storage device, such as a hard drive or SSD. The file allocation method...

4 minutes read.

MS-DOS Operating System

It is also referred to occasionally as "DOS", an abbreviation for disc operating systems. Operating systems with a graphical user interface (GUI) in different iterations of the graphical Microsoft Windows...

5 minutes read.

SJF Scheduling in OS

Shortest Job First (SJF) Scheduling in OS Shortest Job First is a Preemptive or Non-Preemptive algorithm. In the shortest job first algorithm, the job having shortest or less burst time will...

4 minutes read.

Why is it critical for the Scheduler to distinguish between I/O-bound and CPU-bound programs

A CPU-bound process is one that spends most of its time executing instructions on the processor. A process that is I/O-bound spends most of its time waiting for input and...

2 minutes read.

Ubuntu Operating System

Ubuntu Operating System Ubuntu is an open-source and a Linux based operating system. Ubuntu is developed for the Network Servers, Computers, and Smartphones. The Ubuntu operating system was developed by Canonical...

3 minutes read.

Fixed Partitioning in Operating System

Fixed Partitioning in OS Fixed Partitioning is also known as Contiguous memory allocation. Fixed Partitioning is the easiest method, which is used to load more than one process into the main memory. In Fixed...

5 minutes read.

What is Demand Paging?

Demand Paging is defined as a process in which the pages are loaded into the memory (when the page fault occurs) or on-demand. It consists of the following steps: If there is...

4 minutes read.

Deadlock Prevention in Operating System

Deadlock Prevention The conditions which we used for deadlock prevention are: Mutual ExclusionHold and WaitNo PreemptionCircular Wait 1. Mutual Exclusion: - From the resource point of view, the mutual exclusion means that simultaneously more...

4 minutes read.

Kernel in OS

What is Kernel in OS? The kernel is the core component in the operating system. The job of the kernel is to handle the communication between the hardware and the software. ...

2 minutes read.

Page Table in Operating System

What is a Page Table? A page table is a data structure used by an operating system (OS) to store information about the physical location of the pages in a computer's...

6 minutes read.

Linux Operating System

What is Linux? The Linux operating system is used on various devices, including cellphones, automobiles, supercomputers, household gadgets, personal computers, and business servers. You can find Linux on your phones, thermostats, vehicles,...

8 minutes read.

Semaphore in Operating System

What is Semaphore in Operating System Semaphore is defined as an integer variable which is used to solve the problem of the critical section in process synchronization. In semaphore, we use...

3 minutes read.

Inter Process Communication in Operating System

Inter-Process Communication or IPC refers to the methods and techniques that allow processes (programs or tasks) to communicate with each other within a computer system. This is typically done through...

3 minutes read.

How to implement Monitors using Semaphores

Monitors Monitor is a type of synchronization device designed to solve difficulties caused by semaphores, such as timing errors. Monitors are the type of data types that are abstract by nature...

2 minutes read.