Cloudsim:如何在vmSchedulerSpaceShared类中为VM分配RAM?

时间:2020-05-19 14:37:01

标签: cloudsim

我正在为项目使用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;
    }

0 个答案:

没有答案
相关问题