evolution of virtual machine technologies for portability and … · 2013-01-05 · 6of 47 virtual...

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

Upload: others

Post on 09-Feb-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Evolution of Virtual Machine Technologies for Portability and … · 2013-01-05 · 6Of 47 Virtual 86 Mode (VP/ix) Description – Intel 80386/80486 Virtual 86 Mode product providing

Evolution of Virtual Machine Technologies for Portability

and Application Capture

Bob VandetteJava Hotspot VM Engineering

Sept 2004

Page 2: Evolution of Virtual Machine Technologies for Portability and … · 2013-01-05 · 6Of 47 Virtual 86 Mode (VP/ix) Description – Intel 80386/80486 Virtual 86 Mode product providing

2 Of 47

Topics● Virtual Machine Evolution

● Timeline & Products● Trends forcing change● Technical Challenges

● Java Virtual Machines● Successes● Todays Challenges● Visions of Tomorrow

Page 3: Evolution of Virtual Machine Technologies for Portability and … · 2013-01-05 · 6Of 47 Virtual 86 Mode (VP/ix) Description – Intel 80386/80486 Virtual 86 Mode product providing

3 Of 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

Page 4: Evolution of Virtual Machine Technologies for Portability and … · 2013-01-05 · 6Of 47 Virtual 86 Mode (VP/ix) Description – Intel 80386/80486 Virtual 86 Mode product providing

4 Of 47

Timeline of Virtual Machine Products

1990's1980's 2000 2004

Java Virtual Machines

Wabi(Windows API

Translation)

Hardware PC Co-

Processors(SunPC) VP/ix

(Virtual x86 mode)(Sun386i)

Software PCCo-Processors

(RISC - SunPC)

Java 2 Standard Edition 5.0

Page 5: Evolution of Virtual Machine Technologies for Portability and … · 2013-01-05 · 6Of 47 Virtual 86 Mode (VP/ix) Description – Intel 80386/80486 Virtual 86 Mode product providing

5 Of 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

Page 6: Evolution of Virtual Machine Technologies for Portability and … · 2013-01-05 · 6Of 47 Virtual 86 Mode (VP/ix) Description – Intel 80386/80486 Virtual 86 Mode product providing

6 Of 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

Page 7: Evolution of Virtual Machine Technologies for Portability and … · 2013-01-05 · 6Of 47 Virtual 86 Mode (VP/ix) Description – Intel 80386/80486 Virtual 86 Mode product providing

7 Of 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.

Page 8: Evolution of Virtual Machine Technologies for Portability and … · 2013-01-05 · 6Of 47 Virtual 86 Mode (VP/ix) Description – Intel 80386/80486 Virtual 86 Mode product providing

8 Of 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

Page 9: Evolution of Virtual Machine Technologies for Portability and … · 2013-01-05 · 6Of 47 Virtual 86 Mode (VP/ix) Description – Intel 80386/80486 Virtual 86 Mode product providing

9 Of 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

Page 10: Evolution of Virtual Machine Technologies for Portability and … · 2013-01-05 · 6Of 47 Virtual 86 Mode (VP/ix) Description – Intel 80386/80486 Virtual 86 Mode product providing

10 Of 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

Page 11: Evolution of Virtual Machine Technologies for Portability and … · 2013-01-05 · 6Of 47 Virtual 86 Mode (VP/ix) Description – Intel 80386/80486 Virtual 86 Mode product providing

11 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

Page 12: Evolution of Virtual Machine Technologies for Portability and … · 2013-01-05 · 6Of 47 Virtual 86 Mode (VP/ix) Description – Intel 80386/80486 Virtual 86 Mode product providing

12 Of 47

Todays Challenges● Startup● Observability● Ergonomics ● Cross Platform Compatibility● Predictability● 99.99999999% Reliability● Resource Utilization

Page 13: Evolution of Virtual Machine Technologies for Portability and … · 2013-01-05 · 6Of 47 Virtual 86 Mode (VP/ix) Description – Intel 80386/80486 Virtual 86 Mode product providing

13 Of 47

Visions of Tomorrow● Startup Solutions

● Observability

● Ergonomics II

● VMs as First Class Citizen of OS

Page 14: Evolution of Virtual Machine Technologies for Portability and … · 2013-01-05 · 6Of 47 Virtual 86 Mode (VP/ix) Description – Intel 80386/80486 Virtual 86 Mode product providing

14 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

Page 15: Evolution of Virtual Machine Technologies for Portability and … · 2013-01-05 · 6Of 47 Virtual 86 Mode (VP/ix) Description – Intel 80386/80486 Virtual 86 Mode product providing

15 Of 47

Vision cont ...

Device Drivers

OSUser Libraries

Java VMApplication Server

App Code

Hardware

Management App Hi level

Lowlevel

● 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

Page 16: Evolution of Virtual Machine Technologies for Portability and … · 2013-01-05 · 6Of 47 Virtual 86 Mode (VP/ix) Description – Intel 80386/80486 Virtual 86 Mode product providing

16 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

Page 17: Evolution of Virtual Machine Technologies for Portability and … · 2013-01-05 · 6Of 47 Virtual 86 Mode (VP/ix) Description – Intel 80386/80486 Virtual 86 Mode product providing

17 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

Page 18: Evolution of Virtual Machine Technologies for Portability and … · 2013-01-05 · 6Of 47 Virtual 86 Mode (VP/ix) Description – Intel 80386/80486 Virtual 86 Mode product providing

Q & A

Bob Vandette

[email protected]://java.sun.com