This classroom-tested textbook offers a bottom-up approach to designing and implementing software for distributed real-time systems. It addresses common challenges in real-time software projects and presents a novel method for executing all software engineering steps effectively. Each chapter begins with core concepts and relevant methods, followed by the implementation of these concepts in a sample kernel, complete with executable code. Key topics include the fundamentals of real-time systems, real-time architecture, and distributed systems, with a focus on real-time operating systems covering task, memory, and input/output management. The book provides a detailed step-by-step construction of a real-time operating system kernel, which is utilized to test various higher-level implementations. It also discusses periodic and aperiodic scheduling, resource management, and distributed scheduling. The process of application design is reviewed from high-level methods to low-level implementation details. Additionally, it surveys real-time programming languages and fault tolerance techniques, includes end-of-chapter review questions, extensive C code, numerous examples, and a case study for real-world applications. With only a basic background in computer architecture and operating systems required, this work is an invaluable resource for senior undergraduate and graduate students in electrical and computer engineering, as well as com
K. Erciyes Book order (chronological)
