Embedded systems have specific characteristics that distinguish them from general purpose computing systems. They are designed for a particular application, operate in real-time to react to environmental events using sensors and actuators, and must function reliably in harsh environments with constraints of small size, weight and low power. Embedded systems may also be components of larger distributed systems that require independent subsystems to work together.