peersim中CDSimulator和EDSimulator部分代码案例分析

来源:互联网 发布:手机淘宝网页版网址 编辑:程序博客网 时间:2024/06/04 19:37

周期驱动CDSi代码案例分析:

for I = 1 to simulation.experimentsdo      //仿真实验从1开始

   createNetwork           //创建网络

   createprototype Node     //创建协议 节点

     forI = 1 to #protocol do   //协议号从1开始

         create protocol instance   //创建协议案例

   forj = 1 to network.size do  //网络大小从1开始

     cloneprototype Node into Network   //网络是由节点组成

   createcontrols(initializers,dynamics,observers) //监控(初始化,动态性,观测者)

   executeinitializers    //执行初始化

   fork = 1 to simulation.cycles do        //仿真周期从1开始

      forj = 1 to network.size do    //网络大小从1开始

        for p= 1 to #protocols  //网络大小从1开始

           execute Network.get(j).getProtocol(p).nextCycle( )  //在下一周期网络中第j个节点使用第p个协议

      executecontrols          //执行控制

      if (one control returned true) then   //如果控制返回true

        break

 

事件驱动EDSimulator代码案例分析:

for I = 1 to simulation.experimentsdo   //仿真实验从1开始

      initialize MinHeap events        //初始化最小堆事件

   

      createNetwork                //创建网络      

      createprotocol Node           // 创建协议 节点

              for I = 1 to #protocol do  //协议号从1开始

                    create protocol instance   //创建协议案例

      forj = 1 to network.size do     //网络大小从1开始

            clone prototype Node into Network //克隆协议节点加入到网络

      createcontrol (initializers,dynamics,observers)   //监控(初始化,动态性,观测者)

      executeinitializers   //执行初始化

     

      time =0    //时间为0

      while (time< simulation.endtime) do //当仿真时间没有到截至时间

            (node,pid,e)= events.getMin( ) ;   //获得MinHeap中的protocolID的节点

            Node.getProtocol(pid).processEvent(node,pid,event)  //获得事件中的protocolID节点

            If(event is a control that returned true) then   //如果控制事件返回true

           break    

0 0
原创粉丝点击