ABSTRACT
A multi-tasking virtual machine (MVM) executes multiple programs in isolation, within a single operating system process. The goal of a MVM is to improve startup time, overall system throughput, and performance, by effective reuse and sharing of system resources across programs (tasks). However, multitasking also mandates a memory management system capable of offering a guarantee of isolation with respect to garbage collection costs, accounting of memory usage, and timely reclamation of heap resources upon task termination.To this end, we investigate and evaluate, novel task-aware extensions to a state-of-the-art MVM garbage collector (GC). Our task-aware GC exploits the generational garbage collection hypothesis, in the context of multiple tasks, to provide performance isolation by maintaining task-private young generations. Task aware GC facilitates concurrent per-task allocation and promotion, and minimizes synchronization and scanning overhead. In addition, we efficiently track per-task heap usage to enable GC-free reclamation upon task termination. Moreover, we couple these techniques with a light-weight synchronization mechanism that enables per-task minor collection, concurrently with allocation by other tasks.We empirically evaluate the efficiency, scalability, and through-put that our task-aware GC system enables.
- Multitasking virtual machine. http://mvm.dev.java.net.Google Scholar
- AZAGURY, A., KOLODNER, E. K., PETRANK, E., AND YEHUDAI, Z. Combining Card Marking with Remembered Sets: How to Save Scanning Time. In International Symposium on Memory Management (ISMM) (Oct. 1998). Google ScholarDigital Library
- BACK, G., AND HSIEH, W. C. The KaffeOS Java Runtime System. ACM Trans. on Programming Languages and Systems 27, 4 (July 2005), 583--630. Google ScholarDigital Library
- BARABASH, K., OSSIA, Y., AND PETRANK, E. Mostly Concurrent Garbage Collection Revisited. In Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) (Oct. 2003). Google ScholarDigital Library
- CHAMBERS, C. The Design and Implementation of the SELF Compiler, an Optimizing Compiler for an Objected-Oriented Programming Language. PhD thesis, Stanford University, Mar. 1992. Google ScholarDigital Library
- CZAJKOWSKI, G. Application Isolation in the Java ™ Virtual Machine. In OOPSLA (2000), pp. 354--66. Google ScholarDigital Library
- CZAJKOWSKI, G., AND DAYNÈS, L. Multitasking without Compromise: A Virtual Machine Evolution. In Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) (Oct. 2001). Google ScholarDigital Library
- CZAJKOWSKI, G., AND DAYNÈS, L. A Multi-User Virtual Machine. In USENIX 2003 Annual Technical Conference (June 2003). Google ScholarDigital Library
- The Dacapo Benchmark Suite, version beta050224. http://www-ali.cs.umass.edu/DaCapo/gcbm.html.Google Scholar
- DAYNÈS, L., AND CZAJKOWSKI, G. Sharing the Runtime Representation of Classes Across Class Loaders. In European Conference on Object-Oriented Programming (ECOOP) (July 2005). Google ScholarDigital Library
- DETLEFS, D., CLINGER, W. D., AND JACOB, M. Concurrent Remembered Set Refinement in Generational Garbage Collection. In USENIX Java Virtual Machine Research and Technology Symposium (JVM'02) (Aug. 2002). Google ScholarDigital Library
- DETLEFS, D., FLOOD, C., HELLER, S., AND PRINTEZIS, T. Garbage-First Garbage Collection. In International Symposium on Memory Management (ISMM) (Oct. 2004). Google ScholarDigital Library
- DIMPSEY, R., ARORA, R., AND KUIPER, K. Java Server Performance: A Case Study of Building Efficient, Scalable JVMs. IBM Systems Journal 39, 1 (2000). http://www.research.ibm.com/journal/sj/391/dimpsey.html. Google ScholarDigital Library
- DOMANI, T., GOLDSHTEIN, G., KOLODNER, E. K., LEWIS, E., PETRANK, E., AND SHEINWALD, D. Thread-Local Heaps for Java. In International Symposium on Memory Management (ISMM) (June 2002). Google ScholarDigital Library
- HÖLZLE, U. A Fast Write Barrier for Generational Garbage Collectors. In OOPSLA/ECOOP '93 Workshop on Garbage Collection in Object-Oriented Systems (Oct. 1993).Google Scholar
- HOSKING, A. L., AND HUDSON, R. L. Remembered Sets Can Also Play Cards. In OOPSLA '93 Workshop on Garbage Collection and Memory Management (Sept. 1993).Google Scholar
- HOSKING, A. L., MOSS, J. E. B., AND STEFANOVÍC, D. A Comparative Performance Evaluation of Write Barrier Implementations. In Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) (Oct. 1992). Google ScholarDigital Library
- HUDSON, R. L., MORRISON, R., MOSS, J. E. B., AND MUNRO, D. S. Garbage Collecting The World: One Car At A Time. In Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) (Oct. 1997). Google ScholarDigital Library
- JAVA COMMUNITY PROCESS. JSR-121: Application Isolation API Specification. http://jcp.org/jsr/detail/121.jsp.Google Scholar
- JOHNSTONE, M. S. Non-Compacting Memory Allocation and Real-Time Garbage Collection. PhD thesis, Dec. 1997. Google ScholarDigital Library
- MCCARTHY, J. Recursive Functions of Symbolic Expressions and their Computation by Machine. Comm. of the ACM 3 (1960), 184--195. Google ScholarDigital Library
- MORRIS, F. L. A Time- and Space-Efficient Garbage Compaction Algorithm. Communications of the ACM 21, 8 (1978). Google ScholarDigital Library
- PALECZNY, M., VICK, C., AND CLICK, C. The Java HotSpot(TM)Server Compiler. In USENIX Java Virtual Machine Research and Technology Symposium (JVM'01) (Apr. 2001). Google ScholarDigital Library
- SACHINDRAN, N., ELIOT, J., AND MOSS, B. Mark-copy: Fast Copying GC with less Space Overhead. In Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) (Oct. 2003). Google ScholarDigital Library
- SpecJVM'98 Benchmarks. http://www.spec.org/osg/jvm98.Google Scholar
- STEENSGAARD, B. Thread-Specific Heaps for Multi-Threaded Programs. In International Symposium on Memory Management (ISMM) (Oct. 2000). Google ScholarDigital Library
- SUN MICROSYSTEMS INC. Java 2 Platform Standard Edition 5.0. http://java.sun.com/j2se/1.5.0/index.jsp.Google Scholar
- UNGAR, D. Generation Scavenging: A Non-disruptive High Performance Storage Reclamation Algorithm. SIGPLAN Notices 19, 5 (1984), 157--167. Google ScholarDigital Library
- UNGAR, D. Generation Scavenging: A Non-disruptive High Performance Storage Reclamation Algorithm. In Software Engineering Symposium on Practical Software Development Environments (Apr 1992).Google Scholar
- WILSON, P. R. Uniprocessor Garbage Collection Techniques. In Proceedings of the International Workshop on Memory Management (Sept. 1992). Google ScholarDigital Library
Index Terms
- Task-aware garbage collection in a multi-tasking virtual machine
Recommendations
Dynamic selection of application-specific garbage collectors
ISMM '04: Proceedings of the 4th international symposium on Memory managementMuch prior work has shown that the performance enabled by garbage collection (GC) systems is highly dependent upon the behavior of the application as well as on the available resources. That is, no single GC enables the best performance for all programs ...
Application-specific garbage collection
Prior work, including our own, shows that application performance in garbage collected languages is highly dependent upon the application behavior and on underlying resource availability. We show that given a wide range of diverse garbage collection (GC)...
Controlling garbage collection and heap growth to reduce the execution time of Java applications
In systems that support garbage collection, a tension exists between collecting garbage too frequently and not collecting it frequently enough. Garbage collection that occurs too frequently may introduce unnecessary overheads at the risk of not ...
Comments