Sunteți pe pagina 1din 56

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 căruia se efectuează experimentele prin
intermediul calculatorului. Modelul de simulare se construieşte pe
scheletul unui model matematic şi se finalizează într-un algoritm.
Limbajele de simulare sunt atât limbaje de programare, cât şi
instrumente care facilitează construcţia modelelor de simulare.
Utilizând un astfel de limbaj, analistul-programator va fi scutit de
grija construcţiei instrumentelor specifice simulării, el reuşind astfel
să se concentreze numai asupra definirii elementelor specifice ale
sistemului pe care îl modelează (tipurile de evenimente,
componentele şi stările sistemului, definirea răspunsurilor la
întrebări etc.).
Avantajele utilizării limbajelor de simulare: modelele se
construiesc rapid, experimentele de simulare de asemenea, se
efectuează rapid (sunt experienţe 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 restricţii determinate de posibilităţile
limitate ale acestora.
GPSS (General Purpose System Simulation) este un limbaj
pentru simularea modelelor. Orice sistem poate fi descris prin
intermediul unui număr determinat de elemente standarde – aşa-
zisele obiecte. Regulile logice care stau la baza sistemului pot fi
reduse la un set de operaţii simple. Corespunzător, un limbaj de
modelare trebuie să fie alcătuit din obiecte şi operaţii abstracte
(anexa 3). Cronometrarea şi ordonarea evenimentelor se efectuează
modelându-se timpul modelului care ia valori întregi. Prin urmare,
modelarea are un caracter discret.
Limbajul GPSS/PC a apărut în anul 1960 şi este dezvoltat până
3
în prezent. GPSS World este o versiune modernă a limbajului
GPSS/PC. La baza limbajului GPSS Word se află un interpretor cu
următoarele funcţii:
a) asigurarea tranzacţiilor;
b) planificarea evenimentelor;
c) prelucrarea evenimentelor în timp;
d) modificarea timpului modelului;
e) colectarea statisticii;
f) crearea unui raport final.
Tranzacţiile sunt părţi componente ale fluxurilor cercetate, care
parcurg structura fixată a modelului (ce constă din obiecte ale altor
categorii) şi care îndeplinesc un şir de operaţii indicate. După
lansarea programului, pe parcursul execuţiei, simulatorul generează
tranzacţiile, exercită parcurgerea lor prin blocuri, îndeplineşte
acţiunile respective indicate în blocuri.
Atât sistemul modelat, cât şi algoritmul ce stă la baza
funcţionării lui sunt descrise prin intermediul blocurilor, care sunt
activate de către tranzacţii în momentul intrării în ele. Orice
schimbare a stării sistemului se numeşte eveniment. Simulatorul
fixează timpul de apariţie a evenimentelor, prelucrându-le după
acest timp.
Pentru menţinerea corectă a consecutivităţii evenimentelor în
timp, în sistemul modelat funcţionează ceasul de sistem, care indică
timpul de modelare. Indicaţiile ceasului în orice moment de timp se
numeşte timpul absolut al modelului. Timpul absolut nu poate fi
schimbat de către utilizator. Există la fel şi timp relativ, care poate fi
schimbat cu ajutorul unor cartele speciale. Unitatea de măsură a
timpului (sec., min., oră, an ş.a.) se alege de către utilizator.
Simulatorul însă lucrează cu unităţi convenţionale (timpul
modelului). El nu analizează starea sistemului în fiecare unitate de
timp, dar schimbă valoarea timpului absolut, egalându-l cu timpul
celui mai apropiat eveniment. Corespunzător, timpul de modelare
nu depinde de intervalul de timp în sistemul real, dar depinde de
numărul de evenimente prelucrate. În mod tradiţional, un program
scris în termenii GPSS are următoarea formă ( Fig. 1).

4
1 2 6 8 18 19 71
Eticheta Bloc / Cartela Operanzi / Cîmpuri
;

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.
Câmpul operanzilor permite descrierea până la 8 operanzi.
Poziţia operanzilor este notată cu litere latine: A,B,C,D,E,F,G,H.
Operanzii sunt divizaţi prin virgulă (întrebuinţarea spaţiilor în
acest scop este interzisă). La absenţa unui operand şi prezenţa
informaţiei după el, acesta este identificat prin virgulă. Dacă după
operand nu este o altă informaţie virgula se omite.
Orice informaţie în câmpul operanzilor după spaţiu este
considerată comentariu. Pentru înscrierea comentariilor lungi este
necesar ca în prima poziţie a rândului să fie înscris semnul “*”. În
acest caz, rândul în întregime este considerat comentariu şi este
ignorat de către simulator.
Descrierea modelului începe cu cartela SIMULATE şi se termină
cu cartela END.
Cartelele de control sunt înlocuite prin instrucţiuni, pentru
comunicarea interactivă cu sistemul. Instrucţiunea SIMULATE nu
este obligatorie la începutul programului.
De regulă, un program GPSS constă din 3 părţi:
 Partea declarativă conţine descrierea tuturor obiectelor
utilizate în model care necesită acest lucru (funcţii, variabile,
capacitatea EM etc.), precum şi starea iniţială a comutatoarelor
logice şi valoarea iniţială a elementelor de memorie.
 Pentru descrierea algoritmului de funcţionare şi a structurii
sistemului, în partea a doua a programului sunt utilizate blocurile
GPSS.
 Partea a treia a programului conţine cartele de control prin
intermediul cărora are loc gestionarea procesului de modelare şi
obţinerea statisticii finale.
5
1. Descrierea interfeţei 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 apărea fereastra
principală care este prezentată în figura 2.

Fig. 2. Fereastra principală GPSS World

Obiectele modelului deja existent pot fi deschise prin două


modalităţi: dublu clic pe fişierul existent sau prin selectarea fişierului
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 opţiunea Model.

6
Fig. 3. Crearea unui model în GPSS World

După aceasta se va introduce programul, utilizând cartelele GPSS.


Pentru a simula modelul, mai întâi se verifică de erori accesând
meniul Command/Create Simulation. Dacă vor exista erori, atunci
simulatorul indică linia şi coloana acestei erori (Fig. 5).

Fig. 4. Rezultatul simulării unui model corect în GPSS World

Dacă nu există erori, atunci simulatorul denotă că modelul este


gata pentru simulare (Fig. 4), accesând meniul Command /START şi
indicând numărul de tranzacţii pentru care va fi simulat modelul.

7
Fig. 5. Rezultatul simulării unui model greşit în GPSS World

Fig. 6. Raportul Standard generat de simulatorul GPSS World

8
În urma simulării vom primi un raport ce conţine 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ă informaţia.
Meniul Window/SimulationWindow conţine ferestre referitor la
deferite entităţi ale modelului care permit a observa efectele simulării
în timpul acesteia:
 Blocks Window – conţine informaţia despre blocurile utilizate
în model; dacă această fereastră va fi deschisă în timpul simulării
atunci putem vedea calea tranzacţiei de la un bloc la altul.
 Expression Window – sunt prezentate valorile expresiilor
calculate în model.
 Facilities Window – arată dinamica ocupării dispozitivelor de
către tranzacţii.
 Logicswitches Window - arată dinamica folosirii cheilor logice.
 Matrix Window – prezentarea on-line a calculării matricelor.
 Plot Window – prezentarea on-line a unui număr de expresii
mai mare de 8.
 Queues Window – dinamica ocupării/eliberării a firelor de
aşteptare.
 Savevalues Window – dinamica prezentării celulelor de
memorie.
 StoragesWindow – dinamica prezentării elementelor de
memorie.
 Table Window – dinamica completării tabelelor reprezentată în
formă grafică.
O descriere mai detaliată este prezentată în Help limbajului, în
Tutorul manual.

9
2. Raportul Standard generat de GPSS Word

Rezultatele finale ale tuturor entităţilor tradiţionale GPSS sunt


expuse într-un raport standard, care se creează automat, atunci când
se finalizează simularea. Conţinutul raportului standard al modelului
poate fi selectat prin următoarea cale Edit/Settings în meniul de bază.
Exemplu de raport (Raportul standard integral este prezentat în
anexa 2).
Titlul standard al raportului conţine numele fişierului 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

Informaţii generale

STARTTIME END TIME BLOCKS FACILITIES


STORAGES
0.000 5187.692 32 3 1

START TIME - timpul absolut al sistemului, la începutul


perioadei de măsurare.
END TIME - timpul absolut la sfârşitul perioadei de măsurare.
BLOCKS - numărul de blocuri în model.
FACILITIES - numărul total de dispozitive în model.
STORAGES - numărul total de dispozitive multicanal şi memorii
declarate în model.
Nume

NAME VALUE
ADDUP 10007.000
CHAIN1 10012.000
COLLECT 10017.000
FACILITY1 10011.000

10
NAME - numele atribuit de către utilizator în model.
VALUE - valoare numerică atribuită numelui. Sistemul atribuie
numere începând 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

LABEL - numele alfanumeric alocat blocului,


LOC - poziţia numerică a blocului în model (locaţia).
BLOCK TYPE - denumirea blocului în GPSS.
ENTRY COUNT - numărul tranzacţiilor care au intrat în acest
bloc de la ultima aplicare a cartelei RESET (CLEAR) sau de la ultima
simulare a modelului.
CURRENT COUNT - numărul de tranzacţii în bloc la sfârşitul
simulării.
RETRY - numărul de tranzacţii care aşteaptă o condiţie specială în
funcţie 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 - numărul sau numele dispozitivului.


ENTRIES - numărul de intrări în dispozitivul dat (de câte ori

11
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 către
tranzacţie, pentru perioada de simulare sau de la ultima aplicare a
cartelei RESET (CLEAR).
AVAIL. - disponibilitatea dispozitivului, pentru 1 - disponibil, 0 -
nedisponibil.
OWNER - numărul de tranzacţii ce au ocupat dispozitivul dat,
dacă în drept cu numele dispozitivului stă 0 – atunci el nu a fost
ocupat de nici o tranzacție.
PEND - numărul de tranzacţii care aşteaptă să preia acest
dispozitiv prin introducerea „regimului de întrerupere” utilizând
blocul PREEMPT.
INTER - numărul tranzacţiei curente care a întrerupt acest
dispozitiv. Contorul acestor tranzacţii se află în lanţul întreruperilor.
RETRY - numărul de tranzacţii care aşteaptă o condiţie specială în
funcţie de starea acestui dispozitiv.
DELAY - numărul de tranzacţii care aşteaptă să ocupe (SEIZE)
dispozitivul. Acest lanţ, de asemenea conţine tranzacţiile care aşteaptă
să preia (PREEMPT) dispozitivul în „regim prioritar”.

Fire de aşteptare (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 - numărul sau numele firului de aşteptare.


MAX - conţinutul maxim al FA pe parcursul modelării sau de la
ultima aplicare a cartelei RESET (CLEAR).

12
CONT. - conţinutul curent în FA la sfârşitul modelării.
ENTRY - contorul intrărilor. Numărul total de intrări în FA pe
perioada de simulare.
ENTRY(0). - contorul „intrări Zero”. Numărul total de intrări în
FA cu timpul de reţinere 0.
AVE.CONT. - timpul mediu ponderat al conţinutului FA de-a
lungul perioadei de măsurare. Produsul spaţiu-timp împărţit la timpul
perioadei de măsurare.
AVE.TIME. - timpul mediu de aflare a unei tranzacții în FA.
AVE.(-0). - timpul mediu de aflare a unei tranzacții în FA, cu
excepţia intrărilor „zero”.
RETRY. - numărul de tranzacţii care aşteaptă condiţii speciale în
dependenţă de starea FA.

Memoria

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 numărul unităţii de memorie.


CAP. - memoria definită în cartela STORAGE.
REM. - numărul canalelor de memorie neutilizate la sfârşitul
simulării.
MIN. - numărul minim de canale ale memoriei, utilizate în timpul
perioadei de măsurare. Perioada de măsurare începe cu simularea sau
utilizarea cartelelor RESET sau CLEAR.
MAX. - numărul maxim de canale ale memoriei utilizate în timpul
perioadei de măsurare.
ENTRIES - numărul de intrări în canalele de memorie, de-a
lungul perioadei de măsurare (acumularea totală a operandului B din
blocul ENTER).
AVL. - starea de disponibilitate (acces) a canalelor de memorie la
sfârşitul simulării (1 - disponibil, 0 - nedisponibil).
AVE.C. - timpul mediu ponderat al conţinutului de memorie pe

13
parcursul perioadei de măsurare.
UTIL. - factorul de utilizare a memoriei de-a lungul perioadei de
măsurare.
RETRY. - numărul de tranzacţii care aşteaptă o condiţie specială,
în funcţie de starea memoriei.
DELAY. - numărul de tranzacţii care aşteaptă 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
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 numărul Tabelului sau Q-tabelului.


MEAN. - media aritmetică ponderată a valorilor tabulare.
STD.DEV. - devierea standardă simplă a valorilor tabulare
(devierea medie pătratică).
RANGE. - raportul limitelor de jos/de sus ale clasei de frecvenţă.
RETRY. - numărul de tranzacţii care aşteaptă condiţii speciale în
dependenţă de starea acestui tabel.
FREQUENCY. - numărul total de nimeriri în intervalul tabelului
indicat.
CUM.% - frecvenţa de nimerire exprimată în procente.

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

14
USER CHAIN. - numele sau numărul lanţului utilizatorului.
SIZE. - numărul de tranzacţii în lanţul utilizatorului la sfârşitul
perioadei de simulare.
RETRY. - numărul de tranzacţii care aşteaptă condiţii speciale, în
dependenţă de starea lanţului utilizatorului.
AVE.CONT. - numărul mediu de locuri ocupate în lanţul
utilizatorului, de-a lungul perioadei de simulare.
ENTRIES. - numărul total de tranzacţii plasate în lanţul
utilizatorului de-a lungul perioadei de simulare.
MAX. - numărul maxim de tranzacţii în lanţul utilizatorului de-a
lungul perioadei de simulare.
AVE.TIME. - timpul mediu de aflare a unei tranzacţii în lanţul
utilizatorului.

Chei logice

LOGICSWITCH VALUE RETRY


SWITCH_1 1 0

LOGICSWITCH - numele sau numărul cheii logice.


VALUE. - valoarea cheii logice la sfârşitul simulării. 1 -„ set” sau
„true”, 0 - „reset” sau „false”.
RETRY. - numărul de tranzacţii care aşteaptă condiţii speciale, în
dependenţă de starea acestei chei logice.

Valori salvate

SAVEVALUE RETRY VALUE


ADDUP 0 60.000
COLLECT 0 -50.000

SAVEVALUE. - numele sau numărul valorii salvate.


VALUE. - valoarea unităţii salvate la sfârşitul simulării.
RETRY. - numărul de tranzacţii care aşteaptă condiţii speciale, în

15
dependenţă de starea acestei unităţi salvate.
Pe lângă entităţile tradiţionale descrise mai sus, raportul standard
general de GPSS mai poate conţine şi alte entităţi cum ar fi:
a) grupuri de tranzacţii;
b) grupurile numerice;
c) celule de matrice;
d) lanţul evenimentelor curente;
e) lanţul evenimentelor viitoare.

3. Blocurile GPSS utilizate pentru elaborarea lucrărilor


de laborator

Cartela SIMULATE
Se admit două forme de scriere a acestei cartele:
1. SIMULATE – indică simulatorului necesitatea de a rula
modelul.
2. SIMULATE m – unde m este numărul de unităţi de timp ale
modelului, după scurgerea căruia se sfârşeşte modelarea şi se afişează
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 câmpul A se indică valoarea care se atribuie contorului de


terminări, ce se notează prin TG1. Procesul de modelare se opreşte
atunci când acest contor va avea o valoare mai mică sau egală cu zero
(TG1≤0). TG1 se decrementează cu valoarea indicată în câmpul A al
blocului TERMINATE, la fiecare intrare a tranzacţiei în acest bloc.
Câmpul B este folosit pentru blocarea extragerii statisticii finale.
Dacă în câmpul B este indicat NP (Not Print), atunci nu se va extrage
statistica finală.
Nota. Acumularea statisticii nu se blochează, ci se anulează doar

16
imprimarea acesteia.
Câmpul C este folosit pentru definirea intervalelor de afişare a
statisticilor intermediare. Conţinutul câmpului C se decrementează
sincron cu decrementarea contorului de terminări TG1. Când
conţinutul câmpului C este zero, atunci se extrage statistica
intermediară, se iniţializează valoarea lui iniţială şi procesul continuă.
Este de dorit ca valoarea câmpului C să fie divizibilă la conţinutul
câmpului A (N=i∙K).
Câmpul D indică necesitatea de a extrage statistica lanţului de
evenimente curente, lanţului de evenimente viitoare, lanţului de
întreruperi şi lanţului utilizatorului în cadrul statisticii finale. La o
astfel de necesitate în câmpul D se indică 1, în caz contrar, câmpul D
este vid.
Cartela TABLE este folosită pentru descrierea tabelelor.
Formatul acestei cartele este:
nume/număr_tabel TABLE A,B,C,D
unde câmpul A este argumentul tabelului, adică informaţia care
urmează a fi înscrisă în tabel, B – limita de sus a intervalului de jos. C
– pasul tabelului, D – numărul de paşi.
De exemplu:
TAB1 TABLE V$INTRV,10,5,10

Este definit tabelul cu numele TAB1 argumentul căruia este


variabila cu numele INTRV (informaţia care urmează a fi colectată în
tabel), limita de sus a primului interval este 10, pasul tabelului este 5
şi numărul de paşi 10.
Particularitatea înscrierii informaţiei în tabel constă în
următoarele: domeniul aşteptat de variere a valorii argumentului
tabelului se divizează într-o succesiune de intervale şi se analizează
frecvenţa de nimerire a valorii argumentului tabelului în aceste
intervale, calculele statistice sunt reflectate în raportul standard final.
Dacă valoarea argumentului nimereşte î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 tranzacţiile

17
în model.
Formatul:
GENERATE A,B,C,D,E,F,G

În câmpul A este indicat timpul mediu dintre tranzacţiile generate.


În câmpul B – modificatorul timpului dintre tranzacţii care poate fi:
interval sau funcţie. Modificatorul-interval se foloseşte atunci când
timpul de generare a tranzacţiilor este distribuit uniform într-un
interval dat. Observaţie: B<=A. În cazul acesta, în câmpul B se indică
o constantă sau un oricare ANS.
Ex. GENERATE 150,2; distribuirea timpului este în
intervalul [148÷152].
Modificatorul-funcţie este folosit când timpul de generare nu este
uniform, dar este distribuit conform unei legi. În acest caz, pentru
determinarea timpului, conţinutul câmpului A se înmulţeşte la
conţinutul câmpului B. Funcţia trebuie să fie descrisă anterior (prin
cartela FUNCTION). De regulă, funcţia în acest caz are ca argument
un generator de numere aleatoare. În momentul adresării la funcţie,
simulatorul calculează valoarea acesteia şi o înmulţeşte la conţinutul
câmpului A.
Ex. GENERATE 150,FN$UN

unde FN$ - adresarea funcţiei, numele căreia urmează după


operatorul $.
Câmpul C – întârzierea iniţială. Acesta indică intervalul de timp,
după scurgerea căruia simulatorul va începe generarea tranzacţiilor.
Câmpul D indică numărul total de tranzacţii care vor fi generate în
model. Dacă câmpul D este vid, atunci numărul de tranzacţii generate
este infinit. Câmpul E arată prioritatea tranzacţiilor generate.
K=0..127. Implicit prioritatea tranzacţiilor este nulă. Câmpul F indică
numărul de parametri ce vor caracteriza tranzacţia. C=0..100. Implicit
numărul de parametri este egal cu 12. Câmpul G arată formatul
parametrilor, implicit este F (cuvânt de 32 biţi), iar după dorinţă
putem indica H (semicuvânt de 16 biţi).
E de menţionat că în acest bloc nu intră nici un tranzact şi nici

18
într-un câmp al acestui bloc nu se permite adresarea indirectă.
Blocul TERMINATE este destinat pentru eliminarea tranzacţiilor
din model.
Formatul:
TERMINATE A

Câmpul A arată numărul de unităţi care se vor decrementa din


contorul de terminări, la intrarea fiecărei tranzacţii în acest bloc, şi
este blocul invers blocului GENERATE. În model pot fi un număr
nelimitat de blocuri terminate.
Blocul QUEUE este folosit pentru modelarea intrării tranzacţiei în
coadă. Câmpul A indică numele sau numărul cozii, iar câmpul B –
numărul de locuri (unităţi) pe care le ocupă tranzacţia în şirul de
aşteptare (implicit şirul se incrementează cu o unitate).
Formatul:
QUEUE A,B

Blocul QUEUE nu împiedică niciodată tranzacţia la intrare. De


obicei, după el stau blocuri cu caracteristici de blocare cum ar fi
SEIZE, PREEMPT, ENTER etc. Tranzacţia poate concomitent să se
afle în câteva fire de aşteptare.
Blocul DEPART decrementează lungimea şirului de aşteptare
indicat în câmpul A cu numărul de unităţi indicat în câmpul B. Deci,
modelează ieşirea tranzacției din coadă (este invers blocului
QUEUE).
Formatul:
DEPART A,B

Conţinutul câmpului B trebuie întotdeauna să fie mai mic decât


lungimea curentă a cozii. Numele sau numărul cozii care este ocupat
în blocul QUEUE trebuie să coincidă cu numele sau numărul cozii
eliberat în blocul DEPART.
Blocul TABULATE se utilizează pentru introducerea informaţiei
statistice în tabel. Valoarea argumentului tabelului se înscrie în acesta
de fiecare dată când tranzacţia intră în blocul TABULATE. Numele

19
tabelului se indică în câmpul A, iar în câmpul B numărul de unităţi
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 ocupării dispozitivului
de o tranzacţie. În cazul când dispozitivul este ocupat, blocul SEIZE
blochează tranzacţiile la intrare, deci înaintea acestui bloc se creează
un şir de aşteptare. În cazul sosirii unei tranzacţii cu prioritate mai
mare, tranzacţia care se află în acest bloc va fi deservită până la capăt,
iar după eliberarea dispozitivului din şirul de aşteptare va fi deservită
acea tranzacţie, care are prioritate mai mare. Restul cererilor vor fi
deservite în dependenţă de timpul lor de sosire.

Formatul:
SEIZE A

În câmpul A al blocului SEIZE se indică numărul sau numele


dispozitivului pe care îl ocupăm.
Blocul RELEASE se utilizează pentru a simula eliberarea
dispozitivului de către tranzacţia care l-a ocupat prin intermediul
blocului SEIZE. Eliberarea se realizează în momentul intrării
tranzacţiei în acest bloc. Blocul RELEASE nu reţine niciodată
tranzacţia la intrare.
Formatul:
RELEASE A

Blocul PREEMPT îndeplineşte o funcţie asemănătoare cu a


blocului SEIZE cu excepţia că tranzacţia care intră în acest bloc
poate, în caz de necesitate, să întrerupă deservirea tranzacţiei care
deja a ocupat dispozitivul dat, după prioritate şi în continuare să fie
deservită ea însăşi de către dispozitiv. Tranzacţia care a întrerupt

20
dispozitivul dat nu poate să întrerupă, în acelaşi timp, alt dispozitiv.
Dacă dispozitivul nu este ocupat sau întrerupt atunci PREEMPT
funcţionează la fel ca şi blocul SEIZE.
Formatul:
PREEMPT A,B,C,D,E

Una din cele mai importante funcţii ale blocului PREEMPT este
posibilitatea de a întrerupe deservirea unei tranzacţii de o altă
tranzacţie cu prioritate mai înaltă. Câmpul A indică numărul sau
numele dispozitivului la care va pretinde tranzacţia. Pentru folosirea
regimului prioritar în câmpul B se scrie mnemonica PR. În acest
regim tranzacţia cu prioritate n poate fi întreruptă de o altă tranzacţie
cu prioritate mai mare decât n. Câmpul C indică numărul sau numele
blocului unde va fi transmisă tranzacţia întreruptă, care în continuare
va pretinde la acest dispozitiv. Dacă în câmpul C nu este indicat
nimic, atunci tranzacţia este inclusă în lanţul de întreruperi. În câmpul
D poate fi scris un ANS sau o constantă, valoarea căreia determină
numărul parametrului tranzacţiei întrerupte, în care se va înscrie
timpul rămas pentru deservire în acest dispozitiv. În câmpul E se
poate indica RE ce înseamnă că tranzacţia întreruptă în continuare nu
va pretinde la dispozitivul dat.
Notă. Dacă câmpul B este vid, atunci celelalte câmpuri ce
urmează după el sunt ignorate şi blocul lucrează asemănător cu blocul
SEIZE.
Blocul RETURN este folosit pentru modelarea anulării
întreruperii de pe dispozitivul întrerupt de către blocul PREMPT. Este
analogul blocului RELEASE.
Formatul:
RETURN A

Câmpul A indică numele sau numărul dispozitivului care este


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

21
1. <etichetă> STORAGE N

În câmpul etichetei se indică numele EM, iar N indică numărul 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, câmpul etichetei este vid, câmpul blocurilor conţine


cartela STORAGE, iar câmpul operanzilor conţine descrierea EM
(printr-o cartelă se pot descrie mai multe EM despărţite prin “/”).
Exemplu: STORAGE S$MEM,128
Se defineşte EM cu numele MEM indicat după S$ cu 128 de
canale. Unde S este ANS care indică memoria, iar $ - operator de
adresare. Pentru descrierea mai multor EM prin aceieaşi mărime
acestea se despart prin “-”.
Exemplu: STORAGE S$MEM,128/S1-S10,50
Definim MEM cu 128 de canale şi EM cu numărul de la 1 până la
10 cu 50 de canale.
Blocul ENTER simulează ocuparea unui sau a mai multor canale
la intrarea în acest bloc a tranzacţiei. Dacă numărul necesar de canale
libere lipseşte, atunci tranzacţia este blocată la intrarea în acest bloc.
Câmpul A indică numele sau numărul EM, câmpul B – numărul de
canale pe care le ocupă tranzacţia intrând î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ă numărul de canale libere).

22
Blocul LEAVE este folosit pentru eliberarea EM. Câmpurile A şi
B sunt analogice blocului ENTER. Niciodată nu stopează tranzacţia la
intrare.
Formatul:
LEAVE A,B

Implicit se eliberează un canal. Dacă conţinutul câmpului B este


mai mare decât conţinutul curent al EM, atunci va apărea eroare.
Conţinutul curent al EM se micşorează cu mărimea din câmpul B, la
intrarea tranzacţiei î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
LEAVE MEM1,S1
Eliberează deplin MEM1, iar ANS S1 reprezintă numărul de
canale ocupate.
Blocul SAVEVALUE permite înscrierea informaţiei în celula de
memorie, numărul sau numele căreia este indicat în câmpul A, a unei
valori dorite (constantă sau ANS) ce se indică în câmpul B. Blocul
SAVEVALUE funcţionează în trei regimuri: increment, decrement şi
înlocuire. Dacă operandul din câmpul A este urmat de semnul „+”,
atunci blocul lucrează în regim de increment, valoarea celulei se
incrementează cu valoarea indicată în câmpul B. Dacă operandul din
câmpul A este urmat de semnul „–” atunci, blocul lucrează în regim
de decrement, valoarea celulei de memorie se decrementează cu
valoarea indicată în câmpul B. Dacă după operandul din câmpul A nu
urmează nici un semn, atunci blocul lucrează în regim de înlocuire (în
celula de memorie se înscrie valoarea indicată în câmpul B).
Formatul:
SAVEVALUE A,B

Blocul ADVANCE simulează reţinerea tranzacţiei în punctul


modelului unde este scris acesta. În câmpul A este indicat timpul
mediu de reţinere a tranzacţiei şi câmpul B este modificatorul.

23
Formatul:
ADVANCE A,B

Observaţie. Constantele nu pot depăşi valoarea ≤999999. Acest


bloc poate să prelucreze în paralel mai multe tranzacţii.
Blocul ASSIGN se foloseşte pentru atribuirea valorilor numerice
parametrilor tranzacţiilor. Numărul parametrului se indică în câmpul
A, în câmpul B se scrie valoarea nouă care i se atribuie parametrului,
iar în câmpul C poate fi indicat modificatorul funcţie şi în acest caz
valoarea nouă a parametrului se determină prin înmulţirea
conţinutului câmpului B la funcţia corespunzătoare indicată în câmpul
C. Blocul ASSIGN poate să funcţioneze în trei regimuri: increment,
decrement şi înlocuire.
Regimurile se indică analogic ca şi în cazul blocului
SAVEVALUE cu excepţia 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 numărul căruiea este indicat în P1, se incrementează
cu valoarea din celula de memorie X2.
Blocul SELECT permite utilizatorului a selecta obiectele care
satisfac o anumită condiţie, selectează primul din acestea şi scrie
numărul lui în parametrul indicat în câmpul A. Câmpul A indică
numărul parametrului tranzacţiei în care se organizează un contor de
obiecte ce satisfac condiţia dată. Câmpurile B şi C determină
intervalul de scanare a obiectelor (B – limita de jos, C – limita de
sus). Câmpul D se foloseşte cu operatorii condiţionali:
E,NE,G,GE,L,LE care se scriu nemijlocit după blocul SELECT. În
acest caz valoarea ANS din câmpul D se compară cu valoarea ANS
din câmpul E. Câmpul E indică un ANS al obiectelor cercetate care în
continuare se va compara cu argumentul din câmpul D. În câmpul E
se scrie numai mnemonica ANS, deoarece intervalul de numărare este

24
redat de B şi C. La utilizarea operatorilor logici, câmpurile D, E nu se
folosesc. Câmpul F permite ieşirea alternativă în cazul când în
diapazonul de scanare nu sunt obiecte care satisfac condiţia dată.
Dacă câmpul F este vid, atunci tranzacţia întotdeauna trece în blocul
următor. Blocul SELECT poate funcţiona în regimurile MIN şi
MAX. În acest caz, în blocul SELECT sunt selectate acele obiecte
(sau un obiect), atributele cărora sunt minimale (maximale). De
asemenea, în acest caz câmpurile 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.
Blocul PRIORITY este utilizat pentru atribuirea priorităţii
necesare tranzacţiei. Prioritatea influenţează locul tranzacţiei în lanţul
evenimentelor curente şi corespunzător la ordinea lui de prelucrare şi,
de asemenea, la locul lui în şirurile de aşteptare. Prioritatea iniţială a
tranzacţiei se instalează în blocul GENERATE în câmpul E. În blocul
PRIORITY prioritatea necesară se scrie în câmpul A. Dacă câmpul B
este vid, simulatorul va schimba prioritatea tranzacţiei şi-l va mişca
mai departe până la oprirea lui. Dacă în câmpul B este mnemonica
BUFFER, atunci îndată după schimbarea priorităţii tranzacţiei,
simulatorul va schimba lanţul evenimentelor curente în corespundere
cu noile priorităţi şi va începe prelucrarea lui din nou.
Formatul:
PRIORITY A,B

Blocul BUFFER este folosit pentru oprirea imediată de prelucrare


a lanţului evenimentelor curente şi a iniţializării unei noi prelucrări.
Formatul:
BUFFER

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

25
Lucrarea de laborator nr. 1

Tema: Elementele de bază ale GPSS

Scopul lucrării: iniţierea în limbajul GPSS, studierea


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

Consideraţii teoretice

Unul dintre cele mai importante obiecte utilizate frecvent în


limbajul GPSS World este categoria de calcul, elementele căreia sunt:
variabile (aritmetice/logice) şi funcţii.
Î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 următorul format:

eticheta VARIABLE A

În câmpul etichetei se indică numărul sau numele variabilei


declarate. În câmpul A se scrie expresia aritmetică care urmează a fi
calculată. Expresia aritmetică include diferite ANS, precum şi
variabile, iar în urma fiecărei operaţii intermediare se omite partea
fracţionară.
Adresarea la variabilele aritmetice se face cu ajutorul ANS Vj
după nume sau număr, utilizând operatorul $ (este posibilă şi
adresarea indirectă).
Exemplu:
INTRV VARIABLE C1-X1
Valoarea variabilei INTRV este calculată în felul următor: din
valoarea atributului numeric C1 se scade conţinutul celulei de

26
memorie X1. Orice variabilă GPSS se calculează de fiecare dată, când
se face adresarea la ea, prin intermediul ANS V$INRV.
În GPSS sunt posibile 5 operaţii aritmetice:
“+” – adunarea algebrică;
“-” – scăderea algebrică;
“#” – înmulţirea algebrică;
“/” – împărţirea algebrică (partea fracţionară se omite);
“@” – împărţirea după modul (restul de la împărţire).
La scrierea expresiei este posibilă utilizarea parantezelor.
Variabilele aritmetice cu virgulă flotantă sunt analogice cu cele
în virgulă fixă, cu excepţia, că pe parcursul calculării expresiei, partea
fracţionară nu se omite. Partea fracţionară se omite numai la valoarea
finală a variabilei.
Formatul este următor:

etichetă FVARIABLE A

Pentru descrierea acestui tip de variabile, în câmpul blocurilor se


scrie FVARIABLE. Adresarea se face la fel prin ANS-ul Vj şi numele
sau numărul ei trebuie să fie diferit de cel al variabilei aritmetice
simple.
Notă. Împărţirea după modul pentru variabilele cu virgulă flotantă
este imposibilă.
Variabilele booleene reprezintă o expresie logică, alcătuită din
diferite ANS unite prin intermediul operatorilor booleene. Descrierea
este analogică cu cea a variabilelor aritmetice, cu excepţia că în
câmpul blocurilor se scrie BVARIABLE. La prelucrarea variabilelor
booleene simulatorul verifică una sau câteva condiţii (rezultatul poate
fi 1 sau 0).
Este posibilă utilizarea a trei operatori pentru acest tip de
variabile:
1. Operatori logici – se folosesc pentru determinarea stării
obiectelor categoriei de aparataj (anexa 5).
2. Operatori condiţionali – sunt folosiţi pentru compararea
algebrică şi se scriu în ghilimele unare pentru:

27
G (Greater) – mai mare (>);
L (Less) – mai mic (<);
E (Equal) – egal (=);
GE (Greater or Equal) – mai mare sau egal ();
LE (Less or Equal) – mai mic sau egal ();
NE (Not Equal) – diferit ().
3. Pentru operatorii booleeni sunt posibile două operaţii:
OR – operaţia logică SAU
AND – operaţia logică ŞI
Adresarea variabilelor booleene se face cu ajutorul ANS BVj,
unde numele sau numărul lor poate să corespundă cu al celor
aritmetice.
Unele dintre obiectele frecvent utilizate în limbajul GPSS sunt
funcţiile care permit exprimarea relaţiei dintre valoarea argumentului
şi valoarea funcţiei.
Ca argument al funcţiei poate servi orice ANS, inclusiv o altă
funcţie. În GPSS este folosită metoda tabelară de definire a funcţiei,
şi anume, cu ajutorul unor perechi de numere ce determină abscisa şi
valoarea funcţiei (coordonata unui punct din funcţie). Există 5 tipuri
de funcţii:
1. Funcţie numerică continuă (C);
2. Funcţie numerică discretă (D);
3. Funcţie numerică tabulară (L);
4. Funcţie atributivă discretă (E);
5. Funcţie atributivă tabulară (M);
Cel mai frecvent utilizate sunt funcţiile numerice discrete şi cele
numerice continue.
Descrierea funcţiei se face după formatul următor:

nume FUNCTION A,B

Câmpul A conţine argumentul funcţiei, iar B – tipul şi numărul


de puncte ce descriu funcţia dată.
În rândul ce urmează după cartela FUNCTION, începând cu
prima poziţie, sunt descrise punctele funcţiei de către abscisă şi
28
valoarea funcţiei separate prin virgulă. Punctele se separă prin “/”.
Valorile absciselor, în descrierea funcţiei, trebuie să fie aranjate în
ordine crescătoare.
Exemplu:
FUN FUNCTION P3,D5
1,15/5,10/6,6/9,0/11,50
Se declară o funcţie cu numele FUN argumentul căreia este
parametrul P3. Funcţia este discretă (deoarece în câmpul B este scrisă
litera D) definită pe 5 perechi de numere care sunt descrise în rândul
următor după funcţie.
Argumentul şi valoarea funcţiei pot să ia atât valori întregi, cât şi
fracţionare. În momentul adresării la funcţie partea întreagă se
omite. Adresarea la funcţie se îndeplineşte prin ANS FNj sau
FN$nume.
Pentru funcţia numerică continuă (în câmpul B se indică litera C)
în intervalele ei de definire se face o interpolare liniară între punctele
corespunzătoare. La nimerirea argumentului în afara intervalului
definit, extrapolarea nu se face şi funcţia ia valoare de la capătul
corespunzător al intervalului.
Ex. EXC FUNCTION RN1,C3
0,0.5/2,2.5 /4,1.5
unde: RN1 este generatorul numerelor aleatoare; C3 denotă că
funcţia este continuă şi definită pe 3 perechi de numere ( Fig.7).

Fig. 7. Graficul funcţiei numerice continue

29
Funcţia numerică discretă (în câmpul B se indică litera D)
presupune aceeaşi valoare a funcţiei FNj=Yi pe intervalul (Xi-1, Xi).
Interpolarea nu se face, valoarea funcţiei pe un interval este egală cu
valoarea ei la capătul drept al intervalului. Pentru cazul dat nu se
admite ca valorile funcţiei să fie descrise de numere fracţionare.
Exemplu: EXC FUNCTION RN1,D3
0,0.5/2,2.5 /4,1.5
Graficul funcţiei discrete date este reprezentat în figura 8.

Fig. 8. Graficul funcţiei numerice discrete

Simulatorul GPSS nu calculează exponente şi logaritmi. De


aceeia, funcţia exponenţială se calculează preventiv şi se introduce în
model prin intermediul punctelor respective. De exemplu, funcţia
exponenţială calculată pentru 24 de puncte este următoarea:
0,0/.100,.104/.200,.222/.300,.355/.400,.509/.500,.690/
.600,.915/ .700,1.200/.750,1.380/ .800,1.600/.840,1.830/
.880,2.120/ .900,2.300/ .920,2.520/.940,2.810/.950,2.990/
.960,3.200/.970,3.500/ .980,3.900/.990,4.600/.995,5.300/
.998,6.200/.999,7/1,8/

Funcţia care descrie distribuirea normală se caracterizează prin


doi parametri de bază: valoarea medie şi devierea (modificatorul).
Distribuirea normală poate fi normată şi nenormată. Distribuirea
normată este caracterizată prin valoarea medie zero şi devierea egală
cu unu. Distribuirea nenormată are valori aleatoare pentru parametrii
daţi şi se calculează în baza celei normate, iar rezultatul obţinut se
recalculează pentru distribuirea nenormată cu valoarea medie şi
devierea necesară indicată de programator. La variabilele cu virgulă

30
mobilă este necesar să se calculeze suma dintre timpul mediul de
sosire a două tranzacţii consecutive şi produsul dintre modificatorul şi
funcţia normată. Distribuirea nenormată se foloseşte în cazuri în care
modificatorul e diferit de unu. De exemplu, o funcţie normală pentru
25 de coordonate arată în felul următor:
0,-5/.00003,-4/.00135,-3/.00621,-2.5/.02275,-2/.06681
,-1.5/ .11507,-1.2/.15866,-1/.21186,-.8/ .27425,-.6/
.34458,-.4/.42074,-.2/.5,0/.57926,.2/.65542,.4/.72575,.6/
.78814,.8/.84134,1/.88493,1.2/ .93319,1.5/.97725,2/
.99379,2.5/ .99865,3/ .99997,4/1,5/

O particularitate a simulatorului GPSS constă în faptul că


distribuirea uniformă face parte din structura lui internă şi deci nu este
necesară definirea unei funcţii.
Datorită faptului că simularea în GPSS are un caracter stochastic
(aleator), limbajul conţine opt generatoare de numere aleatoare, care
se reprezintă prin ANS RN1÷8. Ele generează numere cuprinse în
intervalul 0-999 inclusiv, iar dacă sunt folosite în calitate de
argumente ale funcţiilor, vor genera valori pe intervalul 0-0.999999
inclusiv.
Un model de program, diagrama de timp şi raportul statistic în
GPSS World pentru funcţia exponenţială a intervalelor de timp dintre
tranzacţiile generate, se va prezenta în figura 9.

Sarcina pentru lucrarea de laborator:

1. Elaboraţi programul modelului în limbajul GPSS World care


generează cererile la fiecare 100±10 unităţi de timp (u.t) distribuite
uniform, timpul relativ dintre sosirea a două tranzacţii consecutive şi
salvați-le în tabel cu următoarele limite: 70,5,10. Simulaţi modelul
pentru 1000 de tranzacţii.
2. Elaboraţi programul modelului în limbajul GPSS World care
generează cererile la fiecare 100 u.t distribuite conform funcţiei
exponenţiale, timpul relativ dintre sosirea a două tranzacţii
consecutive şi salvați-le în tabel. Simulaţi modelul pentru 1000 de

31
tranzacţii.
3. Modificaţi programul modelului din punctul 2 conform
variantei.
4. Elaboraţi programul modelului în limbajul GPSS World care
generează cererile peste fiecare 100±10 u.t distribuite conform
funcţiei normale, care calculează timpul relativ dintre sosirea a două
tranzacţii consecutive şi salvați-le în tabel. Simulaţi modelul pentru
1000 de tranzacţii.
5. Modificaţi programul modelului din punctul 4 conform
variantei.

Etapele de desfăşurare a lucrării:

1. Introduceţi în GPSS modelul programului conform sarcinii şi


studiaţi raportul standard generat automat de către simulatorul GPSS.
Indicaţii: Pentru a introduce în tabel timpul relativ dintre două
tranzacţii consecutive, acesta trebuie calculat ca fiind diferenţa dintre
timpul relativ de sosire a tranzacţiei curente faţă de cea precedentă.
Acest lucru poate fi făcut prin intermediul ANS C1, care se păstrează
într-o celulă de memorie prin intermediul blocului SAVEVALUE.
Adresarea la celula de memorie se face prin intermediul ANS Xj.
Unde j reprezintă numărul celulei de memorie în care este păstrat
timpul relativ al tranzacţiei precedente.
2. Introduceţi în calculator modelul programului pentru
distribuirea aleatoare a intervalelor de timp dintre tranzacţii, pentru 2
tipuri de funcţii: funcţia discretă şi funcţia continuă.
3. Deschideţi fereastra tabelului (Window/Simulation Window se
alege caseta Table Window) şi urmăriţi graficul obţinut.
4. La obţinerea statisticii urmăriţi ca în tabele, valorile să se
încadreze în 5-10 intervale, în caz contrar modificaţi pasul tabelului şi
rulaţi din nou tabelul.

32
Tabelul 1. Variantele pentru îndeplinirea lucrării de laborator nr.1

Var. Timpul mediu Modificatorul Funcţia


1 100 20 0,3/0.1,5/0.3,6/1,11
2 230 20 0,13/0.2,15/0.7,3/1,0
3 300 20 0,2/0.3,17/0.9,3/1,2
4 280 10 0,0/0.2,3/0.4,5/1,19
5 150 20 0,50/0.4,35/0.8,12/1,8
6 250 30 0,1/0.7,10/0.8,31/1,35
7 200 30 0,100/0.3,80/0.8,18/1,10
8 250 10 0,1/0.8,4/0.9,6/1,15
9 170 20 0,90/0.2,70/0.4,5/1,0
10 100 10 0,0/0.2,10/0.5,15/1,50
11 160 30 0,3/0.4,2/0.9,22/1,35
12 130 10 0,20/0.1,12/0.3,1/1,0
13 120 20 0,30/0.5,27/0.7,5/1,0
14 180 20 0,0/0.2,3/0.9,7/1,30
15 140 10 0,0/0.2,20/0.3,40/1,45
16 170 20 0,37/0.2,22/0.3,1/1,0
17 210 30 0,15/0.1,13/0.3,2/1,0
18 170 30 0,1/0.7,3/0.8,25/1,30
19 180 20 0,10/0.2,15/0.4,35/1,40
20 200 30 0,1/0.4,3/0.9,6/1,30
21 190 20 0,3/0.4,4/0.6,9/1,30
22 230 20 0,80/0.4,60/0.6,8/1,5
23 300 10 0,0/0.1,1/0.3,12/1,15
24 320 20 0,0/0.2,1/0.4,17/1,20
25 250 30 0,50/0.1,45/0.3,3/1,1

Întrebări de verificare
1. În ce mod sunt declarate variabilele şi funcţiile în limbajul
GPSS World?
2. Câte tipuri de variabile cunoaşteţi şi cărei categorii GPSS
World aparţin?
3. Explicaţi modalitatea de definire a tabelelor în limbajul
GPSS World.

33
Fig. 9. Textul programului, diagrama temporală şi raportul statistic
pentru funcţia exponenţială a intervalelor de timp dintre tranzacţiile
generate
34
Lucrarea de laborator nr.2

Tema: Simularea sistemelor cu aşteptare pentru deservirea cu o


singură staţie de aşteptare.

Scopul lucrării: simularea şi cercetarea în limbajul GPSS a celor


mai simple sisteme de aşteptare şi estimarea parametrilor pentru cazul
sosirilor şi deservirilor poissoniene în regim staţionar: a numărului
mediu de cereri în şirul de aşteptare şi duratei medii de reţinere a
cererilor în sistem.

Consideraţii teoretice:

Modelele fenomenelor de aşteptare descriu sisteme şi procese de


aşteptare cu caracter de masă care intervin în diverse domenii ale
activităţii practice. În sistemul SA există un flux de cereri (clienţi)
pentru deservire, numit flux de intrare, caracterizat de numărul de
cereri care intră în sistem într-o unitate de timp. Cu ajutorul fluxului
de intrare putem determina modul în care sosesc unităţile în SA.
Un sistem de aşteptare se caracterizează prin următoarele aspecte:
- prezenţa cererilor care intră în sistem într-un număr limitat
sau nelimitat şi formează şiruri (cozi) de aşteptare;
- existenţa pe trasee de aşteptare a uneia sau a mai multor staţii
de servire a cererilor;
- corelaţia strânsă dintre sosirile cererilor, formarea cozilor de
aşteptare şi deservire a cererilor din şirul de aşteptare.
Pot exista unul sau mai multe fire paralele de aşteptare şi una sau
mai multe staţii (canal) de deservire. Cererile pot fi deservite în
paralel, în cascadă sau în serie – paralel. Disciplina de deservire a
cererilor poate fi FIFO, LIFO sau deservirea conform regulilor de
prioritate (relativă sau absolută).
Schemele de aşteptare pot fi cu circuit închis sau cu circuit
deschis. Dacă unităţile care părăsesc sistemul nu se reîntorc la punctul
de intrare, atunci schema de aşteptare este cu circuit deschis, în caz
contrar schemele de aşteptare sunt cu circuit închis. Fluxul de intrare

35
descrie modul în care sosesc în sistem cererile care solicită servicii.
Ritmul sosirii şi deservirii cererilor în sistem într-o unitate de timp se
notează cu λ şi respectiv μ. Numărul cererilor din fluxul de intrare
poate fi finit sau infinit. Schemele de aşteptare ale cererilor pot fi cu
sau fără pierderi. Un sistem cu aşteptare (SA) prevăzut pentru
deservire cu o singură staţie (server) se numeşte sistem monocanal.
Dacă cererile sosite suferă doar o singură fază de deservire, părăsind
în continuare sistemul, cel din urmă se numeşte sistem monofaz.
Fie că fluxul de cereri la intrare este de tip Poisson, având ritmul
de sosire (intensitatea) λ, iar durata de deservire în server (SV) este
distribuită exponenţial, având parametrul μ. Durata medie dintre
generarea cererilor Tcer şi durata medie de deservire a lor în SV Tser, se
vor calcula conform următoarelor formule:
1
Tcer  ; (1)

1
Tser  ; (2)

unde ρ este sarcina (factorul de serviciu) sistemului egal cu:


 ; (3)

Durata de deservire nu depinde de lungimea cozii de aşteptare


înainte de staţie. Sistemul deschis este reprezentat în figura 10.
Teoria sistemelor cu aşteptare dispune de un set de formule pentru
calcularea caracteristicilor de bază ale sistemului deschis. Pentru
cazul sosirilor şi deservirilor poissoniene în regim staţionar pot fi
calculaţi anumiţi parametri ai sistemului modelat. Ne vom limita doar
la doi: numărul mediu de cereri în şirul de aşteptare şi durata medie
de reţinere a cererilor în sistem.

36
λ μ

Sursa de Şir (coadă) Staţie de deservire


cereri de aşteptare (server)

Fig. 10. Reprezentarea schematică a unui SA cu o singură staţie de


deservire

Numărul mediu de cereri ce se vor afla în şirul de aşteptare pe


parcursul modelării Lq poate fi calculat conform formulei:

2
Lq  (4)
1 

Durata medie de aflare a unei cereri în sistem este:

1
T (5)


Un model de program în limbajul GPSS, diagrama de timp şi


raportul statistic al unui sistem de aşteptare pentru deservirea cu o
singură staţie, este prezentat în figura 11.

Sarcina pentru lucrarea de laborator:

1. Să se simuleze un SA cu un singur canal de prelucrare a


datelor. Cererile sosesc în sistem într-un flux nelimitat cu rata de
sosire a cererilor λ (indicată în variantă), fiind distribuită conform
legii exponenţiale. Cererile ocupă firul de aşteptare apoi sunt
deservite de server, conform ratei de deservire μ (indicată în variantă).
Să se introducă durata de aflare a cererilor în firul de aşteptare în
tabel. După deservire, cererile părăsesc modelul.

37
2. Determinaţi lungimea medie a firului de aşteptare, durata medie
de deservire a cererilor, numărul mediu de cereri din şirul de
aşteptare.

Etapele de desfăşurare a lucrării:

1. Se colectează datele iniţiale λ, μ conform variantei din tabelul


2.
2. Se calculează durata medie de generare a cererilor în sistem şi
durata medie de deservire conform formulelor (1), (2) şi (3).
3. Se introduce în calculator programul de simulare.
4. Se rulează programul şi se obţine statistica finală.
5. Din statistica finală se estimează valorile numărului mediu de
cereri din şirul de aşteptare pe parcursul modelării Lq*
(compartimentul QUEUE parametrul AVERAGE CONTENTS) şi
durata medie de aflare a unei cereri în sistem T*(compartimentul
TABLE, parametrul MEAN ARGUMEN).
6. Se estimează valorile numărului mediu de cereri din şirul de
aşteptare pe parcursul modelării Lq şi durata medie de aflare a unei
cereri în sistem T, conform formulelor (4) şi (5).
7. Comparaţi rezultatele obținute în mod analitic cu rezultatele
obținute în urma simulării.
8. Încercaţi să modelaţi sistemul utilizând cartela CLEAR în loc
de RELEASE.

38
Tabelul 2. Variantele pentru îndeplinirea lucrării de laborator nr.2

Nr. var. λ µ Nr. var. λ µ


1 0.0012 0.0014 16 0.0033 0.0038
2 0.0017 0.0019 17 0.0014 0.0016
3 0.0025 0.0031 18 0.0039 0.0042
4 0.0056 0.0069 19 0.0067 0.0079
5 0.0019 0.0023 20 0.0057 0.0066
6 0.0017 0.0021 21 0.0037 0.0059
7 0.0016 0.0019 22 0.0059 0.0069
8 0.0041 0.0045 23 0.0026 0.0033
9 0.0023 0.0026 24 0.0051 0.0062
10 0.0033 0.0038 25 0.0046 0.0054
11 0.0015 0.0018 26 0.0018 0.0021
12 0.0027 0.0036 27 0.0045 0.0069
13 0.0036 0.0042 28 0.0075 0.0093
14 0.0026 0.0035 29 0.0036 0.0045
15 0.0022 0.0026 30 0.0033 0.0054

Întrebări de verificare.

1. Prin ce aspecte se caracterizează un SA?


2. Explicați blocul ADVANCE.
3. Explicați compartimentul FACILITIES din Raportul Standard
Final generat de model.
4. Ce blocuri GPSS World modelează deservirea cererilor?

39
Fig. 11. Un model de program în limbajul GPSS, diagrama de timp
şi raportul statistic al unui sistem de aşteptare pentru deservirea cu o
singură staţie.
40
Lucrarea de laborator nr.3

Tema: Simularea sistemelor cu aşteptare pentru deservire cu


mai multe staţii.

Scopul lucrării: simularea în limbajul GPSS a sistemelor cu


aşteptare pentru deservire cu mai multe staţii paralele şi compararea
rezultatelor din statistica finală cu cele obţinute în mod analitic,
studierea schemelor de aşteptare fără pierderi şi cu pierderi ale
cererilor.

Consideraţii teoretice:

Un sistem de aşteptare este compus din următoarele trei elemente:


 clienţii care solicită un serviciu;
 staţia de deservire;
 firul de aşteptare sau coada.
În cadrul modelării sistemelor sunt frecvent utilizate modele cu
mai multe staţii de deservire. Deservirile pot fi organizate în paralel
sau în cascadă. Structura unui sistem cu aşteptare pentru deservire cu
mai multe staţii în paralel este prezentată în figura 10. El conţine o
sursă de generare a cererilor, un şir de aşteptare şi m staţii de
deservire în paralel. În cazul când cererea sosită nu poate fi imediat
deservită din lipsa de staţii libere, ea va aştepta eliberarea resurselor
sistemului în şirul de aşteptare.
Cererile sosesc în sistem într-un flux nelimitat de tip Poisson cu
intensitatea λ, fiind deservite de către prima staţie liberă. Toate staţiile
sunt identice, iar durata de deservire este distribuită exponenţial şi are
intensitatea μ.
În cadrul acestei lucrări de laborator se vor cerceta două scheme
de aşteptare pentru sistemul respectiv: fără pierderi şi cu pierderi ale
cererilor.

41
1. Sistemul multicanal fără pierderi ale cererilor

La organizarea deservirii fără pierderi a cererilor, cele din urmă


nu vor părăsi sistemul până când nu vor fi deservite. În cazul când
toate staţiile sunt ocupate, cererile vor aştepta în şirul de aşteptare.
μ

1
λ

Sursa de .
cereri Şir .
.
(coadă) de
aşteptare 3
Staţie de deservire (server)
Fig. 12. Reprezentarea schematică a unui SA pentru deservirea cu
mai multe staţii

Sarcina sistemului ρ se calculează în modul tradiţional conform


formulei:

 (1)

1
Tcer  ; (2)

1
Tser  ; (3)

E de menţionat faptul că sistemul va funcţiona fără blocări numai
pentru cazul ρ=m, unde m este numărul de staţii pentru deserviri în
paralel.
Numărul mediu de staţii de deservire ocupate u pe parcursul
modelării sistemului:

42
u=  . (4)

Probabilitatea Pm(u) faptului că vor fi ocupate toate m staţii poate


fi calculată din expresia:
1  rm (u )
Pm (u )  (5)
1   s rm (u )


unde s  , (6)
m

um
iar rm (u )  1  mm! k (7)
u
k  0 k!
Lungimea medie a şirului de aşteptare Lq pe parcursul modelării
se va calcula în felul următor:
s
Lq  * Pm (u ) (8)
1  s

Durata medie de aşteptare în coada unei cereri Tq pe parcursul


modelării este egală cu:
Lq
Tq  (9)

Mnemonica atributelor logice:


a) pentru dispozitive şi echipamente multicanal (EM):
 U – dispozitiv ocupat;
 NU – dispozitiv liber;
 I – dispozitiv întrerupt;
 NI – dispozitiv neîntrerupt;
 SE – EM vid (Sj=0);
 SNE – EM nu este vid;

43
 SF – EM plin (Rj=0);
 SNF – EM nu este plin;
b) pentru chei logice:
 LS – cheia este setată;
 LR – cheia este resetată;
Datele experimentale care reprezintă interes în urma modelării
sunt: lungimea medie a şirului de aşteptare Lq * şi durata medie de
aflare a unei cereri în acest şir Tq*. Ele vor fi selectate din
compartimentul QUEUE al statisticii finale, respectiv AVERAGE
CONTENTS şi AVERAGE TIME/TRAN.
Numărul mediu de dispozitive ocupate u* îl vom estima prin
sumarea coeficienţilor de utilizare ai tuturor dispozitivelor din
compartimentul FACILITY, parametrul AVERAGE UTILIZATION
m
u *   K util (10)
i 1

unde Kutil – coeficientul de utilizare a dispozitivului i.

2. Sistemul multicanal cu pierderi a cererilor.

La organizarea deservirii cu pierderi a cererilor care sosesc în


sistem, în cazul lipsei staţiilor de deservire libere, cererea părăseşte
sistemul fără a fi deservită. În urma modelării unui astfel de SA vom
estima 2 parametri: probabilitatea pierderii cererilor care poate fi
calculată prin împărţirea valorii celulei valorilor memorate nr.1 din
compartimentul CONTENTS OR FULLWORD
SAVEVALUES(NON--ZERO) la numărul total de tranzacţii care au
trecut prin model:
P*pierd= X1/N (11)
Şi respectiv numărul mediu de tranzacţii pierdute într-o unitate de
timp (intensitatea pierderii cererilor):
N*pierd= X1/Trel (12)
unde Trel este durata relativă a simulării (compartimentul
RELATIVE CLOCK).
La simularea sistemelor multicanal pentru deserviri fără pierderi,
44
precum şi la simularea sistemelor multicanal cu pierderi este necesar
a utiliza variabilele de tip booleene.
Variabilele booleene reprezintă o expresie logică, alcătuită din
diferite ANS. Descrierea este analogică cu cea a variabilelor
aritmetice, cu excepţia că în câmpul blocurilor se scrie BVARIABLE.
La prelucrarea variabilelor booleene simulatorul verifică una sau
câteva condiţii (rezultatul poate fi 1 sau 0).
Ex. LIBER BVARIABLE F1’AND’F2

Variabila LIBER determină starea a două dispozitive şi


BV$LIBER=0 când cel puțin un dispozitiv este liber, iar
BV$LIBER=1 când ambele dispozitive sunt ocupate.
Textul programului în limbajul GPSS şi raportul statistic al unui
sistem de aşteptare pentru deservirea fără pierderi cu mai multe staţii
paralele este prezentat în figura 13.

Sarcina pentru lucrarea de laborator:

1. Modelaţi un sistem de aşteptare multicanal cu m canale


(indicat în variantă) fără pierderi ale cererilor. Fluxul de sosire a
cererilor este de tip Poisson cu intensitatea λ. Deservirea se efectuează
de către primul canal de deservire liber. Toate canalele sunt identice.
Durata de deservire este distribuită exponenţial şi are intensitatea μ.
Dacă nu sunt canale libere cererea aşteptă în coadă până când nu se
eliberează serverul. Simulaţi modelul pentru 1000 de cereri.
2. Modelaţi un sistem de aşteptare multicanal cu m canale
(indicat în variantă) cu pierderi ale cererilor. Fluxul de sosire a
cererilor este de tip Poisson cu intensitatea λ. Deservirea se efectuează
de către primul canal de deservire liber. Toate canalele sunt identice.
Durata de deservire este distribuită exponenţial şi are intensitatea μ.
Dacă nu sunt canale libere cererea părăseşte sistemul. Simulaţi
modelul pentru 1000 de cereri şi calculați numărul de tranzacţii care
au fost pierdute în model.

45
Etapele de desfăşurare a lucrării:

1. Înregistrați datele iniţiale m, λ, μ conform variantei din tabelul 3.


2. Introduceţi în calculator programul care simulează un SA pentru
deserviri fără pierderi cu mai multe staţii paralele.
3. Se calculează parametrii ρ, Tcer, Tser, Pm, rm (u ) , ρs, Lq , Tq
conform formulelor (1), (2), (3), (4), (5), (6), (7) şi (8).
4. Se rulează programul şi se obţine statistica finală.
5. Din statistica finală se vor estima valorile lungimii medii a
şirului de aşteptare Lq*, duratei medii de aflare a unei cereri în acest şir
Tq* şi numărul mediu de dispozitive ocupate u*(formula (10)).
6. Comparaţi rezultatele obținute în mod analitic cu rezultatele
obținute în urma simulării.
7. Introduceţi în calculator programul care simulează un SA
multicanal pentru deserviri cu pierderi ale cererilor.
8. Se rulează programul şi se obţine statistica finală.
9. Din statistica finală se vor estima valorile probabilităţii pierderii
cererilor P*pierd şi numărul mediu de tranzacţii pierdute într-o unitate
de timp N*pierd.

Întrebări de evaluare.

1. Modalităţile de organizare a deservirii în SA.


2. Explicaţi compartimentul QUEUE din Raportul Standard Final
generat de model.
3. Disciplina de deservire a cererilor.
4. Ce bloc GPSS World modelează deservirea concomitentă a
mai multor tranzacții?
5. Când un SA va funcţiona fără blocări?

46
Tabelul 3. Variantele pentru efectuarea lucrării de laborator nr.3

Var. m Λ µ Var. m λ µ
1 15 0.022 0.0017 16 22 0.035 0.0019
2 19 0.037 0.0023 17 17 0.044 0.0033
3 17 0.045 0.0031 18 19 0.039 0.0024
4 16 0.056 0.0041 19 21 0.067 0.0038
5 18 0.039 0.0025 20 22 0.057 0.0032
6 16 0.027 0.0019 21 25 0.037 0.0017
7 14 0.036 0.0032 22 17 0.058 0.045
8 21 0.035 0.0021 23 19 0.026 0.0016
9 25 0.023 0.0011 24 24 0.051 0.0025
10 22 0.033 0.0018 25 21 0.046 0.0026
11 18 0.031 0.0019 26 23 0.041 0.0022
12 19 0.027 0.0017 27 16 0.052 0.0036
13 13 0.036 0.0033 28 20 0.059 0.0038
14 24 0.026 0.0013 29 18 0.047 0.0028
15 20 0.032 0.0019 30 22 0.077 0.0042

47
Fig. 13. Textul programului în limbajul GPSS şi al raportului
statistic ce simulează un sistem de aşteptare pentru de servirea fără
pierderi, cu mai multe staţii paralele
48
Lucrarea de laborator nr. 4

Tema: Cercetarea sistemelor cu deservire prioritară

Scopul lucrării: simularea în limbajul GPSS World a


sistemelor de aşteptare cu deservire prioritară şi estimarea
caracteristicilor principale, compararea rezultatelor din statistica
finală cu cele obţinute în mod analitic. Studierea schemelor de
aşteptare cu prioritate relativă şi absolută.

Consideraţii teoretice

Formarea şirului de aşteptare şi deservirea cererilor în sistemul cu


aşteptare, de regulă, se face după principiul FIFO. În unele cazuri,
este nevoie de a asigura o altă disciplină de formare a şirului de
aşteptare, în dependenţa de urgenţa cererilor. Modelele în care
disciplina de deservire după unele criterii diferă de disciplina intrării
cererilor în sistem se numesc modele cu prioritate.
În sistemele cu prioritate, prioritatea creşte odată cu micşorarea
indicelui (cea mai înaltă este prioritatea 1). Cererile cu prioritate i vor
avea o prioritate mai înaltă decât cele cu prioritate j. În limbajul GPSS
situaţia este diametral opusă, prioritatea mărindu-se odată cu creşterea
indicelui de prioritate.
Modelele cu prioritate se împart în modele cu prioritate relativă şi
în modele cu prioritate absolută.

1. Sistemele cu prioritate relativă

Disciplinele de deservire prioritare au fost introduse pentru a


micşora durata de aflare în sistem a anumitor cereri cu prioritate
înaltă, fapt care duce la mărirea acestei durate pentru alte cereri de
prioritate mai joasă.
Deservirea conform priorităţii relative presupune manifestarea
priorităţii numai în momentul eliberării staţiei de deservire şi a
selectării cererii din şirul de aşteptare. Esenţa constă în următoarele:

49
din şirul de aşteptare se va selecta cererea cu cea mai înaltă prioritate.
În continuare ea va ocupa staţia de deservire şi va începe deservirea
ei. Dacă pe parcursul deservirii în sistem sosesc cereri cu prioritate
mai înaltă, procesul de deservire nu se întrerupe, iar cererile sosite vor
fi plasate în şirul de aşteptare. Astfel, cererea care aocupă staţia de
deservire capătă cea mai înaltă prioritate. Relativitatea priorităţii
rezultă din faptul că această prioritate are loc numai după ocuparea
staţiei de deservire. După deservire cea mai înaltă prioritate o capătă
următoarea cerere care este selectată din şirul de aşteptare.
Să examinăm un sistem cu r fluxuri de cereri cu priorităţile
respective de la 1 până la r. Fiecare flux k este de tip Poisson cu
intensitatea λk (k=1,...,r). Fluxul sumar este, de asemenea, de tip
Poisson cu intensitatea
r
   k (1)
k 1
Vom presupune că durata de deservire a cererii cu prioritate k are o
distribuire exponenţială cu parametrul μk. Durata medie de deservire:

1
Tser  (2)
k

În cazul când la sosirea cererilor staţia de deservire este ocupată,


în faţa ei se formează r şiruri de aşteptare, în şirul i plasându-se
cererile cu prioritatea i.
Sarcina executată de către fluxul k asupra sistemului:

k
k  (3)
k
Vom nota:
k
u k    i ; k  1, r (4)
i 1
iar u0 = 0.
Durata medie de aşteptare în coadă a cererilor cu prioritatea p poate

50
fi calculată conform formulei (5):
r
k

k 1
2
Tq p 
k
(5)
(1  u p 1 )(1  u p )

iar durata medie de aşteptare a cerilor din fluxul general Tq şi numărul


mediu de cereri din coadă – conform formulei (6), (7):

 T k qk
Tq  k 1
r
(6)
 k 1
k

r
Lq   k Tq (7)
k 1

Fig. 14. Reprezentarea schematică a unui sistem de aşteptare cu


deservire conform priorităţii relative

Listingul programului în termenii GPSS şi raportului statistic


al unui sistem de aşteptare pentru deservire conform priorităţii
relative este prezentat în figura 16.

51
2. SA cu prioritate absolută:

În unele cazuri apare necesitatea unei astfel de micşorări a


duratei de aflare a cererilor în sistem, care nu poate fi atinsă la
deservirea unui SA conform priorităţilor relative. Acest obiectiv poate
fi atins nu printr-o selectare preventivă a cererilor din şirul de
aşteptare, ca în cazul priorităţii relative, ci prin întreruperea
procesului de deservire a cererii curent deservite, la sosirea unei cereri
cu prioritate mai înaltă şi prin deservirea imediată a celei din urmă.
Această disciplină de deservire se numește deservire cu prioritate
absolută.
Organizarea procesului de deservire cu priorităţi absolute este
reprezentată în figura 15.

Fig. 15. Reprezentarea schematică a unui sistem de aşteptare cu


deservire conform priorităţii absolute

Pot fi acceptate următoarele discipline de deservire a cererilor


întrerupte:
a) după deservirea cererilor cu prioritate înaltă continuă,
deservirea cererilor întrerupte, luându-se în consideraţie intervalul de
timp de la începutul deservirii până la întrerupere;
b) cererea, deservirea căreia a fost întreruptă, se pierde, adică
părăseşte sistemul rămânând nedeservită;
c) deservirea cererii întrerupte se efectuează de la început,
ignorându-se durata anterioară de deservire.
Durata medie de aflare în sistem a cererilor cu prioritatea i poate
52
fi calculată utilizând următoarea formulă:
i 
 
1 1
  
j

Ti  
j 1 j  (8)
1  ui 1   i 1  u j 
 
 

k
u k    i , u0  0 (9)
i 1

1
Cunoscând durata medie de deservire a cererilor Tseri  ,
i
putem estima durata medie de aşteptare a lor din coadă.

Tqi  Ti  Tseri (10)

Sarcina pentru lucrarea de laborator:

1. Modelaţi un sistem de aşteptare cu prioritate relativă (modelul


sistemului de aşteptare este reprezentat în figura 11), cu fluxul de
sosire a cererilor distribuit conform legii exponenţiale cu intensitatea
λi, prioritatea fluxurilor fiind următoarea λ1 – 4, λ2 – 3, λ3 – 2, λ4 – 1.
Durata de servire este distribuită exponenţial şi are intensitatea μ.
Simulaţi modelul pentru 2000 de cereri.
2. Calculaţi durata medie de aşteptare în coadă a cererilor cu
prioritatea p, durata medie de aşteptare a cererilor din fluxul general
Tq şi numărul mediu de cereri din coadă – conform formulei (5), (6),
(7).
3. Estimaţi valorile parametrilor T*qi, T*q (compartimentul
AVERAGE TIME/TRANS) şi L*q (compartimentul AVERAGE
CONTENTS).
4. Modificaţi modelul din punctul 1 pentru sistemul de aşteptare
pentru deservirea cu prioritate absolută. Rata de sosire şi deservire a
53
cererilor sunt ca şi în punctul precedent. Simulaţi modelul pentru
2000 de cereri.
5. Calculaţi durata medie de aflare în sistem a cererilor cu
prioritatea i şi durata medie de aşteptare a cerilor în coadă – conform
formulei (8), (10).
6. Estimaţi valorile parametrilor T*qi, T*i.

Etapele de desfăşurare a lucrării:

1. Elaboraţi modelul programului care simulează un SA pentru


deservire conform priorităţii relative.
2. Rulaţi programul pentru a obține statistica finală, analizaţi
datele obținute.
3. Estimaţi valorile parametrilor T*qi, T*q şi L*q.
4. Calculaţi durata medie de aşteptare în coadă a cererilor cu
prioritatea p, durata medie de aşteptare a cererilor din fluxul general
Tq şi numărul mediu de cereri din coadă, în mod analitic.
5. Comparaţi rezultatele obținute;
6. Utilizând datele pentru modelul precedent elaboraţi modelul
programului care simulează un SA pentru deservirea cu prioritate
absolută conform sarcinii din punctul 2.
7. Rulaţi programul pentru a obține statistica finală şi analizaţi
comportarea acestui sistem.
8. Calculaţi durata medie de aflare în sistem a cererilor cu
prioritatea i şi durata medie de aşteptare a cererilor în coadă.
9. Estimaţi valorile parametrilor T*qi, T*i .
10. Comparaţi comportarea şi caracteristicile acestor două
sisteme.

54
Tabelul 4. Variantele pentru efectuarea lucrării de laborator nr.4

Nr λ1 λ2 λ3 λ4 μ
1 0,00018 0,00057 0,0018 0,0072 0,08
2 0,00026 0,00085 0,0024 0,0091 0,12
3 0,00023 0,00073 0,0022 0,0068 0,13
4 0,00026 0,00077 0,0026 0,0099 0,06
5 0,00012 0,00038 0,0012 0,0046 0,09
6 0,00021 0,00064 0,0023 0,0071 0,12
7 0,00022 0,00073 0,0025 0,0097 0,11
8 0,00023 0,00071 0,0023 0,0093 0,09
9 0,00023 0,00081 0,0025 0,0078 0,07
10 0,00014 0,00043 0,0015 0,0054 0,08
11 0,00015 0,00047 0,0017 0,0066 0,1
12 0,00026 0,00091 0,0028 0,0088 0,12
13 0,00027 0,00083 0,0031 0,0097 0,09
14 0,00023 0,00068 0,0024 0,0085 0,11
15 0,00026 0,00072 0,0027 0,0098 0,12
16 0,00025 0,00089 0,0033 0,0099 0,14
17 0,00024 0,00079 0,0028 0,0097 0,07
18 0,00014 0,00042 0,0015 0,0056 0,12
19 0,00028 0,00087 0,0029 0,0097 0,09
20 0,00019 0,00056 0,0017 0,0068 0,13
21 0,00025 0,00077 0,0024 0,0098 0,06
22 0,00011 0,00034 0,0013 0,0045 0,11
23 0,00022 0,00083 0,0026 0,0095 0,14
24 0,00023 0,00087 0,0031 0,0097 0,07
25 0,00013 0,00042 0,0016 0,0053 0,32
26 0,00005 0,00015 0,0006 0,0023 0,09
27 0,00002 0,00007 0,0002 0,0007 0,55
28 0,00008 0,00029 0,0011 0,0043 0,4
29 0,00007 0,00022 0,0007 0,0026 0,61
30 0,00011 0,00035 0,0012 0,0039 0,56

55
Întrebări de verificare:

1. Ce bloc GPSS World asigură deservirea prioritară?


2. Ce bloc GPSS World ne permite modificarea priorităţii
tranzacţiilor?
3. Explicaţi blocul RETURN.
4. Ce bloc GPSS World se foloseşte pentru eliberarea firelor
de aşteptare?
5. Care este diferenţa dintre blocurile PREEMPT şi SEIZE?

56
Fig. 16. Textul programului în GPSS şi al raportului statistic pentru
un sistem de aşteptare cu deservire conform priorităţii relative
57
Bibliografie

1. Боев В. Д. Моделирование систем. Инструментальные


средства GPSS WORLD. Учеб. пособие. БХВ-Петербург, 2004.
2. Шрайбер Т. Моделирование на GPSS: Mашиностроение
1980.
3.Томашевский В., Жданова E. – Имитационное
моделирование в среде GPSS: Бестселлер, 2003.
4. Modelarea sistemelor. Îndrumar de laborator, În redacţia lui V.
Gîscă, Chişinău, U.T.M., 1997.
5. Советов В.Я. и др. Моделирование систем: Высшая
школа, 1985.
6. Бражник А. Имитационное моделирование: возможности
GPSS WORLD: Реноме, 2006.
7. Кудрявцев Е. М. GPSS World. Основы имитационного
моделирования различных систем, 2004.
8. Florea I. Introducere în modelarea şi simularea sistemelor,
Editura Universităţii Transilvania, Braşov, 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. Văduva I. Modele de simulare cu calculatorul. Editura
Tehnică, Bucureşti, 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

58

S-ar putea să vă placă și