Virtual Machine Monitors
CS-446/646
C. Papachristos
Robotic Workers (RoboWork) Lab
University of Nevada, Reno
Virtual Machines
Remember: What is an OS
CS446/646 C. Papachristos
Virtual Machines
What if…
CS446/646 C. Papachristos
Guest OS 1
Guest OS 2
Virtual Machines
Remember: How do Process & Hardware views differ?
CS446/646 C. Papachristos
Virtual Machines
Virtual Machine Monitor (VMM)
CS446/646 C. Papachristos
Guest OSes
Virtual Machines
Virtual Machine Monitor (VMM)
CS446/646 C. Papachristos
Virtual Machines
Virtual Machine Monitor (VMM)
CS446/646 C. Papachristos
Virtual Machines
Virtual Machine Monitor (VMM) Benefits
CS446/646 C. Papachristos
Virtual Machines
Virtual Machine Monitor (VMM) Applications
CS446/646 C. Papachristos
Virtual Machines
Virtual Machine Monitor (VMM) Applications
CS446/646 C. Papachristos
Note:�In practice not so simple because of�Side-Channel Attacks�[Ristenpart] [Meltdown/Spectre]
Implementing Virtual Machines
Requirements
CS446/646 C. Papachristos
Implementing Virtual Machines
Virtual Machine Monitor Case Study 1: Xen
CS446/646 C. Papachristos
Implementing Virtual Machines
Virtual Machine Monitor Case Study 1: Xen
CS446/646 C. Papachristos
Domain0
Hypervisor
Implementing Virtual Machines
C. Papachristos
Implementing Virtual Machines
Virtual Machine Monitor Case Study 2: VMware
CS446/646 C. Papachristos
Implementing Virtual Machines
What needs to be Virtualized ?
CS446/646 C. Papachristos
Implementing Virtual Machines
Approach 1: Complete Machine Emulation
CS446/646 C. Papachristos
Implementing Virtual Machines
Approach 2: Direct Execution with Trap–&–Emulate
Why not just directly give Instructions to CPU to execute?
CS446/646 C. Papachristos
Implementing Virtual Machines
Virtualizable Processor Architecture
CS446/646 C. Papachristos
Implementing Virtual Machines
Virtualizable Processor Architecture
CS446/646 C. Papachristos
Implementing Virtual Machines
Virtualizable Processor Architecture
CS446/646 C. Papachristos
Note: %ax is lower-16-bits part of %eax� /%rax, Instruction performs partial� write of full Registers
Implementing Virtual Machines
Virtualizing Events (Interrupts and Exceptions)
CS446/646 C. Papachristos
Implementing Virtual Machines
Virtualizing Memory
CS446/646 C. Papachristos
Implementing Virtual Machines
Virtualizing Memory
One Solution: Direct Mapping
CS446/646 C. Papachristos
Implementing Virtual Machines
C. Papachristos
Implementing Virtual Machines
C. Papachristos
Implementing Virtual Machines
Memory Mapping Summary
CS446/646 C. Papachristos
Implementing Virtual Machines
Shadow Page Table Example
CS446/646 C. Papachristos
Guest A
Guest B
Guest Virtual Address Space
Guest Physical Address Space
Host Machine Memory
(this is actually in Host Machine Memory and therefore used by the MMU)
Guest A’s Shadow Page Table�(in Virtual Machine Monitor)
Implementing Virtual Machines
CS446/646 C. Papachristos
Implementing Virtual Machines
Shadow Page Table Issues
C. Papachristos
Implementing Virtual Machines
CS446/646 C. Papachristos
Implementing Virtual Machines
Memory Tracing
CS446/646 C. Papachristos
Implementing Virtual Machines
Memory Tracing vs Hidden Page Faults
CS446/646 C. Papachristos
Implementing Virtual Machines
Virtualizing I/O
CS446/646 C. Papachristos
Implementing Virtual Machines
Virtualizing I/O : Three Models
CS446/646 C. Papachristos
Implementing Virtual Machines
Virtualizing I/O : Three Models
CS446/646 C. Papachristos
Hardware-assisted Virtualization
Hardware Support
CS446/646 C. Papachristos
Hardware-assisted Virtualization
Guest Mode
Saved Guest State:
CS446/646 C. Papachristos
Hardware-assisted Virtualization
Guest Mode
ENTERing and EXITing Guest Mode:
CS446/646 C. Papachristos
Hardware-assisted Virtualization
Hardware Support
CS446/646 C. Papachristos
Memory Management Optimizations
Memory Allocation
CS446/646 C. Papachristos
Time for Questions !
CS-446/646
CS446/646 C. Papachristos