This broad overview of techniques in real-time systems design and analysis provides a practical and quick introduction to the subject. The treatment is pragmatic and example-oriented, drawing on extensive experience rather than abstract and theoretically rigorous derivations; but it covers a great deal of territory, including real-time operating systems, software system design, and performance analysis and optimization, among others. After completing this course you should be able to develop an understanding of: What a real-time system is; Process management; Programming languages for real-time; Real-time design issues; Challenges for real-time systems engineers.