A real-time operating system or RTOS (sometimes known as a real-time executive or kernel) is a library of functions that implements rules and policies to manage time-critical allocation of a computer system’s resources. RTOSes are commonly used in embedded systems. The RTOS provides a software abstraction layer to the underlying microcontroller or processor (CPU). The developer’s application code uses the inherent capabilities of the RTOS to manage access to and scheduling of CPU resources. This paper presents the fundamentals of real-time operating systems (RTOS), hard vs. soft real-time, multitasking and preemption.