一·云计算的介绍

云计算仿真软件,称为CloudSim。它是在离散事件模拟包SimJava上开发的函数库,可在Windows和Linux系统上跨平台运行,CloudSim继承了GridSim的编程模型,支持云计算的研究和开发,并提供了以下新的特点: (1)支持大型云计算的基础设施的建模与仿真;(2)一个自足的支持数据中心、服务代理人、调度和分配策略的平台。其中CloudSim 独特功能有:一是提供虚拟化引擎,旨在数据中心节点上帮助建立和管理多重的、独立的、协同的的虚拟化服务;二是在对虚拟化服务分配处理核心时能够在时间共享和空间共享之间灵活切换。CloudSim平台有助于加快云计算的算法、方法和规范的发展。CloudSim的组件工具均为开源的。CloudSim的软件结构框架和体系结构组件包括SimJava、GridSim、CloudSim、UserCode四个层次。

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类:实现数据中心的主机到虚拟机的映射。

三· CloudSim的下载安装

请参考我的另一篇博文:http://www.cnblogs.com/wenjieyatou/p/6061044.html

四·使用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介绍以及类的功能介绍的更多相关文章

  1. C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法

    C#构造方法(函数)   一.概括 1.通常创建一个对象的方法如图: 通过  Student tom = new Student(); 创建tom对象,这种创建实例的形式被称为构造方法. 简述:用来初 ...

  2. CloudSim——云计算仿真软件概述

    CloudSim是由澳大利亚墨尔本大学的网格实验室和Gridbus项目宣布推出的云计算仿真软件. CloudSim是做什么的呢?可以简单理解为一个帮助研究.开发.测试的工具,如虚拟机资源分配算法.节能 ...

  3. .NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍

    Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器 ...

  4. 黄聪:C#类似Jquery的html解析类HtmlAgilityPack基础类介绍及运用

    Html Agility Pack下载地址:http://htmlagilitypack.codeplex.com/ Html Agility Pack 源码中的类大概有28个左右,其实不算一个很复杂 ...

  5. 微信小程序产品定位及功能介绍

    产品定位及功能介绍 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 小程序注册 注册小程序帐号 在微信公众平台官网首页(mp.weixin.qq ...

  6. 【转】C#类似Jquery的html解析类HtmlAgilityPack基础类介绍及运用

    Html Agility Pack下载地址:http://htmlagilitypack.codeplex.com/ Html Agility Pack 源码中的类大概有28个左右,其实不算一个很复杂 ...

  7. 微软在 .NET 3.5 新增了一个 HashSet 类,在 .NET 4 新增了一个 SortedSet 类,本文介绍他们的特性,并比较他们的异同。

    微软在 .NET 3.5 新增了一个 HashSet 类,在 .NET 4 新增了一个 SortedSet 类,本文介绍他们的特性,并比较他们的异同. .NET Collection 函数库的 Has ...

  8. QTP的基本功能介绍

    • QTP的基本功能介绍 HP QuickTest Professional 支持功能測试和回归測试自己主动化,用于每一个主要软件应用程序和环境.此解决方式使用keyword驱动的測试概念,简化了測试 ...

  9. Python中模块之re的功能介绍

    re模块的功能介绍 1. 方法 match 从开头开始查找 方法:re.match(pattern,string,flags=0) 返回值:<class '_sre.SRE_Match'> ...

随机推荐

  1. DampView阻尼效果

    阻尼效果即是图片向下拉动时会放大,松开会回弹 1.自定义一个DampView类,继承ScrollView 2.布局最外层必须是DampView,且DampView和要拉动的图片之间只能有一层layou ...

  2. hibernate常用配置

    核心配置 核心配置有两种方式进行配置 1:属性文件的配置:hibernate.properties 格式:key=value hibernate.connection.driver_class=com ...

  3. thinkphp几个表的数据合并,并用数组分页

    控制器: //金币扣除 public function jbkc(){ $map['UG_dataType']= 'xtkc'; $list1 = M ( 'userget' )->where ...

  4. CSS3详解:background

    CSS3对于background做了一些修改,最明显的一个就是采用设置多背景,不但添加了4个新属性,并且还对目前的属性进行了调整增强. 1.多个背景图片 在css3里面,你可以再一个标签元素里应用多个 ...

  5. POJ 1509 最小表示法

    题目链接:http://poj.org/problem?id=1509 题意:给定一个字符串,求一个起点使字符串从该起点起的字符串字典序最小[题目的字符串起点从1开始] 思路:最小表示法模板题 #de ...

  6. Codeforces Round #356 (Div. 2)-A

    A. Bear and Five Cards 题目链接:http://codeforces.com/contest/680/problem/A A little bear Limak plays a ...

  7. java中new关键字和newInstance()方法有什么区别?

    1.new可以调用带参数的构造函数,newInstance不可以. 2.new 是 java 的关键字,用来构造一个类的实例.而 newInstance 是 Class 的一个方法,不过两个写法的效果 ...

  8. Dockerfile完成Hadoop2.6的伪分布式搭建

    在 <Docker中搭建Hadoop-2.6单机伪分布式集群>中在容器中操作来搭建伪分布式的Hadoop集群,这一节中将主要通过Dokcerfile 来完成这项工作. 1 获取一个简单的D ...

  9. Codeforces Round #348(VK Cup 2016 - Round 2)

    A - Little Artem and Presents (div2) 1 2 1 2这样加就可以了 #include <bits/stdc++.h> typedef long long ...

  10. Shell 编程基础之括号的作用

    一.小括号() 单小括号 命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必 ...