Deterministic priority inversion in Ada selective waits

  • Authors:
  • Leslie Lander;Sandeep Mitra;Thomas Piatkowski

  • Affiliations:
  • Department of Computer Science, The Thomas J. Watson School of Engineering, Applied Science, and Technology, State University of New York, Binghamton NY;Department of Computer Science, The Thomas J. Watson School of Engineering, Applied Science, and Technology, State University of New York, Binghamton NY;Department of Computer Science, The Thomas J. Watson School of Engineering, Applied Science, and Technology, State University of New York, Binghamton NY

  • Venue:
  • ACM SIGAda Ada Letters
  • Year:
  • 1990

Quantified Score

Hi-index 0.00

Visualization

Abstract

Priority inversion is any situation where low priority tasks are served before higher priority tasks. It is recognized as a serious problem for real-time systems. In the course of building a performance model for multi-tasking Ada software, we have noticed that a fair algorithmic selection procedure may be likely to cause priority inversion in selective waits. This effect is in addition to the well-known priority inversion due to the FIFO nature of entry queues. As an illustration, we present a semi-formal partial model of the selective wait algorithm of the Alsys1 ' 286 DOS Ada Compiler v4.2, running under PC-DOS Version 3.30 on an IBM PC/AT2 The model was deduced from a series of experiments designed to illuminate the scheduling features of the system. These results may provide useful insight for users of this and other Ada compilers since priority inversion may occur in the way we describe in many systems. We also indicate one standard technique to avoid priority inversion at selective waits.