EEL-6892 - Virtual Computers

Course, University of Florida, ECE Department", 2024

Course Description

Techniques for virtualization of networked computer systems. Virtual machines (classic VMs, application binary interface VMs, para-virtualization), virtual distributed file systems (file system proxies, call-forwarding), and virtual networks (tunneling, virtual private networks). 3 credits.

Course Pre-Requisites / Co-Requisites

Principles of Computer Systems Design (EEL 5737), Computer architecture (EEL5764 or equivalent) and operating systems principles (COP5615 or equivalent) or instructor approval. Knowledge of TCP/IP networking and C/C++ programming

Course Objectives

Virtualization technologies allow the decoupling of the user-perceived behavior of hardware/software systems from their physical implementation. Techniques to virtualize the basic functionality of today’s typical computing systems – processing, networking, and data storage – are becoming pervasive in industry and form a foundation for the Infrastructure-as-a-Service (IaaS) cloud computing model. The combination of virtualization technologies and ubiquitous network connectivity allows for the creation of virtual computers where processing, data and communication are distributed and decoupled from physical resources. This class will cover the basic mechanisms and techniques involved in resource virtualization, from individual machines to virtualized networked infrastructures.

Textbook and Reading

  • “Virtual Machines”, James E. Smith and Ravi Nair, First Edition, April 2005, ISBN 1558609105
  • Reading list consisting of several virtualization-focused research articles in journals and conferences

Course Schedule:

  • Week 1: Review of Operating Systems and Hardware Support for OSs/VMs
  • Week 2: Introduction to Virtual Machines
  • Week 3: Formal Requirements for Virtualization, Memory and I/O Virtualization
  • Week 4: Para-virtualization and Xen
  • Week 5: Binary Translation and Hardware Extensions
  • Week 6: VM memory management / Midterm 1
  • Week 7: VM migration
  • Week 8: Containers and User-mode VMs
  • Week 9: High Availability and Security in VMs
  • Week 10: Multiprocessor virtualization / Midterm 2
  • Week 11: Network virtualization
  • Week 12: Network and Storage virtualization
  • Week 13: Storage virtualization
  • Week 14: Advanced topics on virtualization
  • Week 15: Advanced topics on virtualization / Final exam