31
An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization Seminar Friday, September 17, 2004

An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

Embed Size (px)

Citation preview

Page 1: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

An Overview of Virtual Machine Architectures

by J.E. Smith and Ravi Nair

presented by Sebastian BurckhardtUniversity of Pennsylvania

CIS 700 – Virtualization SeminarFriday, September 17, 2004

Page 2: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-2-

About me

• I am a 2nd year PhD student• I was born and raised in Switzerland• My academic advisor is Rajeev Alur• Research Interests:

– Hardware Verification• Model checking

• Refinement and Abstraction

• Compositional Verification

– Architecture

– Formal methods

Page 3: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-3-Contributions of the paper

• Systematic taxonomy of VMs– demarcate what to include– classify into types, name each type

• Introduce a diagram language – comprehensive: can draw all VM types– precise: can distinguish all VM types

• Discuss each type– purpose– implementation issues– examples

Page 4: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-4-

Organization of the paper

• 1.1 Motivations for using VMs• 1.2 System Layers, Interfaces, and VM

classes• 1.3 Process VMs• 1.4 System VMs• 1.5 Virtualization• 1.6 Taxonomy summary

Page 5: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-5-

Standard System Layers

• Benefits– decoupled design tasks

– software reuse across varying hardware configurations and generations

• Starting point for all virtual machines in this paper

Page 6: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-6-Disadvantages

and Limitations ?

• Suboptimal performance across interfaces

• SW still depends on ISA and OS interfaces

• OS still depends on ISA• Get locked into interface

Page 7: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-7-

VMs for Flexibility

• Software perspective: want ability to run on all machines– reach more customers– move code between networked computers

• Hardware perspective: want ability to run all programs– server consolidation– legacy applications– cross-platform software development

Page 8: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-8-

VMs for Performance

• Optimize just in time– The more you know, the more you can

optimize

• Isolate faults and security risks– Many server images more stable than single

server

• Increase utilization of resources– adjust allocations dynamically– reduce fragmentation

Page 9: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-9-

Examples

Page 10: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-10-VM Puzzles

• show position of VM with respect to the standard system layers

• show kind of interface used between components

• show replication

Page 11: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-11-

TaxonomyOverview

1. Interface at the top1. ABI (application binary interface)

2. ISA (instruction set architecture)

2. same/different ISA at top and bottom

Page 12: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-12-ISA and ABI

• Instruction Set Architecture separates hardware from rest

• Application Binary Interface separates processes from rest

Page 13: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-13-

• Process level VMs provide ABI to application

• System VMs provide ISA to OS and applications

Process vs. System VMs

Page 14: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-14-

Process VMs (1)

• Multiprogramming– same ISA, same OS– replicates ABI so that each process thinks it

has its own machine– standard in “modern” OS– can argue whether to call this a VM

• Note: replication can go both ways – multiprocessor appears as single environment– clusters, grid computing

Page 15: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-15-

Process VMs (2)

• “Emulation” and “Dynamic Binary Translation”– OS is same,

ISA is different– better known as “interpretation”

and “compilation”

• Dynamic Optimizers– same OS and ISA– performance is purpose

Page 16: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-16-

Process VMs (3)

• High-level VMs– Use synthetic ISA

• P-code (somewhat anachronistic)

• Java bytecode

– Maximal platform independence• what about OS calls?

– High performance penalty?• what about just-in-time compilation?

Page 17: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-17-

Process VMs (4)

• This combination is left out by taxonomy:– OS is different, ISA is same– for example, run Windows x86 applications in

a Linux x86 environment (e.g. WINE)– Don’t know specific term for this VM type

??

Page 18: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-18-

System VMs (1)

• Classic System VMs– VMM (Virtual Machine Monitor) provides

replication and resource management– possible benefits: flexibility,

utilization, isolation– similar to

what an OS does for processes

– sits on hardware– (super)privileged mode

Page 19: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-19-

System VMs (2)

• Hosted System VMs– Like classic system VM, but operates within

process space– Can play tricks to overcome limitations

Common to Classic/Hosted System VM:• try to do as much as you can natively

• more difficult for hosted VMs than for classic VMs

• underlying ISA can make big difference

Page 20: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-20-

System VMs (3)

• Whole System VMs– ISA is different– no ‘native’ execution possible.

Complete emulation/translation required.

– Usually done as a hosted VM

Page 21: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-21-

System VMs (4)

• Co-Designed VMs– use synthetic custom ISA at bottom– goal: reconcile diverging requirements

between ISA and microarchitecture– no ‘native’ execution possible– Emulation/translation

• can be joint effort by hardware and software

• can be made completely transparent

Page 22: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-22-

General implementation issuesfor virtual machines

• How to design/verify implementation– need to

• map features of guest to features of host

• know how to materialize state (e.g. on interrupts)

– compare this to architecture/microarchitecture– describe typical issues for each VM type

Page 23: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-23-Analogy: Architecture vs.

Microarchitecture (1)• Map architected

state to implementation state

• No one-to-one relation: many implementation states per architecture state

• map direction is wrong?

Page 24: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-24-Analogy: Architecture vs.

Microarchitecture (2)

• When designing the microarchitecture, we map features of the ISA into features of the microarchitecture

• When verifying the implementation, we– map implementation states to architecture

state– map implementation steps to (zero or

more) architecture steps– diagram must commute

Page 25: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-25-

How to implement a VM

• Map guest features to host features

Page 26: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-26-Implementation issues:

Process VMs

Page 27: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-27- Implementation issues: System VMs

Page 28: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-28-

Finally: VMs on top of VMs

Page 29: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-29-

Discussion questions

• Is this taxonomy good?– too broad or too narrow?– too simple or too complicated?

• What VM types are most relevant?

• Would a proliferation of VMs change– ABI’s?– ISA’s?– OS’s?

Page 30: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-30-

- THE END -

Page 31: An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization

-31-