安装cloudsim[通俗易懂]

安装cloudsim[通俗易懂]1.CloudSim介绍       2009年,墨尔本大学的网格实验室和Gridbus项目宣布推出云计算仿真软件,称为CloudSim。它是在离散事件模拟包SimJava上开发的函数库,可在Windows和Linux系统上跨平台运行,CloudSim继承了GridSim的编程模型,支持云计算的研究和开发,并提供了以下新的特点:(1)支持大型云计算的基础设施的建模与仿真;(2)一

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

 1.CloudSim介绍
        2009年,墨尔本大学的网格实验室和Gridbus项目宣布推出云计算仿真软件,称为CloudSim。它是在离散事件模拟包SimJava上开发的函数库,可在Windows和Linux系统上跨平台运行,CloudSim继承了GridSim的编程模型,支持云计算的研究和开发,并提供了以下新的特点:
(1)支持大型云计算的基础设施的建模与仿真;
(2)一个自足的支持数据中心、服务代理人、调度和分配策略的平台。其中CloudSim 独特功能有:
一是提供虚拟化引擎,旨在数据中心节点上帮助建立和管理多重的、独立的、协同的的虚拟化服务;
二是在对虚拟化服务分配处理核心时能够在时间共享和空间共享之间灵活切换。

CloudSim平台有助于加快云计算的算法、方法和规范的发展。
CloudSim的组件工具均为开源的。
CloudSim的软件结构框架和体系结构组件包括SimJava、GridSim、CloudSim、UserCode四个层次。

2、CloudSim环境配置

(1)JDK安装和配置
http://java.sun.com/ 下载JDK最新版本jdk1.6.0_13,CloudSim需要运行在JDK1.6版本以上。安装下载的JDK,设置环境变量。在Path中加入路径:C:\Program Files\Java\jdk1.6.0_13\bin; ClassPath中加入路径:C:\Program Files\Java\jdk1.6.0_13\lib\dt.jar; C:\Program Files\Java\jdk1.6.0_13\lib\tools.jar; 。
(2)CloudSim配置

http://www.gridbus.org/cloudsim/ 下载CloudSim 2.1 beta版,下载的是一个Zip包,解压压缩包即可。
以下是查cloudsim的examples.txt文件中的内容
 To run the CloudSim examples you need to do the following steps.

In Windows:

1. cd <PATH TO CLOUDSIM PACKAGE>\jars

2. java -classpath cloudsim-<VERSION>.jar;cloudsim-examples-<VERSION>.jar org.cloudbus.cloudsim.examples.CloudSimExample<EXAMPLE NUMBER>

In Unix/Linux:

1. cd <PATH TO CLOUDSIM PACKAGE>/jars

2. java -classpath cloudsim-<VERSION>.jar:cloudsim-examples-<VERSION>.jar org.cloudbus.cloudsim.examples.CloudSimExample<EXAMPLE NUMBER>

 

Where you need to replace:

 

<PATH TO CLOUDSIM PACKAGE> – by the path to a directory where you have unpacked the CloudSim package

<VERSION> – by the version of the downloaded CloudSim package

<EXAMPLE NUMBER> – by the of number of the example you want to run

CloudSim examples source code

—————————–

You can find the source code of the examples in <PATH TO CLOUDSIM PACKAGE>/examples/org/cloudbus/cloudsim/examples/

Compiling and running examples

——————————

To compile and run an example (let’s say org.cloudbus.cloudsim.examples.CloudSimExample1) you need to do the following steps:

 

In Windows:

 

1. cd <PATH TO CLOUDSIM PACKAGE>

2. javac -classpath jars\cloudsim-<VERSION>.jar examples\org\cloudbus\cloudsim\examples\CloudSimExample1.java

3. java -classpath jars\cloudsim-<VERSION>.jar;examples org.cloudbus.cloudsim.examples.CloudSimExample1

 

In Unix/Linux:

 

1. cd <PATH TO CLOUDSIM PACKAGE>

2. javac -classpath jars/cloudsim-<VERSION>.jar examples/org/cloudbus/cloudsim/examples/CloudSimExample1.java

3. java -classpath jars/cloudsim-<VERSION>.jar:examples org.cloudbus.cloudsim.examples.CloudSimExample1

3、CloudSim的扩展
    CloudSim是开源的,可以在windows Xp和linux上运行,用户可以根据自己的研究内容自行扩展CloudSim,加入自己的代码后,需要重新编译并发布平台。下面给出编译和生成平台的方法:
    从http://ant.apache.org/ 下载Ant工具,解压到目录D:\apache-ant-1.7.1,设置环境变量,在PATH中加入:D:\apache-ant-1.7.1\bin;。将命令行切换到扩展的CloudSim路径(build.xml所在目录),在命令行下键入命令D:\CloudSim>ant,批量编译CloudSim源文件,生成的文件按照build.xml的设置存储到指定位置,编译成功后在命令行下键入D:\CloudSim>ant makejar命令打包生成new_cloudsim.jar。扩展的CloudSim平台生成成功。重设环境变量,在ClassPath中增加路径:D:\CloudSim\jars\new_cloudsim.jar;D:\CloudSim\jars\cloudsim.jar;D:\CloudSim\jars\g-ridsim.jar; D:\CloudSim\jars\simjava2.jar;,下一步在新的平台下编写自己的仿真验证程序。
4、使用CloudSim仿真的一般步骤
(1) 初始化GridSim 库
GridSim.init(num_user, calendar, trace_flag, exclude_from_file,exclude_from_processing, report_name);
(2) 创建数据中心,在CloudSim仿真平台中,一个数据中心由一个或多个Machine组成,一个Machine是由一个或多个PEs或CPUs组成。
DataCenter datacenter0 = createDatacenter(“Datacenter_0”);
(3) 创建代理Broker
DatacenterBroker broker = createBroker();
int brokerId = broker.get_id();
(4) 创建虚拟机
vmlist = new VirtualMachineList();
//创建时为虚拟机指定Broker
VirtualMachine vm1 = new VirtualMachine(
new VMCharacteristics(vmid,brokerId,size,memory,bw,vcpus,priority,vmm,
new TimeSharedVMScheduler()));
//将虚拟机加入虚拟机列表
vmlist.add(vm1);
//向相应代理Broker提交虚拟机列表
broker.submitVMList(vmlist);
(5) 创建云任务
cloudletList = new CloudletList();
//创建时指定任务的用户ID,BrokerID          
Cloudlet cloudlet1 = new Cloudlet(id, length, file_size, output_size);
    cloudlet1.setUserID(brokerId);
……
//将任务加入任务列表
cloudletList.add(cloudlet1);
……
//向代理Broker提交任务列表
broker.submitCloudletList(cloudletList);
(6) 启动仿真
GridSim.startGridSimulation();
(7) 在仿真结束后统计结果
CloudletList newList = broker.getCloudletList();
GridSim.stopGridSimulation();
printCloudletList(newList);
datacenter0.printDebts();
    若是根据自己研究对平台进行了扩展,平台重生成后,就可以在仿真程序中调用自己编写的类、方法、成员变量等。

 CloudSim是在GridSim模型基础上发展而来,提供了云计算的特性,支持云计算的资源管理和调度模拟。云计算与网格计算的一个显著区别是云计算采用了成熟的虚拟化技术,将数据中心的资源虚拟化为资源池,打包对外向用户提供服务,CloudSim体现了此特点,扩展部分实现了一系列接口,提供基于数据中心的虚拟化技术、虚拟化云的建模和仿真功能。通常,数据中心的一台主机的资源可以根据用户的需求映射到多台虚拟机上,因此,虚拟机之间存在对主机资源的竞争关系。CloudSim提供了资源的监测、主机到虚拟机的映射功能。CloudSim的CIS(Cloud Information Service)和DataCenterBroker实现资源发现和信息交互,是模拟调度的核心。用户自行开发的调度算法可在DataCenterBroker的方法中实现,从而实现调度算法的模拟。

    依据CloudSim源代码介绍几个核心类:
    (1)Cloudlet类:构建云环境下的任务。
    (2)DataCenter类:数据中心,提供虚拟化的网格资源,处理虚拟机信息的查询,包含虚拟机对资源的分配策略,云计算采用VMProvisioner处理虚拟机。
    (3)DataCenterBroker类:隐藏了虚拟机的管理,如创建、任务提交、虚拟机的销毁等。
    (4)Host类:扩展了机器对虚拟机除处理单元(PE)之外的参数分配策略,如带宽、存储空间、内存等,一台Host可对应多台虚拟机。
    (5)VirtualMachine类:虚拟机类,运行在Host上,与其它虚拟机共享资源,每台虚拟机由一个拥有者所有,可提交任务,并由VMScheduler类定制该虚拟机的调度策略。
    (6)VMScheduler类:虚拟机的调度策略,用来管理执行任务,实现了任务接口。
    (7)VMCharacteristics类:提供虚拟机描述。
    (8)VMMAllocationPolicy类:虚拟机监视器策略类,描述同一Host上的多台虚拟机共享资源的策略。

    (9)VMProvisioner类:实现数据中心的主机到虚拟机的映射。

在 myeclipse中使用cloudsim
1.myeclipse->File->new->java project->
2.project name :cloudsim
3.选中 create project from exiting source,在目录中选择cloudsim包的路径。
4.选择java 6
5.然后就完成了,可以跑几个例子试下
 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184153.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月9日 下午2:00
下一篇 2022年10月9日 下午2:16


相关推荐

  • redis数据库端口号_redis对接mysql

    redis数据库端口号_redis对接mysql关系型数据库一:Oracle驱动:oracle.jdbc.driver.OracleDriverURL:jdbc:oracle:thin:@:dbname注:machine_name:数据库所在的机器的名称,如果是本机则是127.0.0.1或者是localhost,如果是远程连接,则是远程的IP地址;port:端口号,默认是1521二:SQLServer驱动:com.microsoft.jdb…

    2026年1月15日
    7
  • 淘宝抢购Python脚本

    淘宝抢购Python脚本想买mate40,但总是抢不到,所以想试着能不能写个脚本代码。第一步:把想要抢购的商品加进购物车,注意:脚本是对购物车内全部商品进行下单操作,所以不够买的商品最好先从购物车内删除。第二步:写好Python脚本,在抢购之前运行,并设置好抢购时间。Python脚本实现安装Python。我安装的是anaconda安装webdriver扩展。它是Selenium模块的一部分。Selenium是一个用于Web应用程序测试的工具,用于测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。Selen

    2022年4月29日
    52
  • 消除IBM P750小机上的黄色报警灯[通俗易懂]

    消除IBM P750小机上的黄色报警灯[通俗易懂]IBM小机上亮黄灯了如何解决?对报警灯的说明:(1)硬件故障报警灯是一个发光二极管,它亮表示系统检测到了硬件故障,管理员应该注意。(2)硬件故障报警灯是非常敏感的,很多情况下并不是硬件产生了故障它才亮,例如热插拔某些信号线或者电缆,用户非正常关机等都可能导致该警报灯亮。(3)管理员应该首先检查系统错误日志errpt,看一下是否真的有硬件错误。如果没有,那么可以先将这个

    2022年6月15日
    47
  • go struct转map_golang map

    go struct转map_golang mapGo字符串转Map和Map的嵌套取值想用Go写爬虫联系一下语法的,结果数据类型转换还不熟悉。map嵌套取值就会报错typeinterface{}doesnotsupportindexing字符串转Map//示例字符串resString:=`{ “args”:{}, “headers”:{ “Accept-Encoding”:”gzip”, “Host”:”httpbin.org”, “User-Agent”:”GRequests/0.10

    2025年10月19日
    5
  • java中数组转成list_java数组转json

    java中数组转成list_java数组转jsonJava数组转List的几种方法一、Arrays.asList二、Collections.addAll三、Arrays.stream(arr).collect(Collectors.toList())本文提供了几种Java中常用的数组转List的方法一、Arrays.asList//Array转ListString[]arr={“a”,”b”,”c”};List<String>list=Arrays.asList(arr);System.out.println

    2022年8月23日
    8
  • C语言TransparentBlt函数,技术分享 – 使用TransparentBlt函数实现绘制透明位图

    C语言TransparentBlt函数,技术分享 – 使用TransparentBlt函数实现绘制透明位图背景在自己本科的时候 喜欢用 VC6 0 写一些小游戏来锻炼自己的编程水平 那些小游戏的游戏画面绘制都是使用 Windows 提供的 GDI 图形设备接口 函数实现的 并没有调用现成的游戏引擎 所以 使得自己对 GDI 函数比较熟悉 能用它开发各式各样的小游戏 其中 那些小游戏都会用到的一个关键技术 便是透明位图的绘制 现在 我把之前自己开发小游戏时 绘制透明位图的方法总结一下 分别为大家介绍一下三种实现方

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号