Concepts and Applications
Welcome students! ... to
the Virtual Machines course, edition Spring 2014.
I will keep updating this page regularly. If you have
questions related to this course feel free to email me.
Here is some basic information:
technology from VMware, IBM, Xen, Microsoft, and
others is an indication of the importance of this technology,
this era where almost everything is in the cloud. Virtualization became
world's hottest trend in recent years. Have you ever wondered how you
multiple operating systems, at the same time, on a single physical
system and share the underlying
hardware resources? How does your operating system see a hardware that
from the actual hardware, and why we need to do so? What is a virtual
machine is the answer to all that and much more. In this course we will
the design and implementation of virtual machines, virtual machine
(aka hypervisors), as well other recent trends in virtualization. We
virtual machines across the disciplines that use them: operating
programming languages, and computer architecture.
Ram Charan Mohan
email: rcm372 (at) nyu.edu
Final exam: May 14th, 2014; 5:10-7pm WWH 312
Sign up for the Mailman mailing
list for the course. If the system has not already signed you.
You can do so by clicking here.
Please follow the mailing list etiquette.
Use the Reply command to
contribute to the current thread, but NOT to start
If quoting a previous message, try to trim off
Use a descriptive Subject: field when starting a new topic.
Do not use one message to ask two unrelated questions.
Do NOT make the mistake of sending your
completed project assignment to the mailing list!
|1||1/29||So ... What is a Virtual Machine?|
|2||2/5||The Art of Emulation|
- 2.1 -2.3, 2.5-2.7
- skim: 2.4, 2.7-2.8
|3||2/12||Process VM- I|
- 3.1, 3.3, 3.4.1, 3.5, 3.7, 3.8
- skim: 3.2, 3.6
|4+||2/26||Process VM-II (cont'd)||hw2 assigned|
|5||3/5||Case Studies of Process VMs||hw3 assigned|
|6||3/12||HLL VM - I|
- Intro + 5.1, 5.3.1, 5.3.2. 5.3.5
- skim: 5.3.3, 5.3.4
|3/19||No class - Spring Recess|
hw1 due Feb 19th sol comments
hw2 (programming) due Mar 4th
hw3 (programming) due Mar 11th
Suggested projects (can be done in groups up to 2 students)
an address stream, design a profile that scans this stream and
generates the following: CFG, block profile, edge profile, branch
- Given specs of dynamic basic blocks (start address,
size in bytes, end address, number of instructions) as well as the
stream of their execution and the code cache size, design a code cache
simulator with replacement policy to reduce code cache miss.
an assembly (in some ISA) file, emulate it on the x86 machine,
generating the exact output as if the initial code is running on the
- Use PIN to generate start and end addresses of
dynamic blocks and the frequency of each one dynamically. Then form
superblocks (using profiling all blocks and a heuristic and compare the
- Make a translator from ISA1 (e.g. MIPS R3000) to ISA2 (e.g. IA-32)
- Given an address stream, decide on code rearrangement to increase locality.
- A project of your choice (but need to discuss it with me first).
Links (Geeky stuff about VMs)
kaffe virtual machine
Java Virtual Machine Instruction Set