modsim biblioteki

background image

Metody symulacyjne

Metody symulacyjne

J

Ę

ZYK SYMULACYJNY MODSIM

biblioteki

biblioteki

background image

Plan prezentacji

Plan prezentacji



Wybrane biblioteki:

– IOMod – operacje wejścia/wyjścia

– RandMod – generowanie liczb pseudolosowych

– StatMod – monitory statystyczne

– ListMod – zarządzanie złożonymi strukturami z

rekordami

– GrpMod –zarządzanie złożonymi strukturami z

obiektami

– SimMod – operacje związane z symulacją

background image

IOMod

IOMod –

– operacje wejścia/wyjścia (1/4)

operacje wejścia/wyjścia (1/4)



Typ wyliczeniowy dla trybu pracy strumienia
danych

FileUseType

= (

Input

,

Output

,

InOut

,

Append

,

Update

,

CreateBinary

);

– tryb tekstowy strumienia danych: InPut, OutPut,

– tryb tekstowy strumienia danych: InPut, OutPut,

InOut, Append,

– tryb binarny: Update, CreateBinary,

background image

IOMod

IOMod –

– operacje wejścia/wyjścia (2/4)

operacje wejścia/wyjścia (2/4)

PROCEDURE ReadKey() : CHAR;

PROCEDURE FileExists(IN fname: STRING) : BOOLEAN;

PROCEDURE DeleteFile(IN fname: STRING);

PROCEDURE FileSize(IN fname: STRING) : INTEGER;

StreamObj = OBJECT

StreamObj = OBJECT

eof: BOOLEAN;

ioResult: INTEGER;

fileName: STRING;

ASK METHOD Open(IN fname: STRING; IN ioDirection: FileUseType);

ASK METHOD Close;

ASK METHOD Delete;

ASK METHOD IsOpen() : BOOLEAN;

background image

IOMod

IOMod –

– operacje wejścia/wyjścia (3/4)

operacje wejścia/wyjścia (3/4)

ASK METHOD ReadChar(OUT ch: CHAR);

ASK METHOD ReadInt(OUT n: INTEGER);

ASK METHOD ReadReal(OUT x: REAL);

ASK METHOD ReadString(OUT str: STRING);

ASK METHOD ReadLine(OUT str: STRING);

ASK METHOD ReadLine(OUT str: STRING);

ASK METHOD ReadBlock(IN buffer: ANYREC; IN size: INTEGER;

IN blocknum : INTEGER);

background image

IOMod

IOMod –

– operacje wejścia/wyjścia (4/

operacje wejścia/wyjścia (4/4

4))

ASK METHOD WriteChar(IN ch: CHAR);

ASK METHOD WriteInt(IN num, fieldwidth: INTEGER);

ASK METHOD WriteHex(IN num, fieldwidth: INTEGER);

ASK METHOD WriteReal(IN num: REAL; IN fieldwidth, precision: INTEGER);

ASK METHOD WriteExp(IN num: REAL; IN fieldwidth, precision: INTEGER);

ASK METHOD WriteString(IN str: STRING);

ASK METHOD WriteString(IN str: STRING);

ASK METHOD WriteLn;

ASK METHOD WriteBlock(IN buffer : ANYREC; IN size: INTEGER;

IN blocknum: INTEGER);

ASK METHOD GetPosition() : INTEGER;

ASK METHOD Position(IN moveTo: INTEGER);

END OBJECT;

background image

RandMod

RandMod –

– generowanie liczb

generowanie liczb

pseudolosowych (1/3)

pseudolosowych (1/3)

PROCEDURE Random() : REAL;

PROCEDURE FetchSeed(IN SimscriptSeedNumber: INTEGER) : INTEGER;

RandomObj = OBJECT

originalSeed,

currentSeed: INTEGER;

currentSeed: INTEGER;

antithetic: BOOLEAN;

ASK METHOD Sample() : REAL;

ASK METHOD SetSeed(IN NewSeed: INTEGER);

ASK METHOD Reset();

background image

RandMod

RandMod –

– generowanie liczb

generowanie liczb

pseudolosowych (2/3)

pseudolosowych (2/3)

ASK METHOD UniformReal(IN lo, hi: REAL) : REAL;

ASK METHOD UniformInt (IN lo, hi: INTEGER) : INTEGER;

ASK METHOD Exponential(IN mean: REAL) : REAL;

{mean > 0}

ASK METHOD Normal(IN mean, sigma: REAL) : REAL;

{sigma > 0}

{sigma > 0}

ASK METHOD Gamma(IN mean, alpha : REAL) : REAL;

{mean, alpha > 0}

ASK METHOD Beta(IN alpha1, alpha2 : REAL) : REAL;

{alpha1, alpha2 > 0}

ASK METHOD Triangular(IN min, mean, max : REAL) : REAL;

{min < mean < max}

background image

RandMod

RandMod –

– generowanie liczb

generowanie liczb

pseudolosowych (3/

pseudolosowych (3/3

3))

ASK METHOD Erlang(IN mean : REAL; IN K : INTEGER): REAL;

{mean, K > 0}

ASK METHOD LogNormal(IN SDev, Mean : REAL): REAL;

{mean > 0}

ASK METHOD Weibull(IN shape,scale : REAL) : REAL;

{shape, scale > 0}

{shape, scale > 0}

ASK METHOD Poisson(IN mu : REAL) : INTEGER;

{mu > 0}

ASK METHOD Binomial( IN n : INTEGER; IN p : REAL) : INTEGER;

{n (liczba prób) and p (prawdopodobieństwo) n, p > 0}

END OBJECT;

background image

StatMod

StatMod –

– monitory statystyczne (1/4)

monitory statystyczne (1/4)

Typ tablicowy dla histogramów



histogram = ARRAY INTEGER OF REAL;

Klasa bazowa dla monitorów statystycznych



StatObj = OBJECT

Count : INTEGER;

Count : INTEGER;

Sum : REAL;

SumOfSquares : REAL;

low, high, interval: INTEGER;

ASK METHOD SetHistogram(IN Low: INTEGER;

IN High: INTEGER; IN Interval : INTEGER);

background image

StatMod

StatMod –

– monitory statystyczne (2/4)

monitory statystyczne (2/4)

ASK METHOD GetHistogram() : histogram;

ASK METHOD Mean() : REAL;

ASK METHOD MeanSquare() : REAL;

ASK METHOD Variance() : REAL;

ASK METHOD StdDev() : REAL;

ASK METHOD StdDev() : REAL;

ASK METHOD Reset;

PRIVATE

Histogram : histogram;

END OBJECT;

background image

StatMod

StatMod –

– monitory statystyczne (3/4)

monitory statystyczne (3/4)

Typy monitorów statystycznych



IStatObj – monitor statystyczny zmiennych typu INTEGER



ITimedStatObj – monitor statystyczny (ważony czasem)
zmiennych typu INTEGER



RStatObj – monitor statystyczny zmiennych typu REAL



RStatObj – monitor statystyczny zmiennych typu REAL



RTimedStatObj – monitor statystyczny (ważony czasem)
zmiennych typu REAL

background image

StatMod

StatMod –

– monitory statystyczne (4/

monitory statystyczne (4/4

4))

Typy liczbowe monitorowane (statystycznie)



SINTEGER = LMONITORED INTEGER BY IStatObj;



TSINTEGER = LMONITORED INTEGER BY ITimedStatObj;



BINTEGER = LMONITORED INTEGER BY IStatObj,
ITimedStatObj;

ITimedStatObj;



SREAL = LMONITORED REAL BY RStatObj;



TSREAL = LMONITORED REAL BY RTimedStatObj;



BREAL = LMONITORED REAL BY RStatObj, RTimedStatObj;

background image

ListMod

ListMod –

– zarządzanie złożonymi

zarządzanie złożonymi

strukturami z rekordami (1/3)

strukturami z rekordami (1/3)



Klasy kontenerów:

– QueueList

– StackList

– RankedList

– BTreeList

– StatQueueList

– StatStackList

– StatRankedList

– StatBTreeList

background image

ListMod

ListMod –

– zarządzanie złożonymi

zarządzanie złożonymi

strukturami z rekordami (2/3)

strukturami z rekordami (2/3)

Metody wszystkich klas:



ASK METHOD Includes(IN candidate: ANYREC) : BOOLEAN;



ASK METHOD Add(IN NewMember : ANYREC);



ASK METHOD Remove() : ANYREC;



ASK METHOD First() : ANYREC;

ASK METHOD First() : ANYREC;



ASK METHOD Last() : ANYREC;



ASK METHOD Next(IN candidate: ANYREC) : ANYREC;



ASK METHOD Prev(IN candidate: ANYREC) : ANYREC;



ASK METHOD RemoveThis(IN member: ANYREC);



ASK METHOD AddBefore(IN ExistingMember, NewMember:ANYREC);



ASK METHOD AddAfter(IN ExistingMember, NewMember: ANYREC);

background image

ListMod

ListMod –

– zarządzanie złożonymi

zarządzanie złożonymi

strukturami z rekordami (3/

strukturami z rekordami (3/3

3))

Metody tylko dla list uporządkowanych:



ASK METHOD Rank (IN a, b : ANYREC) : INTEGER;

{metoda musi być nadpisana}

Metody tylko dla klas BTree:

ASK METHOD SetOrder(IN degree : INTEGER);



ASK METHOD SetOrder(IN degree : INTEGER);

{ustawia porządek, gdy nie ma elementów w strukturze}



ASK METHOD Key(IN object : ANYREC) : STRING;

{metoda musi być nadpisana}



ASK METHOD Find(IN key : STRING) : ANYREC;

background image

SimMod

SimMod –

– zarządzanie symulacją (1/4)

zarządzanie symulacją (1/4)

Obiekt do synchronizacji procesów:



TriggerObj = OBJECT

WAITFOR METHOD Fire;

TELL METHOD Trigger;

ASK METHOD Release;

ASK METHOD Release;

ASK METHOD InterruptTrigger;

ASK METHOD NumWaiting() : INTEGER;

PRIVATE

triggerList: ANYOBJ;

END OBJECT;

background image

SimMod

SimMod –

– zarządzanie symulacją (2/4)

zarządzanie symulacją (2/4)

Procedury:



PROCEDURE StartSimulation;



PROCEDURE StopSimulation;

{anuluje wszystkie oczekujące aktywności i zwraca sterowanie
do pierwszej instrukcji po StartSimulation}

do pierwszej instrukcji po StartSimulation}



PROCEDURE NumActivities(IN object : ANYOBJ) : INTEGER;



PROCEDURE NumObjPending() : INTEGER;



PROCEDURE NumActPending() : INTEGER;



PROCEDURE NumWAITFOR() : INTEGER;



PROCEDURE ResetSimTime(IN newtime : REAL);



PROCEDURE ActivityOwner(IN activity : ACTID) : ANYOBJ;

background image

SimMod

SimMod –

– zarządzanie symulacją (3/4)

zarządzanie symulacją (3/4)



PROCEDURE ScheduledTime(IN activity : ACTID) : REAL;

{zwraca chwilę wznowienia podanej aktywności}



PROCEDURE ActivityName(IN activity: ACTID) : STRING;



PROCEDURE InterruptMethod(IN activity : ACTID);



PROCEDURE Interrupt(IN object : ANYOBJ;

PROCEDURE Interrupt(IN object : ANYOBJ;

IN methName : STRING);



PROCEDURE InterruptWaitingFor(IN activity : ANYREC);

{interrupts the most imminent activity with that method name}

background image

SimMod

SimMod –

– zarządzanie symulacją (4/

zarządzanie symulacją (4/4

4))



PROCEDURE InterruptAll(IN object : ANYOBJ);



PROCEDURE PendingListDump(IN DoActList: BOOLEAN);

{dumps the pending list showing each object on it. if DoActList is true, it also
dumps each object's activity list}



PROCEDURE PendingListDumpToStream(IN doActivityList :

BOOLEAN; IN stream : StreamObj);

BOOLEAN; IN stream : StreamObj);



PROCEDURE ActivityListDump(IN ProcObj: ANYOBJ);



PROCEDURE SimTime() : REAL;


Wyszukiwarka

Podobne podstrony:
modsim-biblioteki
modsim biblioteki
Modsim Skladnia
Biblioteki naukowe gromadzenie
bibliografia 4
OPRACOWANIE FORMALNE ZBIORÓW W BIBLIOTECE (książka,
Fotografia Bibliografia
III semestr INiB Teoria i organizacja bibliografi0003
biblioterapia zestawienie
Modul matem bibliografia
Apollodoros Bibliotheke ksiega I id 67143 (2)
biblioterapia
ocena ryzyka dla bibliotekarza
03 Polska Bibliografia Narodowa Biezacaid 4445
Linki bibliotek

więcej podobnych podstron