可以设计什么样的标准来优先考虑cloudsim中的cloudlet?

What kind of Criteria can be design to give priorties to cloudlet in cloudsim?

我在cloudlet 属性中随机添加了布尔参数以提供优先权 下面是代码还能做什么? cloudlet 属性可以增加哪些参数来赋予它们优先级。

    for(int i=0;i<cloudlets;i++){
        Random r= new Random(); // for creating random length
        Random priortyObj =new Random(); // for creating booleon priorty
        cloudlet[i] = new Cloudlet(priorty_cloudlet.priortyObj.nextInt(2),           
                      i, length +r.nextInt(2000),pesNumber,
                      fileSize, outputSize, utilizationModel,                                  
                      utilizationModel,  utilizationModel);
        // setting the owner of these Cloudlets
         cloudlet[i].setUserId(userId);`
         list.add(cloudlet[i]);
     }

优先级可以用两种不同的方式处理:(i) 我们可以优先考虑将 Cloudlet 提交给代理,这样高优先级的 Cloudlet 将首先映射到 VM,或者 (ii) 我们可以优先考虑在 VM 中执行 Cloudlets。

尽管 CloudSim 中的 Cloudlet class 有一个 classType 属性用于定义优先级,但这样的属性不会在任何地方使用,因此您没有实现任何类型的优先级。

如果需要定义Cloudlets的执行优先级,可以勾选CloudSim Plus, it's a full-featured, state-of-the-art, completely re-engineered and actively maintained CloudSim fork. Its CloudletSimple class has a priority attribute that is actually used by the CloudletSchedulerCompletelyFair。这样的调度器是 Completely Fair Linux Scheduler 的实现,它考虑时间 slice/quantum 到 运行 Cloudlets 和 Cloudlet 的优先级。

以下是有关如何使用上述调度程序并为 Cloudlet 设置优先级的示例片段:

vm.setCloudletScheduler(new CloudletSchedulerCompletelyFair());
for(int i=0; i < 10; i++){
    Cloudlet c = new CloudletSimple(CLOUDLET_LEN, CLOUDLET_PES);
    c.setPriority(i);  //you must define the priority in your own way
    cloudletList.add(c);
}

检查完整 LinuxCompletelyFairSchedulerExample