jazyk dsi

23
Jazyk DSI

Upload: lydie

Post on 06-Jan-2016

28 views

Category:

Documents


0 download

DESCRIPTION

Jazyk DSI. Simulační objekty. Aktivity Fronty Pooly Vyhybky Jméno objektu: max 20 znaků, začíná písmenem, obsahuje jen písmena a číslice, odlišné od klíčových slov. Popis entity (poolu). e ntity < jmeno > ; entity < jmeno > attrib < jmeno >,… : typ ; < jmeno >,… : typ ; end; - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Jazyk DSI

Jazyk DSI

Page 2: Jazyk DSI

Simulační objekty

• Aktivity• Fronty• Pooly• Vyhybky– Jméno objektu: max 20 znaků, začíná písmenem,

obsahuje jen písmena a číslice, odlišné od klíčových slov

Page 3: Jazyk DSI

Popis entity (poolu)

entity <jmeno> ;

entity <jmeno> attrib <jmeno>,… : typ; <jmeno>,… : typ;end;

Typy atributů: int, real, bool, str (max 20 znaků)

Page 4: Jazyk DSI

Příklad popisu entit

entity Zakaznik;

entity Prodavac attrib jmeno:str:20; cislo:int; obedval: bool; snidal, svacil: bool:5;end;

Page 5: Jazyk DSI

Popis aktivityactivity <jmeno> channels <cislo> load [<cislo><jmeno entity> from <fronta|pool>]* [compute <prikaz jayzka Pascal> ::] after <vyraz typu Real> :: eject [<jmeno entity> to <fronta|vyhybka|pool>]end;

Page 6: Jazyk DSI

Poznámky k popisu aktivity

• channels 0 znamená neomezený počet kanálů obsluhy.

• Je-li uvedena část compute, provede se daný výpočet na začátku práce aktivity

• Klauzulí after může být i více

Page 7: Jazyk DSI

Příklad popisu aktivity

Activity PlaceniUPokladny channels 3 load 1 Prodavac from Prodavaci 1 Zakaznik from qZak 1 Kosik from qKosiky compute Prodavac^.unava:=Prodavac^.unava+1 after Prodavac^.unava+4 eject Kosik to qKosiky after Prodavac^.unava+5 eject Zakaznik to pool,Prodavac to Prodavaciend;

Page 8: Jazyk DSI

Popis fronty

queue <jmeno> of <jmeno entity> <rezim> [signal to <aktivita>,<aktivita,…]• Frontové režimy– Fifo– Lifo– Random– Prior <atribut> (čím menší hodnota, tím dříve)

Page 9: Jazyk DSI

Klauzule signal to

• Je-li uvedena, předávají se signály následujícím simulačním objektům v uvedeném pořadí.

• Předání signálu ovlivňuje pořadí spouštění aktivit.

• Není-li uvedena, je předávání signálů náhodné

Page 10: Jazyk DSI

Popis vyhýbky

Switch <jmeno> for <entita> [case <logicky vyraz> :: <fronta|vyhybka|pool>]* otherwise <fronta|vyhybka|pool>

Page 11: Jazyk DSI

Vyhýbka

• Podmínky se vyhodnocují v pořadí shora dolů• Část otherwise je povinná (i když občas ze

sémantického hlediska nemůže nastat)• Někdy je vhodné před vyhýbku zařadit aktivní

prvek (aktivitu) s krátkou, nebo nulovou dobou trvání a v její části compute provést rozhodovací algoritmus

Page 12: Jazyk DSI

Segmenty jazyka Pascal

declarations <deklarace typu a promennych>::on start <prikaz> ::on write <prikaz>::

Page 13: Jazyk DSI

Část declarations

• Umožňuje definovat globální proměnné použitelné ve všech simulačních objektech

• Umožňuje definovat vlastní procedury a funkce (například generátor pseudonáhodných čísel s nějakým nestandardním rozložením)

Page 14: Jazyk DSI

Část on start

• Popíše činnosti, které se mají provést na začátku simulace systému

Page 15: Jazyk DSI

Část on write

• Popíše činnosti, které se mají provést ihned po spuštění řídícího příkazu write (například lze naprogramovat výpis vlastních složitějších statistik)

• Výstupní protokol je definován jako textový soubor s jménem FOU.

Page 16: Jazyk DSI

Generování pseudonáhodných čísel

• Random – rovnoměrné rozdělení od 0 do 1• Uniform(a,b) – rovnoměrné rozdělení od a do b• NegExp(strhodnota) – exponenciální rozdělení• Normal(strhodnota,rozptyl) – normální• intUniform(i,j) – celočíselné rovnoměrné

rozdělení od i do j

Page 17: Jazyk DSI

Standardní funkce

• Time – modelový čas• contents (q) – počet entit ve frontě• BusyChannels(a) – počet obsazených kanálů v

aktivitě• hasFreeChannels(a) – má aktivita volný kanál?

(logická hodnota)

Page 18: Jazyk DSI

Počáteční stav front (Příkaz v inicializačním souboru)

queue <fronta> <pocet>

queue <fronta> [entity <atribut> <hodnota>

<atribut> <hodnota> … //]* end

Page 19: Jazyk DSI

Inicializace generátorů náhodných čísel

• radomize <cislo>• randomize time• Není-li uvedeno, inicializuje se generátor

hodnotou určenou ze systémového času, ta je zapsána do výstupního protokolu

Page 20: Jazyk DSI

Řízení simulace

• step• steps <pocet kroku>• next <delka casoveho intervalu>• till <cas preruseni simulace>

Page 21: Jazyk DSI

Ladicí informace

• debug on• Debug off

• Do protokolu se zapisuje velmi podrobný a velmi dlouhý výpis o činnosti systému

Page 22: Jazyk DSI

Výpis stavu systému

• show – výpis na obrazovku• write – zápis do protokolu (soubor *.out)

Page 23: Jazyk DSI

Řízení simulace

• menu – vyvolá interaktivní menu• file – předá řízení inicializačnímu souboru• quit – ukončení simulace• Klávesa Esc – přerušení simulace

• Pokud soubor *.ini neexistuje, nebo v něm není další vykonatelný příkaz, předá se řízení interaktivnímu menu.