【理論】使用iFogSim進行模擬


使用iFogSim進行模擬

前置條件:需有iFogSim環境,和對iFogSim的基礎概念有所了解。可閱讀前兩篇文章。

  1. 首先需要創建特定配置的物理組件,配置的參數包括ram,處理器性能(每秒百萬指令),每百萬之令運行的消耗,上行和下行帶寬,根據分層等級划分的忙碌和空閑功耗。
/* 創建霧設備接口 */
private static FogDevice createFogDevice(String nodeName,
                                         long mips,
                                         int ram,
                                         long upBw,
                                         long downBw,
                                         int level,
                                         double ratePerMips,
                                         double busyPower,
                                         double idlePower)

在創建底層級的霧設備時,關聯的IoT設備(傳感器和驅動器)也需要創建,代表着感應間隔的Transmit Distribution對象在創建IoT傳感器時需要設置,此外傳感器和驅動器的創建需要引用application id 和 broker id。

/*創建傳感器接口*/
public Sensor(String name,
              String tupleType,
              int userId,
              String appId,
              Distribution transmitDistribution)

/*創建驅動器接口*/
public Actuator(String name,
                int userId,
                String appId,
                String actuatorType)
  1. 第二步需要創建必須的邏輯組件AppModule, AppEdge和AppLoop。在創建AppModules時,其配置已經提供並且AppEdge對象包含了關於元組類型的信息,它們的方向,cpu和線路網長度伴隨着資源的引用和目標模塊。不同類型的元組基於AppEdge對象指定的規范進行創建。
/*AppModule的創建接口*/
public AppModule(int id,
                 String name,
                 String appId,
                 int userId,
                 double mips,
                 int ram,
                 long bw,
                 long size,
                 String vmm,
                 CloudletScheduler cloudletScheduler,
                 Map<Pair<String, String>, SelectivityModel> selectivityMap)

/*AppEdge的創建接口*/
public AppEdge(String source,
               String destination,
               double tupleCpuLength,
               double tupleNwLength,
               String tupleType,
               int direction,
               int edgeType)

/*AppLoop的創建接口*/
public AppLoop(List<String> modules)
  1. 最后管理組件(Module Mapping)被初始化出用來定以不同調度方式和AppModule的放置策略。用戶在分配AppModules到霧設備時可以定義總消耗量,服務延遲,網絡使用,操作損耗和設備差異並且可以相應的繼承抽象的模塊映射(Module Mapping)類。根據AppEdges的信息,一個AppModule需要分配指定的對應的元組類型並且能夠滿足可用的霧資源。一旦AppModule和霧設備完成映射,物理組件和邏輯組件的信息會被送往控制對象。隨后控制對象將整個系統提交到CloudSim引擎作模擬。
/*控制組件的創建接口*/
public Controller(String name,
                  List<FogDevice> fogDevices,
                  List<Sensor> sensors,
                  List<Actuator> actuators)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM