ACM Home Page
Please provide us with feedback. Feedback
Model checking the Java metalocking algorithm
Full text PdfPdf (3.40 MB)
Source
ACM Transactions on Software Engineering and Methodology (TOSEM) archive
Volume 16 ,  Issue 3  (July 2007) table of contents
Article No. 12  
Year of Publication: 2007
ISSN:1049-331X
Authors
Samik Basu  Iowa State University, Ames, IA
Scott A. Smolka  State University of New York at Stony Brook, Stony Brook, NY
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 6,   Downloads (12 Months): 81,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   review   collaborative colleagues  

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/1243987.1243990
What is a DOI?

ABSTRACT

We report on our efforts to use the XMC model checker to model and verify the Java metalocking algorithm. XMC [Ramakrishna et al. 1997] is a versatile and efficient model checker for systems specified in XL, a highly expressive value-passing language. Metalocking [Agesen et al. 1999] is a highly-optimized technique for ensuring mutually exclusive access by threads to object monitor queues and, therefore; plays an essential role in allowing Java to offer concurrent access to objects. Metalocking can be viewed as a two-tiered scheme. At the upper level, the metalock level, a thread waits until it can enqueue itself on an object's monitor queue in a mutually exclusive manner. At the lower level, the monitor-lock level, enqueued threads race to obtain exclusive access to the object. Our abstract XL specification of the metalocking algorithm is fully parameterized, both on the number of threads M, and the number of objects N. It also captures a sophisticated optimization of the basic metalocking algorithm known as extra-fast locking and unlocking of uncontended objects. Using XMC, we show that for a variety of values of M and N, the algorithm indeed provides mutual exclusion and freedom from deadlock and lockout at the metalock level. We also show that, while the monitor-lock level of the protocol preserves mutual exclusion and deadlock-freedom, it is not lockout-free because the protocol's designers chose to give equal preference to awaiting threads and newly arrived 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
ACL2. 2002. Applicative Common Lisp ACL2 v2.7. http://www.cs.utexas.edu/users/moore/acl2/.
2
 
3
Archer, M., Heitmeyer, C., and Sims, S. 1998. TAME: A PVS interface to simplify proofs for automata models. User Interfaces for Theorem Provers. Eindhoven, The Netherlands.
 
4
 
5
Basu, S., Smolka, S. A., and Ward, O. R. 2000. Model checking the Java Metalocking algorithm. In Proceedings of 7th IEEE International Conference and Workshop on the Engineering of Computer Based Systems (ECBS'00). Edinburgh, Scotland.
 
6
 
7
 
8
Dong, Y., Du, X., Holzmann, G., and Smolka, S. A. 2003. Fighting livelock in the i-Protocol: A case study in explicit-state model checking. Softw. Tools Techn. Transfer 4, 4, 505--528.
 
9
Dong, Y., Ramakrishnan, C. R., and Smolka, S. A. 2003. Evidence explorer: A tool for exploring model-checking proofs. In Computer-Aided Verification (CAV'03).
 
10
 
11
Groote, J. F. and Rem, M., Eds. 1997. Science of Computer Programming, Special Issue on Verification and Validation Methods for Formal Descriptions. Vol. 29(1-2).
 
12
13
 
14
Holzmann, G. 2004. The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley.
 
15
Kozen, D. 1983. Results on the propositional μ-calculus. Theoret. Comput. Sci. 27, 333--354.
 
16
17
 
18
Murphi. 2006. Murphi description language and verifier. http://verify.stanford.edu/dill/murphi.html.
 
19
 
20
Pike, R., Presotto, D., Thompson, K., and Holzmann, G. 1991. Process sleep and wake-up on a shared-memory multiprocessor. In Proceedings of the Spring EurOpen Conference. Tromso, Norway, 161--166.
 
21
PVS. 2003. The PVS specification and verification system v1.3. http://pvs.csl.sri.com/.
 
22
 
23
 
24
 
25
 
26
SMV. 2006. Symbolic model verifier 2.5. http://www.cs.cmu.edu/~modelcheck/smv.html.
 
27
 
28
 
29
XSB. 2001. The XSB logic programming system v2.4. Available by anonymous ftp from ftp.cs.sunysb.edu.



REVIEW

"Rosziati Ibrahim : Reviewer"

Basu and Smolka present a case study of modeling and verifying the Java metalocking algorithm using the XMC model checker. They verify the correctness of the metalocking algorithm by manually constructing a model of the algorithm, and then perform  more...

Collaborative Colleagues:
Samik Basu: colleagues
Scott A. Smolka: colleagues