170 likes | 330 Views
Overview of Virtual Machines and Class Presentation Schedule. Contents. What is a virtual machine (VM)? Why do we need a VM? VM solutions Classification of VMs Implementation issues of VM VM usages Class presentation schedule. What is a Virtual Machine (VM)?.
E N D
Contents • What is a virtual machine (VM)? • Why do we need a VM? • VM solutions • Classification of VMs • Implementation issues of VM • VM usages • Class presentation schedule
What is a Virtual Machine (VM)? • Software for cross-platform compatibility • Traditionally, an application program is bound to a specific platform (which is ISA + OS)
What is a Virtual Machine (VM)? • VM eliminates this real-platform constraint for higher degree of portability and flexibility • How? added to a platform to give an appearance of a different platform or even multiple platforms • Result: a platform can run a program bounded to a different platform • VM may have an OS or an ISA or both, which are different from the ones in the real platform
Why do we need a VM? • Portability is essential in networked computing • Ina network-is-a-computer environment • Especially useful for mobile, wireless-download platforms where we can achieve consistent execution environment on diverse CPU + OS + H/W devices • Innovations are limited by old interfaces • Supporting old ISA may make new high-performance H/W features difficult to implement • E.g., superscalar execution for x86 • On the other hand, new CPUs that cannot run x86 binaries are not viable • E.g., alpha is dead, MIPS is dying, same is SPARC • Solution: run x86 binaries on high-performance, low-power CPUs • Crusoe, FX!32, DAISY,
Why do we need a VM? • Optimizations across interfaces are difficult • E.g., a binary is optimized for one processor model but it can be executed on different processor model • Solution: dynamic optimization (e.g., Dynamo) • Single OS on a H/W may open a security hole • E.g., a server shared by different groups of users who want to be assured of a secure environment • Solution: some logical decomposition (e.g. IBM z/VM)
VM Solution for our Problems • Implementing a layer of S/W (VM) for virtualization • There are two types of VM • Process VM • System VM
Process VM • Run executable of different ISA or OS • VM (runtime) emulates user-level instructions & system calls
Process VM Example • Java VM • Digital FX!32
System VM • Run whole OS(es) & executables • VM (VMM) emulates user-level & system-level ISA
VM Variations • Many variations of VMMs
System VM Example • Hosted VM • Stand-Alone
Implementation Issues - Execution How to execute guest instructions on a host • Interpretation • Slow execution speed, but easy implementation • Translation • Dynamic translation: recompile/translation done while running • Static translation: multiple binary problem • Complicated but faster execution, especially with optimization • Run directly on the hardware • When the host and guest ISA is the same • E.g., VMWare handles system calls only, and run x86 instructions directly on the hardware
Implementation Issues – Platform • Standalone • Does all hardware operations all by itself • VMWare ESX, IBM z/VM • Need to control real hardware all by itself • Highly efficient • Hosted • Runs on an existing host operating system • VMWare GSX, User-mode Linux, etc. • More flexibility • Easier hardware management
Virtual Machine Usage • Improved portability: “write once, run everywhere” as in Java • Better availability • Better workload distribution • VM can move from hardware to hardware instantly • Running x86 binaries on a new, high-performance, low-power CPUs (e.g., Crusoe chip) • Legacy support • Vax emulator, HP calculator emulator • Development environment • Can simulate a network of servers on a single H/W (e.g., multiple VMware instances running on a single machine) • Security • Security damage is minimized on a single VM
Class Presentation Schedule • Chap 1: 9/12 (Mon) • Introduction, basics (any): 김지훈 • Chap 2: 9/14 (Wed), 9/21 (Wed) • Emulation, optimized emulation (any): 이해옥, 김재욱 • Chap 3: 9/26 (Mon), 9/28 (Wed) • Process VM (architecture, OS): Li, Huang • Invited Talk: 10/5 (Mon): TBD • Chap 4: 10/10 (Mon), 10/12 (Wed) • Binary optimization (compiler): 김진철, 김성무
Class Presentation Schedule • Chap 5: 10/17 (Mon), 10/19 (Wed) • JVM & .Net (compiler): 장춘기, 신진우 • Chap 6: 10/24 (Mon), 10/26 (Wed) • JVM (compiler): 박해우, 양회석 • Chap 7: 10/31 (Mon), 11/2 (Wed) • Co-designed VM, Crusoe (OS, architecture): 이창현, 김덕환 • Chap 8: 11/7 (Mon), 11/9 (Wed) • System VM, VMWare (OS): 신동인, 이종필