Building a Java virtual machine for server applications: The Jvm on OS/390

  title={Building a Java virtual machine for server applications: The Jvm on OS/390},
  author={Donna N. Dillenberger and Rajesh R. Bordawekar and Clarence W. Clark and Donald Durand and David Emmes and Osamu Gohda and Sally Howard and Michael F. Oliver and Frank Samuel and Robert W. St. John},
  journal={IBM Syst. J.},
As the use of the JavaTM language and virtual machines proliferates beyond the sphere of applets into the space of server programs, developers are requiring better performance, availability, and transactional and scalability features. This paper describes the work done for the Operating System/390 (OS/390®) Java virtual machine to improve performance and serviceability, to introduce security and performance enhancements, and to redesign parts of the virtual machine to enable it to run server… 

Tables from this paper

Application isolation in the Java Virtual Machine

The main idea is to maintain only one copy of every class, regardless of how many applications use it, which improves on existing designs in terms of resource utilization while offering strong isolation among applications.

Isolation, Resource Management and Sharing in the Kaffeos Java Runtime System

It is demonstrated that in the presence of malicious or buggy code that engages in a denial-of-service attack directed against resources, KaffeOS-based systems can contain the attack, remove resources from the attacked applications, and continue to provide robust service to other clients.

The KaffeOS Java runtime system

It is shown that Java runtime systems can be extended to support processes, and that processes can provide robust and efficient support for untrusted applications, and it is considered acceptable for the safety that KaffeOS provides.

Application isolation in the JavaTM Virtual Machine

This paper proposes a novel, simple yet powerful solution to multitasking in Java that improves on existing designs in terms of resource utilization while offering strong isolation among applications, applicable both on high-end servers and on small devices.

Processes in KaffeOS: isolation, resource management, and sharing in java

Because of its implementation base, KaffeOS is substantially slower than commercial JVMs for trusted code, but it clearly outperforms those JVs in the presence of denial-of-service attacks or misbehaving code.

Code Sharing among Virtual Machines

This paper analyzes these tradeoffs in the context of two modifications to the Java virtual machine (JVM): the first allows for sharing of bytecodes and class information across multiple virtual machines, each of which executes in a separate operating system process, using shared memory.

Multitasking without compromise: a virtual machine evolution

The design of MVM is presented, focusing on several novel and general techniques: an in-runtime design of lightweight isolation, an extension of a copying, generational garbage collector to provide best-effort management of a portion of the heap space, and a transparent and automated mechanism for safe execution of user-level native code.

Dynamically loaded classes as shared libraries: an approach to improving virtual machine scalability

This paper transforms packages into shared libraries containing classes in a format matching the internal representation used within the virtual machine, and maximize the number of elements in the read-only section to take advantage of cross-process text segment sharing.

Scaling J2EE™ application servers with the multi-tasking virtual machine

The Multi-tasking Virtual Machine (MVM) solves the problem of proliferation of server instances by providing an efficient and scalable implementation of the isolate API for multiple, isolated tasks, enabling the co-location of multiple server instances in a single MVM process.

A Secure Microkernel Virtual Machine Xiaoqi

The μKVM prototype is benchmarked, and the results show that the implementation compares favorably with the J2SDK and so the architecture does not appear to be a burden on running time.



The Java Virtual Machine Specification

This second edition specifies the newest version of the Java virtual machine and provides a fascinating view into the inner workings of theJava 2 platform.

Experience with secure multi-processing in Java

  • D. BalfanzL. Gong
  • Computer Science
    Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183)
  • 1998
This work experimented with using the Java platform as a multiprocessing, multi user environment and proposed improvements to several aspects of the Java technology architecture, including its security features.

Java server performance: A case study of building efficient, scalable Jvms

The serverspecific performance enhancements made to the core Jvm and just-in-time (JIT) compiler, which have allowed the IBM Developer Kits that implement Java code for Intel processors to become industry performance leaders are detailed.

The evolution of a high-performing Java virtual machine

The methodology that was used by IBM to identify and eliminate performance bottlenecks for improving the performance of Java applications running on several operating system platforms is presented.

Java server benchmarks

These benchmarks represent server application areas, including Web-based dynamic content delivery (servlets), business object frameworks, and multitier transactional data acquisition, and present benchmarks written using both the Java programming model and the legacy model for direct comparisons of delivered performance.

cJVM: a single system image of a JVM on a cluster

cJVM is a Java Virtual Machine (JVM) that provides a single system image of a traditional JVM while executing on a cluster. cJVM virtualizes the cluster, supporting any pure Java application without

Evaluation of Java thread performance on two different multithreaded kernels

The results show that the performance of Java threads differs depending on the various mechanisms used to map Java threads to native system threads, as well as on the scheduling policies for these native threads.

Overview of the IBM Java Just-in-Time Compiler

The design and implementation of several optimizations and techniques included in the latest IBM JavaTM Just-in-Time (JIT) Compiler are presented, including code generation techniques targeting Intel architectures, and the effectiveness of the individual optimizations is described.

Straightforward Java Persistence Through Checkpointing

This paper describes a scheme based on checkpointing the Java Virtual Machine, and compares the scheme to other techniques, and offers two unique advantages: first, the implementation is independent of the JVM implementation, and therefore survives JVM updates; second, because checkpointing saves and restores execution state, even threads become persistent entities.

Inside the Java Virtual Machine

This is an individual practical exercise which requires you to submit some files electronically. A system which measures software similarity will be used to compare all of the submissions in order to