CloudSim云仿真的使用及论文阅读

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言:CloudSim介绍

CloudSim来源背景

  • CloudSim是由澳大利亚墨尔本大学的网格实验室和Gridbus项目共同推出的开源云计算仿真平台;
  • CloudSim是基于Java语言开发的,可实现跨平台运行;
  • CloudSim有助于加快面向云计算平台的算法设计与测试速度,可降低开发的成本;
  • 用户可以通过CloudSim提供的众多核心类来进行大规模的云计算基础设施的建模与仿真。

CloudSim版本演变

  • V1.0-V2.0∶建立了新的仿真核心,能够可控地创建线程,改进了调度器,提高了仿真结果的准确性,增加了包括能耗感知模拟、联合模拟和网络等模拟。
  • V2.0-V2.1∶更改了目录结构,整个项目迁移到Apache Maven中;
  • V2.1-V3.0∶变更了新的VM调度策略,搭建了新的云数据中心网络模型,新的能耗模型添加了VM类和Cloudlet类,添加了支持用户自定义仿真结束功能;
  • V3.0-V4.0∶增加了对容器、虚拟机的支持。
  • V4.0-V5.0∶增加了容器、虚拟机扩展、性能监控等功能。

本实验使用CloudSim的最新版本:CloudSim 5.0


一、CloudSim安装过程

运行环境配置

  • 首先安装和配置好Java环境;
  • 下载Maven的可执行Binary3.8.1版本进行解压缩;
  • 配置maven本地仓库。首先自定义一个文件夹作为Maven本地仓库,命名为“Maven-repository"

mvn -v
在这里插入图片描述

CloudSim 5.0 下载

  • 下载CloudSim5.0安装包并解压缩,将解压缩后的安装包作为Maven项目导入;
  • 运行项目之前,更改Maven的安装版本,以及本地仓库的默认路径

在这里插入图片描述

二、CloudSimExample

1.CloudSimExample1 创建一个只有一台主机的云数据中心

CloudSimExample1展示如何通过一台主机创建一个云数据中心 ,并且在其上运行一个Cloudlet(云任务)。
在这里插入图片描述

2.CloudSimExample4 创建两个云数据中心

CloudSimExample4创建两个云数据中心,每个云数据中心一台主机,并在其上运行两个Cloudlet(云任务)。
在这里插入图片描述

3.CloudSimExample8 创建仿真实体

CloudSimExample8展示了如何在运行时使用全局管理器(GlobalBroker)动态创建仿真实体。
在这里插入图片描述

三、CloudSim仿真的核心类及仿真流程

CloudSim仿真的核心类

CloudSim仿真的核心类如下

说明
DataCenter数据中心,提供虚拟化网络资源
DataCenterBroker代理,用于提交虚拟机列表和云任务列表
Host主机,扩展虚拟机的参数分配策略,一台Host可以对应多台VM
VM虚拟机类,运行在Host上,与其他虚拟机共享资源
Cloudlet云任务类,构建云环境任务

CloudSim仿真流程

CloudSim仿真流程如下

  • 初始化CloudSim
  • 创建数据中心Datacenter
  • 创建用户代理Broker
  • 创建虚拟机VM,添加至Broker
  • 创建应用Cloudlet,添加至Broker
  • 开启仿真
  • 结束模拟仿真
  • 打印输出

四、CloudSim论文

题目

中文题目

CloudSim∶一个模拟与仿真云计算环境和评估资源调度算法的工具集

英文题目

CloudSim: a toolkit for modeling and simulation of cloud
computing environments and evaluation of resource provisioning algorithms

引用格式

Preferred reference for CloudSim
Rodrigo N. Calheiros, Rajiv Ranjan, Anton Beloglazov, Cesar A. F. De Rose, and Rajkumar Buyya, CloudSim: A Toolkit for Modeling and Simulation of Cloud Computing Environments and Evaluation of Resource Provisioning Algorithms, Software: Practice and Experience (SPE), Volume 41, Number 1, Pages: 23-50, ISSN: 0038-0644, Wiley Press, New York, USA, January, 2011.

摘要

近年来,云计算技术取得很大进步,它是一种基于使用付款模式将计算机基础设施和应用作为服务提供给终端用户。云计算可以根据时间变化权衡虚拟服务即使处于多条件需求(工作负载模式和QoS)。云计算模式下的应用服务有复杂的供应、组成、配置和部署条件。当系统和用户配置和需求处于动态变化的条件下,评估云供应政策、应用工作负载模式和资源性能模式的性能是很难实现的。
为了克服这一挑战,我们提出了云仿真平台cloudsim∶一个可伸缩的仿真工具集可实现云计算系统和应用供应环境的模拟与仿真。Cloudsim都支持云计算系统组件的系统和行为建模,例如数据中心,虚拟机和资源调度策略等。它可以快速简易的实现一般的应用调度技术。目前,cloudsim都支持单一网络和交互网络组成的云计算环境的建模与仿真。此外,还实现了为基于交互网络云计算场景分配虚拟资源的政策和调度提供了通用接口。许多诸如来自USA的HP Lab组织的研究者都使用cloudsim用于对云资源调度和数据中心节能管理的研究。通过一个案例研究基于Cloudsim平台证明了基于混杂云环境下应用服务的动态调用的有效性。案例研究结果表明联合云计算模型大大改善了动态资源和服务需求模型下的应用QoS需求。

结论和未来工作

近来在设计和开发云计算技术上,我们集中在为有效管理云基础设施定义新颖方法、政策和机制上。为了测试这些新开发方法和政策,研究员需要新的工具来支持他们将先前的假设应用到实验的实际部署上,这样以实现重复测试。
基于仿真的方法在评估云计算系统和应用行为上提供众多好处,因为他们允许开发者∶
(1)以无成本方式在一个可重复和可控制的环境下测试他们的供应和服务传递策略的性能;
(2)在部署到真实的商业云环境之前调整性能瓶颈。
为了满足这些条件,我们开发CloudSim工具用于模拟和仿真可扩展的云。作为一个完整自定义工具,它允许在软件所有组件策略的扩展和定义,这使它成为一款更适合研究的工具用来处理仿真环境中的复杂性。在未来的工作进展中,为了更好仿真当前可用的公共云,我们计划将新的费用和供应策略考虑进去。
至于未来其他研究方向还包括∶
(1)工作负载模式
(2)数据库服务建模,如blob,SQL等
(3)在VM和云等级上对QoS监测
(4)公共云费用模式对面向经济资源供应研究的支持。

总结及思考

实验回顾

本次实验,我使用CloudSim云仿真的案例CloudSimExample,并阅读了论文CloudSim论文“CloudSim∶一个模拟与仿真云计算环境和评估资源调度算法的工具集”

思考题:CloudSim创建云数据中心

思考并描述使用CloudSim创建一个云数据中心并在其上运行一个Cloudlet的步骤流程:

1.初始化CloudSim包
2.创建数据中心
(1)创建主机列表
(2)创建PE列表
(3)创建PE并将其添加到上一步创建的PE列表中,可对其ID和MIPS进行设置
(4)创建主机,并将其添加到主机列表中,主机的配置参数有ID、内存、带宽、存储、PE及虚拟机分配策略(时间或空间共享)
(5)创建数据中心特征对象,用来存储数据中心的属性,包含体系结构、操作系统、机器列表、分配策略(时间、空间共享)、时区以及各 项费用(内存、外存、带宽和处理器资源的费用)
(6)最后,创建一个数据中心对象,它的主要参数有名称、特征对象、虚拟机分配策略、用于数据仿真的存储列表以及调度间隔
3.创建数据中心代理:数据中心代理负责在云计算中根据用户的QoS 要求协调用户及服务供应商和部署服务任务
4.创建虚拟机:对虚拟机的参数进行设置,主要包括ID、用户ID、MIPS、CPU数量、内存、带宽、外存、虚拟机监控器、调度策略,并提交给任务代理
5.创建Cloudlet:创建指定参数的Cloudlet,设定任务的用户ID,并提交给任务代理。在这一步可以设置需要创建的Cloudlet数量以及任务长度等信息
6.在这一步调用自定义的任务调度策略,分配任务到虚拟机
7.启动仿真
8.在仿真结束后统计结果


[编辑本段]Turbo C2.0    介绍      Turbo C2.0不仅是一个快捷、高效的编译程序,同时还有一个易学、易用的集成开发环境。使用Turbo C2.0无需独立地编辑、编译和连接程序,就能建立并运行C语言程序。因为这些功能都组合在Turbo 2.0的集成开发环境内,并且可以通过一个简单的主屏幕使用这些功能。    基本配置要求   Turbo C 2.0可运行于IBM-PC系列微机,包括XT,AT及IBM 兼容机。此时要求DOS2.0或更高版本支持,并至少需要448K的RAM,可在任何彩、单色80列监视器上运行。支持数学协处理器芯片,也可进行浮点仿真,这将加快程序的执行。 [编辑本段]Turbo C 2.0的主要文件的简单介绍   INSTALL.EXE 安装程序文件   TC.EXE 集成编译   TCINST.EXE 集成开发环境的配置设置程序   TCHELP.TCH 帮助文件   THELP.COM 读取TCHELP.TCH的驻留程序README 关于Turbo C的信息文件   TCCONFIG.EXE 配置文件转换程序MAKE.EXE   项目管理工具TCC.EXE   命令行编译TLINK.EXE   Turbo C系列连接器TLIB.EXE   Turbo C系列库管理工具C0?.OBJ 不   同模式启动代码C?.LIB   不同模式运行库GRAPHICS.LIB   图形库EMU.LIB   8087仿真库FP87.LIB 8087库   *.H Turbo C头文件   *.BGI 不同显示器图形驱动程序   *.C Turbo C例行程序(源文件)   其中:上面的?分别为:T Tiny(微型模式)S Small(小模式)C Compact(紧凑模式)M Medium(中型模式)L Large(大模式)H Huge(巨大模式)    Turbo C++ 3.0   “Turbo C++ 3.0”软件是Borland公司在1992年推出的强大的——C语言程序设计与C++面向对象程序设计 的集成开发工具。它只需要修改一个设置选项,就能够在同一个IDE集成开发环境下设计和编译以标准 C 和 C++ 语法设计的程序文件。 [编辑本段]C 语言   C语言起始于1968年发表的CPL语言,它的许多重要思想都来自于Martin Richards在1969年研制的BCPL语言,以及以BCPL语言为基础的与Ken Thompson在1970年研制的B语言。Ken Thompson用B语言写了第一个UNIX操作系统。M.M.Ritchie1972年在B语言的基础上研制了C语言,并用C语言写成了第一个在PDP-11计算机上研制的UNIX操作系统。1977年出现了独立于极其的C语言编译文本《看移植C语言编译程序》,从而大大简化了把C语言编译程序移植到新环境中所做的工作,这本身也就使UNIX的日益广泛使用,C语言也迅速得到推广。   1983年美国国家标准化协会(ANSI)根据C语言问世以来的各种版本,对C语言的发展和扩充制定了新的标准,成为ANSI C。1987年ANSI又公布了新标准————87ANSI C。   目前在微型计算机上使用的有Microsoft C、Quick C、Turbo C等多种版本。这些不同的C语言版本,基本部分是相同的,但是在有关规定上有略有差异。   C 语言发展如此迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C 语言加上一些汇编语言子程序, 就更能显示C 语言的优势了,象PC- DOS ,WORDSTAR等就是用这种方法编写的。归纳起来C 语言具有下列特点:   1. C是中级语言   它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。   2. C是结构式语言   结构式语言的显著特点是代码及数据的分隔化, 即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C 语言是以函数形式提供给用户的, 这些函数可方便的调用, 并具有多种循环、条件语句控制程序流向, 从而使程序完全结构化。   3. C语言功能齐全   C 语言具有各种各样的数据类型, 并引入了指针概念, 可使程序效率更高。另外C 语言也具有强大的图形功能, 支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大, 可以实现决策目的。   4. C语言适用范围大   C 语言还有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。   C语言的优点很多,但是也存在一些缺点,如运算优先级太多,运算能力方面不像其它高级语言那样强,语法定义不严格等。但是这些都不能阻止C语言成为一门广受欢迎的计算机编程语言
Turbo C2.0 介绍   Turbo C2.0不仅是一个快捷、高效的编译程序,同时还有一个易学、易用的集成开发环境。使用Turbo C2.0无需独立地编辑、编译和连接程序,就能建立并运行C语言程序。因为这些功能都组合在Turbo 2.0的集成开发环境内,并且可以通过一个简单的主屏幕使用这些功能。 基本配置要求   Turbo C 2.0可运行于IBM-PC系列微机,包括XT,AT及IBM 兼容机。此时要求DOS2.0或更高版本支持,并至少需要448K的RAM,可在任何彩、单色80列监视器上运行。支持数学协处理器芯片,也可进行浮点仿真,这将加快程序的执行。 主要文件的简单介绍   INSTALL.EXE 安装程序文件   TC.EXE 集成编译   TCINST.EXE 集成开发环境的配置设置程序   TCHELP.TCH 帮助文件   THELP.COM 读取TCHELP.TCH的驻留程序README 关于Turbo C的信息文件   TCCONFIG.EXE 配置文件转换程序MAKE.EXE   项目管理工具TCC.EXE   命令行编译TLINK.EXE   Turbo C系列连接器TLIB.EXE   Turbo C系列库管理工具C0?.OBJ 不   同模式启动代码C?.LIB   不同模式运行库GRAPHICS.LIB   图形库EMU.LIB   8087仿真库FP87.LIB 8087库   *.H Turbo C头文件   *.BGI 不同显示器图形驱动程序   *.C Turbo C例行程序(源文件)   其中:上面的?分别为:T Tiny(微型模式)S Small(小模式)C Compact(紧凑模式)M Medium(中型模式)L Large(大模式)H Huge(巨大模式)
### 回答1: 在 TURBO C 2.0 中,您可以使用 biosdisk() 函数来格式化软盘。 下面是一段代码示例: ``` #include <stdio.h> #include <dos.h> int main() { // 定义扇区的大小 unsigned int sector_size[3] = {512, 512, 1024}; // 定义填充字节 unsigned char fill_char[3] = {0xF6, 0xF6, 0x48}; // 格式化磁道 700 的前三个扇区 for (int i = 0; i < 3; i++) { int result = biosdisk(2, 0, 70, 0, i + 1, 1, sector_size[i], fill_char[i]); if (result != 0) { printf("格式化扇区 %d 失败,返回码: %d\n", i + 1, result); } } return 0; } ``` 请注意,在使用 biosdisk() 函数之前,需要包含 dos.h 头文件。 希望这能帮到您! ### 回答2使用TURBO C 2.0语言,可以通过以下代码格式化软盘的70磁道0面,并分别格式化3个扇区,大小分别为512字节、512字节和1024字节。其中,前两个扇区使用F6填充,第三个扇区使用48填充。 ```c #include<stdlib.h> #include<stdio.h> #include<dos.h> void formatFloppyDisk(){ union REGS regs; regs.h.ah = 0x0;// To format a floppy disk, we set AH=0 regs.h.dl = 0;// Drive number (0=A, 1=B, etc.) regs.x.cx = 0;// Track number to format regs.h.dh = 0;// Head number regs.h.al = 0;// Sector size (0=default, 1=512 bytes, 2=1024 bytes, 3=2048 bytes etc.) int FILL_BYTE = 0;// The byte value to fill the sectors with during formatting int NUM_SECTORS = 3;// Number of sectors to format // To format 70th track 0th head regs.x.ax = 0x1301; // 0x13 = Reset disk system, 01H = Reset only specified drive int86(0x13, &regs, &regs); // BIOS interrupt to reset disk system for (int i=0; i<NUM_SECTORS; i++){ regs.x.ax = 0x3101; // 0x31 = Write Format, 01H = Format only current track regs.x.bx = 0x0001; // 0x00 = Drive A:, 01H = Head 1, 0 = Generate ID Field depending on the disk in the drive 1 = Keep the ID Field all zeros regs.x.cx = 0x0170; // Track number=70(0-79 range) regs.h.dh = 0x00; // Head number=0 or 1 regs.h.al = 0x02; // Control byte=always zero regs.x.dx = i+1; // Sector number starting from 1 regs.x.si = 0x0000; // segment and offset of read/write buffer regs.x.di = 0x0000; // segment and offset of result if(i == 2){ FILL_BYTE = 0x48; // Fill the third sector with 48 regs.x.ax = 0x3102; // 0x31 = Write Format, 02H = Format sequential tracks immediately following the one being formatted }else{ FILL_BYTE = 0xF6; // Fill the first two sectors with F6 } regs.h.ah = FILL_BYTE; // Fill the sector with specified byte int86(0x13, &regs, &regs); // BIOS interrupt to format the specified sector } } int main(){ formatFloppyDisk(); return 0; } ``` 上述代码使用了INT 0x13,即BIOS中断服务例程,来执行软盘格式化操作。通过设置寄存器的不同参数,可以指定要格式化的磁道、面、扇区大小和填充字节。在这个例子中,我们格式化了软盘70磁道0面的3个扇区,前两个扇区使用F6填充,第三个扇区使用48填充。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值