Evolution of Virtual Machine Technologies for Portability and Application Capture. Bob Vandette Java Hotspot VM Engineering Sept 2004

Similar documents
Virtual Machines and Dynamic Translation: Implementing ISAs in Software

Introduction to Virtual Machines

CSE 237B Fall 2009 Virtualization, Security and RTOS. Rajesh Gupta Computer Science and Engineering University of California, San Diego.

Advanced Computer Architecture

Java On Steroids: Sun s High-Performance Java Implementation. History

Virtual Machines. 2 Disco: Running Commodity Operating Systems on Scalable Multiprocessors([1])

Introduction to Virtual Machines. Michael Jantz

New Java performance developments: compilation and garbage collection

Operating Systems 2 nd semester 2016/2017. Chapter 4: Threads

references Virtualization services Topics Virtualization

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Learning Outcomes. Extended OS. Observations Operating systems provide well defined interfaces. Virtual Machines. Interface Levels

Virtual Machine Monitors!

CMPSC 311- Introduction to Systems Programming Module: Systems Programming

Zing Vision. Answering your toughest production Java performance questions

LIA. Large Installation Administration. Virtualization

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

Optimising Multicore JVMs. Khaled Alnowaiser

Java Performance: The Definitive Guide

Oracle Developer Studio Performance Analyzer

CS-580K/480K Advanced Topics in Cloud Computing. VM Virtualization II

CS Computer Architecture

IJRDTM Kailash ISBN No Vol.17 Issue

CS252 Spring 2017 Graduate Computer Architecture. Lecture 18: Virtual Machines

CHAPTER 16 - VIRTUAL MACHINES

Chapter 4: Threads. Chapter 4: Threads

Virtualization. Pradipta De

Last class: OS and Architecture. OS and Computer Architecture

Last class: OS and Architecture. Chapter 3: Operating-System Structures. OS and Computer Architecture. Common System Components

CSE 333 Lecture 1 - Systems programming

1 Virtualization Recap

Chapter 4: Threads. Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads

QuartzV: Bringing Quality of Time to Virtual Machines

Intel Parallel Studio 2011

Chapter 4: Multithreaded Programming. Operating System Concepts 8 th Edition,

MODULE 1 JAVA PLATFORMS. Identifying Java Technology Product Groups

Virtual Machines. Virtual Machines

Operating Systems. read the warning about the size of the project make sure you get the 6 th edition (or later) of the book

Chapter 4: Threads. Operating System Concepts with Java 8 th Edition

CS 350 Winter 2011 Current Topics: Virtual Machines + Solid State Drives

ECE 8823: GPU Architectures. Objectives

Intel VTune Performance Analyzer 9.1 for Windows* In-Depth

Chapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues

From High Level to Machine Code. Compilation Overview. Computer Programs

24-vm.txt Mon Nov 21 22:13: Notes on Virtual Machines , Fall 2011 Carnegie Mellon University Randal E. Bryant.

Run-time Program Management. Hwansoo Han

CMPSC 311- Introduction to Systems Programming Module: Systems Programming

Delft-Java Link Translation Buffer

Operating System Structure

OPERATING SYSTEM. Chapter 4: Threads

Chapter 5 C. Virtual machines

Java Without the Jitter

JamaicaVM Java for Embedded Realtime Systems

Distributed Systems COMP 212. Lecture 18 Othon Michail

Why Operating Systems? Topic 3. Operating Systems. Why Operating Systems? Why Operating Systems?

Operating Systems 4/27/2015

Portland State University ECE 587/687. Virtual Memory and Virtualization

CSE 333 Lecture 1 - Systems programming

Runtime Application Self-Protection (RASP) Performance Metrics

CMPSC 311- Introduction to Systems Programming Module: Systems Programming

The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams.

ELEC 377 Operating Systems. Week 1 Class 2

CS 470 Spring Virtualization and Cloud Computing. Mike Lam, Professor. Content taken from the following:

Optimizing Your Android Applications

Sista: Improving Cog s JIT performance. Clément Béra

Cisco CloudCenter Solution with Cisco ACI: Common Use Cases

How Rust views tradeoffs. Steve Klabnik

BEAMJIT, a Maze of Twisty Little Traces

Topics. Operating System I. What is an Operating System? Let s Get Started! What is an Operating System? OS History.

Spring 2017 :: CSE 506. Introduction to. Virtual Machines. Nima Honarmand

Operating- System Structures

CSCI 8530 Advanced Operating Systems. Part 19 Virtualization

Chapter 4: Multithreaded

Java Embedded on ARM

Review: Easy Piece 1

Distributed Systems Operation System Support

Chapter 16. Layering a computing infrastructure

CS420: Operating Systems

CS307: Operating Systems

Modeling Page Replacement: Stack Algorithms. Design Issues for Paging Systems

High-Level Language VMs

Java Performance Tuning and Optimization Student Guide

Topics. Operating System. What is an Operating System? Let s Get Started! What is an Operating System? Where in the Book are we?

An overview of virtual machine architecture

A JVM Does What? Eva Andreasson Product Manager, Azul Systems

Lecture 1. CMSC 412 S17 (lect 1)

Running class Timing on Java HotSpot VM, 1

Performance Profiler. Klaus-Dieter Oertel Intel-SSG-DPD IT4I HPC Workshop, Ostrava,

Eraser: Dynamic Data Race Detection

Chapter 4: Threads. Overview Multithreading Models Threading Issues Pthreads Windows XP Threads Linux Threads Java Threads. Operating System Concepts

The Challenges of X86 Hardware Virtualization. GCC- Virtualization: Rajeev Wankar 36

Simple Garbage Collection and Fast Allocation Andrew W. Appel

Interaction of JVM with x86, Sparc and MIPS

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

WebAssembly what? why? whither? Ben L. Titzer Andreas Rossberg Google Germany

CS 252 Graduate Computer Architecture. Lecture 15: Virtual Machines

Threads. CS3026 Operating Systems Lecture 06

Advanced Object-Oriented Programming Introduction to OOP and Java

Chapter 4: Multithreaded Programming

Four Components of a Computer System

Transcription:

Evolution of Virtual Machine Technologies for Portability and Application Capture Bob Vandette Java Hotspot VM Engineering Sept 2004

Topics Virtual Machine Evolution Timeline & Products Trends forcing change Technical Challenges Java Virtual Machines Successes Todays Challenges Visions of Tomorrow 2Of 47

Virtual Machines Benefits Bridging old and new architectures Does anyone remember CP/M? Bringing applications to new platforms MS-DOS & Windows Applications to Mac and Unix Workstations Providing cross platform portability ANDF, Java 3Of 47

Timeline of Virtual Machine Products 1990's 1980's 2000 2004 Hardware PC Co- Processors (SunPC) Wabi (Windows API Translation) VP/ix (Virtual x86 mode) (Sun386i) Software PC Co-Processors (RISC - SunPC) Java Virtual Machines Java 2 Standard Edition 5.0 4Of 47

Hardware PC Co-Processors Description PC add-on card providing sufficient hardware and supporting logic to provide a virtual MS-DOS environment when coupled with supporting emulation software. Target Host Unix based Workstation running Unix or some other non PC compatible OS. Benefit Increased application coverage Excellent compatibility Con Costly, long design time 5Of 47

Virtual 86 Mode (VP/ix) Description Intel 80386/80486 Virtual 86 Mode product providing real-mode MS-DOS application compatibility on x86 Unix platforms. (Similar to Microsoft Windows DOS box). Benefit Provided Multi-Tasking of Unix and MS-DOS apps on a single platform with minimal performance degradation. Best Cost/Performance/Resource usage solution Con Could not efficiently host protected mode x86 operating systems. VP/ix 6Of 47

Software PC Co-Processors Description A complete virtualization of the hardware contained in a PC. Including a JIT to compile x86 binary instructions into the native processors ISA. Benefit Low cost, easy to upgrade Con Performance on all but the fastest RISC processors was not equivalent to available PC performance at the time. Considerable overhead for emulating protected mode and high end graphics features of the x86 processor. 7Of 47

Wabi - API Translation Description Product targetted at running Windows Productivity Applications on Unix workstations (Both RISC and x86 based). Translates Windows APIs to native services in order to achieve native performance levels. Used multi stage JIT to translate application instructions (non x86 platforms) Benefits Low Cost, High Performance Excellent application integration Cons Limited Application Compatibility 8Of 47

Technical Challenges Device Emulation VGA/XGA emulation Protected Mode Emulation Tradeoff trapping time vs hardware cost CPU Simulators/Translators Startup time due to JIT compilation Large memory footprint 9Of 47

Todays Virtual Machines Java Virtual Machines Complete Multi-threaded portable language and application platform. Interpreted and native method compilation New Features Garbage Collection Multi-Threading Built it Sync primitives part of core language Benefits Cross platform portability Security Scalable from low to high end devices 10 Of 47

Todays Successes Top problems have had much research and successful product deployment Synchronization Garbage Collection Code generation quality These continue to be areas of competative focus but other areas are now gaining attention 11 Of 47

Todays Challenges Startup Observability Ergonomics Cross Platform Compatibility Predictability 99.99999999% Reliability Resource Utilization 12 Of 47

Visions of Tomorrow Startup Solutions Observability Ergonomics II VMs as First Class Citizen of OS 13 Of 47

Visions Cont.. Faster startup solutions Deferred initialization Class file tuning Class data sharing Cached compilation decisions Elimination of Interpreter Multi-Tier Compilation Multi-Tasking within VM 14 Of 47

Vision cont... Observability As the stack of technologies increases, so does the complexity Each element in the stack has it s own tool to provide visibility Integrated tools for entire stack are needed for global view and detailed drilling of specific details Low level Management App App Code Application Server Java VM User Libraries OS Device Drivers Hardware Hi level 15 Of 47

Ergonomics II Todays Ergonomics is static Doesn t take into account other processes Only makes decisions based on current snapshot Next generation will be more adaptive Monitor health of VM and OS Resources being utilized Scale back or up depending on load 16 Of 47

Half-Baked Vision of Tomorrow VMs as First Class Citizen of Operating System VM's are not just applications Reduce duplication of technologies Faster start-up Finer grained control More predictable Resources can be managed better Reduces resources due to increased sharing Consistent view and management of Java and native apps 17 Of 47

Q & A Bob Vandette bob.vandette@sun.com http://java.sun.com