GENERAL INFORMATION - http://www.cs.columbia.edu/~nieh/teaching/e6998
Meeting Times and Location:
Spring 2018 T 10:10-12:00pm Location 834 Mudd|
Operating Systems I or instructor approval.
Virtualization is a key technology underlying cloud computing
infrastructure made available by and used by major computing service
providers today. This course will cover the design and
implementation of virtual machine technology as well other recent trends
in virtualization. The primary focus of the course will be on
hypervisors and traditional virtual machines, but the course will also
cover container technology that is increasingly popular as an
alternative to hardware virtualization. The first half of the course
will cover the design and implementation of hypervisors, including CPU
virtualization via trap-and-emulate, memory virtualization including
shadow page tables, and device virtualization. The course will cover
hardware virtualization features in all modern CPUs from Intel, AMD,
and ARM. The second half of the course will survey research
papers and other recent developments in virtualization.
Prof. Jason Nieh.
212-939-7160, office hours: T1-3PM CSB 518.
firstname.lastname@example.org, office hours: R3-5PM CSB 509
- Required Text:
Hardware and Software Support for Virtualization,
Edouard Bugnion, Jason Nieh, and Dan Tsafrir, Synthesis Lectures on Computer Architecture, Morgan & Claypool Publishers, February 2017.
Amazon.com and Columbia University Bookstore).
- Computing Requirements:
You should also have your own computer to take this class, on which you
Workstation for Windows or Linux,
or VMware Fusion
A CS account
will provide access
licenses and software at no additional cost. If you do not yet
have a CS account, you
one and list the instructor as the sponsor.
There will be one homework assignment that involves a small
programming mini-project assigned to everyone in the class. The
project will involve systems programming.
The project is an opportunity for you to take an active part in
exploring the subject area, as appropriate for an advanced course.
You can choose any project you want, so long as it has something to do
with virtualization. The project should be chosen so that it
clearly extends your knowledge and understanding of some area of
virtualization. Projects are to be done in teams of your own
choosing. Projects can focus on new applications of virtualization,
new virtualization mechanisms implemented in the context of an
existing virtualization system, performance evaluation of
virtualization mechanisms, etc.
The course is discussion-based and students are expected to read
materials in advanced and be prepared to participate in discussions.
We will also discuss research papers in virtualization and students
will be asked to lead some of those discussions.
No "extra credit" work
OPEN DOOR POLICY
We would like the course to run smoothly and enjoyably. Feel free to
let us know what you find just, good, and interesting about the
course. Let us know sooner about the reverse. See us, leave us a
note, or send us email.