Skip to main content
Log in

Predicting program execution times by analyzing static and dynamic program paths

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

Abstract

This paper describes a method to predict guaranteed and tight deterministic execution time bounds of a sequential program. The basic prediction technique is a static analysis based on simple timing schema for source-level language constructs, which gives accurate predictions in many cases. Using powerful user-provided information, dynamic path analysis refines looser predictions by eliminating infeasible paths and decomposing the possible execution behaviors in a pathwise manner. Overall prediction cost is scalable with respect to desired precision, controlling the amount of information provided. We introduce a formal path model for dynamic path analysis, where user execution information is represented by a set of program paths. With a well-defined practical high-level interface language, user information can be used in an easy and efficient way. We also introduce a method to verify given user information with known program verification techniques. Initial experiments with a timing tool show that safe and tight predictions are possible for a wide range of programs. The tool can also provide predictions for interesting subsets of program executions.

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

  1. Avrunin, G., Dillon, L., Wileden, J., and Riddle, W. 1986. Constrained expressions: Adding analysis capabilities to design methods for concurrent software systems.IEEE Transactions on Software Engineering. 12:278–291.

    Google Scholar 

  2. Callison, H., and Shaw, A. 1991. Building a real-time kernel: First step in validating a pure process/Adt model.Software — Practice and Experience. 21:337–354.

    Google Scholar 

  3. Chen, M. 1987. TAL — A language for timing analysis. Department of Computer Science, University of Texas, Austin.

    Google Scholar 

  4. Dijkstra, E. 1976.A Discipline of Programming. Englewood Cliffs, NJ: Prentice-Hall.

    Google Scholar 

  5. Hoare, C. 1969. An axiomatic basis for computer programming.Communications of ACM. 12:576–580.

    Google Scholar 

  6. Huang, J. 1990. State constraints and pathwise decomposition of programs.IEEE Transactions on Software Engineering. 16:880–896.

    Google Scholar 

  7. 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 

  8. Gries, D. 1981.The Science of Programming. Berlin/New York: Springer-Verlag. Chapter 12, pp. 149–162.

    Google Scholar 

  9. Kim, J. and Shaw, A. 1990. An experiment on predicting and measuring the deterministic execution times of parallel programs on a multiprocessor. Tech. Report #90-09-01, Dept. of Computer Science and Engineering, Univ. of Washington, Seattle, WA.

    Google Scholar 

  10. Korel, R. 1990. Automated software test data generation.IEEE Transactions on Software Engineering. 16:870–879.

    Google Scholar 

  11. Lin, K., Kenny, K., Natarajan, S., and Liu, J. 1990. FLEX: A language for real-time systems programming.Foundations of Real-Time Computing: Formal Specifications and Methods. (ed. A. Tilborg and G. Koob), Kluwer Academic Publishers. pp. 251–290.

  12. McNaughton, R. and Yamada, H. 1960. Regular expressions and state graphs for automata.IRE Transactions on Electronic Computers. 9:39–47.

    Google Scholar 

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

  14. Niehaus, M. 1991. Program representation and translation for predictable real-time systems.Proceedings on 12th IEEE Real-Time Systems Symposium, pp. 43–52.

  15. Nirkhe, V. and Pugh, W. 1991. A partial evaluator for the Maruti hard real-time system.Proceedings on 12th IEEE Real-Time Systems Symposium, pp. 64–73.

  16. Olender, K. and Osterweil, L. 1990. Cecil: A sequencing constraint language for automatic static analysis generation.IEEE Transactions on Software Engineering. 16:268–280.

    Google Scholar 

  17. Park, C. and Shaw, A. 1990. Experiments with a program timing tool based on source-level timing schema.Proceedings on 11th IEEE Real-Time Systems Symposium. pp. 72–81. (A revised version is also inIEEE Computer, 24:48–57.)

  18. Park, C. 1992. Predicting deterministic execution times of real-time programs. Ph.D. Thesis, University of Washington, Department of Computer Science.

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

    Google Scholar 

  20. Shaw, A. 1989. Reasoning about time in higher-level language software.IEEE Transactions on Software Engineering. 15:875–889.

    Google Scholar 

  21. Shaw, A. 1991. Deterministic timing schema for parallel programs.Proceedings of 5th International Parallel Processing Symposium. pp. 56–63.

  22. Stoyenko, A. 1987. A real-time language with a schedulability analyzer. Ph.D. Thesis, Univ. of Toronto, Computer Systems Research Institute, Tech. Report CSRI-206, Toronto.

    Google Scholar 

  23. Stoyenko, A. and Marlowe, T. 1992. Polynomial-time transformation and schedulability analysis of parallel real-time programs with restricted resource contention.Real-Time Systems, 4:307–330.

    Google Scholar 

  24. Woodward, M., Hedley, D., and Hennell, M. 1980. Experience with path analysis and testing of programs.IEEE Transactions on Software Engineering. 6:278–286.

    Google Scholar 

  25. Young, M. and Taylor, R. 1988. Combining static concurrency analysis with symbolic execution.IEEE Transactions on Software Engineering, 14:1499–1511.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

This research was supported in part by the Office of Naval Research under grant number N00014-89-J-1040.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Park, C.Y. Predicting program execution times by analyzing static and dynamic program paths. Real-Time Syst 5, 31–62 (1993). https://doi.org/10.1007/BF01088696

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01088696

Keywords

Navigation