This classroom-tested textbook describes the design and implementation of software for distributed real-time systems, using a bottom-up approach. The text addresses common challenges faced in software projects involving real-time systems, and presents a novel method for simply and effectively performing all of the software engineering steps. Each chapter opens with a discussion of the core concepts, together with a review of the relevant methods and available software. This is then followed with a description of the implementation of the concepts in a sample kernel, complete with executable code.Topics and features: introduces the fundamentals of real-time systems, including real-time architecture and distributed real-time systems; presents a focus on the real-time operating system, covering the concepts of task, memory, and input/output management; provides a detailed step-by-step construction of a real-time operating system kernel, which is then used to test various higher level implementations; describes periodic and aperiodic scheduling, resource management, and distributed scheduling; reviews the process of application design from high-level design methods to low-level details of design and implementation; surveys real-time programming languages and fault tolerance techniques; includes end-of-chapter review questions, extensive C code, numerous examples, and a case study implementing the methods in real-world applications; supplies additional material at an associated website.
Requiring only a basic background in computer architecture and operating systems, this practically-oriented work is an invaluable study aid for senior undergraduate and graduate-level students of electrical and computer engineering, and computer science. The text will also serve as a useful general reference for researchers interested in real-time systems.
Dr. Kayhan Erciyes is a full Professor in the Department of Computer Engineering at Üsküdar University, Istanbul, Turkey. His other publications include the Springer titles Guide to Graph Algorithms, Distributed and Sequential Algorithms for Bioinformatics, and Distributed Graph Algorithms for Computer Networks.
Part I: Introduction.- Introduction to Real-Time Systems.- The Hardware.- Distributed Real-Time Systems.- Part II: System Software.- Real-Time Operating Systems.- Design of an Experimental Distributed Real-Time Kernel.- Distributed Real-Time Operating Systems and the Middleware.- Part III: Scheduling and Resource Sharing.- Uniprocessor Independent Task Scheduling.- Uniprocessor Dependent Task Scheduling.- Multiprocessor and Distributed Real-Time Scheduling.- Part IV: Application Design.- Software Engineering of Real-Time Systems.- Real-Time Programming Languages.- Fault Tolerance.- Case Study: Environment Monitoring by a Wireless Sensor Network.- Appendix A: Pseudocode Conventions.- Appendix B: Lower Kernel Functions.