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.

Open PDF

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

Tags

Communities of Interest

  • C4I

DTIC Thesaurus Topics

  • Application Software
  • Compilers
  • Computer Languages
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Department Of Defense
  • Embedded Systems
  • Engineering
  • High Level Languages
  • Inertial Navigation
  • Inertial Navigation Systems
  • Language
  • Programming Languages
  • Scheduling (Production)
  • Software Development

Fields of Study

  • Computer science
  • Engineering

Readers

  • Artificial Intelligence
  • Computer Science/Computer Engineering/Data Science/Digital Signal Processing.
  • Systems Analysis and Design