An embedded system can be thought of as a computer hardware system having software embedded in it. It is a microcontroller or microprocessor based system which is designed to perform a specific task. An embedded system has hardware, application software, and a real-time operating system (RTOS) that supervises the application software and provides mechanisms to control latencies according to a fixed plan. Embedded systems are single-functioned, tightly constrained, reactive, real-time systems based on microprocessors with limited memory that are connected and combine both hardware and software.