cis 700 machine virtualization cis700-6/ autumn 2004

7
CIS 700 Machine Virtualization http://www.seas.upenn.edu/~cis700-6/ Autumn 2004

Upload: allison-palmer

Post on 23-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CIS 700 Machine Virtualization cis700-6/ Autumn 2004

CIS 700Machine Virtualization

http://www.seas.upenn.edu/~cis700-6/Autumn 2004

Page 2: CIS 700 Machine Virtualization cis700-6/ Autumn 2004

2

Examples of Machine Virtualization

Run Linux and Windows concurrently on one machine• Different operating systems, same ISA

Run Linux/x86 applications on Linux/PowerPC• Same operating system, different ISA

Run Windows/x86 on MacOSX/PowerPC• Different operating system, different ISA

Run many Linux/x86 virtual machines• Same operating system, same ISA

Run Java Bytecodes on Linux/x86

Page 3: CIS 700 Machine Virtualization cis700-6/ Autumn 2004

3

Traditional “Virtualization”

Virtual Memory• Provides protection, isolation, relocation, swapping• Requires hardware support for efficiency

Unix’s mmap()• Great for reading, what about writes?

RAID - one disk from many• Hardware versus software implementation• Layout becomes virtual

Two conflicting goals of virtualization• Transparency• Low overhead

Page 4: CIS 700 Machine Virtualization cis700-6/ Autumn 2004

4

Applications of Machine Virtualization (1 of 2)

Compatibility (ISA and/or operating system)• Ancient VAX/VMS software

Hardware independence (e.g., Java’s VM)• Related: Transmeta’s code morphing

Setup of new software test environments• Software migration

Development and debugging• Complex software systems• Processor design (simulation vs emulation)• General performance analysis

Page 5: CIS 700 Machine Virtualization cis700-6/ Autumn 2004

5

Applications of Machine Virtualization (2 of 2)

Error and attack containment• Why aren’t processes sufficient?• Faults and security considerations

Dynamically share resources (memory, disk, processors)• Sever consolidation• 10 virtual machine web servers on a two-processor machine• Virtual machines “leased” from real server owner

Server migration• Move a server across the room (or across the world)

Emerging applications (e.g., in sensor networks)

Page 6: CIS 700 Machine Virtualization cis700-6/ Autumn 2004

6

Techniques Employed by Virtualization Systems

Virtual Machine Monitors (VMMs)• “hypervisors”• Coordinate and virtualize resources

Binary translation• Dynamic, static, feedback directed• In software or hardware

Hardware support• Changes for transparent virtualization• Support for low-overhead virtualization

Traditional operating system tricks• E.g., copy-on-write, traps, privileged modes

Page 7: CIS 700 Machine Virtualization cis700-6/ Autumn 2004

7

Virtualization Challenges

Some interfaces not well defined• Or certainly not design with virtualization in mind

Interfaces at all levels• instructions, APIs, bytecodes, ABIs, I/O devices

Recall tension between transparency and performance• Especially difficult for software-only techniques

Many applications, many “system” techniques employed• Hopefully, an interesting and broad topic for this semester’s

systems seminar