Real-Time Software Engineering in Ada: Observations and Guidelines
Abstract
Two important aspects of developing a real-time system are controlling devices and managing concurrency. In this paper, we present several techniques for controlling devices with Ada and several Ada Tasking paradigms for managing concurrency. The material presented in this paper is taken from our experiences in developing a real-time embedded system in Ada, and we use numerous examples from this system to illustrate the various methods we present. We begin by relating our experiences with 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 relate our experiments with using Ada to manage concurrency. Specifically, we present coding paradigms for implementing periodicity and constructing synchronization mechanisms. Analytical methods for determining the schedulability of a task set that employs paradigms are illustrated and emphasized. We then discuss the effect of aperiodic processing requirements on the schedulability of a task set. Keywords: Computer program development; Real time; Ada computer language; Software engineering; Scheduling theory; Managing concurrency; Controlling devices.
Document Details
- Document Type
- Technical Report
- Publication Date
- Sep 01, 1989
- Accession Number
- ADA219020
Entities
People
- Mark H. Klein
- Mark W. Borger
- Robert A. Veltre
Organizations
- Carnegie Mellon University