Download Introduction to Virtual Machines

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
Transcript
Introduction to Virtual Machines
•
•
•
•
•
•
Introduction
Abstraction and interfaces
Virtualization
Computer system architecture
Process virtual machines
System virtual machines
EECS 768 Virtual Machines
1
Abstraction
• Mechanism to manage complexity in computer
systems.
• Mechanism consists of
– partition the design of a system into levels
– allow higher levels to ignore the implementation
details of lower levels
• In computer systems, lower levels are
implemented in hardware, and higher levels in
software.
EECS 768 Virtual Machines
2
Interfaces
• An interface defines the communication
boundary between two entities
– hierarchical relationship
– linear relationship
• Software can run on any machine supporting a
compatible interface
MacIntosh apps.
MacOS
PowerPC
Windows apps.
Windows
x86
EECS 768 Virtual Machines
Linux apps
Linux
x86
3
Interfaces – Advantages
• Allows de-coupling of computer design tasks
– each component provides an abstraction of itself to the
outside world
• Work on different components can progress
independently
• Helps manage system complexity
EECS 768 Virtual Machines
4
Interface – Disadvantages
• Software compiled for one ISA will not run on
hardware with a different ISA
– powerPC binaries on an x86 machine ?
• Even if ISA's are same Oses may differ
– MS–Windows applications Sun Solaris ?
MacIntosh apps
MacOS
x86
Windows apps.
Linux
x86
EECS 768 Virtual Machines
5
Interface – Disadvantages (2)
• Binaries may not be optimized for the platform
they run on
– Intel Pentium binaries on AMD Athlon ?
• Innovation may be inhibited by a fixed ISA
– hard to change instruction sets
• Application software cannot directly exploit
microprocessor implementation features
– software supposed to be implementation-neutral !
EECS 768 Virtual Machines
6
Virtualization
• Removes some constraints imposed by system
interfaces, and increases flexibility
– improves availability of application software
– removes the assumption of a single management
regime, improving security and failure isolation
• Provide a different view to a particular computer
resource
– not necessarily a simpler view
EECS 768 Virtual Machines
7
Virtualization (2)
• Virtualization constructs an isomorphism that
maps a virtual guest system to a real host.
e(Si )
Si
Sj
Guest
V(Si )
V(Sj )
e'(Si')
Si'
Sj'
Host
EECS 768 Virtual Machines
8
Virtualization (3)
• Virtualization Vs. abstraction
– virtualization does not necessarily hide details
virtualization
file
file
EECS 768 Virtual Machines
9
Virtual Machines
• Concept of virtualization applied to the entire
machine.
• A virtual machine is implemented by adding a
layer of software to a real machine to support
the desired virtual machine’s architecture.
• Virtualization
– mapping of virtual resources or state to real
resources
– use of real machine instructions to carry out actions
specified by the virtual machine instructions
EECS 768 Virtual Machines
10
Some Benefits of VMs
•
•
•
•
Flexibility
Portability
Isolation
Security
EECS 768 Virtual Machines
11
Computer System Architecture
• Architecture – functionality and appearance of a
computer system, but not the details of its
implementation
• Implementation – the actual embodiment of an
architecture
EECS 768 Virtual Machines
12
Computer Architecture (2)
Software
• Computer systems are
built of levels of
abstraction
– hierarchical abstraction
– well-defined interfaces
Application
Programs
Libraries
Operating System
Drivers
Memory
Manager
Scheduler
Execution Hardware
System Interconnect
(bus)
Memory
Translation
Controllers
Controllers
I/O devices
and
Networking
Main
Memory
Hardware
EECS 768 Virtual Machines
13
The ISA Interface
• Interface between
hardware and software
• Important for
– OS developer
Application
Programs
Libraries
Operating System
Execution Hardware
System Interconnect
(bus)
I/O devices
and
Networking
EECS 768 Virtual Machines
Memory
Translation
Main
Memory
14
The ABI Interface
• Application Binary
Interface (ABI)
Application
Programs
Libraries
– user ISA + system calls
• Important for
Operating System
– compiler writers
Execution Hardware
Memory
Translation
System Interconnect
(bus)
I/O devices
and
Networking
EECS 768 Virtual Machines
Main
Memory
15
The API Interface
• Application
Programming
Interface (API)
– user ISA +
library calls
Application
Programs
Libraries
Operating System
Execution Hardware
• Important for
– application
programmers
Memory
Translation
System Interconnect
(bus)
I/O devices
and
Networking
EECS 768 Virtual Machines
Main
Memory
16
Major Program Interfaces
• ISA – supports all conventional software
System Calls
Application Software
Operating System
System ISA
User ISA
ISA
• ABI – supports application software only
Application Software
System Calls
Operating System
System ISA
User ISA
EECS 768 Virtual Machines
ABI
17
Process Virtual Machines
• Process virtual machine is capable of
supporting an individual process
– different guest and host ISA
– couple at ABI level via runtime system
Guest
Application Process
Runtime
Virtualizing
Software
Virtual
Machine
OS
Host
Application Process
Machine
Hardware
EECS 768 Virtual Machines
18
Process Virtual Machines (2)
• Constructed at ABI level
• Runtime manages guest process
• Runtime communicates with
host OS
• Guest processes may
intermingle with host processes
• As a practical matter, binaries
built for same OS
• Dynamic optimizers are a
special case
• Examples: IA-32 EL, FX!32,
Dynamo
guest
process
host
process
runtime
guest
process
guest
process
runtime
host
process
runtime
create
HOST OS
file sharing
EECS 768 Virtual Machines
Disk
network communication
19
System Virtual Machines
• System Virtual Machine capable of supporting
an OS with potentially many user processes
– couple at ISA level
– eg., IBM VM/360, VMWare, Transmeta Crusoe
Applications
Guest
Applications
OS
OS
VMM
Virtualizing
Software
Host
Hardware
"Machine"
EECS 768 Virtual Machines
Virtual
Machine
20
PVM – Multiprogramming
• PVM provided by a multi-process OS for each
concurrently executing application.
• Combination of the OS system call interface,
and the user-level ISA.
• Each process is given the illusion of having the
complete machine to itself.
EECS 768 Virtual Machines
21
PVM – Emulators
• Execute binaries compiled to a different
instruction set than that executed by the host’s
hardware.
• Interpretation
– low startup overhead
– high steady-state per instruction emulation overhead
EECS 768 Virtual Machines
22
PVM – Dynamic Translators
• Run-time translation of blocks of source
instructions to equivalent target instructions.
– high start-up translation overhead
– fast steady-state execution
• Uses a code cache to
store translated blocks
of code for reuse.
• e.g., Digital’s FX!32
system, Aries system,
Intel IA-32 EL system
EECS 768 Virtual Machines
HP Apps
UNIX
HP PA
23
PVM – Same ISA Binary Optimizers
• Same source and target ISAs.
• Main task is the optimization of the source
binary
– ABI level optimization
– may also collect performance profiles
– may also enhance security
• e.g., Dynamo system, developed at HewlettPackard.
EECS 768 Virtual Machines
24
PVM – High Level Language VM
• A HLL is designed for VM execution
– minimize hardware-specific and OS-specific
features that could compromise portability
HLL Program
Compiler front-end
Intermediate Code
Compiler back-end
HLL
Program
Compiler
Portable Code
(Virtual ISA )
VM loader
Object Code
(ISA)
Virt. Mem. Image
VM Interpreter/Translator
Loader
Memory Image
Host Instructions
Traditional
HLL VM
EECS 768 Virtual Machines
25
PVM – High Level Language VM
• Binary class files are distributed
– ISA part of class file (no real implementation)
• OS interaction via API
• e.g., Java, Microsoft CLI
Java Binary Classes
Java VM
Architecture
VM
implementation
VM
implementation
VM
implementation
Sparc
Workstation
x86
PC
Apple
Mac
EECS 768 Virtual Machines
26
Classic System Virtual Machine
• Original meaning of the term virtual machine
– all guest and host software use the same ISA
– VMM runs on bare hardware (most privileged mode)
– VMM intercepts and implements all the privileged
operations for the guest OS.
Win
Win
process process
Win
process
Linux
Linux
Linux
process process process
Guest OS2 (Linux)
Guest OS (Windows)
VMM
HOST PLATFORM
virtual
network communication
EECS 768 Virtual Machines
27
Hosted System Virtual Machine
• Virtualizing software is built on top of an
existing host OS.
• Advantages
– installation is like installing application programs
– host OS provides device driver support
• Drawbacks
– less efficient
EECS 768 Virtual Machines
28
Whole System VMs
• Different ISA for guest and host systems.
– both application and OS code require emulation
• Implemented by placing the VMM and the
guest software on top of a conventional host OS
running on the hardware
• e.g., Virtual PC
EECS 768 Virtual Machines
29
Codesigned Virtual Machines
• VMs designed to enable innovative ISAs and/or
hardware implementations for improved
performance, power efficiency, etc.
• Similar hardware virtualization is common for
microprocessors, such as Pentium IV.
• Software VM is part of the hardware design
– applications/OS never directly execute native ISA
instructions
• e.g., Transmeta Crusoe processor
EECS 768 Virtual Machines
30
VM Taxonomy
Process VMs
same ISA
Multiprogrammed
Systems
Dynamic
Binary
Optimizers
Dynamo
System VMs
different
ISA
Dynamic
Translators
IA-32EL, FX!32
same ISA
Classic System
VM
IBM VM/370
Hosted VM
HLL VM
VMware
Java VM
MS CLI
different
ISA
Whole System
VM
Virtual PC for Mac
Codesigned
VM
Transmeta
Crusoe
EECS 768 Virtual Machines
31