Virtual Machines

  • Separates the hardware interface from the OS
    • the OS still thinks it is using the hardware directly

Overhead

  • Depends on the workload
  • User-level processor-bound programs have zero overhead
    • Because OS is rarely invoked
  • I/O intensive OS intensive
    • Executes many system calls
    • Can result in high overhead
  • I/O intensive is also I/O bound
    • Low processor utilization since waiting for I/O
    • Processor virtualization can be hidden because something else is slower

Uses

  • Increased Security
    • Takes a portion of the operating system that provides hardware security and separates it
    • Operating systems aren’t perfect, so they can’t always protect you
    • Allows for increased scrutiny on security critical components
  • Managing software
    • Provide an abstraction that can run the complete SW stack
    • Can also run old OSs or beta OSs
  • Managing Hardware
    • Allows separate SW stacks to run independently yet share HW
    • A single server can be used my multiple clients isolated