Enabling efficient schedulability analysis through conditional linking and program transformations

Abstract Accurate schedulability analysis of real-time programs, even in a language such as Real-Time Euclid, is NP-complete, essentially due to the exponential number of possible execution paths. Most of the exponential growth in the path space explored by the analysis is attributable to conditional statements in the programs. The paper presents two techniques using additional static information to improve significantly the cost of a typical schedulability analysis: the first detects non-executable paths by linking execution of conditional branches in different parts of the program; the second considers the branches of a single conditional, and eliminates paths by transforming conditional branches which cannot result in worst-case timing behavior. Each link or transformation can reduce the number of alternate paths the residual analysis has to consider by a factor of 2, thus allowing schedulability analysis to be practically applied to large real-time programs. An experimental evaluation of the techniques applied to both computer-generated and real programs indicates the value of this approach.

[1]  Volkmar H. Haase,et al.  Real-Time Behavior of Programs , 1981, IEEE Transactions on Software Engineering.

[2]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[3]  Barbara G. Ryder,et al.  Directed Tracing to Detect Race Conditions , 1992, ICPP.

[4]  Aloysius K. Mok,et al.  Evaluating tight execution time bounds of programs by annotations , 1989 .

[5]  Jozef Hooman,et al.  Specification and Compositional Verification of Real-Time Systems , 1991, Lecture Notes in Computer Science.

[6]  Wolfgang A. Halang A Proposal for Extensions of PEARL to Facilitate the Formulation of Hard Real-Time Applications , 1984, Fachtagung Prozessrechner.

[7]  Michael Wolfe,et al.  Beyond induction variables , 1992, PLDI '92.

[8]  Alexander D. Stoyenko,et al.  A real-time language with a schedulability analyzer , 1988 .

[9]  Mary Shaw,et al.  A formal system for specifying and verifying program performance , 1979 .

[10]  Dennis W. Leinbaugh,et al.  Guaranteed response times in a distributed hard-real-time environment , 1986, IEEE Transactions on Software Engineering.

[11]  Alexander D. Stoyenko,et al.  Schedulability, Program Transformations and Real-Time Programming , 1991 .

[12]  Richard C. Holt,et al.  Analyzing Hard-Real-Time Programs For Guaranteed Schedulability , 1991, IEEE Trans. Software Eng..

[13]  David A. Padua,et al.  Advanced compiler optimizations for supercomputers , 1986, CACM.

[14]  Thomas W. Reps,et al.  Integrating non-intering versions of programs , 1988, POPL '88.

[15]  Vivek Nirkhe Application of partial evaluation to hard real-time programming , 1992 .

[16]  Alexander D. Stoyenko,et al.  The evolution and state-of-the-art of real-time languages , 1992 .

[17]  Alexander D. Stoyenko,et al.  A Schedulability Analyzer for Real-Time Euclid. , 1987, RTSS 1987.

[18]  Wolfgang A. Halang,et al.  Enabling Efficient Schedulability Analysis through Program Transformations and Restricted Resource Contention , 1992 .

[19]  Daniel M. Yellin,et al.  Extending Typestate Checking Using Conditional Liveness Analysis , 1993, IEEE Trans. Software Eng..

[20]  Alexander D. Stoyen,et al.  Development and integration of a concurrently executing interactive user interface for the I-STAT protable clinical analyzer: A case study in real-time systems integration , 1992, J. Syst. Integr..

[21]  Alan C. Shaw,et al.  Reasoning About Time in Higher-Level Language Software , 1989, IEEE Trans. Software Eng..

[22]  Thomas W. Reps,et al.  Integrating noninterfering versions of programs , 1989, TOPL.

[23]  Douglas Niehaus Program representation and translation for predictable real-time systems , 1991, [1991] Proceedings Twelfth Real-Time Systems Symposium.

[24]  Alexander D. Stoyen,et al.  Real-Time Euclid: A language for reliable real-time systems , 1989, IEEE Transactions on Software Engineering.

[25]  Barry K. Rosen,et al.  Qualified Data Flow Problems , 1981, IEEE Trans. Software Eng..

[26]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[27]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[28]  Jozef Hooman,et al.  Design and verification in real-time distributed computing: an introduction to compositional methods , 1989, PSTV.

[29]  Dennis W. Leinbaugh Guaranteed Response Times in a Hard-Real-Time Environment , 1980, IEEE Transactions on Software Engineering.

[30]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.