在CloudSim中执行执行顺序

时间:2012-04-26 15:24:58

标签: java

在cloudSim中,我如何强制执行cloudlet_2应该在cloudlet_1之后启动(说到执行时间)?

我尝试做这样的事情:

cloudlet_2.setExecStartTime(cloudlet_1.getFinishTime());

但这在运行时没有影响,两个cloudlet都以0.0秒开始。

在cloudlet_1完成执行之前,是否有任何机制可以强制cloudlet_2不开始执行(甚至不提交到数据中心)?

这可以通过设置开始时间或在cloudlet_2上施加一些布尔条件,或其他技巧...... ???

上述要求来自于我需要一些cloudlet的管道计算模式,这些模式应该一个接一个地执行(不是一次执行。)

感谢。

1 个答案:

答案 0 :(得分:0)

哪个cloudlet执行完全取决于您的调度策略。这里你需要的是FCFS政策。实际上,Cloudsim的默认调度策略是FCFS。

但是根据您的要求" cloudlet_2应该在cloudlet_1"之后启动,您需要更改vm / cloudlet调度策略。我认为你需要的是用于vm / cloudlet调度程序的SpaceSharedPolicy。但是不确定。

有4种情况适用于不同的日程安排政策,您可以参考Figure No 4 of this.

关于如何在代码中更改这些调度程序,您可以参考Cloudsim包中已有的examples

例如,如果要更改VM调度程序,可以在上面示例的第188行更改参数 [VmSchedulerTimeShared或VmSchedulerSpaceShared] ,并且要更改cloudlet调度程序,您可以更改参数 [上面例子第104行的CloudletSchedulerTimeShared()或CloudletSchedulerSpaceShared()]