ACM Home Page
Please provide us with feedback. Feedback
Lock reservation: Java locks can mostly do without atomic operations
Full text PdfPdf (246 KB)
Source Conference on Object Oriented Programming Systems Languages and Applications archive
Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications table of contents
Seattle, Washington, USA
SESSION: Optimizations table of contents
Pages: 130 - 141  
Year of Publication: 2002
ISBN:1-58113-471-1
Also published in ...
Authors
Kiyokuni Kawachiya  IBM Research, Tokyo Research Laboratory, Shimotsuruma, Yamato, Kanagawa, Japan
Akira Koseki  IBM Research, Tokyo Research Laboratory, Shimotsuruma, Yamato, Kanagawa, Japan
Tamiya Onodera  IBM Research, Tokyo Research Laboratory, Shimotsuruma, Yamato, Kanagawa, Japan
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 12,   Downloads (12 Months): 74,   Citation Count: 10
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/582419.582433
What is a DOI?

ABSTRACT

Because of the built-in support for multi-threaded programming, Java programs perform many lock operations. Although the overhead has been significantly reduced in the recent virtual machines, One or more atomic operations are required for acquiring and releasing an object's lock even in the fastest cases.This paper presents a novel algorithm called lock reservation. It exploits thread locality of Java locks, which claims that the locking sequence of a Java lock contains a very long repetition of a specific thread. The algorithm allows locks to be reserved for threads. When a thread attempts to acquire a lock, it can do without any atomic operation if the lock is reserved for the thread. Otherwise, it cancels the reservation and falls back to a conventional locking algorithm.We have evaluated an implementation of lock reservation in IBM's production virtual machine and compiler. The results show that it achieved performance improvements up to 53% in real Java programs.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
2
 
3
 
4
E. Armstrong. HotSpot: A New Breed of Virtual Machine.
 
5
6
 
7
D. F. Bacon and S. Fink. Personal Communication.
8
9
10
11
12
 
13
D. Dice. Implementing Fast Java Monitors with Relaxed-Locks. Proceedings of USENIX JVM '01, 79--90, 2001.
14
 
15
R. Eckstein, D. Collier-Brown, and P. Kelly. Using Samba. O'Reilly, 1999. http://www.oreilly.com/catalog/samba/chapter/book/ch05_05.html.
 
16
E. M. Gagnon and L. J. Hendren. SableVM: A Research Framework for the Efficient Execution of Java Bytecode Proceedings of USENIX JVM '01, 27--39, 2001.
 
17
18
19
 
20
IBM developerWorks Java Technology Zone. http://www.ibm.com/developerworks/java/.
 
21
Intel Corporation. IA-32 Intel Architecture Software Developer's Manual Vol. 1--3. http://developer.intel.com/design/Pentium4/manuals/.
 
22
Intel Corporation. Intel Itanium Architecture Software Developer's Manual Vol. 1--3. http://developer.intel.com/design/itanium/manuals/.
23
 
24
Java Community Process. JSR 133: Java Memory Model and Thread Specification Revision. http://jcp.org/jsr/detail/133.jsp.
 
25
T. Johnson and K. Harathi. Interruptible Critical Sections. Technical Report TR94007, University of Florida, 1994.
 
26
Kaffe.org. Developing Kaffe. http://www.kaffe.org/develop.html.
 
27
M. Kawahito. Personal Communication.
 
28
A. Krall and M. Probst. Monitors and Exceptions: How to Implement Java Efficiently. Proceedings of ACM Workshop on Java for High-Performance Network Computing, 15--24, 1998.
29
30
 
31
P. Leach and D. Perry. CIFS: A Common Internet File System. http://www.microsoft.com/mind/1196/cifs.asp|, 1996.
 
32
G. Muller, B. Moura, F. Bellard, and C. Consel. Harissa: A Flexible and Efficient Java Environment Mixing Bytecode and Compiled Code. Proceedings of the 3rd USENIX Conference on Object Oriented Technologies and Systems (COOTS '97), 1--20, 1997.
 
33
T. Onodera. A Simple and Space-Efficient Monitor Optimization for Java. IBM Research Report RT0259, IBM, 1998.
34
35
36
 
37
38
 
39
Standard Performance Evaluation Corporation. SPEC JBB2000. http://www.spec.org/osg/jbb2000/.
 
40
Standard Performance Evaluation Corporation. SPEC JVM98 Benchmarks. http://www.spec.org/osg/jvm98/.
 
41
42
 
43
Volano LLC. Volano Benchmarks. http://www.volano.com/benchmarks.html.
44
45
46
 
47
F. Yellin and T. Lindholm. Java Runtime Internals. Presentation in JavaOne '96,

CITED BY  10

Collaborative Colleagues:
Kiyokuni Kawachiya: colleagues
Akira Koseki: colleagues
Tamiya Onodera: colleagues