第9章 云计算模拟编程实践
13) PredicateNotFrom 选择已经被特定对象发送的事件。
14) PredicateType 根据选择特定标签选择事件。
15) PredicateNotType 选择不满足特定标签选择事件。
分布式计算•云计算•大数据
10.1.1 CloudSim体系结构
2、CloudSim层
CloudSim仿真层为云数据中心环境的建模和仿真提供支持,包括虚 拟机、内存、存储器和带宽的专用管理接口。该层主要负责处理一些基本问 题,如主机到虚拟机的调度、管理应用程序的执行、监控动态变化的系统状 态。对于想对不同虚拟机调度(将主机分配给虚拟机)策略的有效性进行研 究的云提供商来说,他们可以通过这一层来实现自己的策略,以编程的方式 扩展其核心的虚拟机调度功能。这一层的虚拟机调度有一个很明显的区别, 即一个云端主机可以同时分配给多台正在执行应用的虚拟机,且这些应用满 足SaaS提供商定义的服务质量等级。这一层也为云应用开发人员提供了接 口,只需扩展相应的功能,就可以实现复杂的工作负载分析和应用性能研究 。
6) CloudSimTags
该类包含多个静态的时间或命令标签,CloudSim实体在接收和发送事件时使用这些 标签决定要采取的操作类型。
7) SimEvent 该实体给出了在两个或多个实体间传递仿真事件的过程。SimEvent存储了关于事件
的信息,包括事件的类型、初始化时间、事件发生的时间、结束时间、事件转发到目标实体的 时间、资源标识、目标实体、事件标签及需要传输到目标实体的数据。
1、CloudSim核心模拟引擎
1) CloudSim
这是主类,负责管理事件队列和控制仿真事件的顺序执行。这些事件按照它们的时 间参数构成有序队列。在每一步调度的仿真事件会从未来事件队列(Future Event Queue)中被 删除,并被转移到延时事件队列(Deferred Event Queue)中。之后,每个实体调用事件处理方 法,从延时事件队列中选择事件并执行相应的操作。这样灵活的管理方式,具有以下优势:
机械工业出版社《分布式计算、云计算与大数据》配套课件
第9章 云计算模拟编程实践
华南理工大学 林伟伟 主编
提纲
➢ CloudSim体系结构和API介绍 ➢ CloudSim环境搭建和使用方法 ➢ CloudSim扩展编程 ➢ CloudSim的编程实践
分布式计算•云计算•大数据
10.1.1 CloudSim体系结构
分布式计算•云计算•大数据
10.1.1 CloudSim体系结构
1、CloudSim核心模拟引擎
为了克服这些限制并满足更复杂的仿真场景,墨尔本大学 的研究小组开发了一个全新的离散事件管理框架。
CloudSim核心模拟引擎类图
分布式计算•云计算•大数据
一些相关的类:
10.1.1 CloudSim体系结构
8) CloudSimShutdown 该实体用于结束所有终端用户和代理实体,然后向CIS发送仿真结束信号。
9) Predicate 抽象类且必须被扩展,用于从延时队列中选择事件。
分布式计算•云计算•大数据
一些相关的类:
10.1.1 CloudSim体系结构
1、CloudSim核心模拟引擎
10) PredicateAny
该类表示匹配延时队列中的任何一个事件。在CloudSim的类中有个可以公开访问 的实例CloudSim.SIM_ANY,因此不需要为该类创建新的实例。
11) PredicateFrom 该类表示选择被特定实体放弃的事件。
12) PredicateNone
表示不匹配延时队列中的任何一个事件。在CloudSim的类中有个可以公开访问的 静态实例CloudSim.SIM_NONE,因此用户不需要为该类创建任何新的实例。
1、CloudSim核心模拟引擎
5) SimEntity
该类代表一个仿真实体,该实体既能向其他实体发送消息,也能处理接收到的消息 。所有的实体必须扩展该类并重写其中的三个核心方法:startEntity()、processEvent()和 shutdownEntity(),它们分别定义了实体初始化、事件处理和实体销毁的行为。SimEntity类提 供调度新事件和向其他实体发送消息的能力,其中消息传递的网络延时是由BRITE模型计算出 来的。实体一旦建立就会使用CIS自动注册。
CIS提供资源注册、索引和发现能力的实体。CIS支持两个基本操作:publish()允许 实体使用CIS进行注册;search()允许类似于CloudCoordinator和Broker的实体发现其他实体的 状态和位置,该实体也会在仿真结束时通知其他实体。
分布式计算•云计算•大数据
一些相关的类:
10.1.1 CloudSim体系结构
支持实体失活操作。
支持不同状态实体的上下文切换,暂停或继续仿真流程。 支持运行中创建新实体。
支持运行中终止或重启仿真流程。
2) DeferredQueue 实现CloudSim使用的延时事件队列。
3) FutureQueue 实现CloudSim使用的未来事件队列。
4) CloudInformationService(CIS)
10.1.1 CloudSim体系结构
分层的CloudSim体系构,CloudSim的构架及其架构组 件如图所示。
分布式计算•云计算•大数据
10.1.1 CloudSim体系结构
1、CloudSim核心模拟引擎 GridSim原本是CloudSim的一个组成部分,但GridSim将SimJava 库作为事件处理和实体间消息传递的框架,而SimJava在创建可伸缩仿真环 境时暴露出如下一些不足: 不支持在运行时通过编程方式重置仿真。 不支持在运行时创建新的实体。 SimJava的多线程机制导致性能开销与系统规模成正比,线程之间过多的 上下文切换导致性能严重下降。 多线程使系统调试变得更加复杂。
CloudSim是一个通用、可扩展的新型仿真框架,支持无缝建模和模拟, 并能进行云计算基础设施和管理服务的实验。这个仿真框架有如下几个特性 :
支持在单个物理节点上进行大规模云计算基础设施的仿真和实例化 。
提供一个独立的平台,供数据中心、服务代理、调度和分配策略进 行建模。
提供虚拟化引擎,可在一个数据中心节点创建和管理多个独立、协 同的虚拟化服务。
可以在共享空间和共享时间的处理核心分配策略之间灵活地切换虚 拟化服务。
CloudSim方便用户在组成、配置和部署软件前评估和模拟软件,减少 云计算环境下,访问基础设施产生的资金耗费。基于仿真的方法使用户可在 一个可控的环境内免费地反复测试他们的服务,在部署之前调节性能瓶颈。
分布式计算•云计算•大数据