Let
be virtual machines that share the host
node, where
is a privileged management domain (Domain0) that
hosts the device drivers.
Let
denote a special idle domain that ``executes'' on the CPU
when there are no other runnable domains (i.e. there is no virtual
machine that is not-blocked and not-idle).
is the analog
to the ``idle-loop'' executed by an OS when there are no other
runnable processes.
At any point of time, guest domain can be
in one of the following three states:
As was mentioned in Section 2, in order to avoid the overhead
of copying I/O data to/from the guest virtual machine Xen implements
the ``page-flipping'' technique, where the memory page containing the
I/O data is exchanged with an unused page provided by
the guest OS. Thus, in order to account for different I/O related
activities in (that ``hosts'' the unmodified device drivers),
we observe the memory page exchanges between
and
. We measure the number
of memory page exchanges
performed over time interval
when
is in execution
state. We derive the CPU cost (CPU time processing) of these memory
page exchanges as
. After that, if there are
memory page exchanges between
and virtual
machine
then
is ``charged'' for
of CPU time processing of Domain0. In this way, we
can partition the CPU time used by Domain0 for processing the
I/O related activities of different VMs sharing the same
device driver, and ``charge'' the corresponding virtual machine that
caused these I/O activities. Within the monitoring system, we use a
time interval of 100 ms to aggregate overall CPU usage across
different virtual machines.