CS6270: VIRTUAL MACHINES

Semester 1, 2008-09, August - December 2008


Please refer to IVLE for the course webpage and lecture slides.

Course Description:
Virtual machines (VMs) have lately generated a lot of interest, both in the academia as well as in the industry. VMs are being seen as a convenient vehicle for managing heterogeneous resources (e.g. server consolidation), and also for solving problems related to running mobile code and security. Commercial VMs from VMware and Microsoft are being successfully used in commodity platforms. High-level language VMs such as the Java Virtual Machine and Microsoft’s .NET framework have also become highly popular.

The aim of this module is to give an overview of the state-of-the-art in virtualization technology. The topics to be covered will include techniques for designing and implementing modern VMs, hardware-level, operating system-level and language-level VMs, CPU virtualization concepts and problems, paravirtualization and binary translation techniques, techniques for memory and input/output virtualization, and applications of VMs in solving problems related to security and software distribution. This will be a half lecture-style and the other half seminar-style course and will be suitable for senior undergraduate and graduate students interested in computer architecture, compilers and operating systems.

Lecturer:
Samarjit Chakraborty (E-mail: samarjit AT comp.nus.edu.sg, Phone: 6516 7997, Office: COM1-03-31)

Prerequisites:
Some background in Operating Systems and Computer Architecture will be helpful in appreciating this course. The official pre-requisites for NUS undergraduates are CS2106 and CS3220.

Schedule:
Classes will be held every Monday from 14:00 - 16:00 at COM1/02-04.

Assessment:
There will be no mid-term or final examinations for this module (i.e. 100% CA). The assessment will consist of the following: