1

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

我尝试这样做:

cloudlet_2.setExecStartTime(cloudlet_1.getFinishTime());

但这在运行时没有影响,两个小云都从 0.0 秒开始。

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

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

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

谢谢。

4

1 回答 1

0

何时执行哪个 cloudlet 完全取决于您的调度策略。这里你需要的是类似 FCFS 策略的东西。实际上 Cloudsim 的默认调度策略是 FCFS。

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

应用不同的调度策略有4种情况,可以参考图4。

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

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

于 2017-02-08T09:58:29.230 回答