Skip to main content
Log in

Data-Flow Frameworks for Worst-Case Execution Time Analysis

  • Published:
Real-Time Systems Aims and scope Submit manuscript

Abstract

The purpose of this paper is to introduce frameworks based on data-flow equations which estimate the worst-case execution time (WCET) of real-time programs. These frameworks allow several different WCET analysis techniques with various precisions, which range from naïve approaches to exact analysis, provided exact knowledge on the program behavior is available. In addition, data-flow frameworks can also be used for symbolic analysis based on information derived automatically from the source code of the program.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Ada. 1995. Ada reference manual. ISO/IEC 8652.

  • Aho, A. V., Seti, R., and Ullman, J. D. 1986. Compilers: Principles, Techniques, and Tools. Reading, MA: Addison-Wesley.

    Google Scholar 

  • Allen, F. E. and Cocke, J. 1976. A program data flow analysis procedure. Comm. ACM 19(3): 137-147.

    Google Scholar 

  • Alstrup, S., Lauridsen, P. W., and Thorup, M. 1996. Dominators in linear time. Technical Report TR DIKU 96-35, Department of Computer Science, University of Copenhagen.

  • Arnold, R., Mueller, F., Whalley, D., and Harmon, M. 1994. Bounding worst-case instruction cache performance. Proceedings of the Fifteenth IEEE Real-Time Systems Symposium, pp. 172-181.

  • Blieberger, J. 1994. Discrete loops and worst case performance. Computer Languages 20(3): 193-212.

    Google Scholar 

  • Blieberger, J. 2001. Real-time properties of indirect recursive procedures. Information and Computation 171(2): 156-182.

    Google Scholar 

  • Blieberger, J. and Burgstaller, B. 1998. Symbolic reaching definitions analysis of Ada programs. In Proceedings of Ada-Europe'98. Uppsala, Sweden, pp. 238-250.

  • Blieberger, J., Burgstaller, B., and Scholz, B. 1999. Interprocedural symbolic evaluation of Ada programs with aliases. In Ada-Europe'99 International Conference on Reliable Software Technologies. Santander, Spain, pp. 136-145.

  • Blieberger, J., Burgstaller, B., and Scholz, B. 2000a. Symbolic data flow analysis for detecting deadlocks in Ada tasking programs. In Ada-Europe'2000 International Conference on Reliable Software Technologies. Potsdam, Germany (to appear).

  • Blieberger, J., Fahringer, T., and Scholz, B. 2000b. Symbolic cache analysis for real-time systems. Real-Time Systems, Special Issue on Worst-Case Execution Time Analysis 18(2/3): 181-215.

    Google Scholar 

  • Blieberger, J. and Lieger, R. 1995. Real-time recursive procedures. In Proceedings of the 7th EUROMICRO Workshop on Real-Time Systems. Odense, pp. 229-235.

  • Blieberger, J. and Lieger, R. 1996. Worst-case space and time complexity of recursive procedures. Real-Time Systems 11(2): 115-144.

    Google Scholar 

  • Burgstaller, B. 1996. The WOOP preprocessor—an implementation of discrete loops. Diploma thesis, TU Vienna, Dept. of Automation.

    Google Scholar 

  • Carré, B., Jennings, T., Maclennan, F., Farrow, P., and Garnsworthy, J. 1992. SPARK: The SPADE Ada Kernel. Program Validation Ltd., 3.1 edition.

  • Chapman, R., Burns, A., and Wellings, A. 1996. Combining static worst-case timing analysis and program proof. Real-Time Systems 11(2): 145-171.

    Google Scholar 

  • Cheatham, T. E., Holloway, G. H., and Townley, J. A. 1979. Symbolic evaluation and the analysis of programs. IEEE Transactions on Software Engineering 5(4): 403-417.

    Google Scholar 

  • Clarke, L. and Richardson, D. 1981. Symbolic evaluation methods for program analysis. In S. Muchnik and N. Jones (eds.), Program Flow Analysis. Englewood Cliffs, New Jersey: Prentice Hall, pp. 264-300.

    Google Scholar 

  • Deutsch, A. 1994. Interprocedural May-Alias analysis for pointers: beyond k-limiting. In Proceedings of the ACM SIGPLAN94 Conference on PLDI, pp. 230-241.

  • Fahringer, T. and Scholz, B. 1997. Symbolic evaluation for parallelizing compilers. In Proceedings of the ACM International Conference on Supercomputing.

  • Gehani, N. and Ramamritham, K. 1991. Real-time concurrent C: a language for programming dynamic real-time systems. The Journal of Real-Time Systems 3: 377-405.

    Google Scholar 

  • Graham, R. L., Knuth, D. E., and Patashnik, O. 1989. Concrete Mathematics. Reading, MA: Addison-Wesley.

    Google Scholar 

  • Graham, S. L. and Wegman, M. 1976. Fast and usually linear algorithm for global flow analysis. J. ACM 23(1): 172-202.

    Google Scholar 

  • Halang, W. A. and Stoyenko, A. D. 1991. Constructing predictable real time systems. Boston: Kluwer Academic Publishers.

    Google Scholar 

  • Harmon, M. G., Baker, T. P., and Whalley, D. B. 1994. A retargetable technique for predicting execution time of code segments. Real-Time Systems 7: 159-182.

    Google Scholar 

  • Healy, C. A., Whalley, D. B., and Harmon, M. G. 1995. Integrating the timing analysis of pipelining and instruction caching. Proceedings of the Sixteenth IEEE Real-Time Systems Symposium, pp. 288-297.

  • Hecht, M. S. and Ullman, J. D. 1977. A simple algorithm for global data flow analysis problems. SIAM J. Comput. 4(4): 519-532.

    Google Scholar 

  • Hoare, C. A. R. 1969. An axiomatic basis for computer programming. Communications of ACM 12: 576-580.

    Google Scholar 

  • Ishikawa, Y., Tokuda, H., and Mercer, C. W. 1990. Object-oriented real-time language design: Constructs for timing constraints. In ECOOP/OOPSLA '90 Proceedings, pp. 289-298.

  • Kam, J. B. and Ullman, J. D. 1976. Global data flow analysis and iterative algorithms. J. ACM 23(1): 158-171.

    Google Scholar 

  • Kam, J. B. and Ullman, J. D. 1977. Monotone data flow analysis frameworks. Acta Informatica 7: 305-317.

    Google Scholar 

  • Kildall, G. 1973. A unified approach to global program optimization. In Proceedings of the First ACM Symposium on Principles of Programming Languages. New York, NY, pp. 194-206.

  • Kligerman, E. and Stoyenko, A. D. 1986. Real-time Euclid: A language for reliable real-time systems. IEEE Transactions on Software Engineering 12(9): 941-949.

    Google Scholar 

  • Knuth, D. E. 1973a. Fundamental Algorithms, Vol. 1 of The Art of Computer Programming. Reading, Mass.: Addison-Wesley, second edition.

    Google Scholar 

  • Knuth, D. E. 1973b. Sorting and Searching, Vol. 3 of The Art of Computer Programming. Reading, Mass.: Addison-Wesley.

    Google Scholar 

  • Landi, W. 1992. Undecidability of static analysis. Lett. Prog. Lang. Syst 1(4): 323-337.

    Google Scholar 

  • Landi, W. and Ryder, B. G. 1992. A safe approximate algorithm for interprocedural pointer aliasing. In Proceedings of the ACM SIGPLAN'92 PLDI-6, pp. 235-248.

  • Li, Y.-T. S. and Malik, S. 1995. Performance analysis of embedded software using implicit path enumeration. In ACM SIGPLAN Workshop on Languages, Compilers and Tools for Real-Time Systems, Vol. 30. La Jolla, California.

  • Li, Z. 1992. Array privatization for parallel execution of loops. In Proceedings of the International Conference on Supercomputing. pp. 313-322.

  • Liu, J. and Lee, H. 1994. Deterministic upperbounds of the worst-case execution times of cached programs. Proceedings of the Fifteenth IEEE Realt-Time Systems Symposium, pp. 182-191.

  • Marlowe, T. J. and Ryder, B. G. 1990. Properties of data flow frameworks—A unified model. Acta Informatica 28: 121-163.

    Google Scholar 

  • Maydan, D. E., Amarasinghe, S. P., and Lam, M. S. 1993. Array-data flow analysis and its use in array privatization. In Proceedings of the 20th ACM POPL'93, pp. 2-15.

  • Mehlhorn, K. 1984. Graph Algorithms and NP-Completeness, Vol. 2 of Data Structures and Algorithms. Berlin: Springer-Verlag.

    Google Scholar 

  • Mok, A. K., Amerasinghe, P., Chen, M., and Tantisirivat, K. 1989. Evaluating tight execution time bounds of programs by annotations. In Proceedings of the IEEE Workshop on Real-Time Operating Systems and Software, pp. 74-80.

  • Nirkhe, V. and Pugh, W. 1993. A partial evaluator for the maruti hard real-time system. The Journal of Real-Time Systems 5: 13-30.

    Google Scholar 

  • Park, C. Y. 1993. Predicting program execution times by analyzing static and dynamic program paths. The Journal of Real-Time Systems 5: 31-62.

    Google Scholar 

  • Paull, M. C. 1988. Algorithm Design — A Recursion Transformation Framework. New York, NY: Wiley Interscience.

    Google Scholar 

  • Ploedereder, E. 1980. A semantic model for the analysis and verification of programs in general, higher-level languages. Ph.D. thesis, Division of Applied Sciences, Harvard University.

  • Puschner, P. and Koza, C. 1989. Calculating the maximum execution time of real-time programs. The Journal of Real-Time Systems 1: 159-176.

    Google Scholar 

  • Puschner, P. and Schedl, A. V. 1997. Computing maximum task execution times—a graph-based approach. Real-Time Systems 13(1): 67-91.

    Google Scholar 

  • Ramalingam, G. 1994. The undecidability of Aliasing. ACM Transactions on Programing Languages and Systems 16(5): 1467-1471.

    Google Scholar 

  • Ramalingam, G. 1996. Data flow frequency analysis. In PLDI'96, pp. 267-277.

  • Rogers, H. 1992. Theory of Recursive Functions and Effective Computability. Cambridge, MA: MIT Press.

    Google Scholar 

  • Ryder, B. G. and Paull, M. C. 1986. Elimination algorithms for data flow analysis. ACM Computing Surveys 18(3): 277-316.

    Google Scholar 

  • Schaffer, R. and Sedgewick, R. 1993. The Analysis of Heapsort. Journal of Algorithms 15: 76-100.

    Google Scholar 

  • Scholz, B. 1996. Symbolische Verifikation von Echtzeitprogrammen. Diploma thesis, TU Vienna, Dept. of Automation.

    Google Scholar 

  • Scholz, B., Blieberger, J., and Fahringer, T. 2000. Symbolic pointer analysis for detecting memory leaks. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'00). Boston.

  • Sedgewick, R. 1988. Algorithms. Reading, MA: Addison-Wesley, second edition.

    Google Scholar 

  • Shaw, A. C. 1989. Reasoning about time in higher-level language software. IEEE Transactions on Software Engineering 15(7): 875-889.

    Google Scholar 

  • Sreedhar, V. C. 1995. Efficient program analysis using DJ graphs. Ph.D. thesis, School of Computer Science, McGill University, Montréal, Québec, Canada.

    Google Scholar 

  • Sreedhar, V. C., Gao, G. R., and Lee, Y.-F. 1998. A new framework for elimination-based data flow analysis using DJ graphs. ACM Transactions on Programming Languages and Systems 20(2): 388-435.

    Google Scholar 

  • Stoyenko, A., Hamacher, V., and Holt, R. 1991. Analyzing hard real-time programs for guaranteed schedulability. IEEE Transactions on Software Engineering 17(8): 737-750.

    Google Scholar 

  • Tarjan, R. E. 1981a. Fast algorithms for solving path problems. J. ACM 28(3): 594-614.

    Google Scholar 

  • Tarjan, R. E. 1981b. A unified approach to path problems. J. ACM 28(3): 577-593.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Blieberger, J. Data-Flow Frameworks for Worst-Case Execution Time Analysis. Real-Time Systems 22, 183–227 (2002). https://doi.org/10.1023/A:1014535317056

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1014535317056

Navigation