Operating system support for virtual machines
This presentation is the property of its rightful owner.
Sponsored Links
1 / 20

Operating System Support for Virtual Machines PowerPoint PPT Presentation


  • 61 Views
  • Uploaded on
  • Presentation posted in: General

Operating System Support for Virtual Machines. Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan. Virtual Machines. Software abstraction of a machine Software backward compatibility Convenient place for new services Strong isolation. Runs directly on hardware

Download Presentation

Operating System Support for Virtual Machines

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Operating system support for virtual machines

Operating System Support for Virtual Machines

Sam King

George Dunlap

Peter Chen

CoVirt Project, University of Michigan


Virtual machines

Virtual Machines

  • Software abstraction of a machine

  • Software backward compatibility

  • Convenient place for new services

  • Strong isolation

Operating System Support for Virtual Machines


Virtual machine configurations

Runs directly on hardware

Good performance

Uses existing host OS abstractions to implement services

Poor performance

Guest Process

Guest Process

Guest Operating System

Virtual Machine Monitor

Hardware

Type I VMM

Virtual Machine Configurations

Guest Process

Guest Process

Guest Operating System

Virtual Machine Monitor

Host Operating System

Hardware

Type II VMM

Operating System Support for Virtual Machines


Can we have type i performance with type ii elegance

Can we have Type I performance with Type II elegance?

  • Yes!

  • Only 510 lines of code added to Linux

  • Type II VMM attain performance that approaches type I VMM

Operating System Support for Virtual Machines


Presentation outline

Presentation Outline

  • Background on UMLinux

  • Discussion of optimizations

  • Conclusions

Operating System Support for Virtual Machines


Umlinux architecture

UMLinux Architecture

  • Linux on top of Linux

  • Port of Linux to run in UMLinux

  • ptrace used for virtualization

    • intercept guest system calls

    • track guest user / kernel mode transitions

Guest Process

UMLinux VMM

Guest OS

Linux Operating System

PC Hardware

Operating System Support for Virtual Machines


Hardware equivalents

Hardware Equivalents

Operating System Support for Virtual Machines


Performance

Performance

Operating System Support for Virtual Machines


Original umlinux guest system call

Original UMLinux Guest System Call

Guest application

VMM Process

Guest operating system

Host operating system

Operating System Support for Virtual Machines


Move vmm to host kernel

VMM Process

Move VMM to Host Kernel

Guest application

VMM Process

Guest operating system

Host operating system

Operating System Support for Virtual Machines


Performance1

Performance

Operating System Support for Virtual Machines


Switching guest modes

Switching Guest Modes

  • Significant number of guest kernel / user mode crossings

    • Kernel compile benchmark:

      • 22 million guest memory exceptions

      • 1.4 million guest system calls

  • Protection provided using mprotect system calls

  • Instead, use x86 segmentation hardware

Operating System Support for Virtual Machines


Use segmentation bounds for kernel protection

0xffffffff

segment bound

Host OS

0xffffffff

Host OS

0xc0000000

0xc0000000

guest user-mode

guest kernel-mode

Accessible

Memory

Guest OS

0x70000000

Guest

Apps

Guest OS

segment bound

0x00000000

0x70000000

Guest

Apps

Accessible

Memory

0x00000000

Use Segmentation Bounds for Kernel Protection

Operating System Support for Virtual Machines


Performance2

Performance

Operating System Support for Virtual Machines


Original umlinux guest application context switching

Original UMLinux Guest Application Context Switching

RAM

File

RAM

File

Guest Application Memory

Guest Application Memory

proc_a

mem

proc_a

mem

0x8000

0x8000

proc_b

mem

proc_b

mem

process_b page at 0x8000 mapped in, process_b executes

process_a running

Operating System Support for Virtual Machines


Multiple address space definitions

guest proc b

switchguest syscall

Multiple Address Space Definitions

  • Instead, modify hardware page table pointer

guest proc a

Guest OS

Page Table Ptr

Host operating system

Operating System Support for Virtual Machines


Final performance results

Final Performance Results

Operating System Support for Virtual Machines


Conclusion

Conclusion

  • Existing OS abstractions sufficient, slow

  • Fast interception of signals and exceptions

  • Expose power of underlying hardware

  • Type II VMM CAN be as fast as type I

  • Questions?

Operating System Support for Virtual Machines


Related work

Related Work

  • User-Mode-Linux

  • SUNY Palladium

  • Mach, Exokernel, L4

  • Wisconsin Wind Tunnel

Operating System Support for Virtual Machines


Further areas of improvement

Further Areas of Improvement

  • Asynchronous I/O

  • Exception Handling

Operating System Support for Virtual Machines


  • Login