An efficient meta-lock for implementing ubiquitous synchronization
- 1 October 1999
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 34 (10) , 207-222
- https://doi.org/10.1145/320385.320402
Abstract
Programs written in concurrent object-oriented languages, especially ones that employ thread-safe reusable class libraries, can execute synchronization operations (lock, notify, etc.) at an amazing rate. Unless implemented with utmost care, synchronization can become a performance bottleneck. Furthermore, in languages where every object may have its own monitor, per-object space overhead must be minimized. To address these concerns, we have developed a meta-lock to mediate access to synchronization data. The meta-lock is fast (lock + unlock executes in 11 SPARC™ architecture instructions), compact (uses only two bits of space), robust under contention (no busy-waiting), and flexible (supports a variety of higher-level synchronization operations). We have validated the meta-lock with an implementation of the synchronization operations in a high-performance product-quality Java™ virtual machine and report performance data for several large programs.Keywords
This publication has 13 references indexed in Scilit:
- Java's insecure parallelismACM SIGPLAN Notices, 1999
- The new crop of Java virtual machines (panel)Published by Association for Computing Machinery (ACM) ,1998
- Monitors and exceptions: how to implement Java efficientlyConcurrency: Practice and Experience, 1998
- Thin locksPublished by Association for Computing Machinery (ACM) ,1998
- The synergy between non-blocking synchronization and operating system structurePublished by Association for Computing Machinery (ACM) ,1996
- Monitor classificationACM Computing Surveys, 1995
- Monitors and concurrent PascalPublished by Association for Computing Machinery (ACM) ,1993
- The performance of spin lock alternatives for shared-memory multiprocessorsIEEE Transactions on Parallel and Distributed Systems, 1990
- MonitorsCommunications of the ACM, 1974
- Solution of a problem in concurrent programming controlCommunications of the ACM, 1965