Real-Time Systems

, Volume 22, Issue 3, pp 183–227 | Cite as

Data-Flow Frameworks for Worst-Case Execution Time Analysis

  • Johann Blieberger


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.

real-time systems worst-case execution time data-flow analysis symbolic evaluation 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Ada. 1995. Ada reference manual. ISO/IEC 8652.Google Scholar
  2. Aho, A. V., Seti, R., and Ullman, J. D. 1986. Compilers: Principles, Techniques, and Tools. Reading, MA: Addison-Wesley.Google Scholar
  3. Allen, F. E. and Cocke, J. 1976. A program data flow analysis procedure. Comm. ACM 19(3): 137-147.Google Scholar
  4. 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.Google Scholar
  5. 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.Google Scholar
  6. Blieberger, J. 1994. Discrete loops and worst case performance. Computer Languages 20(3): 193-212.Google Scholar
  7. Blieberger, J. 2001. Real-time properties of indirect recursive procedures. Information and Computation 171(2): 156-182.Google Scholar
  8. Blieberger, J. and Burgstaller, B. 1998. Symbolic reaching definitions analysis of Ada programs. In Proceedings of Ada-Europe'98. Uppsala, Sweden, pp. 238-250.Google Scholar
  9. 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.Google Scholar
  10. 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).Google Scholar
  11. 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
  12. 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.Google Scholar
  13. Blieberger, J. and Lieger, R. 1996. Worst-case space and time complexity of recursive procedures. Real-Time Systems 11(2): 115-144.Google Scholar
  14. Burgstaller, B. 1996. The WOOP preprocessor—an implementation of discrete loops. Diploma thesis, TU Vienna, Dept. of Automation.Google Scholar
  15. Carré, B., Jennings, T., Maclennan, F., Farrow, P., and Garnsworthy, J. 1992. SPARK: The SPADE Ada Kernel. Program Validation Ltd., 3.1 edition.Google Scholar
  16. 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
  17. 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
  18. 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
  19. Deutsch, A. 1994. Interprocedural May-Alias analysis for pointers: beyond k-limiting. In Proceedings of the ACM SIGPLAN94 Conference on PLDI, pp. 230-241.Google Scholar
  20. Fahringer, T. and Scholz, B. 1997. Symbolic evaluation for parallelizing compilers. In Proceedings of the ACM International Conference on Supercomputing.Google Scholar
  21. 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
  22. Graham, R. L., Knuth, D. E., and Patashnik, O. 1989. Concrete Mathematics. Reading, MA: Addison-Wesley.Google Scholar
  23. Graham, S. L. and Wegman, M. 1976. Fast and usually linear algorithm for global flow analysis. J. ACM 23(1): 172-202.Google Scholar
  24. Halang, W. A. and Stoyenko, A. D. 1991. Constructing predictable real time systems. Boston: Kluwer Academic Publishers.Google Scholar
  25. 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
  26. 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.Google Scholar
  27. 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
  28. Hoare, C. A. R. 1969. An axiomatic basis for computer programming. Communications of ACM 12: 576-580.Google Scholar
  29. 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.Google Scholar
  30. Kam, J. B. and Ullman, J. D. 1976. Global data flow analysis and iterative algorithms. J. ACM 23(1): 158-171.Google Scholar
  31. Kam, J. B. and Ullman, J. D. 1977. Monotone data flow analysis frameworks. Acta Informatica 7: 305-317.Google Scholar
  32. 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.Google Scholar
  33. 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
  34. Knuth, D. E. 1973a. Fundamental Algorithms, Vol. 1 of The Art of Computer Programming. Reading, Mass.: Addison-Wesley, second edition.Google Scholar
  35. Knuth, D. E. 1973b. Sorting and Searching, Vol. 3 of The Art of Computer Programming. Reading, Mass.: Addison-Wesley.Google Scholar
  36. Landi, W. 1992. Undecidability of static analysis. Lett. Prog. Lang. Syst 1(4): 323-337.Google Scholar
  37. 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.Google Scholar
  38. 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.Google Scholar
  39. Li, Z. 1992. Array privatization for parallel execution of loops. In Proceedings of the International Conference on Supercomputing. pp. 313-322.Google Scholar
  40. 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.Google Scholar
  41. Marlowe, T. J. and Ryder, B. G. 1990. Properties of data flow frameworks—A unified model. Acta Informatica 28: 121-163.Google Scholar
  42. 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.Google Scholar
  43. Mehlhorn, K. 1984. Graph Algorithms and NP-Completeness, Vol. 2 of Data Structures and Algorithms. Berlin: Springer-Verlag.Google Scholar
  44. 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.Google Scholar
  45. 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
  46. 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
  47. Paull, M. C. 1988. Algorithm Design — A Recursion Transformation Framework. New York, NY: Wiley Interscience.Google Scholar
  48. 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.Google Scholar
  49. 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
  50. 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
  51. Ramalingam, G. 1994. The undecidability of Aliasing. ACM Transactions on Programing Languages and Systems 16(5): 1467-1471.Google Scholar
  52. Ramalingam, G. 1996. Data flow frequency analysis. In PLDI'96, pp. 267-277.Google Scholar
  53. Rogers, H. 1992. Theory of Recursive Functions and Effective Computability. Cambridge, MA: MIT Press.Google Scholar
  54. Ryder, B. G. and Paull, M. C. 1986. Elimination algorithms for data flow analysis. ACM Computing Surveys 18(3): 277-316.Google Scholar
  55. Schaffer, R. and Sedgewick, R. 1993. The Analysis of Heapsort. Journal of Algorithms 15: 76-100.Google Scholar
  56. Scholz, B. 1996. Symbolische Verifikation von Echtzeitprogrammen. Diploma thesis, TU Vienna, Dept. of Automation.Google Scholar
  57. 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.Google Scholar
  58. Sedgewick, R. 1988. Algorithms. Reading, MA: Addison-Wesley, second edition.Google Scholar
  59. Shaw, A. C. 1989. Reasoning about time in higher-level language software. IEEE Transactions on Software Engineering 15(7): 875-889.Google Scholar
  60. 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
  61. 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
  62. 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
  63. Tarjan, R. E. 1981a. Fast algorithms for solving path problems. J. ACM 28(3): 594-614.Google Scholar
  64. Tarjan, R. E. 1981b. A unified approach to path problems. J. ACM 28(3): 577-593.Google Scholar

Copyright information

© Kluwer Academic Publishers 2002

Authors and Affiliations

  • Johann Blieberger
    • 1
  1. 1.Department of Computer-Aided AutomationTechnical University of ViennaViennaAustria

Personalised recommendations