Real-Time Software Engineering in ADA: Observations and Guidelines
September 1989 • Technical Report
This 1989 report presents techniques for controlling devices with Ada and several Ada tasking paradigms for managing concurrency.
Software Engineering Institute
CMU/SEI Report Number
Two important aspects of developing a real-time system are controlling devices and managing concurrency. In this report, we present several techniques for controlling devices with ADA and several ADA tasking paradigms for managing concurrency. The material presented in this report is taken from our experiences in developing a real-time embedded system in ADA, and we use examples from this system to illustrate the various methods we present. We begin by describing our experiences using ADA to control devices. Specifically, we identify issues related to accessing device registers and handling interrupts, and present techniques for dealing with such issues. We then recount our experiences using ADA to manage concurrency. Specifically, we present coding paradigms for implementing periodicity and constructing synchronization mechanisms. We illustrate analytical methods for determining the schedulability of a task set. We then discuss the effect of aperiodic processing requirements on the schedulability of a task set.