Sunteți pe pagina 1din 27

PREFA...............................................................................................................

3
Descrierea interfeei de lucru a limbajului GPSS............................................6
World Student Version 5.2.1............................................................................6
Raportul Standard generat de GPSS Word............................................................10
Blocurile GPSS utilizate pentru elaborarea lucrrilor de laborator.......................16
Lucrarea de laborator nr. 1....................................................................................27
Lucrarea de laborator nr.2.................................................................................36
Lucrarea de laborator nr.3.................................................................................42
Lucrarea de laborator nr. 4................................................................................50
Bibliografie...........................................................................................................59

PREFA

Simularea este o tehnic de efectuare a


experimentelor cu ajutorul calculatorului, care implic
utilizarea unor modele matematice i logice ce
descriu comportarea unui sistem real (sau a unor
componente ale sale) de-a lungul unor perioade de
timp. Deci, simularea se realizeaz pe baza unui
model special, numit model de simulare, cu ajutorul
cruia se efectueaz experimentele prin intermediul
calculatorului. Modelul de simulare se construiete pe
scheletul unui model matematic i se finalizeaz ntr-
un algoritm.
Limbajele de simulare sunt att limbaje de
programare, ct i instrumente care faciliteaz
construcia modelelor de simulare. Utiliznd un astfel
de limbaj, analistul-programator va fi scutit de grija
construciei instrumentelor specifice simulrii, el
reuind astfel s se concentreze numai asupra
definirii elementelor specifice ale sistemului pe care l
3
modeleaz (tipurile de evenimente, componentele i
strile sistemului, definirea rspunsurilor la ntrebri
etc.).
Avantajele utilizrii limbajelor de simulare:
modelele se construiesc rapid, experimentele de
simulare de asemenea, se efectueaz rapid (sunt
experiene artificiale ce nu au nevoie de scurgerea
timpului fizic pentru a fi observate). Dezavantajele
constau n faptul c modelele de simulare realizate n
limbaj specializat sunt supuse unor restricii
determinate de posibilitile limitate ale acestora.
GPSS (General Purpose System Simulation) este un limbaj
pentru simularea modelelor. Orice sistem poate fi descris prin
intermediul unui numr determinat de elemente standarde aa-
zisele obiecte. Regulile logice care stau la baza sistemului pot fi
reduse la un set de operaii simple. Corespunztor, un limbaj de
modelare trebuie s fie alctuit din obiecte i operaii abstracte
(anexa 3). Cronometrarea i ordonarea evenimentelor se efectueaz
modelndu-se timpul modelului care ia valori ntregi. Prin urmare,
modelarea are un caracter discret.
Limbajul GPSS/PC a aprut n anul 1960 i este dezvoltat pn
n prezent. GPSS World este o versiune modern a limbajului
GPSS/PC. La baza limbajului GPSS Word se afl un interpretor cu
urmtoarele funcii:
a) asigurarea tranzaciilor;
b) planificarea evenimentelor;
c) prelucrarea evenimentelor n timp;
d) modificarea timpului modelului;
e) colectarea statisticii;
f) crearea unui raport final.
Tranzaciile sunt pri componente ale fluxurilor cercetate, care
parcurg structura fixat a modelului (ce const din obiecte ale altor
categorii) i care ndeplinesc un ir de operaii indicate. Dup
lansarea programului, pe parcursul execuiei, simulatorul genereaz
tranzaciile, exercit parcurgerea lor prin blocuri, ndeplinete

4
aciunile respective indicate n blocuri.
Att sistemul modelat, ct i algoritmul ce st la baza
funcionrii lui sunt descrise prin intermediul blocurilor, care sunt
activate de ctre tranzacii n momentul intrrii n ele. Orice
schimbare a strii sistemului se numete eveniment. Simulatorul
fixeaz timpul de apariie a evenimentelor, prelucrndu-le dup
acest timp.
Pentru meninerea corect a consecutivitii evenimentelor n
timp, n sistemul modelat funcioneaz ceasul de sistem, care indic
timpul de modelare. Indicaiile ceasului n orice moment de timp se
numete timpul absolut al modelului. Timpul absolut nu poate fi
schimbat de ctre utilizator. Exist la fel i timp relativ, care poate fi
schimbat cu ajutorul unor cartele speciale. Unitatea de msur a
timpului (sec., min., or, an .a.) se alege de ctre utilizator.
Simulatorul ns lucreaz cu uniti convenionale (timpul
modelului). El nu analizeaz starea sistemului n fiecare unitate de
timp, dar schimb valoarea timpului absolut, egalndu-l cu timpul
celui mai apropiat eveniment. Corespunztor, timpul de modelare
nu depinde de intervalul de timp n sistemul real, dar depinde de
numrul de evenimente prelucrate. n mod tradiional, un program
scris n termenii GPSS are urmtoarea form ( Fig. 1).
1 2 6 8 18 19 71
Eticheta Bloc / Cartela Operanzi / Cmpuri
;

Fig. 1. Formatul standard de scriere a programului de simulare n


limbajul GPSS Word

Pentru a scrie un program n GPSS se folosesc literele latine


[A..Z] i numerele [0..9], de asemenea, i simboluri speciale.
Cmpul operanzilor permite descrierea pn la 8 operanzi.
Poziia operanzilor este notat cu litere latine: A,B,C,D,E,F,G,H.
Operanzii sunt divizai prin virgul (ntrebuinarea spaiilor n
acest scop este interzis). La absena unui operand i prezena
informaiei dup el, acesta este identificat prin virgul. Dac dup
operand nu este o alt informaie virgula se omite.

5
Orice informaie n cmpul operanzilor dup spaiu este
considerat comentariu. Pentru nscrierea comentariilor lungi este
necesar ca n prima poziie a rndului s fie nscris semnul *. n
acest caz, rndul n ntregime este considerat comentariu i este
ignorat de ctre simulator.
Descrierea modelului ncepe cu cartela SIMULATE i se termin
cu cartela END.
Cartelele de control sunt nlocuite prin instruciuni, pentru
comunicarea interactiv cu sistemul. Instruciunea SIMULATE nu
este obligatorie la nceputul programului.
De regul, un program GPSS const din 3 pri:
Partea declarativ conine descrierea tuturor obiectelor utilizate
n model care necesit acest lucru (funcii, variabile, capacitatea EM
etc.), precum i starea iniial a comutatoarelor logice i valoarea
iniial a elementelor de memorie.
Pentru descrierea algoritmului de funcionare i a structurii
sistemului, n partea a doua a programului sunt utilizate blocurile
GPSS.
Partea a treia a programului conine cartele de control prin
intermediul crora are loc gestionarea procesului de modelare i
obinerea statisticii finale.

Descrierea interfeei de lucru a limbajului GPSS

World Student Version 5.2.1

La lansarea programului GPSS World se va accesa


C:\Temp\Student\GPSSWorld\gpss.exe dup care va aprea fereastra
principal care este prezentat n figura 2.

6
Fig. 2. Fereastra principal GPSS World

Obiectele modelului deja existent pot fi deschise prin dou


modaliti: dublu clic pe fiierul existent sau prin selectarea fiierului
folosind meniul File/Open din bara de meniuri.
Pentru crearea unui model nou, vom folosi meniul File/New (vezi
Fig. 3). Din caseta deschis alegem opiunea Model.

Fig. 3. Crearea unui model n GPSS World

Dup aceasta se va introduce programul, utiliznd cartelele GPSS.


Pentru a simula modelul, mai nti se verific de erori accesnd
meniul Command/Create Simulation. Dac vor exista erori, atunci
7
simulatorul indic linia i coloana acestei erori (Fig. 5).

Fig. 4. Rezultatul simulrii unui model corect n GPSS World

Dac nu exist erori, atunci simulatorul denot c modelul este


gata pentru simulare (Fig. 4), accesnd meniul Command /START i
indicnd numrul de tranzacii pentru care va fi simulat modelul.

Fig. 5. Rezultatul simulrii unui model greit n GPSS World


8
Fig. 6. Raportul Standard generat de simulatorul GPSS World

n urma simulrii vom primi un raport ce conine toate datele


despre modelul simulat (Fig. 6). Dac n modelul ce se simuleaz sunt
prezente tabele, atunci din meniul Window/Simulation Window vom
alege caseta Table Window din care se va genera interpretarea grafic
a tabelului cu toat informaia.
Meniul Window/SimulationWindow conine ferestre referitor la
deferite entiti ale modelului care permit a observa efectele simulrii
n timpul acesteia:
Blocks Window conine informaia despre blocurile utilizate
n model; dac aceast fereastr va fi deschis n timpul simulrii
atunci putem vedea calea tranzaciei de la un bloc la altul.
Expression Window sunt prezentate valorile expresiilor
calculate n model.
Facilities Window arat dinamica ocuprii dispozitivelor de
ctre tranzacii.
9
Logicswitches Window - arat dinamica folosirii cheilor logice.
Matrix Window prezentarea on-line a calculrii matricelor.
Plot Window prezentarea on-line a unui numr de expresii
mai mare de 8.
Queues Window dinamica ocuprii/eliberrii a firelor de
ateptare.
Savevalues Window dinamica prezentrii celulelor de
memorie.
StoragesWindow dinamica prezentrii elementelor de
memorie.
Table Window dinamica completrii tabelelor reprezentat n
form grafic.
O descriere mai detaliat este prezentat n Help limbajului, n
Tutorul manual.

Raportul Standard generat de GPSS Word


Rezultatele finale ale tuturor entitilor tradiionale GPSS sunt
expuse ntr-un raport standard, care se creeaz automat, atunci cnd
se finalizeaz simularea. Coninutul raportului standard al modelului
poate fi selectat prin urmtoarea cale Edit/Settings n meniul de baz.
Exemplu de raport (Raportul standard integral este prezentat n
anexa 2).
Titlul standard al raportului conine numele fiierului modelului
care a fost simulat. Data i ora de rulare a modelului este inclus
automat.
GPSS World Simulation Report - SAMPLE9.1.1
Tuesday June 6, 2011 14:00:59

10
Informaii generale

STARTTIME END TIME BLOCKS FACILITIES


STORAGES
0.000 5187.692 32 3 1

START TIME - timpul absolut al sistemului, la nceputul


perioadei de msurare.
END TIME - timpul absolut la sfritul perioadei de msurare.
BLOCKS - numrul de blocuri n model.
FACILITIES - numrul total de dispozitive n model.
STORAGES - numrul total de dispozitive multicanal i memorii
declarate n model.
Nume

NAME VALUE
ADDUP 10007.000
CHAIN1 10012.000
COLLECT 10017.000
FACILITY1 10011.000

NAME - numele atribuit de ctre utilizator n model.


VALUE - valoare numeric atribuit numelui. Sistemul atribuie
numere ncepnd cu 10000.

Blocuri

LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT


RETRY
GENERATE 61 1 0
JOIN 60 0 0
JOIN 60 0 0
SAVEVALUE 60 0 0
ASSIGN 60 0 0

11
LABEL - numele alfanumeric alocat blocului,
LOC - poziia numeric a blocului n model (locaia).
BLOCK TYPE - denumirea blocului n GPSS.
ENTRY COUNT - numrul tranzaciilor care au intrat n acest
bloc de la ultima aplicare a cartelei RESET (CLEAR) sau de la ultima
simulare a modelului.
CURRENT COUNT - numrul de tranzacii n bloc la sfritul
simulrii.
RETRY - numrul de tranzacii care ateapt o condiie special n
funcie de starea acestui bloc.

Dispozitive

FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND


INTER RETRY DELAY
FACILITY1 51 0.937 95.278 1 51 0 0 0 9
FACILITY2 51 0.853 86.719 1 51 0 0 0 0
FACILITY3 51 0.949 96.523 1 51 0 0 0 0

FACILITY - numrul sau numele dispozitivului.


ENTRIES - numrul de intrri n dispozitivul dat (de cte ori
dispozitivul a fost ocupat de blocurile SEIZE (PREEMPT) de la
ultima aplicare a cartelei RESET (CLEAR) sau de la ultima
simulare).
UTIL. - factorul de utilizare a dispozitivului care se calculeaz
pentru perioada de modelare de la ultima aplicare a cartelei RESET
(CLEAR) sau de la ultima simulare.
AVE. TIME. - timpul mediu de ocupare a dispozitivului de ctre
tranzacie, pentru perioada de simulare sau de la ultima aplicare a
cartelei RESET (CLEAR).
AVAIL. - disponibilitatea dispozitivului, pentru 1 - disponibil, 0
-nedisponibil.
OWNER - numrul de tranzacii ce au ocupat dispozitivul dat,
dac n drept cu numele dispozitivului st 0 atunci el nu a fost
ocupat de nici o tranzacie.
PEND - numrul de tranzacii care ateapt s preia acest
12
dispozitiv prin introducerea regimului de ntrerupere utiliznd
blocul PREEMPT.
INTER - numrul tranzaciei curente care a ntrerupt acest
dispozitiv. Contorul acestor tranzacii se afl n lanul ntreruperilor.
RETRY - numrul de tranzacii care ateapt o condiie special n
funcie de starea acestui dispozitiv.
DELAY - numrul de tranzacii care ateapt s ocupe (SEIZE)
dispozitivul. Acest lan, de asemenea conine tranzaciile care ateapt
s preia (PREEMPT) dispozitivul n regim prioritar.

Fire de ateptare (FA)

QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME


AVE.(-0) RETRY
TOT_PROCESS 11 10 60 0 6.439 556.700 556.700 0
PROCESS_TIME 1 1 51 0 0.660 67.112 67.112 0

QUEUE - numrul sau numele firului de ateptare.


MAX - coninutul maxim al FA pe parcursul modelrii sau de la
ultima aplicare a cartelei RESET (CLEAR).
CONT. - coninutul curent n FA la sfritul modelrii.
ENTRY - contorul intrrilor. Numrul total de intrri n FA pe
perioada de simulare.
ENTRY(0). - contorul intrri Zero. Numrul total de intrri n
FA cu timpul de reinere 0.
AVE.CONT. - timpul mediu ponderat al coninutului FA de-a
lungul perioadei de msurare. Produsul spaiu-timp mprit la timpul
perioadei de msurare.
AVE.TIME. - timpul mediu de aflare a unei tranzacii n FA.
AVE.(-0). - timpul mediu de aflare a unei tranzacii n FA, cu
excepia intrrilor zero.
RETRY. - numrul de tranzacii care ateapt condiii speciale n
dependen de starea FA.

Memoria

13
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL.
RETRY DELAY
POOL 400 400 0 150 5000 1 23.628 0.059 0 0

STORAGE - numele sau numrul unitii de memorie.


CAP. - memoria definit n cartela STORAGE.
REM. - numrul canalelor de memorie neutilizate la sfritul
simulrii.
MIN. - numrul minim de canale ale memoriei, utilizate n timpul
perioadei de msurare. Perioada de msurare ncepe cu simularea sau
utilizarea cartelelor RESET sau CLEAR.
MAX. - numrul maxim de canale ale memoriei utilizate n timpul
perioadei de msurare.
ENTRIES - numrul de intrri n canalele de memorie, de-a
lungul perioadei de msurare (acumularea total a operandului B din
blocul ENTER).
AVL. - starea de disponibilitate (acces) a canalelor de memorie la
sfritul simulrii (1 - disponibil, 0 - nedisponibil).
AVE.C. - timpul mediu ponderat al coninutului de memorie pe
parcursul perioadei de msurare.
UTIL. - factorul de utilizare a memoriei de-a lungul perioadei de
msurare.
RETRY. - numrul de tranzacii care ateapt o condiie special,
n funcie de starea memoriei.
DELAY. - numrul de tranzacii care ateapt s intre n blocul
ENTER al elementului de memorie respectiv.

Tabele i Q tabele

TABLE MEAN STD.DEV. RANGE RETRY


FREQUENCY CUM.%
TRANSIT 553.184 307.992
0 - 200.000 8 16.00
200.000 - 400.000 10 36.00

14
400.000 - 600.000 7 50.00
600.000 - 800.000 12 74.00
800.000 - 1000.000 11 96.00
1000.000 - 1200.000 2 100.00

TABLE. - numele sau numrul Tabelului sau Q-tabelului.


MEAN. - media aritmetic ponderat a valorilor tabulare.
STD.DEV. - devierea standard simpl a valorilor tabulare
(devierea medie ptratic).
RANGE. - raportul limitelor de jos/de sus ale clasei de frecven.
RETRY. - numrul de tranzacii care ateapt condiii speciale n
dependen de starea acestui tabel.
FREQUENCY. - numrul total de nimeriri n intervalul tabelului
indicat.
CUM.% - frecvena de nimerire exprimat n procente.

Lanul utilizatorului
USER CHAIN SIZE RETRY AVE.CONT ENTRIES MAX
AVE.TIME
CHAIN1 0 0 0.277 48 1 29.927

USER CHAIN. - numele sau numrul lanului utilizatorului.


SIZE. - numrul de tranzacii n lanul utilizatorului la sfritul
perioadei de simulare.
RETRY. - numrul de tranzacii care ateapt condiii speciale, n
dependen de starea lanului utilizatorului.
AVE.CONT. - numrul mediu de locuri ocupate n lanul
utilizatorului, de-a lungul perioadei de simulare.
ENTRIES. - numrul total de tranzacii plasate n lanul
utilizatorului de-a lungul perioadei de simulare.
MAX. - numrul maxim de tranzacii n lanul utilizatorului de-a
lungul perioadei de simulare.
AVE.TIME. - timpul mediu de aflare a unei tranzacii n lanul
utilizatorului.

15
Chei logice

LOGICSWITCH VALUE RETRY


SWITCH_1 1 0

LOGICSWITCH - numele sau numrul cheii logice.


VALUE. - valoarea cheii logice la sfritul simulrii. 1 - set sau
true, 0 - reset sau false.
RETRY. - numrul de tranzacii care ateapt condiii speciale, n
dependen de starea acestei chei logice.

Valori salvate

SAVEVALUE RETRY VALUE


ADDUP 0 60.000
COLLECT 0 -50.000

SAVEVALUE. - numele sau numrul valorii salvate.


VALUE. - valoarea unitii salvate la sfritul simulrii.
RETRY. - numrul de tranzacii care ateapt condiii speciale, n
dependen de starea acestei uniti salvate.
Pe lng entitile tradiionale descrise mai sus, raportul standard
general de GPSS mai poate conine i alte entiti cum ar fi:
a) grupuri de tranzacii;
b) grupurile numerice;
c) celule de matrice;
d) lanul evenimentelor curente;
e) lanul evenimentelor viitoare.

Blocurile GPSS utilizate pentru elaborarea lucrrilor de


laborator

Cartela SIMULATE
Se admit dou forme de scriere a acestei cartele:
16
1. SIMULATE indic simulatorului necesitatea de a rula
modelul.
2. SIMULATE m unde m este numrul de uniti de timp ale
modelului, dup scurgerea cruia se sfrete modelarea i se afieaz
statistica acumulat de model.
n caz de absen a acestei cartele, dup analiza sintactic,
simulatorul nu va rula procesul de modelare.
Cartela START - indic simulatorului c datele de intrare au fost
introduse i poate ncepe simularea modelului. Cartela START are
formatul:
START A,B,C,D

n cmpul A se indic valoarea care se atribuie contorului de


terminri, ce se noteaz prin TG1. Procesul de modelare se oprete
atunci cnd acest contor va avea o valoare mai mic sau egal cu zero
(TG10). TG1 se decrementeaz cu valoarea indicat n cmpul A al
blocului TERMINATE, la fiecare intrare a tranzaciei n acest bloc.
Cmpul B este folosit pentru blocarea extragerii statisticii finale.
Dac n cmpul B este indicat NP (Not Print), atunci nu se va extrage
statistica final.
Nota. Acumularea statisticii nu se blocheaz, ci se anuleaz doar
imprimarea acesteia.
Cmpul C este folosit pentru definirea intervalelor de afiare a
statisticilor intermediare. Coninutul cmpului C se decrementeaz
sincron cu decrementarea contorului de terminri TG1. Cnd
coninutul cmpului C este zero, atunci se extrage statistica
intermediar, se iniializeaz valoarea lui iniial i procesul continu.
Este de dorit ca valoarea cmpului C s fie divizibil la coninutul
cmpului A (N=iK).
Cmpul D indic necesitatea de a extrage statistica lanului de
evenimente curente, lanului de evenimente viitoare, lanului de
ntreruperi i lanului utilizatorului n cadrul statisticii finale. La o
astfel de necesitate n cmpul D se indic 1, n caz contrar, cmpul D
este vid.
Cartela TABLE este folosit pentru descrierea tabelelor.

17
Formatul acestei cartele este:
nume/numr_tabel TABLE A,B,C,D
unde cmpul A este argumentul tabelului, adic informaia care
urmeaz a fi nscris n tabel, B limita de sus a intervalului de jos. C
pasul tabelului, D numrul de pai.
De exemplu:
TAB1 TABLE V$INTRV,10,5,10

Este definit tabelul cu numele TAB1 argumentul cruia este


variabila cu numele INTRV (informaia care urmeaz a fi colectat n
tabel), limita de sus a primului interval este 10, pasul tabelului este 5
i numrul de pai 10.
Particularitatea nscrierii informaiei n tabel const n
urmtoarele: domeniul ateptat de variere a valorii argumentului
tabelului se divizeaz ntr-o succesiune de intervale i se analizeaz
frecvena de nimerire a valorii argumentului tabelului n aceste
intervale, calculele statistice sunt reflectate n raportul standard final.
Dac valoarea argumentului nimerete n afara intervalelor, acest fapt
la fel se introduce n raport. nscrierea propriu-zis n tabel se face
prin intermediul blocului TABULATE.
Blocul GENERATE este blocul de baz care introduce tranzaciile
n model.
Formatul:
GENERATE A,B,C,D,E,F,G

n cmpul A este indicat timpul mediu dintre tranzaciile generate.


n cmpul B modificatorul timpului dintre tranzacii care poate fi:
interval sau funcie. Modificatorul-interval se folosete atunci cnd
timpul de generare a tranzaciilor este distribuit uniform ntr-un
interval dat. Observaie: B<=A. n cazul acesta, n cmpul B se indic
o constant sau un oricare ANS.
Ex. GENERATE 150,2; distribuirea timpului este n
intervalul [148152].
Modificatorul-funcie este folosit cnd timpul de generare nu este
uniform, dar este distribuit conform unei legi. n acest caz, pentru

18
determinarea timpului, coninutul cmpului A se nmulete la
coninutul cmpului B. Funcia trebuie s fie descris anterior (prin
cartela FUNCTION). De regul, funcia n acest caz are ca argument
un generator de numere aleatoare. n momentul adresrii la funcie,
simulatorul calculeaz valoarea acesteia i o nmulete la coninutul
cmpului A.
Ex. GENERATE 150,FN$UN

unde FN$ - adresarea funciei, numele creia urmeaz dup


operatorul $.
Cmpul C ntrzierea iniial. Acesta indic intervalul de timp,
dup scurgerea cruia simulatorul va ncepe generarea tranzaciilor.
Cmpul D indic numrul total de tranzacii care vor fi generate n
model. Dac cmpul D este vid, atunci numrul de tranzacii generate
este infinit. Cmpul E arat prioritatea tranzaciilor generate.
K=0..127. Implicit prioritatea tranzaciilor este nul. Cmpul F indic
numrul de parametri ce vor caracteriza tranzacia. C=0..100. Implicit
numrul de parametri este egal cu 12. Cmpul G arat formatul
parametrilor, implicit este F (cuvnt de 32 bii), iar dup dorin
putem indica H (semicuvnt de 16 bii).
E de menionat c n acest bloc nu intr nici un tranzact i nici
ntr-un cmp al acestui bloc nu se permite adresarea indirect.
Blocul TERMINATE este destinat pentru eliminarea tranzaciilor
din model.
Formatul:
TERMINATE A

Cmpul A arat numrul de uniti care se vor decrementa din


contorul de terminri, la intrarea fiecrei tranzacii n acest bloc, i
este blocul invers blocului GENERATE. n model pot fi un numr
nelimitat de blocuri terminate.
Blocul QUEUE este folosit pentru modelarea intrrii tranzaciei n
coad. Cmpul A indic numele sau numrul cozii, iar cmpul B
numrul de locuri (uniti) pe care le ocup tranzacia n irul de
ateptare (implicit irul se incrementeaz cu o unitate).

19
Formatul:
QUEUE A,B

Blocul QUEUE nu mpiedic niciodat tranzacia la intrare. De


obicei, dup el stau blocuri cu caracteristici de blocare cum ar fi
SEIZE, PREEMPT, ENTER etc. Tranzacia poate concomitent s se
afle n cteva fire de ateptare.
Blocul DEPART decrementeaz lungimea irului de ateptare
indicat n cmpul A cu numrul de uniti indicat n cmpul B. Deci,
modeleaz ieirea tranzaciei din coad (este invers blocului
QUEUE).
Formatul:
DEPART A,B

Coninutul cmpului B trebuie ntotdeauna s fie mai mic dect


lungimea curent a cozii. Numele sau numrul cozii care este ocupat
n blocul QUEUE trebuie s coincid cu numele sau numrul cozii
eliberat n blocul DEPART.
Blocul TABULATE se utilizeaz pentru introducerea informaiei
statistice n tabel. Valoarea argumentului tabelului se nscrie n acesta
de fiecare dat cnd tranzacia intr n blocul TABULATE. Numele
tabelului se indic n cmpul A, iar n cmpul B numrul de uniti
care va incrementa contorul de nimeriri n intervalul argumentului
(implicit este 1).
Formatul:
TABULATE A,B

Not. Tabelul trebuie se fie definit n prealabil cu ajutorul


cartelei TABLE.
Blocul SEIZE este folosit pentru simularea ocuprii dispozitivului
de o tranzacie. n cazul cnd dispozitivul este ocupat, blocul SEIZE
blocheaz tranzaciile la intrare, deci naintea acestui bloc se creeaz
un ir de ateptare. n cazul sosirii unei tranzacii cu prioritate mai
mare, tranzacia care se afl n acest bloc va fi deservit pn la capt,
iar dup eliberarea dispozitivului din irul de ateptare va fi deservit

20
acea tranzacie, care are prioritate mai mare. Restul cererilor vor fi
deservite n dependen de timpul lor de sosire.

Formatul:
SEIZE A

n cmpul A al blocului SEIZE se indic numrul sau numele


dispozitivului pe care l ocupm.
Blocul RELEASE se utilizeaz pentru a simula eliberarea
dispozitivului de ctre tranzacia care l-a ocupat prin intermediul
blocului SEIZE. Eliberarea se realizeaz n momentul intrrii
tranzaciei n acest bloc. Blocul RELEASE nu reine niciodat
tranzacia la intrare.
Formatul:
RELEASE A

Blocul PREEMPT ndeplinete o funcie asemntoare cu a


blocului SEIZE cu excepia c tranzacia care intr n acest bloc
poate, n caz de necesitate, s ntrerup deservirea tranzaciei care
deja a ocupat dispozitivul dat, dup prioritate i n continuare s fie
deservit ea nsi de ctre dispozitiv. Tranzacia care a ntrerupt
dispozitivul dat nu poate s ntrerup, n acelai timp, alt dispozitiv.
Dac dispozitivul nu este ocupat sau ntrerupt atunci PREEMPT
funcioneaz la fel ca i blocul SEIZE.
Formatul:
PREEMPT A,B,C,D,E

Una din cele mai importante funcii ale blocului PREEMPT este
posibilitatea de a ntrerupe deservirea unei tranzacii de o alt
tranzacie cu prioritate mai nalt. Cmpul A indic numrul sau
numele dispozitivului la care va pretinde tranzacia. Pentru folosirea
regimului prioritar n cmpul B se scrie mnemonica PR. n acest
regim tranzacia cu prioritate n poate fi ntrerupt de o alt tranzacie
cu prioritate mai mare dect n. Cmpul C indic numrul sau numele
blocului unde va fi transmis tranzacia ntrerupt, care n continuare

21
va pretinde la acest dispozitiv. Dac n cmpul C nu este indicat
nimic, atunci tranzacia este inclus n lanul de ntreruperi. n cmpul
D poate fi scris un ANS sau o constant, valoarea creia determin
numrul parametrului tranzaciei ntrerupte, n care se va nscrie
timpul rmas pentru deservire n acest dispozitiv. n cmpul E se
poate indica RE ce nseamn c tranzacia ntrerupt n continuare nu
va pretinde la dispozitivul dat.
Not. Dac cmpul B este vid, atunci celelalte cmpuri ce
urmeaz dup el sunt ignorate i blocul lucreaz asemntor cu blocul
SEIZE.
Blocul RETURN este folosit pentru modelarea anulrii
ntreruperii de pe dispozitivul ntrerupt de ctre blocul PREMPT. Este
analogul blocului RELEASE.
Formatul:
RETURN A

Cmpul A indic numele sau numrul dispozitivului care este


eliberat.
Cartela STORAGE se utilizeaz la descrierea EM. Sunt posibile 2
formate ale acestei cartele:

1. <etichet> STORAGE N

n cmpul etichetei se indic numele EM, iar N indic numrul de


canale sau capacitatea memoriei.
Exemplu: MEM STORAGE 128
Se declar un element multicanal MEM cu 128 de canale.

2. STORAGE N

n acest caz, cmpul etichetei este vid, cmpul blocurilor conine


cartela STORAGE, iar cmpul operanzilor conine descrierea EM
(printr-o cartel se pot descrie mai multe EM desprite prin /).
Exemplu: STORAGE S$MEM,128
Se definete EM cu numele MEM indicat dup S$ cu 128 de

22
canale. Unde S este ANS care indic memoria, iar $ - operator de
adresare. Pentru descrierea mai multor EM prin aceieai mrime
acestea se despart prin -.
Exemplu: STORAGE S$MEM,128/S1-S10,50
Definim MEM cu 128 de canale i EM cu numrul de la 1 pn la
10 cu 50 de canale.
Blocul ENTER simuleaz ocuparea unui sau a mai multor canale
la intrarea n acest bloc a tranzaciei. Dac numrul necesar de canale
libere lipsete, atunci tranzacia este blocat la intrarea n acest bloc.
Cmpul A indic numele sau numrul EM, cmpul B numrul de
canale pe care le ocup tranzacia intrnd n acest bloc, implicit se
ocup un canal.
Formatul:
ENTER A,B

Exemplu: ENTER 2 (Ocup un canal din EM nr.2)


ENTER *1,5 (Ocup 5 canale din EM indicat n
parametrul 1)
ENTER MEM1,R1
Ocup din EM cu numele MEM1 toate canalele libere (ANS R1
(anexa 1) reprezint numrul de canale libere).
Blocul LEAVE este folosit pentru eliberarea EM. Cmpurile A i
B sunt analogice blocului ENTER. Niciodat nu stopeaz tranzacia la
intrare.
Formatul:
LEAVE A,B

Implicit se elibereaz un canal. Dac coninutul cmpului B este


mai mare dect coninutul curent al EM, atunci va aprea eroare.
Coninutul curent al EM se micoreaz cu mrimea din cmpul B, la
intrarea tranzaciei n blocul LEAVE.
Exemplu: LEAVE 2
Elibereaz un canal din EM nr. 2
LEAVE *1,5
Elibereaz 5 canale din EM indicat n parametrul 1

23
LEAVE MEM1,S1
Elibereaz deplin MEM1, iar ANS S1 reprezint numrul de
canale ocupate.
Blocul SAVEVALUE permite nscrierea informaiei n celula de
memorie, numrul sau numele creia este indicat n cmpul A, a unei
valori dorite (constant sau ANS) ce se indic n cmpul B. Blocul
SAVEVALUE funcioneaz n trei regimuri: increment, decrement i
nlocuire. Dac operandul din cmpul A este urmat de semnul +,
atunci blocul lucreaz n regim de increment, valoarea celulei se
incrementeaz cu valoarea indicat n cmpul B. Dac operandul din
cmpul A este urmat de semnul atunci, blocul lucreaz n regim
de decrement, valoarea celulei de memorie se decrementeaz cu
valoarea indicat n cmpul B. Dac dup operandul din cmpul A nu
urmeaz nici un semn, atunci blocul lucreaz n regim de nlocuire (n
celula de memorie se nscrie valoarea indicat n cmpul B).
Formatul:
SAVEVALUE A,B

Blocul ADVANCE simuleaz reinerea tranzaciei n punctul


modelului unde este scris acesta. n cmpul A este indicat timpul
mediu de reinere a tranzaciei i cmpul B este modificatorul.
Formatul:
ADVANCE A,B

Observaie. Constantele nu pot depi valoarea 999999. Acest


bloc poate s prelucreze n paralel mai multe tranzacii.
Blocul ASSIGN se folosete pentru atribuirea valorilor numerice
parametrilor tranzaciilor. Numrul parametrului se indic n cmpul
A, n cmpul B se scrie valoarea nou care i se atribuie parametrului,
iar n cmpul C poate fi indicat modificatorul funcie i n acest caz
valoarea nou a parametrului se determin prin nmulirea
coninutului cmpului B la funcia corespunztoare indicat n cmpul
C. Blocul ASSIGN poate s funcioneze n trei regimuri: increment,
decrement i nlocuire.
Regimurile se indic analogic ca i n cazul blocului

24
SAVEVALUE cu excepia c acest bloc opereaz cu parametri.
Formatul:
ASSIGN A,B,C

Exemplu: ASSIGN 1,5


Parametrului 1 i se atribuie valoarea 5 (P1=P1+5)
ASSIGN *1+,X2
Parametrul numrul cruiea este indicat n P1, se incrementeaz
cu valoarea din celula de memorie X2.
Blocul SELECT permite utilizatorului a selecta obiectele care
satisfac o anumit condiie, selecteaz primul din acestea i scrie
numrul lui n parametrul indicat n cmpul A. Cmpul A indic
numrul parametrului tranzaciei n care se organizeaz un contor de
obiecte ce satisfac condiia dat. Cmpurile B i C determin
intervalul de scanare a obiectelor (B limita de jos, C limita de
sus). Cmpul D se folosete cu operatorii condiionali:
E,NE,G,GE,L,LE care se scriu nemijlocit dup blocul SELECT. n
acest caz valoarea ANS din cmpul D se compar cu valoarea ANS
din cmpul E. Cmpul E indic un ANS al obiectelor cercetate care n
continuare se va compara cu argumentul din cmpul D. n cmpul E
se scrie numai mnemonica ANS, deoarece intervalul de numrare este
redat de B i C. La utilizarea operatorilor logici, cmpurile D, E nu se
folosesc. Cmpul F permite ieirea alternativ n cazul cnd n
diapazonul de scanare nu sunt obiecte care satisfac condiia dat.
Dac cmpul F este vid, atunci tranzacia ntotdeauna trece n blocul
urmtor. Blocul SELECT poate funciona n regimurile MIN i
MAX. n acest caz, n blocul SELECT sunt selectate acele obiecte
(sau un obiect), atributele crora sunt minimale (maximale). De
asemenea, n acest caz cmpurile D i F sunt vide.
Formatul:
SELECT cond A,B,C,D,E,F
Exemplu:
SELECT NU 2,1,8
n parametrul P2 se nscriu toate dispozitivele libere din intervalul
1-8.

25
Blocul PRIORITY este utilizat pentru atribuirea prioritii
necesare tranzaciei. Prioritatea influeneaz locul tranzaciei n lanul
evenimentelor curente i corespunztor la ordinea lui de prelucrare i,
de asemenea, la locul lui n irurile de ateptare. Prioritatea iniial a
tranzaciei se instaleaz n blocul GENERATE n cmpul E. n blocul
PRIORITY prioritatea necesar se scrie n cmpul A. Dac cmpul B
este vid, simulatorul va schimba prioritatea tranzaciei i-l va mica
mai departe pn la oprirea lui. Dac n cmpul B este mnemonica
BUFFER, atunci ndat dup schimbarea prioritii tranzaciei,
simulatorul va schimba lanul evenimentelor curente n corespundere
cu noile prioriti i va ncepe prelucrarea lui din nou.
Formatul:
PRIORITY A,B

Blocul BUFFER este folosit pentru oprirea imediat de prelucrare


a lanului evenimentelor curente i a iniializrii unei noi prelucrri.
Formatul:
BUFFER

O descriere mai ampl a blocurilor GPSS este prezentat n anexa 4.

26
Lucrarea de laborator nr. 1

Tema: Elementele de baz ale GPSS

Scopul lucrrii: iniierea n limbajul GPSS, studierea


regulilor de scriere i depanare a programelor, cercetarea elementelor
categoriei de calcul i modul lor de utilizare.

Consideraii teoretice

Unul dintre cele mai importante obiecte utilizate frecvent n


limbajul GPSS World este categoria de calcul, elementele creia sunt:
variabile (aritmetice/logice) i funcii.
n GPSS exist 3 tipuri de variabile: aritmetice, aritmetice cu
virgul flotant i booleene.
Variabilele aritmetice cu virgul fix reprezint un calcul
aritmetic al valorilor diferitelor Atribute Numerice Standard (ANS).
Variabilele se declar la nceputul programului modelului (naintea
blocului GENERATE). Descrierea variabilei se face prin intermediul
unei cartele speciale cu urmtorul format:

eticheta VARIABLE A

n cmpul etichetei se indic numrul sau numele variabilei


declarate. n cmpul A se scrie expresia aritmetic care urmeaz a fi
calculat. Expresia aritmetic include diferite ANS, precum i
variabile, iar n urma fiecrei operaii intermediare se omite partea
fracionar.
Adresarea la variabilele aritmetice se face cu ajutorul ANS Vj
dup nume sau numr, utiliznd operatorul $ (este posibil i
adresarea indirect).
Exemplu:
INTRV VARIABLE C1-X1
Valoarea variabilei INTRV este calculat n felul urmtor: din
valoarea atributului numeric C1 se scade coninutul celulei de
memorie X1. Orice variabil GPSS se calculeaz de fiecare dat, cnd
27
28
Fig. 16. Textul programului n GPSS i al raportului statistic pentru
un sistem de ateptare cu deservire conform prioritii relative

Bibliografie

1. . . .
GPSS WORLD. . . -, 2004.
2. . GPSS: M
1980.
3. ., E.
GPSS: , 2003.
4. Modelarea sistemelor. ndrumar de laborator, n redacia lui V.
Gsc, Chiinu, U.T.M., 1997.
5. .. . : ,
1985.
6. . :
GPSS WORLD: , 2006.
7. . . GPSS World.
, 2004.
8. Florea I. Introducere n modelarea i simularea sistemelor,
Editura Universitii Transilvania, Braov, 2009.
9. Goruneanu F. .a. Modelare stocastic i simulare, Editura
albastr, Cluj-Napoca, 2001.
10. Karian Z.A. .a. Modern Statistical Systems, and Gpss
Simulation, Hardcover, CRC Pr,, October 1998.
11. Vduva I. Modele de simulare cu calculatorul. Editura
Tehnic, Bucureti, 1977.
12. Zeigler B.P. .a. Theory of Modelling and Simulation, John
Wiley & Sons, New York, 2004.
13. http://www.minutemansoftware.com/tutorial/tutorial_manual.htm
14. http://www.minutemansoftware.com/reference/reference_manual.htm

29