成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用Cloudsim實現基于多維QoS的資源調度算法

云計算 算法
Cloudsim是一款開源的云計算仿真軟件,它繼承了網格計算仿真軟件Gridsim的編程模型,支持云計算的研究和開發。它是一個自足的支持數據中心、服務代理人、調度和分配策略的平臺,支持大型云計算的基礎設施的建模與仿真,并且可以在Windows和Linux上跨平臺運行。

Cloudsim是一款開源的云計算仿真軟件,它繼承了網格計算仿真軟件Gridsim的編程模型,支持云計算的研究和開發。它是一個自足的支持數據中心、服務代理人、調度和分配策略的平臺,支持大型云計算的基礎設施的建模與仿真,并且可以在Windows和Linux上跨平臺運行。

本文介紹的是利用Cloudsim云仿真平臺對資源調度算法進行仿真。其中包括Cloudsim環境的配置,資源調度算法的嵌入和仿真結果的分析。

一、配置Cloudsim環境

1、首先介紹Cloudsim環境的配置

1.1、Cloudsim的運行需要Java環境,所以需要下載JDK和Cloudsim

JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

Cloudsim:http://code.google.com/p/cloudsim/downloads/

1.2、JDK的安裝和配置

http://jingyan.baidu.com/article/f96699bb8b38e0894e3c1bef.html

注意安裝路徑不要出現漢字,否則運行程序時可能會出現未知錯誤。

1.3、Cloudsim的安裝和配置

將下載的Cloudsim解壓縮,解壓路徑中也不要出現漢字。比如:D:\program files\。在環境變量ClassPath中加入D:\program files\cloudsim-3.0.3\jars\cloudsim-3.0.3.jar;

D:\program files\cloudsim-3.0.3\jars\cloudsim-examples-3.0.3.jar;

D:\program files\cloudsim-3.0.3\jars\cloudsim-3.0.3-sources.jar;

D:\program files\cloudsim-3.0.3\jars\cloudsim-examples-3.0.3-sources.jar;

至此已經完成Cloudsim的配置

1.4、安裝eclipse,并將Cloudsim平臺導入eclipse

解壓縮得到的是一個Java工程,即Cloudsim仿真平臺。因為cloudsim是開源的,所以給我們提供了它的所有源碼。我們可以根據自己的需要,修改Cloudsim,重新編譯,獲得符合自己需求自己的仿真平臺。而使用eclipse工具能更便利的開發。eclipse的安裝過程不再贅述。本文只簡單說明導入Cloudsim過程。

打開eclipse,新建Java Project。取消Use default location選項。將cloudsim的路徑加入。單擊Finish即可。如下圖:

使用Cloudsim實現基于多維QoS的資源調度算法

此時cloudsim的正個項目代碼都已經導入到新建工程中,Cloudsim自帶了一些示例程序,選擇任意一個運行,將會在Console窗口打印程序運行狀態。若果配置沒有出錯,會出現類似下圖情況。

使用Cloudsim實現基于多維QoS的資源調度算法

此時Cloudsim的環境搭建已經完成。下一步就是在Cloudsim平臺上實現自己的資源調度算法了。

#p#

二、實現基于多維QoS的資源調度算法

1.Cloudsim體系結構及核心類

CloudSim是一款云計算仿真軟件,其由澳大利亞墨爾本大學網格實驗室和Gridbus項目于2009年推出,它是一個函數庫,可在Windows和Linux系統上跨平臺運行,CloudSim的體系結構主要分為四個層次,如圖1所示:

使用Cloudsim實現基于多維QoS的資源調度算法

圖1 Cloudsim 體系結構

Cloudsim仿真層為云計算的虛擬數據中心環境的配置和仿真提供支持,包括虛擬機、內存、容量及帶寬的接口,該層用于主機分配到虛擬機的策略研究,并通過擴展核心的虛擬機調度函數實現。

Cloudsim最上層是用戶代碼層,該層提供一些基本的實體,如主機、應用、虛擬機,用戶數和應用類型,以及代理調度策略等。通過擴展這些實體,云應用開發人員可以在該層開發各種用戶需求分布、應用配置、云可用性場景等應用調度技術,并執行Cloudsim支持的云配置的Robust測試。

通過擴展Cloudsim提供的基本功能,研究者能基于特定環境和配置進行測試,完成云計算關鍵技術的開發研究。

CloudSim繼承了GridSim并支持云計算的研究和開發,CloudSim的組件工具均為開源的。其中CloudSim具有兩個獨特功能:

***,提供虛擬化的引擎,使用戶可在數據中心的節點上建立和管理獨立的、協同的虛擬化服務;

第二,在對虛擬化服務分配處理核心時,可在時間共享和空間共享之間靈活切換。

在CloudSim函數庫中有幾個主要核心類,如表1所示:

 

使用Cloudsim實現基于多維QoS的資源調度算法

表1 Cloudsim主要核心類

2.Cloudsim工作模型

在云數據中心,將特定應用的虛擬機分配給主機由虛擬機分配控制器(VmAllocationPolicy)完成,Cloudsim在主機層和虛擬機層都實現了基于時間共享和空間共享的調度策略。

通常情況下,來自不同用戶的任務相對獨立,假設有m個用戶User={User1, User2,…, Userm},n個任務Task={t1,t2,…,tn},n個虛擬化資源VM={VM1,VM2,…VMn},以及p個數據中心 Datacenter={Datacenter1, Datacenter2,…Datacenterp},Cloudsim的工作模型如圖2所示:

使用Cloudsim實現基于多維QoS的資源調度算法

圖2 Cloudsim的工作模型

其中,CIS(Cloud Information Service)將用戶請求映射到合適的云服務提供商,DatacenterBroker模擬SaaS提供商代理,根據QoS的需求協商資源和服務的分配策略。VmScheduler是實現主機組件的抽象類,模擬虛擬機的分配調度策略,擴展此抽象類能調整處理器的共享策略。 VmAllocationPolicy代表虛擬機監視器調度策略,該策略用于將虛擬機分配給主機。

3.實現基于多維QoS的資源調度算法

開始仿真模擬時,首先需要創建一個數據中心,然后再數據中心中創建CPU、內存等資源,此時只需要向代理中心注冊資源信息,用戶就可以使用數據中心的資源進行仿真模擬。

在仿真資源分配試驗中,其步驟及其各個步驟中的代碼如下:

(1) 初始化Cloudsim包,代碼如下:

  1. Int num_user= 1 ; //定義用戶數量 
  2. Calendar calendar=Calendar.getInstance(); 
  3. boolean trace_flag=false
  4. CloudSim.init(num_user, calendar, trace_flag); //初始化CloudSim包 

(2)創建數據中心(Datacenter),代碼如下所示:

  1. DataCenter datacenter()=createDatacenter("Datacenter_0"); 

(3) 創建數據中心代理(Broker),代碼如下所示:

  1. DatacenterBroker broker=createBroker(); 
  2. Int brokerId=broker.get_id(); 

(4) 創建虛擬機,代碼如下所示:

  1. vmlist=new VirtualMachineList(); //創建虛擬機列表 
  2. Vmvm=new Vm(vmid, brokerld, mips, PesNumber, ram, bw, size, 
  3. vmm,new CloudletSchedulerTimeShared()); //創建虛擬機 
  4. vmlist.add(vm); //加入虛擬機列表 
  5. broker.submitVMList(vmlist);//提交虛擬機列表 

(5) 創建云任務,代碼如下所示:

  1. cloudletList = new CloudletList();//創建云任務列表 
  2. Cloudlet cloudlet=new Cloudlet(id, length, file_size, output_size); 
  3. cloudlet.setUserlD(brokerld); 
  4. …… 
  5. cloudletList.add(cloudlet); //將任務加入任務列表 
  6. …… 
  7. broker.submitCloudletList(cloudletList);//向代理提交任務列表 

(6) 執行資源調度算法,完成任務到虛擬機的映射,代碼如下所示:

  1. broker. bindCloudletsToVms(); 

(7) 啟動仿真程序,代碼如下所示:

  1. CloudSim.startSimulation(); 

(8) 打印仿真結果,代碼如下所示:

  1. List<Cloudlet> newList = broker.getCloudletReceivedList(); 
  2. CloudSim.stopSimulation(); 
  3. printCloudletList(newList); 

注:任務到虛擬機的映射是由DatacenterBroker類中的bindCloudletsToVms()函數實現。該函數根據不同的策略來實現任務的映射。在《云計算》劉鵬著的示例中,提供了兩種映射算法,一種是作業順序分配的算法、另一種是以總完成時間最短為導向的貪心算法。本人的目標是基于多維QoS的資源調度算法,所以重載了云任務Cloudlet類,在類中增加了與QoS相關的屬性,比如資源需求、QoS 需求、作業優先級等。然后在資源分配函數中根據這些屬性的值,選定分配策略,來完成任務到虛擬機的映射。另外個人認為,在資源調度層面,并不需要指定每維 QoS的具體來源、具體意義,映射算法中只需要將其作為一個參數做相應的運算即可。

博文出處:http://blog.csdn.net/hanchaoqi/article/details/36043879

http://blog.csdn.net/hanchaoqi/article/details/36199299

 

責任編輯:Ophira 來源: 個人博客
相關推薦

2024-10-21 09:18:47

2010-08-12 15:38:39

IT運維網管軟件摩卡軟件

2025-01-03 17:07:23

2015-05-05 09:37:29

OpenStackNova資源統計

2009-12-03 11:22:07

路由器功能指標

2022-02-18 17:34:47

數組多維五維數組

2021-02-22 07:58:45

算法進程調度

2022-06-13 14:31:02

資源調度鴻蒙

2023-04-26 15:36:51

WPA鴻蒙

2022-06-27 10:25:55

Kubernetes調度CPU

2012-04-23 13:53:26

帶寬QoS

2011-09-05 14:07:07

linux系統QOS限速路由

2010-03-23 17:18:50

云計算資源調度

2012-01-16 09:00:18

云計算高性能計算

2017-01-04 14:41:16

Sku多維判斷算法

2023-11-22 13:18:02

Linux調度

2012-09-28 10:18:53

IBMdw

2024-08-26 14:54:54

2024-06-07 14:01:29

2024-12-16 07:41:35

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲色欲色欲www | 成人黄色在线 | 亚洲视频在线一区 | 久久99精品久久久久久 | 亚洲精品久久久久久久久久久 | 91极品视频 | 欧美日韩亚洲视频 | 日韩小视频 | 国产91综合 | 亚洲精品乱码久久久久久按摩观 | 人人操日日干 | 亚洲精品久久久久久宅男 | 国产免费一区二区三区 | 99久久精品免费看国产小宝寻花 | 日韩中文一区二区三区 | 欧美不卡一区二区三区 | 国产一区欧美 | 国产目拍亚洲精品99久久精品 | 免费电影av| 久久国产精品免费一区二区三区 | 国产中文字幕在线 | 99re热精品视频 | 日韩精品成人 | 18gay男同69亚洲网站 | 久久亚洲二区 | 亚洲成人日韩 | 欧美不卡| 毛色毛片免费看 | 欧美日本一区二区 | 国产精品日韩 | 国产成人精品一区二 | 欧美亚洲国语精品一区二区 | 久久av资源网 | 美女爽到呻吟久久久久 | 毛片大全 | 在线看亚洲 | 精品久久久久久久人人人人传媒 | 天天操夜夜操 | 黄色欧美大片 | 欧美精品在欧美一区二区少妇 | 欧美视频在线看 |