The virtualization technology enables the IT services using computing resources beyond the boundary of physical hosts. It has become today’s mainstream enterprise computing environment and is a foundational element of cloud computing. This course gives in-depth study on the software and hardware techniques that enable the virtualization of the computer systems. It examines in detail on the topics of formal virtualization requirements, various mechanisms supporting the virtual environment from the aspects of CPU, memory, I/O and network, cross-system flexibility based on virtual machine mobility, and etc. Upon completing the course, students will have a good understanding of the underlying mechanisms that virtualize the computer resources as well as their impact to performance and isolation. The class composes with lectures, labs and discussions. Prerequisites: Computer Organization, Operating Systems