An efficient meta-lock for implementing ubiquitous synchronization

  • Authors:
  • Ole Agesen;David Detlefs;Alex Garthwaite;Ross Knippel;Y. S. Ramakrishna;Derek White

  • Affiliations:
  • Sun Microsystems Laboratories, One Network Drive, Burlington, MA;Sun Microsystems Laboratories, One Network Drive, Burlington, MA;Sun Microsystems Laboratories, One Network Drive, Burlington, MA;Sun Microsystems, 901 San Antonio Road, Palo Alto, CA;Sun Microsystems, 901 San Antonio Road, Palo Alto, CA;Sun Microsystems Laboratories, One Network Drive, Burlington, MA

  • Venue:
  • Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
  • Year:
  • 1999

Quantified Score

Hi-index 0.01

Visualization

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.