Click here to load reader

Uvod v laboratorijske vaje - · PDF file• Je orodje za modeliranje računalniških omrežij. • Omogoča modeliranje protokolov. • Omogoča enostavno modeliranje zelo obsežnih

  • View
    215

  • Download
    1

Embed Size (px)

Text of Uvod v laboratorijske vaje - · PDF file• Je orodje za modeliranje računalniških...

  • Modeliranje raunalnikih omreij

    Uvod v laboratorijske vaje

    OMNeT++Moduli, Omreja in Modeli

    etrtek, 8.oktobra2015

  • Osnovni podatki

    2

    Prof. Miha Mraz ([email protected])

    As. Mattia Petroni ([email protected])

    Spletna uilnica: https://ucilnica.fri.uni-lj.si

    - Forum

    - Obvestila

    - Literatura

    - Navodila za izdelavo seminarskih nalog

    mailto:[email protected]:[email protected]://ucilnica.fri.uni-lj.si/

  • 3

    Pogoji za opravljanje predmeta(pravila igre in ocenjevanje)

    50% sprotno delo na vajah

    uspeno opravljen 1. seminar 15%(poroilo + zagovor = pogoj za opravljanje 2. seminarja) IN

    uspeno opravljen 2. seminar 35 % (v skupini)(sprotno-tedensko poroanje + poroilo + zagovor)

    50% izpit

    pisni izpit

    ustni izpit

  • 4

    Do 14. novembra: primeri uporabe orodja OMNeT++ in zagovor prvega seminarja.

    V nadaljevanju: tedenske VAJE-KONZULTACIJE poroanje o napredku pri izdelavi drugega seminarja. Natanna asovnica bo objavljena na uilnici naknadno.

    Vaje (asovnica)

  • 5

    1. seminar: modeliranje in simuliranje osnovnih omreij z uporabo osnovnih konceptov Teorije Strebe in osnovnih modulov v knjinicah orodja OMNeT++.

    2. seminar: modeliranje in simuliranje kompleksnejega (realnega) omreja in podrobna performanna analiza omreja na osnovi knjinice INET.

    Seminarji

  • 6

    Kratka programerska naloga

    Obvezna oddaja poroila na spletni uilnici v formatu PDF. Poroila naj bodo izdelana v orodju Latex!Hint: uporabljaj orodje Texmaker ali TeXnicCenter in prevajalnik PDFLatex.

    Kratek zagovor na vajah. Komentiranje rezultatov, preverjanje pravilnosti modela, etc.

    Zagovor prvega seminarja

  • 7

    Razdelitev v skupine (max 3. tudente/skupino)

    Vsak seminar predstavlja eno poglavje v knjigi

    Vsa poglavja bomo na koncu semestra zdruili v celoto

    Izdelava drugega seminarja(a.k.a. poglavje v knjigi)

  • Izdelava drugega seminarja (nadalj.)

    Obvezna oddaja tedenskega poroila o napredku v asu konzultacijah/vaj.

    Vsako poroilo vsebuje eden ali ve sestavkov poglavja

    Obvezna oddaja konnega poroila/poglavja na spletni uilnici.

    Kratka (max 10 minut) predstavitev rezultatov seminarja na vajah.

    8

  • Modeliranje raunalnikih omreij

    9

    Nartovanje omreja

    Postavitev omejitve omreja

    Simulacija

    Performanna analiza

  • 10

    Je orodje za modeliranje raunalnikih omreij.

    Omogoa modeliranje protokolov.

    Omogoa enostavno modeliranje zelo obsenih omreij (angl. large-scale networks).

    NI simulator temve ponuja infrastrukturo za pisanje in poganjanje simulacij (zasnovan na orodju Eclipse).

    IDE + GUI za poganjanje simulacij.

    Vsebuje konfigurabilno simulacijsko ogrodje (simulationframework).

    Je objektno orientirano (object oriented).

    Temelji na diskretnih dogodkih (discrete events).

    Omogoa modularno modeliranje.

    OMNeT++

  • 11

    Programiranje

    NED (glej User Manual, poglavje 3)

    C++

    OMNeT++

  • 12

    Dokumentacija: http://www.omnetpp.org/documentation

    User Manual: http://www.omnetpp.org/doc/omnetpp/Manual.pdf

    IDE User Guide: http://www.omnetpp.org/doc/omnetpp/UserGuide.pdf

    Starting with IDE: http://www.omnetpp.org/doc/omnetpp/IDE-Overview.pdf

    Hitri uvod: http://www.omnetpp.org/pmwiki/index.php?n=Main.OmnetppInNutshell

    Enostavni primer: http://www.omnetpp.org/doc/omnetpp/tictoc-tutorial/

    OMNeT++

    http://www.omnetpp.org/documentationhttp://www.omnetpp.org/doc/omnetpp/Manual.pdfhttp://www.omnetpp.org/doc/omnetpp/UserGuide.pdfhttp://www.omnetpp.org/doc/omnetpp/IDE-Overview.pdfhttp://www.omnetpp.org/pmwiki/index.php?n=Main.OmnetppInNutshellhttp://www.omnetpp.org/doc/omnetpp/tictoc-tutorial/

  • 13

    Objektno usmerjen programski jezik

    Raziritev jezika C

    Uporaba zglavnih datotek (angl. header files konnica .h)

    v njih deklariramo razrede in njihove atribute ter metode

    in izvornih datotek (angl. source files konnica .cc)

    v njih definiramo in opiemo metode razredov

    Programiranje v C++

  • 14

    Objektno usmerjen jezik omogoa zelo modularnoprogramiranje

    Na osnovi manjih modulov lahko zgradimo kompleksnejepodatkovne in funkcionalne strukture

    Primer:

    Objekt Router vsebuje lahko atribut Switch in atribut WiFi.Switch je pa objekt, ki lahko vsebuje atribut (tabela) Port[] in metodo forward( Port port, Message m).

    Vsak objekt torej predstavlja zakljueno celoto oz. modul, ki galahko naprej uporabljamo za gradnjo kompleksnejih objektov.

    Programiranje v C++

  • 15

    dva tipa modulov: glede na gnezdenje (nesting)

    enostavni (simple) moduli

    sestavljeni (compound) moduli

    enostavne module

    programiramo sami (C++; OMNeT++ simulation class library)

    obstajajo e napisani moduli (razline knjinjice, zgledi)

    Objekti v orodju OMNeT++ - Moduli

  • 16

    povezovanje preko vrat (gates)

    vhodne, izhodne in dvosmerne

    povezovanje vrat preko povezav (connections)

    komunikacija preko sporoil (message passing)

    Povezovanje modulov v omreje

  • 17

    Z jezikom NED definiramo:

    paket (package)

    ime modula

    tip modula (compound ali simple)

    tipe (types)

    parametre modula (parameters)

    vrata (gates: in, out, in/out)

    podmodule (submodules): samo pri modulih, ki niso simple

    povezave (connections): med podmoduli

    Opisovanje modulov v omreju (NED)

  • 18

    Opisovanje modulov v omreju (NED)

    package ime_paketa;

    module/simple ime_modula // module = compound

    // simple = brez podmodulov

    {

    types:

    // tipi

    parameters:

    // parametri

    gates:

    // vrata, ki so lahko in, out ali inout

    submodules:

    // samo pri compound modulih

    modul1: TipPodmodula;

    modul2: TipPodmodula;

    ...

    connections:

    // povezave med podmoduli samo pri compound

    }

  • 19

    doloimo delovanje modula

    samo za preproste (simple) module

    programiranje na podlagi dogodkov (events)

    podrobneje na naslednjih vajah

    Opisovanje/definicija delovanjamodulov (C++)

  • 20

    predstavljen z omreji (networks)

    omreja so sestavljena iz modulov in povezav med njimi

    model opisujemo na dveh nivojih

    v jeziku NED (ned datoteke)

    v datoteki omnetpp.ini

    Z dvonivojskim opisovanjem loimo model od eksperimentov

    na ned datoteko gledamo kot na del modela

    na ini datoteko gledamo kot na definicije eksperimentov

    Model omreja v OMNeT++

  • 21

    Model omreja v OMNeT++

    Vrednosti parametrov, ki so definirane v ned datotekah ne morejo biti povoene z vrednostmi v ini datotekah!

  • 22

    Z jezikom NED definiramo posamezno omreje (network), in sicer:

    uporabo zunanjih modulov (import)

    ime omreja

    tipi (types)

    parametre (parameters)

    podmodule (submodules)

    povezave med podmoduli (connections)

    lastnosti (properties) - @ime_lastnosti

    Opisovanje modela omreja (NED)

  • 23

    Zgled: M/M/1 sistem - SimpleQueue.ned

    import org.omnetpp.queueing.Queue;

    import org.omnetpp.queueing.Sink;

    import org.omnetpp.queueing.Source;

    //

    // This simple queueing network only contains a source, a FIFO queue

    and a sink.

    //

    network SimpleQueue

    {

    parameters:

    @display("i=block/network2");

    submodules:

    sink: Sink {

    @display("p=273,101");

    }

    queue: Queue {

    @display("p=165.0,79.0");

    }

    source: Source {

    @display("p=50.0,79.0");

    }

    connections:

    source.out --> queue.in++;

    queue.out --> sink.in++;

    }

  • 24

    Opisovanje modela omreja

    import ... // za zunanje module (niso v istem projektu)

    network Network1

    {

    types:

    // tipi

    parameters:

    // parametri omreja

    submodules:

    // moduli, ki nastopajo v omreju

    connections:

    // povezave med podmoduli

    }

    network Network2

    {

    ...

    }

  • 25

    lahko vsebuje ve omreij

    omnetpp.ini je razdeljen na dva dela:

    [General]: tu lahko doloamo trajanje simulacije (sim-time-limit), doloamo omreje (e je

    samo eno)

    [Config imeKonfiguracije]: doloa posamezno

    konfiguracijo oziroma omreje lahko jih je ve

    Opisovanje modela (omnetpp.ini)

  • 26

    [General]

    // ce imamo samo eno omrezje

    network = ImeOmrezja

    // parametri

    // ce imamo vec omrezji

    [Config ImeKonfiguracije1]

    description = "opis konfiguracije 1"

    network = ImeOmrezja1

    // parametri

    [Config ImeKonfiguracije2]

    description = "opis konfiguracije 2"

    network = ImeOmrezja2

    // parametri

    Zgled (omnetpp.ini)

  • 27

    deklariramo jih lahko v sestavljenih modulih in omrejih

    vidni so samo znotraj komponente

    definirajo tipe kanalov (channels) in modulov

    types:

    channel mojKanal extends ned.DatarateChannel

    { datarate = 100Mbps; }

    Tipi (Types)

  • 28

    v C++ izvorni kodi preprostih modulov lahko doloene spremenljivke/konstante veemo na parametre

    x = par("imeParametra");

    doloanje vrednosti parametrov:

    v ned datoteki modula,

    v ned datoteki omreja,

    v datoteki omentpp.ini (e vrednost ni doloena v ned datotekah)

    ob zagonu simulac