2011-10-25

NS-3

(Al het volgende is gebaseerd op de laatste stabiele versie namelijk 3.12).

Er zijn verschillende queues geimplementeerd, allen in C++. Voor zover ik kan zien
geen fancy automatisch switching tussen queue implementaties ofzo. De queue
kan gekozen worden met --SchedulerType=MyTypeId command line
switch, default is de std::map queue.


  • Calendar Queue ( src/core/model/calendar-scheduler.{cc,h} ). Implementatie
    van het originele "Calendar Queues: A Fast O(1) Priority Queue Implementation for
    the Simulation Event Set Problem", Randy Brown met originele policy. Merk op: veel trager dan verwacht door de auteur, waarschijnlijk door slechte resizing policies. Een
    stuk trager dan bv de std::map queue.

  • Heap queue ( src/core/model/heap-scheduler.{cc,h} ).
    Straightforward binaire heap.

  • std::list queue ( src/core/model/list-scheduler.{cc,h} ).
    Triviale implementatie.

  • std::map queue ( src/core/model/map-scheduler.{cc,h} ).
    Gebaseerd op een idee in de Georgia Tech Network Simulator (GTNetS). Dit
    vereist wel dat er op de keys een absolute ordering zit (zonder
    duplicates).

  • NS-2 Calendar Queue (
    src/core/model/ns2-calendar-scheduler.{cc,h} ).
    De NS-2 Calendar
    Scheduler die iets vager is dan de NS-3 Scheduler.

  • Realtime Scheduler (
    src/core/model/realtime-simulator-impl.{cc,h} en
    src/core/model/wall-clock-synchronizer.{cc,h} ).
    Zie
    http://www.nsnam.org/docs/manual/html/realtime.html. Minder relevant voor
    onze doeleinden afaik.

Geen opmerkingen:

Een reactie posten