modsim biblioteki

background image

Metody symulacyjne

JĘZYK SYMULACYJNY MODSIM

biblioteki

background image

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 – 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, InOut, Append,

– tryb binarny: Update, CreateBinary,

background image

IOMod – 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
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 – 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 ReadBlock(IN buffer: ANYREC; IN size: INTEGER;

IN blocknum : INTEGER);


background image

IOMod – operacje wejścia/wyjścia

(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 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 – generowanie liczb

pseudolosowych (1/3)

PROCEDURE Random() : REAL;
PROCEDURE FetchSeed(IN SimscriptSeedNumber: INTEGER) :

INTEGER;

RandomObj = OBJECT

originalSeed,
currentSeed: INTEGER;
antithetic: BOOLEAN;

ASK METHOD Sample() : REAL;
ASK METHOD SetSeed(IN NewSeed: INTEGER);
ASK METHOD Reset();

background image

RandMod – generowanie liczb

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}

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 – generowanie liczb

pseudolosowych (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}

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 – monitory statystyczne

(1/4)

Typ tablicowy dla histogramów

histogram = ARRAY INTEGER OF REAL;

Klasa bazowa dla monitorów

statystycznych

StatObj = OBJECT
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 – 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 Reset;

PRIVATE

Histogram : histogram;

END OBJECT;

background image

StatMod – 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

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

background image

StatMod – monitory statystyczne

(4/4)

Typy liczbowe monitorowane

(statystycznie)

SINTEGER = LMONITORED INTEGER BY IStatObj;

TSINTEGER = LMONITORED INTEGER BY
ITimedStatObj;

BINTEGER = LMONITORED INTEGER BY IStatObj,
ITimedStatObj;

SREAL = LMONITORED REAL BY RStatObj;

TSREAL = LMONITORED REAL BY RTimedStatObj;

BREAL = LMONITORED REAL BY RStatObj,
RTimedStatObj;

background image

ListMod – zarządzanie złożonymi

strukturami z rekordami (1/3)

Klasy kontenerów:

– QueueList
– StackList
– RankedList
– BTreeList
– StatQueueList
– StatStackList
– StatRankedList
– StatBTreeList

background image

ListMod – zarządzanie złożonymi

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 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 – zarządzanie złożonymi

strukturami z rekordami (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);

{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 – zarządzanie symulacją

(1/4)

Obiekt do synchronizacji procesów:

TriggerObj = OBJECT
WAITFOR METHOD Fire;
TELL METHOD Trigger;
ASK METHOD Release;
ASK METHOD InterruptTrigger;
ASK METHOD NumWaiting() : INTEGER;
PRIVATE

triggerList: ANYOBJ;

END OBJECT;

background image

SimMod – zarządzanie symulacją

(2/4)

Procedury:

PROCEDURE StartSimulation;

PROCEDURE StopSimulation;
{anuluje wszystkie oczekujące aktywności i zwraca
sterowanie 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 – 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;

IN methName : STRING);

PROCEDURE InterruptWaitingFor(IN activity :
ANYREC);

{interrupts the most imminent activity with that method

name}

background image

SimMod – zarządzanie symulacją

(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);

PROCEDURE ActivityListDump(IN ProcObj:
ANYOBJ);

PROCEDURE SimTime() : REAL;


Document Outline


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