SPLVM Virtualized System Meetup

Host: Mossaka

  1. Community hosted meetup for discussing anything related to distributed systems, operating systems, database, and networking. Currently focusing on virtualization, tracking course UCSD CSE 291.
  2. Schedule
  3. Biweekly Zoom meeting on Monday at 5pm PDT
  4. Code of Conduct
  5. Please use “Raise Hands” feature on Zoom
  6. Welcome to unmute or comment in chat at ANY TIME!

Untitled

1970s. first gen VMM

1990s: x86 dominates the platform

1999: virtualize x86 for the first time by VMWare

2006: x86 hardware support by Intel and AMD

Untitled

Untitled

x86 software vs. hardware virtualization

Untitled

Untitled

forkwait

int main(int argc, char *argv[]) {
	for (int i = 0; i < 40000; i++) {
		int pid = fork();
		if (pid < 0) return -1;
		if (pid == 0) return 0;
		waitpid(pid);
	}
	return 0;
}

what does this program do?

host: 6s

software VMM: 36.9s

hardware VMM: 106.4s

this program stresses: syscalls, context switching, creation of addr space, page table, page faults…

Background Knowledge

Classical Virtualization

The Popek and Goldberg virtualization requirements

  1. Fidelity. A program running under the VMM should exhibit a behaviour essentially identical to that running on the machine directly
  2. Safety. The VMM must be in complete control of the virtualized resources (ensures the hypervisor can enforce resource isolation and manage allocation of CPUs, memory and I/O)
  3. Performance. A dominant fraction of machine instructions must be executed without VMM intervention.

Theorem 1: For any conventional third-generation computer, a VMM may be constructed if the set of sensitive instructions for that computer is a subset of the set of privileged instructions.

This theorem essentially says that any ISA instruction that modifies hardware must trigger an exception and traps into hypervisor. Instr that are not privileged can be executed without hypervisor intervention.

Strawman