skip to main content
10.1145/566172.566199acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
Article

Specification, verification, and synthesis of concurrency control components

Published: 01 July 2002 Publication History

Abstract

Run-time errors in concurrent programs are generally due to the wrong usage of synchronization primitives such as monitors. Conventional validation techniques such as testing become ineffective for concurrent programs since the state space increases exponentially with the number of concurrent processes. In this paper, we propose an approach in which 1) the concurrency control component of a concurrent program is formally specified, 2) it is verified automatically using model checking, and 3) the code for concurrency control component is automatically generated. We use monitors as the synchronization primitive to control access to a shared resource by multipleconcurrent processes. Since our approach decouples the concurrency control component from the rest of the implementation it is scalable. We demonstrate the usefulness of our approach by applying it to a case study on Airport Ground Traffic Control.We use the Action Language to specify the concurrency control component of a system. Action Language is a specification language for reactive software systems. It is supported by an infinite-state model checker that can verify systems with boolean, enumerated and udbounded integer variables. Our code generation tool automatically translates the verified Action Language specification into a Java monitor. Our translation algorithm employs symbolic manipulation techniques and the specific notification pattern to generate an optimized monitor class by eliminating the context switch overhead introduced as a result of unnecessary thread notification. Using counting abstraction, we show that we can automatically verify the monitor specifications for arbitrary number of threads.

References

[1]
Statistical summary of commercial jet aircraft accidents, worldwide operations 1959-1995. Boeing Commercial Airplane Group, Airplane Safety Engineering, Seattle, Washington, 1996.]]
[2]
R. Alur, T. A. Henzinger, and P. Ho. Automatic symbolic verification of embedded systems. IEEE Transactions on Software Engineering, 22(3):181-201, March 1996.]]
[3]
G. R. Andrews. Concurrent programming, Principles and Practice. Benjamin/Cummings Publishing Co., 1991.]]
[4]
T. Bultan. Action Language: A specification language for model checking reactive systems. In Proceedings of the 22nd International Conference on Software Engineering (ICSE 2000), pages 335-344, June 2000.]]
[5]
T. Bultan, R. Gerber., and C. League. Composite model checking: Verification with type-specific symbolic representations. ACM Transactions of Software Engineering and Methodology, 9(1):3-50, January 2000.]]
[6]
T. Bultan and T. Yavuz-Kahveci. Action Language Verifier. In Proceedings of the 16th IEEE International Conference on Automated Software Engineering, 2001.]]
[7]
T. Cargill. Specific notification for Java thread synchronization. In International Conference on Pattern Languages of Programming, 1996.]]
[8]
J. C.Corbett, M. B.Dwyer, J. Hatcliff, S. Laubach, C. S.Pasarenau, Robby, and H. Zheng. Bandera: Extracting finite-state models from Java source code. In Proc. 22nd Int. Conf. on Soft. Eng. (ICSE), 2000.]]
[9]
G. Delzanno. Automatic verification of parameterized cache coherence protocols. In Proceedings of the 12th International Conference on Computer Aided Verification, volume 1855 of Lecture Notes in Computer Science, pages 53-68, 2000.]]
[10]
G. Delzanno and T. Bultan. Constraint-based verification of client-server protocols. In Proceedings of the 7th International Conference on Principles and Practice of Constraint Programming, 2001.]]
[11]
C. Demartini, R. Iosif, and R. Sisto. A deadlock detection tool for concurrent Java programs. Software-Practice and Experience, 29(7):577-603, 1999.]]
[12]
X. Deng, M. B. Dwyer, J. Hatcliff, and M. Mizuno. Invariant-based specification, synthesis, and verification of synchronization in concurrent programs. In Proceedings of the 24th International Conference on Software Engineering (ICSE 2002), to appear.]]
[13]
K. Havelund and T. Pressburger. Model checking Java programs using Java PathFinder. International Journal on Software Tools for Technology Transfer (STTT), 2000.]]
[14]
C. Hoare. Monitors: An operating system structuring concept. Communications of the ACM, 17(10):549-557, 1974.]]
[15]
T. Y. Kahveci, M. Tuncer, and T. Bultan. A library for composite symbolic representation. In Proceedings of the Seventh International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2001), 2001.]]
[16]
D. Lea. Concurrent Programming in Java, Design Principles and Java. Sun Microsystems, 1999.]]
[17]
K. L. McMillan. Symbolic model checking. Kluwer Academic Publishers, Massachusetts, 1993.]]
[18]
M. Mizuno. A structured approach for developing concurrent programs in Java. Information Processing Letters, 1999.]]
[19]
R. Wilhelm, M. Sagiv, and T. Reps. Shape analysis. In Proceedings of the 9th International Conference on Compiler Construction, volume 1781 of Lecture Notes in Computer Science, pages 1-17, 2000.]]
[20]
T. Yavuz-Kahveci and T. Bultan. Heuristics for efficient manipulation of composite constraints. In A. Armando, editor, Proceedings of the 4th International Workshop on Frontiers of Combining Systems (FroCos 2002), volume LNAI 2309, pages 57-71. Springer, 2002.]]
[21]
C. Zhong. Modeling of Airport Operations Using An Object-Oriented Approach. PhD thesis, Virginia Polytechnic Institute and State University, 1997.]]

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ISSTA '02: Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
July 2002
248 pages
ISBN:1581135629
DOI:10.1145/566172
  • cover image ACM SIGSOFT Software Engineering Notes
    ACM SIGSOFT Software Engineering Notes  Volume 27, Issue 4
    July 2002
    242 pages
    ISSN:0163-5948
    DOI:10.1145/566171
    Issue’s Table of Contents
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 July 2002

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrent programming
  2. infinite-state model checking
  3. monitors
  4. specification languages

Qualifiers

  • Article

Conference

ISSTA02
Sponsor:

Acceptance Rates

ISSTA '02 Paper Acceptance Rate 26 of 97 submissions, 27%;
Overall Acceptance Rate 58 of 213 submissions, 27%

Upcoming Conference

ISSTA '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 06 Nov 2024

Other Metrics

Citations

Cited By

View all

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media