Transitions among schedulable entities executing in a computer system are
tracked in computer hardware or in a virtual machine monitor. In one
aspect, the schedulable entities are operating system processes and
threads, virtual machines, and instruction streams executing on the
hardware. In another aspect, the schedulable entities are processes or
threads executing within the virtual machines under the control of the
virtual machine monitor. The virtual machine monitor derives scheduling
information from the transitions to enable a virtual machine system to
guarantee adequate scheduling quality of service to real-time
applications executing in virtual machines that contain both real-time
and non-real-time applications. In still another aspect, a parent virtual
machine monitor in a recursive virtualization system can use the
scheduling information to schedule a child virtual machine monitor that
controls multiple virtual machines.