8_VMs - dforeman.cs.bingh
Download
Report
Transcript 8_VMs - dforeman.cs.bingh
Introduction to Virtual
Machines
From
“Virtual Machines”
Smith and Nair
Chapter 1
Introduction
1-1
Two fundamental notions in
computer system design
Levels of Abstraction …
….separated by well-defined Interfaces
Keys to managing complexity in computer
systems.
Introduction
1-2
Abstraction
Abstraction allows lower levels of design to be
ignored/simplified while designing higher levels.
E.g. Details of hard disk abstracted by operating
system into multiple variable sized partitions and
their file systems.
Disadvantage: Sometimes low-level details are
necessary to optimize for performance. E.g. File
systems might use better layout if they knew the
disk geometry.
Introduction
1-3
Interfaces
Allow computer design tasks to be decoupled so
that different development teams can work
independently at different levels of abstraction.
E.g. Instruction set: Intel and AMD implement the
same IA-32 (x86) instruction set interface.
Software designers don’t need to worry about their
different implementations.
Disadvantage: Components designed for one
interface cannot work on another
E.g. x86 vs IBM PowerPC
Diversity of interfaces can be restrictive for
applications.
Introduction
1-4
Virtualization
Provides a way to increase flexibility.
Real system (and its interfaces) appear to
be a set of virtual systems (and virtual
interfaces).
Virtualization vs. abstraction
Virtualization
does not necessarily hide the
level of details of the real system
Introduction
1-5
Example: Disk Virtualization
Virtual
Disk 1
Virtual
Disk 2
Virtualization
File 1
File 2
Interface
Real
Disk
Introduction
1-6
Virtual Machines
Same concept as disk virtualization in last slide
Implemented by adding layers of software to the
real machine to support the desired VM
architecture.
E.g. Virtual PC on Apple MAC/PowerPC emulates
Windows/x86.
Uses:
Multiple OSes on one machine
Isolation,
Enhanced security
Platform emulation
On-the-fly optimization
Realizing ISAs not found in physical machines
Introduction
1-7
Virtualization – Isomorphism
Maps a virtual guest system to a real host system.
Si
e(Si)
Si’
Guest
V(Si)
Si’
V(Sj)
e’(Si’)
Sj’
Host
Introduction
1-8
Computer Architecture
User ISA : 7
System ISA : 8
Syscalls : 3
ABI : 3, 7
API : 2,7
Introduction
1-9
Machine Interfaces
Application Binary Interface
(Process View)
ISA Interface
(OS View)
Introduction
1-10
Two Types of VMs
Process VMs
System VMs
Introduction
1-11
Process Virtual Machine
•Virtualizing software translates instructions from one platform to another.
•Helps execute programs developed for a different OS or different ISA.
•VM terminates when guest process terminates.
Introduction
1-12
System Virtual Machine
Provides a complete system environment
OS+user processes+networking+I/O+display+GUI
Lasts as long as host is alive
Introduction
1-13
Virtual Machine Applications
Emulation &
Optimization
Replication
Composition
Emulation: Mix-and-match cross-platform portability
Optimization: Usually done with emulation for platform-
specific performance improvement
Replication: Multiple VMs on single platform
Composition: form more complex flexible systems
Introduction
1-14
Types of Process Virtual Machines
Multiprogramming
Standard OS syscall interface + instruction set
Can support multiple processes with its own address space and
virtual machine view.
Emulators
Support one instruction set on hardware designed for another
IA-32 Windows APP
Windows NT
Interpreter:
Runtime
Digital FX!32
System
Alpha ISA
• Fetches, decodes and emulates the execution of individual source
instructions. Can be slow.
Dynamic Binary Translator:
• Blocks of source instructions converted to target instructions.
• Translated blocks cached to exploit locality.
Introduction
1-15
Types of Process Virtual Machines (contd)
Same ISA Binary Optimizers
Optimize code on the fly
Same as emulators except source and target ISAs are the same.
High-Level Language VMs
Virtual ISA (bytecode) designed for platform independence
Platform-dependent VM executes virtual ISA
E.g. Sun’s JVM and Microsoft’s CLI (part of .NET)
Both are stack-based VMs that run on register-based m/c.
Introduction
1-16
Types of System VMs
Originally developed for large mainframes
Today:
Secure way of partitioning major software systems on a
common platform
Ability to run multiple OSes on one platform
Platform replication provided by VMM
VMM controls access to hardware resources
When guest OS performs a privileged operation, VMM
intercepts it, checks for correctness and performs the
operation.
Transparent to guest OS.
Introduction
1-17
Classic System VMs
Try to execute natively on the host ISA
VMM directly controls hardware
Provides all device drivers
Traditional mainframe model
Introduction
1-18
Hosted VMs
Similar to classic system VM
Operates in process space
Relies on host OS to provide drivers
E.g. VMWare
Introduction
1-19
Whole System VMs: Emulation
Host and Guest ISA are different
Hosted VM + emulation
So emulation is required
E.g. Virtual PC (Windows on MAC)
Introduction
1-20
Co-designed VMs
Performance improvement of existing ISA
Customized microarchitecture and ISA at
hardware level
Native ISA not exposed to applications
VMM
co-designed with native ISA
Part of native hardware implementation
Emulation/translation
E.g. Transmeta Crusoe
Native ISA based on VLIW
Guest ISA = x86
Goal power savings
Introduction
1-21
Taxonomy
Introduction
1-22
Versatility
Java App
JVM
Linux IA-32
VMWare
Windows IA-32
Code Morphing
Crusoe VLIW
Introduction
1-23