云计算与大数据 第14章 云仿真平台CloudSim习题

 第14章 云仿真平台CloudSim习题

14.1 选择题

1、仿真三要素为(  B  )、模型和计算机。

A. 工具        B. 系统              C. 对象              D.程序

2、CloudSim中用来仿真构建云数据中心,实现虚拟机对资源的分配策略的核心类是(  B  )。

A. Cloudlet      B. DataCenter          C. Host            D. VirtualMachine

3、按照所用计算机的类型对仿真进行分类,可以分为模拟仿真、(  D  )和混合仿真。

A.物理仿真    B.连续系统仿真      C.离散系统仿真     D.数字仿真

14.2 填空题

1、仿真的过程包括(   建立仿真模型    )和(   进行仿真实验   )。

2、仿真的三要素是(   系统    )、(   模型   )和(   计算机   )。

3、云仿真平台GreenCloud主要用于(   云数据中心的能耗分析   )的研究。

4、CloudSim中用来实现云数据中心的主机到虚拟机的映射的核心类是(   VMProvisioner   )。

5、按所用模型的类型来分类,仿真可分为:(   物理仿真   )、(   计算机仿真   )、和(   半实物仿真   )。

14.3 简答题

1、请简述仿真过程中建立仿真模型和进行仿真实验这两个步骤。

答:

仿真的过程包括建立仿真模型和进行仿真实验两个主要步骤:

  1. 建立仿真模型。仿真模型是被仿真对象的相似物或其结构形式。仿真模型可以是物理模型或数学模型,但并不是所有对象都能建立物理模型。例如,为了研究飞行器的动力学特性,在地面上只能用计算机来仿真,因此首先要建立对象的数学模型,然后将它转换成适合计算机处理的形式,即仿真模型。具体地说,计算机应将数学模型转换成程序。
  2. 进行仿真实验。通过实验可观察系统模型各变量变化的全过程。为了寻求系统的最优结构和参数,常常要在仿真模型上进行多次实验。在系统的设计阶段,利用计算机进行数学仿真实验,修改、变换模型。在部件研制阶段,可用已研制的实际部件或子系统去代替部分计算机仿真模型进行半实物仿真实验。在系统研制阶段,进行半实物仿真实验,以修改各部件或子系统的结构和参数。

2、请简述仿真的定义以及不同的分类原则。

答:

  1. 仿真定义: 仿真又称为模拟,是利用模型复现实际系统及其发生的现象或过程,并通过对系统模型的实验来研究已经存在的或设计中的系统。仿真的三要素为系统、模型和计算机。
  2. 仿真可以按不同原则来进行分类:

(1)按所用模型的类型,可以分为物理仿真、计算机仿真、半实物仿真。

(2)按所用计算机的类型,可以分为模拟仿真、数字仿真和混合仿真。

(3)按仿真对象中的信号流,可以分为连续系统仿真和离散系统仿真。

(4)按仿真时间与实际时间的比例关系,可以分为实时仿真、超实时仿真和亚实时仿真。

3、CloudSim提供了一个通用的、可扩展的模拟框架。请描述CloudSim体系架构中各层发挥的作用。

答:

CloudSim提供了一个通用的、可扩展的模拟框架,支持云计算基础设施和应用服务的无缝建模、模拟和实验。

  1. CloudSim的底层是离散事件模拟引擎SimJava,负责执行高层模拟框架的核心功能,如查询和处理事件、系统组件(包括服务、客户端、数据中心、代理和虚拟机)的创建、不同组件之间的通信、模拟时钟的管理等。
  2. SimJava的上一层是GridSim,该层支持高层软件组件,可建模多个网格基础设施,包括网络流量文件、基础的网格组件(如资源、数据集、负载测量和信息服务)。CloudSim层在GridSim层上执行,它扩展由GridSim提供的核心功能。
  3. CloudSim层提供虚拟机、内存、存储和带宽等管理接口。CloudSim层在模拟阶段管理虚拟机、客户端、数据中心、应用的实例和执行,能够并发地实例化和透明地管理大规模云基础设施中的数以千计的系统组件。

14.4 解答题

1、请具体描述使用CloudSim创建一个云数据中心并在其上运行一个Cloudlet的步骤流程。

答:

  1. 第一步:初始化;

CloudSim.init(num_user, calendar, trace_flag);

  1. 第二步:创建数据中心DataCenter;

Datacenter datacenter0 = createDatacenter("Datacenter_0");

  1. 第三步:创建代理DataCenterBroker;

DatacenterBroker broker = createBroker();

int brokerId = broker.getId();

  1. 第四步:创建虚拟机列表VmList,然后将虚拟机列表提交到数据中心代理;

vmlist = new ArrayList<Vm>();

// VM description

int vmid = 0;

int mips = 1000;

long size = 10000; // image size (MB)

int ram = 512; // vm memory (MB)

long bw = 1000;

int pesNumber = 1; // number of cpus

String vmm = "Xen"; // VMM name

// create VM

Vm vm = new Vm(vmid, brokerId, mips, pesNumber, ram, bw, size, vmm, new CloudletSchedulerTimeShared());

// add the VM to the vmList

vmlist.add(vm);

// submit vm list to the broker

broker.submitVmList(vmlist);

  1. 第五步:创建云任务列表CloudletList,然后将云任务列表提交给数据中心代理;

cloudletList = new ArrayList<Cloudlet>();

// Cloudlet properties

int id = 0;

long length = 400000;

long fileSize = 300;

long outputSize = 300;

UtilizationModel utilizationModel = new UtilizationModelFull();

Cloudlet cloudlet = new Cloudlet(id, length, pesNumber,fileSize,outputSize, utilizationModel, utilizationModel, utilizationModel);

cloudlet.setUserId(brokerId);

cloudlet.setVmId(vmid);

// add the cloudlet to the list

cloudletList.add(cloudlet);

// submit cloudlet list to the broker

broker.submitCloudletList(cloudletList);     

  1. 第六步:开始模拟StartSimulation;

CloudSim.startSimulation();

  1. 第七步:结束模拟StopSimulation,输出结果。

CloudSim.stopSimulation();

List<Cloudlet> newList = broker.getCloudletReceivedList();

printCloudletList(newList);

猜你喜欢

转载自blog.csdn.net/m0_63394128/article/details/126589978