首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cloudsim:更新VM

Cloudsim:更新VM
EN

Stack Overflow用户
提问于 2016-03-20 10:54:02
回答 1查看 238关注 0票数 0

我正在研究一种算法来选择用于部署VMCloudlet(task)。现在,只要cloudlet完成了它的执行,我就需要更新VM的当前分配的ram。

我不知道我该去哪做这个。

我在processCloudletReturn()方法中在DataCenterbroker类中尝试过这一点。

但是只有在所有的cloudlets都提交到VM之后才会调用它。

--每当cloudlet成功执行时,我需要更新VM的Ram。

为,前:

让我们考虑一下,我有100个任务要部署,现在我提交了20个任务,在提交第21个任务之前,如果第一个任务完成了它的执行,我需要更新相应的VM。

有人能帮我吗..。谢谢。。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-17 05:52:31

你可以这样做:

代码语言:javascript
复制
for(Cloudlet cloudlet: getCloudletSubmittedList()){
        if(!finishedCloudlets.contains(cloudlet) && cloudlet.isFinished()){
        Vm vm = getVmsCreatedList().get(cloudlet.getVmId()-1);                        
        vm.setCurrentAllocatedRam(vm.getCurrentAllocatedRam() - (int)(cloudlet.getUtilizationOfRam(CloudSim.clock())*100));
        vm.updateVmProcessing(CloudSim.clock(), null);
        finishedCloudlets.add(cloudlet);
    }
}

在这里,您可以检查是否已经提交的任务已经完成,如果是,您可以更新您的VM。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36112848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档