Project Oberon: the design of an operating system and compiler
Project Oberon: the design of an operating system and compiler
Infant mortality and generational garbage collection
ACM SIGPLAN Notices
Extensibility safety and performance in the SPIN operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Concurrent programming in ERLANG (2nd ed.)
Concurrent programming in ERLANG (2nd ed.)
Garbage collection: algorithms for automatic dynamic memory management
Garbage collection: algorithms for automatic dynamic memory management
Dynamic class loading in the Java virtual machine
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Persistent execution state of a Java virtual machine
Proceedings of the ACM 2000 conference on Java Grande
An approach to safe object sharing
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Communicating sequential processes
Communications of the ACM - Special 25th Anniversary Issue
JESSICA: Java-enabled single-system-image computing architecture
Journal of Parallel and Distributed Computing - Special Issue on Java on Clusters
Java virtual machine support for object serialization
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
Multitasking without comprimise: a virtual machine evolution
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Efficient Java RMI for parallel programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
JavaSpaces Principles, Patterns, and Practice
JavaSpaces Principles, Patterns, and Practice
Dynamic Storage Allocation: A Survey and Critical Review
IWMM '95 Proceedings of the International Workshop on Memory Management
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
Older-first garbage collection in practice: evaluation in a Java Virtual Machine
Proceedings of the 2002 workshop on Memory system performance
Executing Java threads in parallel in a distributed-memory environment
CASCON '98 Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research
COMPCON '97 Proceedings of the 42nd IEEE International Computer Conference
Generation Scavenging: A non-disruptive high performance storage reclamation algorithm
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Experience with Secure Multi-Processing in Java
ICDCS '98 Proceedings of the The 18th International Conference on Distributed Computing Systems
cJVM: A Single System Image of a JVM on a Cluster
ICPP '99 Proceedings of the 1999 International Conference on Parallel Processing
Mostly concurrent compaction for mark-sweep GC
Proceedings of the 4th international symposium on Memory management
Garbage-first garbage collection
Proceedings of the 4th international symposium on Memory management
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The design and implementation of Zap: a system for migrating computing environments
OSDI '02 Proceedings of the 5th symposium on Operating systems design and implementationCopyright restrictions prevent ACM from being able to make the PDFs for this conference available for downloading
Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
Garbage collection without paging
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Occam Programming Manual
The Compressor: concurrent, incremental, and parallel compaction
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Eliminating synchronization-related atomic operations with biased locking and bulk rebiasing
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Language support for fast and reliable message-based communication in singularity OS
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
Singularity: rethinking the software stack
ACM SIGOPS Operating Systems Review - Systems work at Microsoft Research
Fast transparent migration for virtual machines
ATEC '05 Proceedings of the annual conference on USENIX Annual Technical Conference
Processes in KaffeOS: isolation, resource management, and sharing in java
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
Parallel garbage collection for shared memory multiprocessors
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
CRAMM: virtual memory support for garbage-collected applications
OSDI '06 Proceedings of the 7th symposium on Operating systems design and implementation
The mapping collector: virtual memory support for generational, parallel, and concurrent compaction
Proceedings of the 13th international conference on Architectural support for programming languages and operating systems
Cross-language, type-safe, and transparent object sharing for co-located managed runtimes
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Waste not, want not: resource-based garbage collection in a shared environment
Proceedings of the international symposium on Memory management
S-RVM: a secure design for a high-performance java virtual machine
Proceedings of the sixth ACM workshop on Virtual machines and intermediate languages
Finer Garbage Collection in Lindacap
International Journal of Information Technology and Web Engineering
Hi-index | 0.00 |
Developers commonly build contemporary enterprise applications using type-safe, component-based platforms, such as J2EE, and architect them to comprise multiple tiers, such as a web container, application server, and database engine. Administrators increasingly execute each tier in its own managed runtime environment (MRE) to improve reliability and to manage system complexity through the fault containment and modularity offered by isolated MRE instances. Such isolation, however, necessitates expensive cross-tier communication based on protocols such as object serialization and remote procedure calls. Administrators commonly co-locate communicating MREs on a single host to reduce communication overhead and to better exploit increasing numbers of available processing cores. However, state-of-the-art MREs offer no support for more efficient communication between co-located MREs, while fast inter-process communication mechanisms, such as shared memory, are widely available as a standard operating system service on most modern platforms. To address this growing need, we present the design and implementation of XMem ? type-safe, transparent, shared memory support for co-located MREs. XMem guarantees type-safety through coordinated, parallel, multi-process class loading and garbage collection. To avoid introducing any level of indirection, XMem manipulates virtual memory mapping. In addition, object sharing in XMem is fully transparent: shared objects are identical to local objects in terms of field access, synchronization, garbage collection, and method invocation, with the only difference being that sharedto-private pointers are disallowed. XMem facilitates easy integration and use by existing communication technologies and software systems, such as RMI, JNDI, JDBC, serialization/XML, and network sockets. We have implemented XMem in the open-source, productionquality HotSpot Java Virtual Machine. Our experimental evaluation, based on core communication technologies underlying J2EE, as well as using open-source server applications, indicates that XMem significantly improves throughput and response time by avoiding the overheads imposed by object serialization and network communication.