我正在为项目使用cloudsim模拟,现在我试图在vmSchedulerSpaceShared类中创建一个allocateRamForVm()方法,就像之前在该类中创建的allocatePesForVm()方法一样,以下是allocatePesForVm()方法代码: / p>
我应该如何创建这种将ram分配给虚拟机的方法?
public boolean allocatePesForVm(Vm vm, List<Double> mipsShare) {
// if there is no enough free PEs, fails
if (getFreePes().size() < mipsShare.size()) {
return false;
}
List<Pe> selectedPes = new ArrayList<Pe>();
Iterator<Pe> peIterator = getFreePes().iterator();
Pe pe = peIterator.next();
double totalMips = 0;
for (Double mips : mipsShare) {
if (mips <= pe.getMips()) {
selectedPes.add(pe);
if (!peIterator.hasNext()) {
break;
}
pe = peIterator.next();
totalMips += mips;
}
}
if (mipsShare.size() > selectedPes.size()) {
return false;
}
getFreePes().removeAll(selectedPes);
getPeAllocationMap().put(vm.getUid(), selectedPes);
getMipsMap().put(vm.getUid(), mipsShare);
setAvailableMips(getAvailableMips() - totalMips);
return true;
}