A study of locking objects with bimodal fields
@inproceedings{Onodera1999ASO, title={A study of locking objects with bimodal fields}, author={Tamiya Onodera and Kiyokuni Kawachiya}, booktitle={Conference on Object-Oriented Programming Systems, Languages, and Applications}, year={1999}, url={https://api.semanticscholar.org/CorpusID:5352652} }
This work proposes a new algorithm that allows both inflation without busy-wait and deflation, but still maintains an almost maximum level of performance in the absence of contention.
39 Citations
Implementing Fast Java Monitors with Relaxed-locks
TO-Lock: removing lock overhead using the owners' temporal locality
- 2004
Computer Science
The experimental results of the benchmarking on an SMP machine using Intel Xeon processors showed that the proposed algorithm can significantly improve the performance by 83% on average compared to the case using a complex atomic instruction.
Fine-grained adaptive biased locking
- 2011
Computer Science
This work presents the biased locking protocol used in Jikes RVM, a high-throughput Java virtual machine, and describes the protocol, dubbed Fable, which builds on prior work by adding per-object-instance dynamic adaptation and inexpensive bias revocation.
Implementing Fast Java Monitors with Relaxed-locks Mon-usenix-0p for Submission to Usenix Jvm'01
Computer Science
The Relaxed-Lock protocol is unique in that it permits a benign data race in the monitor unlock path but detects and recovers from the race and thus maintains correct mutual exclusion.
A monitor-based synchronization approach for Java packed objects
- 2015
Computer Science
According to the experimental results, this approach performs much better than the Java built-in synchronization for coarse-grained locking and the time overhead is reduced by 18% for the PackedSync approach.
Java locks : analysis and acceleration
- 2005
Computer Science
A new method is presented, in which a lock can be acquired with just one atomic operation in the absence of contention, which increased the performance of Java application by up to 13.1%, and is used by IBM’s production Java virtual machines.
Evaluating and improving biased locking in the HotSpot virtual machine
- 2014
Computer Science
Results indicate performance improvement in certain scenarios using the prototype of an improvement to the biased locking algorithm, suggesting that the improvement might be useful.
Thin locks: featherweight synchronization for Java
- 1998
Computer Science
A new algorithm is proposed that allows lock and unlock operations to be performed with only a few machine instructions in the most common cases, and only require a partial word per object, and was implemented without increasing object size.
Continuous and Efficient Lock Profiling for Java on Multicore Architectures. (Profilage continu et efficient de verrous pour Java pour les architectures multicœurs)
- 2015
Computer Science
Free Lunch is introduced, a lock profiler that diagnoses phases of high lock contention due to locks in-vivo and is designed around a new metric, the Critical Section Pressure (CSP), which aims to evaluate the impact of lock contention on overall thread progress.
Lock Reservation for Java Reconsidered
- 2004
Computer Science
Lock reservation, a powerful optimization for Java locks, is based on the observation that, in Java, each lock tends to be dominantly acquired and released by a specific thread. Reserving a lock for…
21 References
An efficient meta-lock for implementing ubiquitous synchronization
- 1999
Computer Science
The meta-lock is fast (lock + unlock executes in 11 SPARC#8482; architecture instructions), compact, robust under contention (no busy-waiting), and flexible (supports a variety of higher-level synchronization operations).
Thin locks: featherweight synchronization for Java
- 1998
Computer Science
A new algorithm is proposed that allows lock and unlock operations to be performed with only a few machine instructions in the most common cases, and only require a partial word per object, and was implemented without increasing object size.
Algorithms for scalable synchronization on shared-memory multiprocessors
- 1991
Computer Science
The principal conclusion is that contention due to synchronization need not be a problemin large-scale shared-memory multiprocessors, and the existence of scalable algorithms greatly weakens the case for costly special-purpose hardware support for synchronization, and provides protection against so-called “dance hall” architectures.
Empirical studies of competitve spinning for a shared-memory multiprocessor
- 1991
Computer Science
Seven strategies for determining whether and how long to spin before blocking are studied, finding that the standard blocking strategy performs poorly compared to mixed strategies, and adaptive algorithms perform better than non-adaptive ones.
Experience with processes and monitors in Mesa
- 1980
Computer Science
These problems are addressed by the facilities described here for concurrent programming in Mesa, and experience with several substantial applications gives us some confidence in the validity of the solutions.
The Performance of Spin Lock Alternatives for Shared-Memory Multiprocessors
- 1990
Computer Science
The author examines the questions of whether there are efficient algorithms for software spin-waiting given hardware support for atomic instructions, or whether more complex kinds of hardware support…
Monitors and Exceptions: How to Implement Java Efficiently
- 1998
Computer Science
An efficient implementation of monitors for Java as used in the CACAO just-in-time compiler is described, which reduces the size of the generated native code by a half and allows null pointers to be checked by hardware.
Waiting algorithms for synchronization in large-scale multiprocessors
- 1993
Computer Science
Motivated by the observation that different synchronization types exhibit different wait-time distributions, a static choice of L<subscrpt>poll can yield close to optimal on-line performance against an adversary that is restricted to choosing wait times from a fixed family of probability distributions.
Shared Memory Consistency Models: A Tutorial
- 1996
Computer Science
This work describes an alternative, programmer-centric view of relaxed consistency models that describes them in terms of program behavior, not system optimizations, and most of these models emphasize the system optimizations they support.
Space and Time-Efficient Hashing of Garbage-Collected Objects
- 1999
Computer Science
This work proposes a new implementation of hashing for the hardest case: memory systems with compaction and direct pointers, which uses just two bits of space per object for the (majority of) objects that are never hashed.