Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of...

32
Virtual Machines: Versatile Virtual Machines: Versatile Platforms for Systems and Platforms for Systems and Processes Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center

Transcript of Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of...

Page 1: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Virtual Machines: Versatile Platforms Virtual Machines: Versatile Platforms for Systems and Processesfor Systems and Processes

J. E. SmithUniversity of Wisconsin-Madison

Ravi NairIBM Thomas J. Watson Research Center

Page 2: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

INTRODUCTIONINTRODUCTION

This material is based on the book, Virtual Machines: Versatile Platforms for Systems and Processes, Copyright 2005 by Elsevier Inc. All rights reserved. It has been used and/or modified with permission from Elsevier Inc.

Page 3: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 3

Course ObjectivesCourse Objectives

Study VM architectures and applications Study key implementation technologies Focus on architecture and microarchitecture

aspects Cover significant case studies

Page 4: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 4

IntroductionIntroduction

Why are virtual machines interesting?

They allow transcending of interfaces (which often seem to be an obstacle to innovation)

They enable innovation in flexible, adaptive software & hardware, security, network computing (and others)

They involve computer architecture in a pure sense

Virtualization will be a key part of future computer systems

A fourth major discipline? (with HW, System SW, Application SW)

Page 5: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 5

Advantages of Standard InterfacesAdvantages of Standard Interfaces

Major design tasks are decoupled• In space and time

Different hardware and software development schedules

Software can run on any machine supporting a compatible interface

PowerPC

MacOS

MacIntosh apps.

x86

Linux

Linux apps

x86

Windows

Windows apps.

Page 6: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 6

There are also disadvantages…There are also disadvantages… Software compiled for one ISA will not run on hardware

with a different ISA• Apple Mac (PowerPC) binaries on an x86?

Even if ISAs are the same, OSes may differ• Windows NT applications on a Solaris x86?

Binary may not be optimized for the specific hardware platform it runs on

• Intel Pentium 4 binaries on an AMD Athlon?

MacOS

MacIntosh apps

x86 x86

Windows apps.

Linux

Page 7: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 7

Disadvantages (contd.)Disadvantages (contd.)

Innovation may be inhibited by fixed ISA• Hard to add new instructions

OR remove obsolete ones • What was the most recent (successful) new ISA?

Or new OS? Difficult for software to interact directly with

implementation• Performance features• Power management• Fault tolerance• Software is supposed to be implementation independent

Page 8: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 8

Hardware ResourcesHardware Resources

Conventional system software manages hardware resources directly

• An OS manages the physical memory of a specific size

• I/O devices are managed as physical entities Difficult to share resources except through OS

• All users of hardware must use the same OS• All users are vulnerable to attack from other users

sharing the resource (via security holes in OS)

Page 9: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 9

AbstractionAbstraction

Computer systems are built on levels of abstraction

Higher level of abstraction hide details at lower levels

Example: files are an abstraction of a disk

filefile

abstraction

I/O devicesand

Networking

Controllers

System Interconnect(bus)

Controllers

MemoryTranslation

Execution Hardware

DriversMemoryManager

Scheduler

Operating System

Libraries

ApplicationPrograms

MainMemory

Software

Hardware

Page 10: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 10

VirtualizationVirtualization

An isomorphism from guest to host• Map guest state to host state• Implement “equivalent” functions

Si S

Si' Sj'

Guest

Host

V(Si) V( S j )

e(Si)

e'(Si')

j

Page 11: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 11

VirtualizationVirtualization

Similar to abstractionExcept• Details not necessarily hidden

Construct Virtual Disks• As files on a larger disk• Map state• Implement functions

VMs: do the same thing with the whole “machine”

file file

virtualization

Page 12: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 12

Application Program Interface• API• User ISA + library calls

The “Machine”The “Machine”

Different perspectives on what the Machine is:

OS developer Compiler developer Application programmer

Instruction Set Architecture• ISA• Major division between hardware

and software

Application Binary Interface• ABI• User ISA + OS calls I/O devices

andNetworking

System Interconnect(bus)

MemoryTranslation

Execution Hardware

ApplicationPrograms

MainMemory

Operating System

Libraries

Page 13: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 13

The “Machine”The “Machine”

Different perspectives on what the Machine is:

OS developer

Instruction Set Architecture• ISA• Major division between hardware

and softwareI/O devices

andNetworking

System Interconnect(bus)

MemoryTranslation

Execution Hardware

ApplicationPrograms

MainMemory

Operating System

Libraries

Page 14: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 14

The “Machine”The “Machine”

Different perspectives on what the Machine is:

Compiler developer

Application Binary Interface• ABI• User ISA + OS calls

I/O devicesand

Networking

System Interconnect(bus)

MemoryTranslation

Execution Hardware

ApplicationPrograms

MainMemory

Operating System

Libraries

Page 15: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 15

The “Machine”The “Machine”

Different perspectives on what the Machine is:

Application programmer

Application Program Interface

• API• User ISA + library calls

I/O devicesand

Networking

System Interconnect(bus)

MemoryTranslation

Execution Hardware

ApplicationPrograms

MainMemory

Operating System

Libraries

Page 16: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 16

Hardware"Machine"

OS

Applications

VirtualizingSoftware

VirtualMachine

OS

Applications

Guest

VMM

Host

Virtual MachinesVirtual Machines

add Virtualizing Software to a Host platformand support Guest process or system on a Virtual Machine (VM)

Example: System Virtual Machine

Page 17: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 17

The Family of Virtual MachinesThe Family of Virtual Machines Lots of things are called “virtual machines”

IBM VM/370

Java

VMware

Some things not called “virtual machines”, are virtual machines

IA-32 EL

Dynamo

Transmeta Crusoe

Page 18: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 18

Taking a Unified ViewTaking a Unified View

“The subjects of virtual machines and emulators have been treated as entirely separate. … they have much in common. Not only do the usual implementations have many shared characteristics, but this commonality extends to the theoretical concepts on which they are based”

-- Efrem G. Wallach, 1973

Page 19: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 19

Major Program InterfacesMajor Program Interfaces

ISA Interface -- supports all conventional software

System Calls

User ISASystem ISAISA

Application Software

Operating System

System Calls

User ISASystem ISAABI

Application Software

Operating System

Application Binary Interface (ABI) -- supports application software only

Page 20: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 20

System Virtual MachinesSystem Virtual Machines

Provide a system environment

Constructed at ISA level

Persistent Examples: IBM

VM/360, VMware, Transmeta Crusoe

guestprocess

HOST PLATFORM

virtualnetwork communication

Guest OS

VMM

guestprocess

guestprocess

guestprocess

Guest OS2

VMM

guestprocess

guestprocess

Page 21: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 21

System Virtual MachinesSystem Virtual Machines

Native VM System• VMM privileged mode• Guest OS user mode• Example: classic IBM

VMs

User-mode Hosted VM• VMM runs as user

application

Dual-mode Hosted VM• Parts of VMM privileged;

parts non-privileged

• Example VMware

Non-privilegedmodes

PrivilegedMode

Virtual

Machine

VMM

Hardware

Virtual

Machine

Host OS

Hardware

VMM

VirtualMachine

Host OS

Hardware

VMM

Page 22: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 22

Process VMsProcess VMs

Execute application binaries with an ISA different from hardware platform

Couple at ABI level via Runtime System Examples: IA-32 EL, FX!32

VirtualizingSoftware

Application Process

Machine

OS

Hardware

Guest

Runtime

Host

Application Process

VirtualMachine

Page 23: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 23

Process Virtual MachinesProcess Virtual Machines

Constructed at ABI level Runtime manages guest

process Not persistent Guest processes may

intermingle with host processes

As a practical matter, guest and host OSes are often the same

Dynamic optimizers are a special case

Examples: IA-32 EL, FX!32, Dynamo

HOST OS

Disk

file sharing

network communication

guestprocess

create

hostprocess

guestprocess

runtimeruntime

guestprocess

runtime

hostprocess

Page 24: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 24

Same-ISA Dynamic Binary OptimizersSame-ISA Dynamic Binary Optimizers

Optimize Binary at Runtime An ABI level optimization A type of Process VM Example HP Dynamo

• Can optimize for dynamic properties of program

• Can optimize for a specific processor implementation

HP PA

UNIX

HP Apps

Page 25: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 25

HLL VMsHLL VMs

Java and CLI are recent examples Binary class files are distributed “ISA” is part of binary class format OS interaction via APIs (part of VM platform)

SparcWorkstation

Java Binary Classes

x86PC

AppleMac

VMimplementation

VMimplementation

VMimplementation

Java VMArchitecture

Page 26: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 26

High Level Language Virtual MachinesHigh Level Language Virtual Machines

Raise the level of abstraction• User higher level virtual ISA• OS abstracted as standard libraries

Process VM (or API VM)

HLL Program

Intermediate Code

Memory Image

Object Code(ISA)

Compiler front-end

Compiler back-end

Loader

HLL Program

Portable Code(Virtual ISA )

Host Instructions

Virt. Mem. Image

Compiler

VM loader

VM Interpreter/Translator

Traditional HLL VM

Page 27: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 27

Co-Designed VMsCo-Designed VMs

VLIW

Windows

X86 Apps

Perform both translation and optimization

VM provides interface between standard ISA software and implementation ISA

Primary goal is performance or power efficiency

Use proprietary implementation ISA Transmeta Crusoe and IBM Daisy

best-known examples

Page 28: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 28

CompositionComposition

ISA 2

OS 1

apps 2

OS 1

apps 1

Page 29: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 29

Composition: ExampleComposition: Example

Java application

Linux x86

JVM

Windows x86

VMware

Crusoe VLIW

Code Morphing

Page 30: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 30

Summary (Taxonomy)Summary (Taxonomy)

VM type (Process or System)Host/Guest ISA same or different

MultiprogrammedSystems

Java VMMS CLI

TransmetaCrusoe

same ISAdifferent

ISA

Process VMs System VMs

Virtual PC for Mac

differentISA

same ISA

IBM VM/370

VMwareHP

Dynamo

IA-32 ELFX!32

Page 31: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 31

Course TopicsCourse Topics

Introduction & VM Overview Emulation: Interpretation & Binary Translation Process VMs & Dynamic Translators Dynamic Binary Optimization Co-Designed VMs HLL VMs System VMs Emerging Applications

Page 32: Virtual Machines: Versatile Platforms for Systems and Processes J. E. Smith University of Wisconsin-Madison Ravi Nair IBM Thomas J. Watson Research Center.

Introduction 32

Case StudiesCase Studies

Shade Sun WABI Compaq FX!32 HP Dynamo VMware Transmeta Crusoe IBM Daisy Intel VT-x

…. and others