ACM Home Page
Please provide us with feedback. Feedback
Specification, verification, and synthesis of concurrency control components
Full text PdfPdf (316 KB)
Source International Symposium on Software Testing and Analysis archive
Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis table of contents
Roma, Italy
SESSION: Analysis of concurrent programs table of contents
Pages: 169 - 179  
Year of Publication: 2002
ISBN ~ ISSN:0163-5948 , 1-58113-562-9
Also published in ...
Authors
Tuba Yavuz-Kahveci  University of California, Santa Barbara, CA
Tevfik Bultan  University of California, Santa Barbara, CA
Sponsor
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 60,   Citation Count: 4
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues   peer to peer  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/566172.566199
What is a DOI?

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

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Statistical summary of commercial jet aircraft accidents, worldwide operations 1959-1995. Boeing Commercial Airplane Group, Airplane Safety Engineering, Seattle, Washington, 1996.
 
2
 
3
4
5
 
6
 
7
T. Cargill. Specific notification for Java thread synchronization. In International Conference on Pattern Languages of Programming, 1996.
8
 
9
 
10
 
11
12
 
13
K. Havelund and T. Pressburger. Model checking Java programs using Java PathFinder. International Journal on Software Tools for Technology Transfer (STTT), 2000.
14
 
15
 
16
D. Lea. Concurrent Programming in Java, Design Principles and Java. Sun Microsystems, 1999.
 
17
 
18
 
19
 
20
 
21
C. Zhong. Modeling of Airport Operations Using An Object-Oriented Approach. PhD thesis, Virginia Polytechnic Institute and State University, 1997.


Collaborative Colleagues:
Tuba Yavuz-Kahveci: colleagues
Tevfik Bultan: colleagues

Peer to Peer - Readers of this Article have also read: