Real-Time Ada
Home Up Real-Time Fault Tolerance The Instructor References


Embedded/Real-Time Programming In Ada

This unique course focuses on the use of Ada in applications in which reliability and timeliness are of utmost importance. Unlike many "real-time" courses, which limit themselves to the tasking facilities for concurrent programming, this course takes a detailed, issue-driven exploration of the approaches, advantages, and problems in the use of Ada for real-time systems. The roles of the compilation system and runtime support system are examined with respect to responsibilities and options. These two systems, which address real-time application requirements through predictability and deterministic behavior, control resource management for both storage and processors. The course covers models for reliable storage management and two of the most popular strategies for dealing with processor management: the Cyclic Executive model and the Rate-Monotonic Analysis (RMA) model. The strengths and weaknesses of each of the models is considered in light of practical application issues, allowing students to apply them to domain-specific requirements. Throughout the course, the powerful new facilities of Ada for real-time applications will be examined, including the new user-defined storage management capabilities, RTSE tailoring and the Real-Time and Systems Programming Annexes, which provide direct, integrated support for the timing analysis models examined.


The ideal student will be fairly familiar with the Ada language, and will have experience in real-time systems development.


After the course the student will have learned how to:

bulletUse the predefined deadline scheduling facilities for predictable, reliable tasking
bulletUse the low-level language facilities for embedded systems programming
bulletDefine storage management routines integrated with the language facilities
bulletTailor the RTSE to provide an optimally efficient tasking implementation
bulletImplement the cyclic scheduler model in Ada
bulletCreate reusable task schedulers
bulletRecognize the differences in implementation that affect performance
bulletTailor code in response to performance hot-spots


5 days