这里所讲的主机资源主要是指处理能力、带宽和内存,在CloudSim中,如何分配这些资源给虚拟机是由类PeProvisioner、BwProvisioner和RamProvisioner分别定义的。这三个类都是抽象类,只提供了最基本的实现,用户可以通过继承这些类实现自定义的分配策略。同VmAllocationPolicy类一样,作者也为这三个类提供了一种简单的实现,分别为
PeProvisionerSimple、BwProvisionerSimple和RamProvisionerSimple,可以在org.cloudbus.cloudsim.provisioners包下面找到这三个类的具体实现代码,接下来将分析这三个类及其源码。
PeProvisionerSimple类的主要方法是allocateMipsForVm,该方法有三种重载的方式,用于将处理器能力(用mips表示)分配给虚拟机。该类所用的分配策略是:将处理器能力量化,每为一台虚拟机成功分配后,处理器能力就相应的减少,如果当前可用处理器能力低于要分配的值,则分配失败,同时以列表的形式记录了同一台虚拟机多次分配的结果。此外,处理器能力的分配策略是在初始化Pe对象时指定的,构造方法为