Libra: a library operating system for a jvm in a virtualized execution environment

  • Authors:
  • Glenn Ammons;Jonathan Appavoo;Maria Butrico;Dilma Da Silva;David Grove;Kiyokuni Kawachiya;Orran Krieger;Bryan Rosenburg;Eric Van Hensbergen;Robert W. Wisniewski

  • Affiliations:
  • IBM T.J. Watson Research Center, Hawthorne, NY;IBM T.J. Watson Research Center, Yorktown Heights, NY;IBM T.J. Watson Research Center, Yorktown Heights, NY;IBM T.J. Watson Research Center, Yorktown Heights, NY;IBM T.J. Watson Research Center, Hawthorne, NY;IBM Tokyo Research Laborator, Yamato, UNK, Japan;IBM T.J. Watson Research Center, Yorktown Heights, NY;IBM T.J. Watson Research Center, Yorktown Heights, NY;IBM Austin Research Lab, Austin, TX;IBM T.J. Watson Research Center, Yorktown Heights, NY

  • Venue:
  • Proceedings of the 3rd international conference on Virtual execution environments
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

If the operating system could be specialized for every application, many applications would run faster. For example, Java virtual machines (JVMs) provide their own threading model and memory protection, so general-purpose operating system implementations of these abstractions are redundant. However, traditional means of transforming existing systems into specialized systems are difficult to adopt because they require replacing the entire operating system. This paper describes Libra, an execution environment specialized for IBM's J9 JVM. Libra does not replace the entire operating system. Instead, Libra and J9 form a single statically-linked image that runs in a hypervisor partition. Libra provides the services necessary to achieve good performance for the Java workloads of interest but relies on an instance of Linux in another hypervisor partition to provide a networking stack, a filesystem, and other services. The expense of remote calls is offset by the fact that Libra's services can be customized for a particular workload; for example, on the Nutch search engine, we show that two simple customizations improve application throughput by a factor of 2.7.