Energy-Aware Scheduling of Virtual Machines in a Multiprocessor Environment

  • Forschungsthema:Power Management
  • Typ:Diplomarbeit
  • Datum:13.06.2006
  • Betreuung:

    Prof. Dr. Frank Bellosa, Jan Stoess

  • Bearbeitung:Marcus Reinhardt
  • Links:PDF
  • Abstract:

    This thesis presents a new concept to schedule virtual machines in a multiprocessor environment due to their energy consumption. We propose to divide the process of energy-aware scheduling in a virtual machine environment into two parts: guestlevel scheduling and host-level scheduling. Thereby an energy-aware scheduler can benefit from the varying scheduling information available on both scheduling levels.

    suggest to use the energy consumption of threads and virtual machines in combination with energy budgets to come to scheduling decisions. Furthermore we elaborated the framework required to implement energy-aware scheduling policies on both scheduling levels. High scheduling accuracy because of fine-grained energy profiles for threads characterizes guest-level scheduling. Host-level scheduling is equipped with mechanisms to overcome non-energy-awareness or malfunctioning of guest operating systems. Additionally it supports a better exploration of energy capacities of all CPUs in a multiprocessor environment by migrating complete virtual machines.

    The flexible design of our framework supports the implementation of various energy-related scheduling policies, for example energy-aware balancing. Due to the two-leveled approach we can participate from fine-grained scheduling decisions on guest-level based on the energy consumption of threads as well as from scheduling decisions based on informations only available on host-level (for example the energy consumption of physical CPUs).


      author = {Marcus Reinhardt},
      title = {Energy-Aware Scheduling of Virtual Machines in a Multiprocessor Environment},
      type = {Diploma Thesis},
      address = {System Architecture Group, University of Karlsruhe, Germany},
      month = jun # "~13",
      year = 2006,
      url = {}