package examples.container;
import cloudsim.*;
import cloudsim.container.containerProvisioners.ContainerBwProvisionerSimple;
import cloudsim.container.containerProvisioners.ContainerPe;
import cloudsim.container.containerProvisioners.ContainerRamProvisionerSimple;
import cloudsim.container.containerProvisioners.CotainerPeProvisionerSimple;
import cloudsim.container.containerVmProvisioners.ContainerVmBwProvisionerSimple;
import cloudsim.container.containerVmProvisioners.ContainerVmPe;
import cloudsim.container.containerVmProvisioners.ContainerVmPeProvisionerSimple;
import cloudsim.container.containerVmProvisioners.ContainerVmRamProvisionerSimple;
import cloudsim.container.core.*;
import cloudsim.container.resourceAllocatorMigrationEnabled.PowerContainerVmAllocationPolicyMigrationAbstract;
import cloudsim.container.resourceAllocators.ContainerAllocationPolicy;
import cloudsim.container.resourceAllocators.ContainerVmAllocationPolicy;
import cloudsim.container.schedulers.ContainerCloudletSchedulerDynamicWorkload;
import cloudsim.container.schedulers.ContainerSchedulerTimeSharedOverSubscription;
import cloudsim.container.schedulers.ContainerVmSchedulerTimeSharedOverSubscription;
import cloudsim.container.utils.IDs;
import cloudsim.util.MathUtil;
import com.opencsv.CSVWriter;
import java.io.*;
import java.io.File;
import java.util.*;
/**
* This is the modified version of {@link examples.power.Helper} class in cloudsim.
* Created by sareh on 15/07/15.
*/
public class HelperEx {
public HelperEx() {
// System.out.print();
}
public static List<ContainerCloudlet> createContainerCloudletList(int brokerId, String inputFolderName, int numberOfCloudlets)
throws FileNotFoundException {
ArrayList cloudletList = new ArrayList();
long fileSize = 300L;
long outputSize = 300L;
UtilizationModelNull utilizationModelNull = new UtilizationModelNull();
File inputFolder1 = new File(inputFolderName);
File[] files1 = inputFolder1.listFiles();
int createdCloudlets = 0;
for (File aFiles1 : files1) {
File inputFolder = new File(aFiles1.toString());
File[] files = inputFolder.listFiles();
for (int i = 0; i < files.length; ++i) {
if (createdCloudlets < numberOfCloudlets) {
ContainerCloudlet cloudlet = null;
try {
cloudlet = new ContainerCloudlet(IDs.pollId(ContainerCloudlet.class), 216000000L * 1000, 1, fileSize, outputSize,
new UtilizationModelPlanetLabInMemoryExtended(files[i].getAbsolutePath(), 300.0D),
utilizationModelNull, utilizationModelNull);
} catch (Exception var13) {
var13.printStackTrace();
System.exit(0);
}
cloudlet.setUserId(brokerId);
// cloudlet.setVmId(i);
cloudletList.add(cloudlet);
createdCloudlets += 1;
} else {
return cloudletList;
}
}
}
return cloudletList;
}
// create the containers for hosting the cloudlets and binding them together.
public static List<Container> createContainerList(int brokerId, int containersNumber) {
ArrayList containers = new ArrayList();
for (int i = 0; i < containersNumber; ++i) {
// int containerType = new RandomGen().getNum(ConstantsExamples.CONTAINER_TYPES);
int containerType = i / (int) Math.ceil((double) containersNumber / 3.0D);
// int containerType = 0;
containers.add(new PowerContainer(IDs.pollId(Container.class), brokerId, (double) ConstantsExamples.CONTAINER_MIPS[containerType], ConstantsExamples.
CONTAINER_PES[containerType], ConstantsExamples.CONTAINER_RAM[containerType], ConstantsExamples.CONTAINER_BW, 0L, "Xen",
new ContainerCloudletSchedulerDynamicWorkload(ConstantsExamples.CONTAINER_MIPS[containerType],
ConstantsExamples.CONTAINER_PES[containerType]), ConstantsExamples.SCHEDULING_INTERVAL));
}
return containers;
}
// create the containers for hosting the cloudlets and binding them together.
public static List<ContainerVm> createVmList(int brokerId, int containerVmsNumber) {
ArrayList containerVms = new ArrayList();
for (int i = 0; i < containerVmsNumber; ++i) {
ArrayList peList = new ArrayList();
// int vmType = new RandomGen().getNum(ConstantsExamples.VM_TYPES);
// Log.print(vmType);
// Log.print("\n");
int vmType = i / (int) Math.ceil((double) containerVmsNumber / 4.0D);
// int vmType = 1;
// int vmType = 1;
for (int j = 0; j < ConstantsExamples.VM_PES[vmType]; ++j) {
peList.add(new ContainerPe(j, new CotainerPeProvisionerSimple((double) ConstantsExamples.VM_MIPS[vmType])));
}
containerVms.add(new PowerContainerVm(IDs.pollId(ContainerVm.class), brokerId, (double) ConstantsExamples.VM_MIPS[vmType], (float) ConstantsExamples.VM_RAM[vmType],
ConstantsExamples.VM_BW, ConstantsExamples.VM_SIZE, "Xen", new ContainerSchedulerTimeSharedOverSubscription(peList),
new ContainerRamProvisionerSimple(ConstantsExamples.VM_RAM[vmType]),
new ContainerBwProvisionerSimple(ConstantsExamples.VM_BW), peList, ConstantsExamples.SCHEDULING_INTERVAL));
}
return containerVms;
}
public static List<ContainerHost> createHostList(int hostsNumber) {
ArrayList hostList = new ArrayList();
for (int i = 0; i < hostsNumber; ++i) {
// int hostType = new RandomGen().getNum(ConstantsExamples.HOST_TYPES);
int hostType = i / (int) Math.ceil((double) hostsNumber / 3.0D);
// int hostType = i % 2;
// int hostType = 2;
ArrayList peList = new ArrayList();
for (int j = 0; j < ConstantsExamples.HOST_PES[hostType]; ++j) {
peList.add(new ContainerVmPe(j, new ContainerVmPeProvisionerSimple((double) ConstantsExamples.HOST_MIPS[hostType])));
}
// hostList.add(new PowerContainerHost(i, new ContainerVmRamProvisionerSimple(ConstantsExamples.HOST_RAM[hostType]),
// new ContainerVmBwProvisionerSimple(1000000L), 1000000L, peList, new ContainerVmSchedulerTimeSharedOverSubscription(peList), ConstantsExamples.HOST_POWER[hostType]));
hostList.add(new PowerContainerHostUtilizationHistory(IDs.pollId(ContainerHost.class), new ContainerVmRamProvisionerSimple(ConstantsExamples.HOST_RAM[hostType]),
new ContainerVmBwProvisionerSimple(1000000L), 1000000L, peList, new ContainerVmSchedulerTimeSharedOverSubscription(peList), ConstantsExamples.HOST_POWER[hostType]));
}
return hostList;
}
// Broker
public static ContainerDatacenterBroker createBroker(double overBookingFactor) {
ContainerDatacenterBroker broker = null;
try {
broker = new ContainerDatacenterBroker("Broker", overBookingFactor);
} catch (Exception var2) {
var2.printStackTrace();
System.exit(0);
}
return broker;
}
// // Data Center
// public static PowerContainerDatacenter createDatacenter(String name, List<ContainerHost> hostList, ContainerVmAllocationPolicy vmAllocationPolicy, ContainerAllocationPolicy containerAllocationPolicy) throws Exception {
// String arch = "x86";
// String os = "Linux";
// String vmm = "Xen";
// double time_zone = 10.0D;
// double cost = 3.0D;
// double costPerMem = 0.05D;
// double costPerStorage = 0.001D
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能。 基于稳定婚姻算法和cloudsim框架的云计算任务调度模拟Java源码(本科毕设).zip 基于稳定婚姻算法和cloudsim框架的云计算任务调度模拟Java源码(本科毕设).zip 基于稳定婚姻算法和cloudsim框架的云计算任务调度模拟Java源码(本科毕设).zip
资源推荐
资源详情
资源评论
收起资源包目录
基于稳定婚姻算法和cloudsim框架的云计算任务调度模拟Java源码(本科毕设).zip (308个子文件)
topology.brite 554B
HelperEx.java 51KB
Cloudlet.java 48KB
ContainerDatacenter.java 44KB
Datacenter.java 40KB
ContainerVm.java 35KB
PowerContainerVmAllocationPolicyMigrationAbstractContainerAdded.java 32KB
Helper.java 31KB
CloudSim.java 30KB
ContainerDatacenterBroker.java 28KB
PowerVmAllocationPolicyMigrationAbstract.java 25KB
PowerContainerVmAllocationPolicyMigrationAbstract.java 24KB
SimEntity.java 23KB
DatacenterBroker.java 21KB
NetDatacenterBroker.java 21KB
NetworkCloudletSpaceSharedScheduler.java 21KB
ContainerHost.java 20KB
DatacenterCharacteristics.java 19KB
DataCloudTags.java 19KB
PowerContainerDatacenter.java 19KB
Container.java 19KB
WorkloadFileReader.java 19KB
RunnerAbs.java 18KB
Host.java 18KB
ContainerCloudSimExample1.java 18KB
Switch.java 17KB
HarddriveStorage.java 16KB
ResCloudlet.java 16KB
InfoPacket.java 15KB
Vm.java 15KB
CloudletSchedulerSpaceShared.java 15KB
PowerContainerDatacenterCM.java 15KB
ContainerDatacenterCharacteristics.java 14KB
ContainerCloudletSchedulerTimeShared.java 13KB
PowerContainerVmAllocationPolicyMigrationAbstractContainerHostSelection.java 12KB
PowerDatacenter.java 12KB
CloudletScheduler.java 12KB
CloudSimExample8.java 12KB
File.java 12KB
MathUtil.java 11KB
RunnerAbstract.java 11KB
FileAttribute.java 11KB
CloudSimExample7.java 11KB
CloudletSchedulerDynamicWorkload.java 11KB
CloudletSchedulerTimeShared.java 11KB
ContainerHostDynamicWorkload.java 11KB
ContainerCloudletSchedulerDynamicWorkload.java 11KB
CloudSimExample6.java 11KB
CloudSimExample1.java 10KB
CloudInformationService.java 10KB
NetworkExample3.java 10KB
TestExample.java 10KB
ContainerCloudletScheduler.java 10KB
CloudSimTags.java 10KB
NetworkExample2.java 10KB
HostDynamicWorkload.java 10KB
CloudSimExample3.java 10KB
CloudSimExample5.java 10KB
NetworkDatacenter.java 9KB
CloudSimExample4.java 9KB
NetworkTopology.java 9KB
CloudSimExample2.java 9KB
NetworkExample1.java 9KB
NetworkExample4.java 8KB
VmScheduler.java 8KB
PowerVmAllocationPolicyMigrationLocalRegression.java 8KB
ContainerSchedulerTimeShared.java 8KB
ContainerVmSchedulerTimeShared.java 8KB
VmSchedulerTimeShared.java 8KB
ContainerScheduler.java 7KB
PowerVmAllocationPolicyMigrationMedianAbsoluteDeviation.java 7KB
PowerContainerVm.java 7KB
NetworkHost.java 7KB
ContainerVmScheduler.java 7KB
PeList.java 7KB
NetworkVmAllocationPolicy.java 7KB
PowerVm.java 7KB
PowerDatacenterNonPowerAware.java 7KB
GraphReaderBrite.java 7KB
VmSchedulerTimeSharedOverSubscription.java 7KB
PowerVmAllocationPolicyMigrationInterQuartileRange.java 6KB
Storage.java 6KB
ContainerVmPeList.java 6KB
ContainerPeList.java 6KB
PeProvisioner.java 6KB
PowerContainer.java 6KB
VmAllocationPolicySimple.java 6KB
EdgeSwitch.java 6KB
ContainerSchedulerTimeSharedOverSubscription.java 6KB
PowerContainerVmAllocationPolicyMigrationAbstractHostSelection.java 6KB
PowerVmSelectionPolicyMaximumCorrelation.java 6KB
SimEvent.java 6KB
ContainerVmSchedulerTimeSharedOverSubscription.java 5KB
ContainerAllocationPolicySimple.java 5KB
WorkflowApp.java 5KB
ContainerHostList.java 5KB
Log.java 5KB
ContainerVmAllocationPolicySimple.java 5KB
AggregateSwitch.java 5KB
CotainerPeProvisionerSimple.java 5KB
共 308 条
- 1
- 2
- 3
- 4
资源评论
Make程序设计
- 粉丝: 5623
- 资源: 3567
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功