Most operating systems appear to allow multiple programs to execute at the same time. This is called multi-tasking. In reality, each processor core can only be running a single thread of execution at any given point in time. A part of the operating system called the scheduler is responsible for deciding which program to run when, and provides the illusion of simultaneous execution by rapidly switching between each program.
The scheduler in a RTOS is designed to provide a predictable execution pattern. This is particularly of interest to embedded systems as embedded systems often have real time requirements. A real time requirements is one that specifies that the embedded system must respond to a certain event within a strictly defined time. A guarantee to meet real time requirements can only be made if the behaviour of the operating system's scheduler can be predicted.
RTOS and FreeRTOS that is designed to be small enough to run on a microcontroller.
-Health care
-Robotic
-Mission critical
-IoT
-Etc...