Abstract
The knowledge of program execution times is crucial for the development and the verification of real-time software. Therefore, there is a need for methods and tools to predict the timing behavior of pieces of program code and entire programs.
This paper presents a novel method for the analysis of program execution times. The computation of MAximum eXecution Times (MAXTs) is mapped onto a graph-theoretical problem that is a generalization of the computation of a maximum cost circulation in a directed graph. Programs are represented by T-graphs, timing graphs, which are similar to flow graphs. These graphs reflect the structure and the timing behavior of the code. Relative capacity constraints, a generalization of capacity constraints that bound the flow in the edges, express user-supplied information about infeasible paths. To compute MAXTs, T-graphs are searched for those execution paths which correspond to a maximum cost circulation. The search problem is transformed into an integer linear programming problem. The solution of the linear programming problem yields the MAXT.
The special merits of the presented method are threefold: It uses a concise notation to characterize the static structure of a program and its possible execution paths. Furthermore, the notation allows for a description of the feasible paths through the program code that characterizes the behavior of the code sufficiently to compute the exact maximum execution time of the program – not just a bound thereof. Finally, linear program solving does not only yield maximum execution times, but also produces detailed information about the execution time and the number of executions of every single program construct in the worst case. This knowledge is valuable for a more comprehensive analysis of the timing of a program.
Similar content being viewed by others
References
Amerasinghe, P. A Universal Hardware Simulator. Undergraduate Honors Thesis, Dept. of Computer Sciences, University of Texas, Austin, TX, USA, Dec. 1985.
Chen, M. A Timing Analysis Language – (TAL). Programmer's Manual, Dept. of Computer Sciences, University of Texas, Austin, TX, USA, 1987.
Hillier, F.S. and Lieberman, G.J. Operations Research. Internationale Standardlehrbücher der Wirtschafts-und Sozialwissenschaften. R. Oldenbourg; Wien, München, 1988.
Jungnickel, D. Graphen, Netzwerke und Algorithmen. BI-Wissenschaftsverlag, Mannheim, Wien, Zürich, 2nd edition, 1990.
Kligerman, E. and Stoyenko, A. Real-time Euclid: A language for reliable real-time systems. IEEE Transactions on Software Engineering, SE-12(9):941–949, Sep. 1986.
Li, Y.S. and Malik, S. Performance analysis of embedded software using implicit path enumeration. In Proc. of the ACM SIGPLAN Workshop on Languages, Compilers, and Tools for Real-Time Systems, pages 95–105, La Jolla, CA, USA, June 1995.
Li, Y.S., Malik, S. and Wolfe, A. Efficient microarchitecture modeling and path analysis for real-time software. In Proc. 16th Real-Time Systems Symposium, pages 198–307, Pisa, Italy, Dec. 1995.
Mok, A.K., Amerasinghe, P., Chen, M. and Tantisirivat, K. Evaluating tight execution time bounds of programs by annotations. In Proc. 6th IEEE Workshop on Real-Time Operating Systems and Software, pages 74–80, Pittsburgh, PA, USA, May 1989.
Park, C.Y. Predicting program execution times by analyzing static and dynamic program paths. Real-Time Systems, 5(1):31–62, 1993.
Park, C.Y. and Shaw, A.C. Experiments with a program timing tool based on source-level timing schema. IEEE Computer, 24(5):48–57, May 1991.
Pospischil, G., Puschner, P., Vrchoticky, A. and Zainlinger, R. Developing real-time tasks with predictable timing. IEEE Software, 9(5):35–44, Sep. 1992.
Puschner, P. Zeitanalyse von Echtzeitprogrammen. PhD thesis, Technisch-Naturwissenschaftliche Fakultät, Technische Universität Wien, Wien, österreich, Dez. 1993.
Puschner, P. and Koza, Ch. Calculating the maximum execution time of real-time programs. Real-Time Systems, 1(2):159–176, Sep. 1989.
Puschner, P. and Schedl, A. A tool for the computation of worst case task execution times. In Proc. Euromicro Workshop on Real-Time Systems, pages 224–229, Oulu, Finland, June 1993.
Rehm, P.H. A C language cross development environment for real-time programming. Master's thesis, University of California at Irvine, Irvine, CA, USA, Jul. 1987.
Schedl, A. Zeitanalyse von Echtzeitprogrammen mittels linearer Optimierung. Master's thesis, Institut für Technische Informatik, Technische Universität Wien, Vienna, Austria, Sept. 1993.
Shaw, A.C. Reasoning about time in higher-level language software. IEEE Transactions on Software Engineering, SE-15(7):875–889, July 1989.
Stoyenko, A. A Real-Time Language With A Schedulability Analyzer. Dissertation, Computer Systems Research Institute, University of Toronto, Canada, Dec. 1987.
Stoyenko, A., Hamacher, V. and Holt, R. Analyzing hard-real-time programs for guaranteed schedulability. IEEE Transactions on Software Engineering, SE-17(8):737–750, Aug. 1991.
Wei, Y. Real-Time Programming with Fault Tolerance. PhD thesis, Dept. of Computer Science, University of Illinois at Urbana-Champaign, Urbana, IL, USA, June 1981.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Puschner, P.P., Schedl, A.V. Computing Maximum Task Execution Times — A Graph-Based Approach. Real-Time Systems 13, 67–91 (1997). https://doi.org/10.1023/A:1007905003094
Issue Date:
DOI: https://doi.org/10.1023/A:1007905003094