cloudsim中的分时共享是如何工作的,没有表示时间片或量程的变量,那么如何在cloudsim中验证循环调度的概念呢?
如果我们有50个cloudlets,10个虚拟机
发布于 2018-12-07 19:47:56
实际上,CloudSim中的CloudletSchedulerTimeShared并没有实现时间片/量子的概念。假设我们有一个具有1000MIPS的1个CPU (PE)和2个在其中运行的Cloudlet的VM。CloudSim的CloudletSchedulerTimeShared提供了一个过于简化的实现,为每个Cloudlet分配500MIPS,使它们同时在同一个CPU上运行。
如果VM只有一个长度为5000 MI的Cloudlet,那么Cloudlet将需要5秒才能完成。由于在单核VM的分时调度程序中有2个Cloudlet,因此每个Cloudlet可以互换运行,需要10秒才能完成。只为两个Cloudlet中的每一个分配一半的CPU容量(500MIPS),使它们并行运行,就像有两个CPU核心一样,将产生完全相同的结果:每个Cloudlet在10秒内完成。
关键是没有等待任何Cloudlet的时间。这些Cloudlets将运行,就像VM有2个CPU,每个CPU有500MIPS一样。如果您在模拟中评估Cloudlets的等待时间,那么这样的结果就是错误的。如果等待时间不是问题,那么结果就很好。
如果你真的需要评估CloudSim的抢占过程,你可以查看CloudSim Plus,它是一个功能齐全、最先进的、完全重新设计和积极维护的Cloudlet fork。它提供了一个执行实际抢占并考虑运行Cloudlet的时间片的完全公平Linux Scheduler的实现。检查CloudletSchedulerCompletelyFair和LinuxCompletelyFairSchedulerExample。
发布于 2018-12-10 16:57:59
[如果我们有50个cloudlets,10个虚拟机。cloudsim中的CloudChedular和VmSchedular(时间共享)类将根据要执行的作业(cloudlets)的总数来分配资源。例如,当请求的 capacity 大于当前容量时,将发生故障,并将导致违反SLA。
https://stackoverflow.com/questions/51779655
复制相似问题