skip to main content
10.1145/940071.940116acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article

Runtime safety analysis of multithreaded programs

Published:01 September 2003Publication History

ABSTRACT

Foundational and scalable techniques for runtime safety analysis of multithreaded programs are explored in this paper. A technique based on vector clocks to extract the causal dependency order on state updates from a running multithreaded program is presented, together with algorithms to analyze a multithreaded computation against safety properties expressed using temporal logics. A prototype tool implementing our techniques, is also presented, together with examples where it can predict safety errors in multithreaded programs from successful executions of those programs. This tool is called Java MultiPathExplorer (JMPaX), and available for download on the web. To the best of our knowledge, JMPaX is the first tool of its kind.

References

  1. Java Multi PathEXplorer, March 2003. http://fsl.cs.uiuc.edu/jmpax/.Google ScholarGoogle Scholar
  2. H. W. Cain and M. H. Lipasti. Verifying sequential consistency using vector clocks. In Proceedings of the 14th annual ACM symposium on Parallel algorithms and Architectures, pages 153--154. ACM, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. C. M. Chase and V. K. Garg. Detection of global predicates: Techniques and their limitations. Distributed Computing, 11(4):191--201, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. R. Cooper and K. Marzullo. Consistent detection of global predicates. ACM SIGPLAN Notices, 26(12):167--174, 1991. Proceedings of the ACM/ONR Workshop on Parallel and Distributed Debugging. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. Dahm. Byte code engineering with the bcel api. Technical Report B-17-98, Freie Universit at Berlin, Institut für Informatik, April 2001.Google ScholarGoogle Scholar
  6. J. E. M. Clarke, O. Grumberg, and D. A. Peled. Model checking. MIT Press, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. C. J. Fidge. Partial orders for parallel debugging. In Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and Distributed debugging, pages 183--194. ACM, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. K. Havelund and T. Pressburger. Model Checking Java Programs using Java PathFinder. International Journal on Software Tools for Technology Transfer, 2(4):366--381, Apr. 2000.Google ScholarGoogle ScholarCross RefCross Ref
  9. K. Havelund and G. Rosu. Monitoring Java Programs with Java PathExplorer. In Proceedings of Runtime Verification (RV'01), volume 55 of Electronic Notes in Theoretical Computer Science. Elsevier Science, 2001.Google ScholarGoogle Scholar
  10. K. Havelund and G. Rosu. Monitoring Programs using Rewriting. In Proceedings, International Conference on Automated Software Engineering (ASE'01), pages 135--143. IEEE, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. K. Havelund and G. Rosu. Runtime Verification 2001, volume 55 of Electronic Notes in Theoretical Computer Science. Elsevier Science, 2001. Proceedings of a Computer Aided Verification (CAV'01) satellite workshop.Google ScholarGoogle Scholar
  12. K. Havelund and G. Rosu. Synthesizing monitors for safety properties. In Proceedings Tools and Algorithms for Construction and Analysis of Systems (TACAS'02), pages 342--356, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. JTrek Compaq Corp. www.digital.com/java/download/jtrek/.Google ScholarGoogle Scholar
  14. M. Kim, S. Kannan, I. Lee, and O. Sokolsky. Java-MaC: a Run-time Assurance Tool for Java. In Proceedings of Runtime Verification (RV'01), volume 55 of Electronic Notes in Theoretical Computer Science. Elsevier Science, 2001.Google ScholarGoogle Scholar
  15. I. Lee, S. Kannan, M. Kim, O. Sokolsky, and M. Viswanathan. Runtime assurance based on formal specifications. In Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications, 1999.Google ScholarGoogle Scholar
  16. Z. Manna and A. Pnueli. Temporal verification of reactive systems: Safety. Springer-Verlag N.Y., Inc., 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. F. Mattern. Virtual time and global states of distributed systems. In M. C. et. al., editor, Parallel and Distributed Algorithms: proceedings of the International Workshop on Parallel and Distributed Algorithms, pages 215--226. Elsevier science, 1989.Google ScholarGoogle Scholar
  18. K. Sen, G. Rosu, and G. Agha. Runtime safety analysis of multithreaded programs. Technical Report UIUCDCS-R-2003-2334, University of Illinois at Urnaba Champaign, April 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. S. D. Stoller. Detecting global predicates in distributed systems with clocks. In Proceedings of the 11th International Workshop on Distributed Algorithms (WDAG'97), pages 185--199, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Runtime safety analysis of multithreaded programs

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          ESEC/FSE-11: Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
          September 2003
          394 pages
          ISBN:1581137435
          DOI:10.1145/940071
          • cover image ACM SIGSOFT Software Engineering Notes
            ACM SIGSOFT Software Engineering Notes  Volume 28, Issue 5
            September 2003
            382 pages
            ISSN:0163-5948
            DOI:10.1145/949952
            Issue’s Table of Contents

          Copyright © 2003 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 1 September 2003

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Acceptance Rates

          ESEC/FSE-11 Paper Acceptance Rate33of168submissions,20%Overall Acceptance Rate112of543submissions,21%

          Upcoming Conference

          FSE '24

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader