Cloudsim中的分时是如何工作的,没有代表时间片或量子的变量,那么循环的概念在Cloudsim中是如何验证的呢?
如果我们有50个Cloudlet,10个VM
[如果我们有50个Cloudlet,10个VM。cloudsim中的CloudChedular和VmSchedular(分时)类将根据要执行的作业总数(Cloudlet)分配资源。例如,当请求的容量超过当前容量时,将发生故障,并导致违反SLA。
事实上,CloudSim中的CloudletSchedulerTimeShared并没有实现时间片/量子的概念。假设我们有一个VM,其中有1个CPU(PE)的1000 MIPS和2个Cloudlet在其中运行。CloudSim的CloudletSchedulerTimeShared提供了一个过于简化的实现,为每个Cloudlet分配500 MIPS,使它们在同一CPU上同时运行。
如果VM只有一个长度为5000 MI的Cloudlet,那么Cloudlet将需要5秒才能完成。由于有2个Cloudlet,在该单核VM的时间共享调度程序中,每个可互换运行的Cloudlet将需要10秒才能完成。为2个Cloudlet中的每一个分配一半的CPU容量(500 MIPS),使它们像有2个CPU内核一样并行运行,将产生完全相同的结果:每个Cloudlet在10秒内完成。
关键是没有等待Cloudlet的时间。这些Cloudlet将像VM有两个CPU一样运行,每个CPU有500个MIPS。如果您在模拟中评估Cloudlet的等待时间,那么这样的结果是错误的。如果不担心等待时间,结果很好。
如果您真的需要评估Cloudlets的先发制人流程,您可以查看CloudSim Plus,它是一款功能齐全、最先进、完全重新设计并积极维护的CloudSim fork。它提供了一个完全公平的Linux调度器的实现,该调度器执行实际的抢占,并考虑运行Cloudlet的时间片。检查CloudletSchedulerCompletelyFair和LinuxCompletelyFairSchedulerExample。
我想在Cloud sim中实现虚拟机迁移时间公式,我做了一个简单的方法,但它给了我错误的结果,问题是我需要在模拟中迁移虚拟机的列表,以便我可以计算和打印最终的总迁移时间,如果您有任何想法,请帮助我!
我正在研究一种算法,以选择VM来部署Cloudlet(任务)。现在,每当cloudlet完成执行时,我需要更新VM当前分配的ram。 我不知道我需要在哪里做这件事。 我在DataCenterbroker类的processCloudletReturn()方法中尝试了这个 但只有在将所有云小程序提交给VM后才会调用它。 每当cloudlet成功执行时,我需要更新VM的Ram。 对于,例如: 让我们考虑
如果我们有100个cloudlet和10个VM,那么如何设置cloudsim中VM的等待时间阈值,以便将该cloudlet从一个VM移动到另一个VM。
谁能解释一下这两种方法的真正区别 vm。GetTotalizationofCPU(CloudSim.clock()); 和 cloudlet.get利用OfCpu(CloudSim.clock()); 提前感谢
全部的 现在,我正在使用CloudSim设计一个云存储模拟,但我想知道CloudSim是否提供了在物理磁盘上写入数据的功能。如果没有,我在哪里添加组件?
此代码由cloudsim示例3代码修改而来https://github.com/Cloudslab/cloudsim/blob/master/modules/cloudsim-examples/src/main/java/org/cloudbus/cloudsim/examples/CloudSimExample3.java. 在这里,我创建了一个数据中心,其中包含一个主机和6个数据中心代理。每个