• OPNET仿真机制


      OPNET采用离散事件仿真的模拟机理,通过执行离散事件仿真,对各种模拟系统的行为及其性能进行分析。只有网络状态发生变化(即有事件发生)时,模拟机才工作,仿真时间的推进依赖于事件的发生;如果一段时间内没有发生任何事件,仿真时间将停留在上次事件发生的时刻,直到下一个事件发生,模拟机才开始工作,仿真时间跳过这段时间,直接到达有事件需要执行的时刻。相比于连续时间仿真,离散事件仿真依赖于事件驱动,很大程度提高了模拟机的仿真效率。

      对于离散事件仿真来说,事件的执行时不需要花费任何时间。事件的执行时一个时间点,而不是一个时间段。

      离散事件的仿真核心实质上是一个事件调度器,它对所有希望执行的事件及其时间列表进行维护。通常事件调度器对其列表中的事件按照先入先出(First In First Out,FIFO)的准则进行调度。但是,因为有可能在同一个时刻点会希望发生多个事件,并且我们会期望这些事件按照一定的顺序发生,所以,在OPNET中,事件列表是具有优先级的。通过设置事件的优先级,我们可以规划同一时刻事件的调度顺序。

      离散事件驱动的模拟机理决定了OPNET的时间推进机制。如图3.1所示。

      仿真核心在t1时刻处理完当前事件X后,就将X从事件列表中删除,并且获得下一个希望被执行的事件Y;同时,仿真时间推进到事件Y的执行时刻t2。若t2=t1,则事件Y对仿真时间的推进没有任何贡献。另外,不能为过去的时间规划一个事件。例如, t3<t4,当前仿真时间为t4,但是却为t3时刻规划了一个事件,这是不被允许的。

    仿真时间的推进依据系统设计的逻辑,随着事件的发生而单调递增。下面两种情况会导致仿真结束:

    • 仿真时间已经推进到预设的结束时间;
    • 事件列表为空。
  • 相关阅读:
    JAVA面试常见问题之开源框架和容器篇
    JAVA面试常见问题之Redis篇
    JDK8日期时间操作小汇总
    JAVA面试常见问题之数据库篇
    JAVA面试常见问题之设计模式篇
    JAVA面试常见问题之锁机制篇
    JAVA面试常见问题之进程和线程篇
    JAVA面试常见问题之常见集合篇
    JAVA面试常见问题之基础篇
    洛谷P1315 观光公交
  • 原文地址:https://www.cnblogs.com/jingjingblog/p/6349946.html
Copyright © 2020-2023  润新知