Algorithms for scalable synchronization on shared-memory multiprocessors
ACM Transactions on Computer Systems (TOCS)
Waiting algorithms for synchronization in large-scale multiprocessors
ACM Transactions on Computer Systems (TOCS)
The PowerPC architecture: a specification for a new family of RISC processors
The PowerPC architecture: a specification for a new family of RISC processors
Thin locks: featherweight synchronization for Java
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Empirical studies of competitve spinning for a shared-memory multiprocessor
SOSP '91 Proceedings of the thirteenth ACM symposium on Operating systems principles
Architecture and performance evaluation of a massive multi-agent system
Proceedings of the third annual conference on Autonomous Agents
Space and time-efficient hashing of garbage-collected objects
Theory and Practice of Object Systems - Special issue on selected papers from ESEC/FSE'97 (Joint Meeting of the European Software Engineering Conference and ACM Foundations of Software Engineering)
An efficient meta-lock for implementing ubiquitous synchronization
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Experience with processes and monitors in Mesa
Communications of the ACM
The Java Language Specification
The Java Language Specification
The Performance of Spin Lock Alternatives for Shared-Memory Multiprocessors
IEEE Transactions on Parallel and Distributed Systems
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Lock reservation: Java locks can mostly do without atomic operations
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
High-Performance Scalable Java Virtual Machines
HiPC '01 Proceedings of the 8th International Conference on High Performance Computing
Space- and Time-Efficient Implementation of the Java Object Model
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Comprehensive synchronization elimination for Java
Science of Computer Programming - Special issue on static analysis (SAS'99)
Data size optimizations for java programs
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
Joeq: a virtual machine and compiler infrastructure
Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators
Escape analysis for JavaTM: Theory and practice
ACM Transactions on Programming Languages and Systems (TOPLAS)
Effectiveness of cross-platform optimizations for a java just-in-time compiler
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Thin locks: featherweight Synchronization for Java
ACM SIGPLAN Notices - Best of PLDI 1979-1999
IBM Systems Journal
Automatically Reducing Repetitive Synchronization with a Just-in-Time Compiler for Java
Proceedings of the international symposium on Code generation and optimization
Proceedings of the 33rd annual international symposium on Computer Architecture
Joeq: a virtual machine and compiler infrastructure
Science of Computer Programming - Special issue on advances in interpreters, virtual machines and emulators (IVME'03)
The ExoVM system for automatic VM and application reduction
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
SableVM: a research framework for the efficient execution of java bytecode
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
Implementing fast javaTM monitors with relaxed-locks
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
How a Java VM can get more from a hardware performance monitor
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Lock elision for read-only critical sections in Java
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Fine-grained adaptive biased locking
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
Dynamic monitor allocation in the Java virtual machine
Proceedings of the 11th International Workshop on Java Technologies for Real-time and Embedded Systems
Hi-index | 0.00 |
Object locking can be efficiently implemented by bimodal use of a field reserved in an object. The field is used as a lightweight lock in one mode, while it holds a reference to a heavyweight lock in the other mode. A bimodal locking algorithm recently proposed for Java achieves the highest performance in the absence of contention, and is still fast enough when contention occurs.However, mode transitions inherent in bimodal locking have not yet been fully considered. The algorithm requires busy-wait in the transition from the light mode (inflation), and does not make the reverse transition (deflation) at all.We propose 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. We also present statistics on the synchronization behavior of real multithreaded Java programs, which indicate that busy-wait in inflation and absence of deflation can be problematic in terms of robustness and performance. Actually, an implementation of our algorithm shows increased robustness, and achieves performance improvements of up to 13.1% in server-oriented benchmarks.