A Real Time Operating System is an operating system optimized for use in embedded/real time applications. Their primary objective is to ensure a timely and deterministic response to events. Using a real time operating system allows applications to be written as a set of independent threads that inter-communicate using message queues and semaphores.