modsim smo

background image

Metody symulacyjne

Przykład symulacji funkcjonowania SMO

background image

Przykład symulacji oddziału bankowego

Zasymulować funkcjonowanie systemu obsługi

klientów pewnego oddziału bankowego (okienka

kasowego), którego schemat przedstawia poniższy

rysunek (SMO). Przy czym:

λ – intensywność napływu klientów do oddziału (strumień

Poissona),

L – długość kolejki w oddziale,

M – liczba kanałów równoległej obsługi,

μ – intensywność kanału obsługi (rozkład czasu obsługi

wykładniczy).

λ

M=1

L

μ

background image

Symulator SMO (1/8)

MAIN MODULE

Smo;

FROM

SimMod

IMPORT

StartSimulation, SimTime, StopSimulation;

FROM

RandMod

IMPORT

RandomObj;

FROM

StatMod

IMPORT

IStatObj, ITimedStatObj, TSINTEGER,

SREAL, RStatObj;

FROM

IOMod

IMPORT

StreamObj, ALL FileUseType;

FROM

ListMod

IMPORT

QueueList;

TYPE

Kolejka =

OBJECT

(QueueList);

FORWARD

;

OtoczenieObj =

OBJECT

(RandomObj)

lambda: REAL;

kolejka: KolejkaObj;

liczbaKlientow: INTEGER;

ASK METHOD

Init(IN lbd: REAL; IN kol: KolejkaObj;

IN lk: INTEGER);

TELL METHOD

GenerujKlientow();

END OBJECT

;

background image

Symulator SMO (2/8)

GniazdoObj =

OBJECT

(RandomObj)

mi: REAL;
kolejka: KolejkaObj;
zajete: BOOLEAN;
czasObslugi: SREAL;

ASK METHOD

Init(IN m: REAL; IN kol: KolejkaObj);

TELL METHOD

Obsluguj();

END OBJECT

;

KlientRec =

RECORD

czasWej: REAL;

END RECORD

;

background image

Symulator SMO (3/8)

KolejkaObj =

OBJECT

(QueueList)

maxDlugosc: INTEGER;
gniazdo: GniazdoObj;
dlugosc: TSINTEGER;

ASK METHOD

Init(IN maxdl: INTEGER;

IN gnd: GniazdoObj);

ASK METHOD

Wstaw(klient: KlientRec);

END OBJECT

;

background image

Symulator SMO (4/8)

OBJECT

OtoczenieObj

ASK METHOD

Init(IN lbd: REAL; IN kol: KolejkaObj;

IN lk: INTEGER);

BEGIN

lambda := lbd;
liczbaKlientow := lk;
kolejka := kol;

END METHOD

;

TELL METHOD

GenerujKlientow();

VAR

i: INTEGER;

kl: KlientRec;

BEGIN

FOR i := 1 TO liczbaKilentow

WAIT DURATION Exponential(1.0 / lambda)

ON INTERRUPT

END WAIT;

NEW(kl);

ASK kolejka TO Wstaw(kl);

END FOR;

END METHOD

;

END OBJECT

;

background image

Symulator SMO (5/8)

OBJECT

GniazdoObj

ASK METHOD

Init(IN m: REAL; IN kol: KolejkaObj);

BEGIN

mi := m;

kolejka := kol;

END METHOD

;


TELL METHOD

Obsluguj();

VAR

kl: KlientRec;

BEGIN

zajete := TRUE;
WHILE ASK kolejka TO numberIn > 0
kl := ASK kolejka TO Remove();
WAIT DURATION Exponential(1.0 / mi)
ON INTERRUPT
END WAIT;
czasObslugi := SimTime – kl.czasWej;
DISPOSE(kl);
END WHILE;
zajete := FALSE;

END METHOD

;

END OBJECT

;

background image

Symulator SMO (6/8)

OBJECT

KolejkaObj

ASK METHOD

Init(IN maxdl: INTEGER; IN gnd: GniazdoObj);

BEGIN

maxDlugosc := maxdl;

gniazdo := gnd;

END METHOD

;

ASK METHOD

Wstaw(klient: KlientRec);

BEGIN

IF maxDlugosc > numberIn

INC(dlugosc);

klient.czasWej := SimTime;

Add(klient);

IF NOT ASK gniazdo TO zajete

TELL gniazdo TO Obsluguj;

END IF;

ELSE

DISPOSE(klient);

END IF;

END METHOD

;

END OBJECT

;

background image

Symulator SMO (7/8)

VAR
gen: GeneratorObj;
gzd: GniazdoObj;
kol: KolejkaObj;
plik: StreamObj;
monITS: ITimedStatObj;
monRS: RStatObj;

BEGIN

NEW(gen);
NEW(gzd);
NEW(kol);
ASK gen TO Init(1.5, kol, 1000);
ASK gzd TO Init(2.0, kol);
ASK kol TO Init(10, gzd);
TELL gen TO GenerujKlientow();
StartSimulation;

background image

Symulator SMO (8/8)

NEW(plik);
ASK plik TO Open(„wyniki.txt”, Output);
ASK plik TO WriteString(„srednia dlugosc kolejki: ”);
monITS := GETMONITOR(ASK kol TO dlugosc, ITimedStatObj);
ASK plik TO WriteReal(ASK monITS TO Mean, 10, 4);
ASK plik TO WriteLn;
ASK plik TO WriteString(„sredni czas obslugi klienta: ”);
monRS := GETMONITOR(ASK gzd TO czasObslugi, RStatObj);
ASK plik TO WriteReal(ASK monRS TO Mean, 10, 4);
ASK plik TO WriteLn;
ASK plik TO Close;
DISPOSE(plik);
DIPOSE(gen);
DIPOSE(gzd);
DIPOSE(kol);

END MODULE

.


Document Outline


Wyszukiwarka

Podobne podstrony:
modsim-smo
Modsim Skladnia
modsim biblioteki
modsim monitory
DarP Modsim w 3
symulacja modsim grafika i animacja
modsim-biblioteki
modsim obiekty id 305582 Nieznany
DarP Modsim w 5 8
modsim
pamięci ta¶mowe?ycja 03 cz 5
modsim podstawy
DarP Modsim w 2
modsim symulacja
modsim skladnia id 305585 Nieznany
Modsim Obiekty
lab SMO
symulacja modsim monitory
Modsim Skladnia

więcej podobnych podstron