|
|
Efficient Meta-lock for Implementing Ubiquitous Synchronization, An
|
Author(s):
|
|
Ole Agesen, David Detlefs, Alex Garthwaite, Ross Knippel, Y.S. Ramakrishna and Derek White
|
|
Report Number:
|
Date Published:
|
Available Formats:
|
|
TR-99-76
|
April 1999
|
Portable Document Format (PDF)
Postscript (PS)
Request Hard Copy
|
| Abstract |
|
Programs written in concurrent object-oriented languages, especially ones that employ threadsafe
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 SPARCTM 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 JavaTM virtual
machine and report performance data for several large programs.
|
|
|