0% found this document useful (0 votes)
99 views31 pages

Chapter 1

This document discusses virtual machines and computer system architecture. It introduces virtualization as a technique that maps virtual resources to real resources to increase flexibility and isolation. Virtual machines create a software layer that supports a virtual machine's architecture on top of real hardware. This allows portability and flexibility in running different operating systems and applications on the same physical machine. The document also discusses important interfaces like the ISA, ABI, and API that define boundaries between software and hardware layers.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
99 views31 pages

Chapter 1

This document discusses virtual machines and computer system architecture. It introduces virtualization as a technique that maps virtual resources to real resources to increase flexibility and isolation. Virtual machines create a software layer that supports a virtual machine's architecture on top of real hardware. This allows portability and flexibility in running different operating systems and applications on the same physical machine. The document also discusses important interfaces like the ISA, ABI, and API that define boundaries between software and hardware layers.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

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. Windows apps. Linux apps

MacOS Windows Linux

PowerPC x86 x86

EECS 768 Virtual Machines 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 Windows apps.

MacOS
Linux

x86 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 Application

built of levels of Programs

Libraries

abstraction Operating System

– hierarchical abstraction Drivers


Memory
Scheduler
Manager
– well-defined interfaces Execution Hardware

Memory
Translation
System Interconnect
(bus)

Controllers Controllers

I/O devices
Main
and
Memory
Networking

Hardware
EECS 768 Virtual Machines 13
The ISA Interface
• Interface between Application
Programs

hardware and software Libraries

• Important for
Operating System
– OS developer
Execution Hardware

Memory
Translation
System Interconnect
(bus)

I/O devices
Main
and
Memory
Networking

EECS 768 Virtual Machines 14


The ABI Interface
• Application Binary Application
Programs

Interface (ABI) Libraries

– user ISA + system calls


Operating System
• Important for
– compiler writers Execution Hardware

Memory
Translation
System Interconnect
(bus)

I/O devices
Main
and
Memory
Networking

EECS 768 Virtual Machines 15


The API Interface
• Application Application
Programs

Programming Libraries

Interface (API)
– user ISA + Operating System

library calls
Execution Hardware
• Important for
Memory
– application System Interconnect
Translation

programmers (bus)

I/O devices
Main
and
Memory
Networking

EECS 768 Virtual Machines 16


Major Program Interfaces
• ISA – supports all conventional software
Application Software
System Calls

Operating System

System ISA User ISA


ISA

• ABI – supports application software only


Application Software
System Calls

Operating System

System ISA User ISA


ABI

EECS 768 Virtual Machines 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 Application Process

Runtime Virtualizing
Software

OS Virtual
Machine
Host Machine

Hardware

EECS 768 Virtual Machines 18


Process Virtual Machines (2)
• Constructed at ABI level
• Runtime manages guest process
host guest
• Runtime communicates with process process

host OS runtime

• Guest processes may guest guest


host
intermingle with host processes process process
process

• As a practical matter, binaries runtime


runtime
built for same OS create

• Dynamic optimizers are a HOST OS

special case
file sharing
• Examples: IA-32 EL, FX!32, Disk

Dynamo network communication

EECS 768 Virtual Machines 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 Applications

Guest
OS OS

Virtualizing
VMM Software
Virtual
Machine
Hardware
Host "Machine"

EECS 768 Virtual Machines 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 HP Apps
store translated blocks
of code for reuse. UNIX
• e.g., Digital’s FX!32
system, Aries system,
HP PA
Intel IA-32 EL system
EECS 768 Virtual Machines 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 Hewlett-
Packard.

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 HLL
Program
Compiler front-end Compiler

Intermediate Code Portable Code


(Virtual ISA )
Compiler back-end

Object Code VM loader


(ISA) Virt. Mem. Image

Loader VM Interpreter/Translator
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 VM VM
implementation implementation implementation

Sparc x86 Apple


Workstation PC 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 Win Linux Linux Linux
process process process process process process

Guest OS (Windows) Guest OS2 (Linux)

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 System VMs

different different
same ISA same ISA
ISA ISA

Dynamic Classic System Whole System


Multiprogrammed Translators VM VM
Systems IA-32EL, FX!32 IBM VM/370 Virtual PC for Mac

Dynamic Hosted VM
Binary VMware Codesigned
HLL VM VM
Optimizers Java VM
Dynamo Transmeta
MS CLI Crusoe

EECS 768 Virtual Machines 31

You might also like