Xen虚拟机调度实质上是虚拟CPU的调度。在Xen中,虚拟机通过其拥有的虚拟CPU运行任务,而虚拟CPU需要由Xen调度至物理CPU执行。对应用程序而言CPU调度分成两个层次:首先VMM的虚拟CPU调度将物理CPU时间分配给各虚拟机的虚拟CPU;然后各虚拟机的进程调度负责将虚拟CPU的时间分给虚拟机内的各应用程序。Xen采用策略和机制分离的思想来简化Xen的调度框架设计,并允许用户通过实现调度框架的接口来满足特定的需求。
Xen虚拟CPU调度将通用机制实现为调度框架,而具体的调度策略则允许用户根据需求在调度算法中实现。Xen曾先后采用过Borrowed Virtual Time(BVT)、Simple Earliest Deadline First(SEDF、Credit等调度算法,在较新的Xen版本中也正在不断优化Credit2调度算法,为其发展做铺垫,本文主要还是针对现今默认的Credit调度算法进行介绍。
Credit调度算法按照权重共享CPU时间。Credit调度算法的参数主要包括表示权重的Weight和表示CPU时间上限的CAP,Weight是一个相