Real-time systems are systems whose specifications include both logical and temporal correctness requirements. They must produce outputs at the right time in addition to producing logically correct outputs. Many embedded systems are real-time systems. Real-time systems have characteristics like being event-driven, having high failure costs, requiring concurrency and reliability. They can be hard real-time systems where all deadlines must be met or soft real-time systems where some missed deadlines are allowed. Real-time operating systems help manage resources and priorities to meet the timing constraints of real-time applications.