You are on page 1of 32

06.02.

2014
Modelarea sistemelor
Literatura:
- Îndrumarul de laborator ,,Modelarea Sistemelor” 2012
- Barbu Gheorghe ,,Modele de simulare și aplicații în fiabilitate”
Noțiuni generale despre GPSS (General Purpose Simulation System):
Este un limbaj pentru simularea discretă a modelelor. A fost elaborată de către IBM. Există mai multe versiuni,
cele mai utilizate GPSS/360 (v4 – v6) , GPSS – V (v7) , GPSS/H+PROOF. Ultima versiune este cea mai nouă
versiune în care este adăugată secțiunea grafică de manipulare cu blocurile și posibilitatea de utilizare a animației
precum și o interfață flexibilă cu limbajul C++. Cronometrarea și ordonarea evenimentelor se efectuează
modelîndu-se timpul modelului, prin urmare modelarea poartă un caracter discret. La baza lui se află un program
interpretor cu următoarele funcții:
- asigurarea tranzacțiilor
- planificarea evenimentelor
- crearea unui raport statistic
1 2 6 8 18 19 71
Eticheta Blocuri sau Cartele Operanzi

SIMULATE
END
Entitățile limbajului GPSS:
Limbajul GPSS conține 15 entități (elemente de abstractizare. La fiecare entitate se asociază un număr de
proprietăți sau atribute, majoritatea lor fiind adresabile intern, dar unele pot fi adresabile și de către utilizator
(atribute numerice standart, sau standart logice numite și valori logice).
I. Entitățile de bază:
1. Blocurile – au asociate caracteristici numerice sau logice și posedă argumente necesare descrierii activităților.
2. Tranzacțiile (elemente circulante) – posedă un anumit număr de parametri standart, dar și parametri introduși
de către utilizator. Prin intermediul programului de simulare utilizatorul
poate accesa parametrii tranzacțiilor.
II. Entități de echipament:
3. Stațiile de servire – ele corespund subsistemelor cu o componentă care tratează de regulă o singură tranzacție.
4. Multistații de servire
5. Comutatorii logici – aceștia sunt variabile logice ce permit utilizatorului să realizeze o ramificare după dorință
a fluxului de execuție în programul de simulare
6. Variabile aritmetice
7. Variabile booleene – permit evaluarea unei expresii booleene
8. Funcțiile descrise prin tabele prin segmente de treaptă
9. Funcțiile analitice
10. Cozile
11. Tabele de frecvență – descriu histogramele variabilelor de ieșire

III. Entități de referință (Acestea memorează anumite informații la dorința utilizatorului)
12. Cuvinte de salvare – memorează valori ce corespund cîte un cuvînt de memorie al calculatorului
13. Matrice de cuvinte de salvare
IV. Entități de tip lanț:
14. Lanțuri ale utilizatorului
15. Grupuri care separă tranzacții
Notă: Toate entitățile trebuie definite și declarate de către utilizator la începutul programului. Pentru fiecare
entitate se alocă memorie de către utilizator la începutul programului. La instalarea limbajului se alocă memorie și
un număr maxim de entități care se pot utiliza într-un program. Entitățile se invocă prin instrucțiuni cu structură
fixă și de aici rezultă că limbajul este un interpretor.
Structura instrucțiunilor în GPSS:
Sistemul modelat precum și algoritmul de modelare stă la baza funcționării interpretorului și este descris cu
ajutorul obiectelor operaționale – blocuri. Blocurile sunt activate de către tranzacția la momentul intrării în el.
Respectiv tranzacțiile mișcând-se de la un bloc la altul imit mișcarea obiectelor dinamice.
Structura instrucțiunilor:
1. Blocurile – se divizează în :
a) blocuri de acțiune : - SEIZE (ocupă)/ RELEASE (eliberează stația de servire),
- ENTER/LEAVE
- QUEUE/ DEPART
- etc.

b) blocuri de creare : - GENERATE (generează tranzacțiile în model) / TERMINATE (tr. sunt elimin.)
c) blocuri de control: - TEST, TRANSFER, GATE, EXAMINATE, LOOP
d) blocuri de modificare a caracteristicilor tranzacțiilor și a valorilor unor entități de referință:
- ASIGN, MARK, PRIORITY, SAVEVALUE, COUNT, etc.
e) blocurile pentru obținerea statisticii:
- TABULATE (pentru construirea pistogramei)
f) blocurile pentru listări:
- PRINT
2. Tranzacțiile (generate de GENERATE și eliminate de TERMINATE)
La generarea tranzacțiilor, acestea primesc automat niște parametri interni și un număr de parametri declarați și
pot fi accesați de utilizator (pînă la 100 parametri). În funcție de implementare un program GPSS poate utiliza un
număr maximal de parametri, acesta fiind un dezavantaj al limbajului de simulare datorită faptului că limbajul
gestionează agenda, facilitînd astfel detalii de programare pe care într-un limbaj evaluat le rezolvă utilizatorul.
3. Stații de serviciu
4. Comutatori logici
Notă: toate entitățile de echipament sunt identificare printr-un număr întreg, ele posedă atribute
standart – numerice sau logice.
5. Variabile cu cuvîntul cheie VARIABLE.
6. Funcții (FUNCTION) - desemnează o funcție de o variabilă dată printr-o listă sau o funcție liniară
precizîndu-se argumentul prin care se referă.
7. Firul de așteptare (coada) – entitate statistică pentru care se reține automat lungimea medie și cea maximală
care se analizează (listează) la sfîrșitul simulării
8. Tabele de frecvență – se definește la începutul programului prin TABULATE.
9. Lanțuri
Notă: lanțurile sistemului sunt controlate automat de către GPSS dar lanțurile utilizatorului sunt definite de
acesta și ele pot fi referite în programul GPSS.
10. Grupurile – oferă utilizatorului un instrument de clasificare a tranzacțiilor care au anumite proprietăți.
În general un program GPSS reprezintă o listă ordonată de blocuri ale căror argumente se referă la diferite entități.
Exemplu:
Joi Function P1, D3
P1 – argumentul funcție
D3 – D arată că e o funcție discretă pe 3 perechi de numere. Perechile de numere se scriu din rînd nou în ordine
crescătoare prin ”/” , ex.: 1,4/ 3,8 / 5,3.


07.02.2014
Ex:
FUN FUNCTION P1,D3
1,3 / 4,8 / 6,2
Pentru valoarea argumentului P1 funcția capătă valoarea 3, pentru P1 = 2,3,4 funcția capătă valoarea 8 , respectiv
pentru P1 = 5, 6 funcția capătă valoarea 2


În cîmpul A al cartelei FUNCTION se indică argumentul funcției. În cîmpul B definirea funcției – prima literă ne
indică ce tip de funcție este (D – discret, C – continuu) după literă arată numărul de puncte pe care funcția e
definită(definirea funcției). Perechile de numere se scriu divizate prin slash (în cazul nostru 3 perechi), iar primul
număr din pereche se divizează de al doilea prin virgulă. Primul număr din perechea de număr se scrie în ordine
crescătoare.
Funcția numerică continuă se deosebește de cea numerică discretă prin faptul că pe parcursul intervalului
descris valoarea ei este calculată prin intermediul interpolării liniare. Drept puncte de reper folosindu-se valorile
ei la frontierele din stînga și dreapta a intervalului descris.
Ex:
FUN1 FUNCTION P1, C3
1,3 / 4,8 / 6,2


C3 definește o funcție cu denumirea FUN1 continuă pe 3 perechi de numere.

0
1
2
3
4
5
6
7
8
9
0 2 4 6 8
F
N
$
F
U
N
1

P1
0
1
2
3
4
5
6
7
8
0 1 2 3 4 5 6 7
F
N
$
F
U
N

P1
GPSS-ul poartă un caracter stohastic și conține 8 generatoare de numere aliatoare notate prin RN1, RN2…RN8.
Ele sunt folosite în calitate de argument al funcției și generează numere pe intervalul 0,000001 – 0,999999
Dacă nu sunt utilizate ca argument al funcției atunci ele generează numere pe intervalul 0 – 999.
Exemplu:
LAB FUNCTION RN7, D3
0, 0 / .25, 5 / 1, 7 (.25,5 se poate scrie ca 0.25)
Funcția capătă valoarea 5 cu probabilitatea de 0,25 și valoarea 7 cu probabilitatea de 0,75, în acest caz,
argumentul ultimii perechi de numere trebuie să fie egal cu 1 pentru a respecta condiția că suma
probabilităților =1.
În baza unui program simplu, modificînd-ul puțin vom analiza următoarele cazuri:
1. Distribuirea uniformă a duratelor dintre generarea tranzacțiilor pe intervalul 90 – 110
SIMULATE
* Definirea variab
IVAR VARIABLE C1–X1
*Definirea tabelului
TIME TABLE V$IVAR,70,5,10

GENERATE 100, 10
TABULATE TAB1
SAVEVALUE 1, C1
TERMINATE 1
END
Programul se începe cu GENERATE generează tranzacțiile în model. În cîmpul A – durata medie dintre
generarea tranzacțiilor, în cîmpul B – modificatorul. Dacă în cîmpul B este indicată valoarea numerică atunci
fiecare durată pînă la generarea următoarei tranzacții va fi aleasă aleatoriu pe intervalul de la 100 ± 10 . Din
blocul GENERATE tranzacția nimerește în TABULATE, el introduce datele în tabel, în cîmpul A se indică
numele tabelului, acest tabel preventiv trebuie să fie definit. În cîmpul A(V$IVAR) se indică argumentul
tabelului(V$IVAR), 70 este limita de jos a tabelului, 5 este pasul tabelului, 10 este numărul de pași. Din
TABULATE tranzacția nimerește în SAVEVALUE, SAVEVALUE calculează diferența dintre valoarea curentă a
timpului respectiv a modelului C1 și valoarea lui la trecerea tranzacției precedente memorizate în celula X1.
TERMINATE 1 – elimină tranzacțiile din model (dacă nu-i 1 atunci nu elimină).
2. Distribuirea exponențială a intervalelor de timp dintre generarea tranzacțiilor
SIMULATE
EXP FUNCTION RN1,C4
0,3/.25,4/.5,7/1,11
INTRV VARIABLE C1–X1
TIME TABLE V$INTRV,0,20,50
GENERATE 100,FN$EXP
TABULATE TIME
SAVEVALUE 1,C1
TERMINATE 1
END
3. Distribuirea normală a intervalelor de timp dintre generarea tranzacțiilor
SIMULATE
NORM FUNCTION RN8, C4
0, 3 / .25 , 4 / .5 , 7 / 1, 11
SVAR FVARIABLE 100+10#FN$NORM
INTRV VARIABLE C1 – X1
TIME TABLE V$INTRV, 50, 5, 10
GENERATE V$SVAR
TABULATE TIME
SAVEVALUE 1, C1
TERMINATE 1
END

Exemplu:
Să se modeleze lucrul la o cantină în care sosesc clienții în fiecare 18 ± 6 u.t. (unități de timp). Fiecare client este
deservit în decurs 15±4 minute. Să se modeleze lucrul cantinei pe o durată de 8 ore. Timpul are distribuție
uniformă.
SIMULATE 480
GENERATE 18,6
QUEUE SAR
SEIZE MASA
DEPART SAR
ADVACE 15,4
RELEASE MASA
TERMINATE 1
END
14.02.2014
Tema 1: Generalități despre modelare și simulare
1. Introducere
2. Construcția unui model de simulare
3. Conceptele de bază în modelarea sistemelor
4. Metodologia de realizare a experimentelor de simulare.
5. Clasificarea limbajelor de simulare
1. În accepțiunea actuală a informaticii simularea cuprinde o serie de aplicații ce realizează imitarea
comportamentului unor părți ale lumii reale luînd în considerație și comportamentul aleatoriu al acestuia.
Definiții:
Simularea este o tehnică de realizare a experimentelor asistată de calculator care implică utilizarea unor modele
matematice și logice ce descriu comportarea unui sistem real dea lungul unei perioade de timp. Deci simularea se
realizează în baza unui model special numit model de simulare. Modelul de simulare se construiește în baza unui
model matematic, iar construirea modelului matematic se poate aborda în 2 moduri:
1) prin modelarea analitică – ca o consecință a legilor fizice ce descriu desfășurarea fenomenele.
2) ca o modelare experimentală în care determinarea modelelor se face prin prelucrarea datelor obținute (prin
măsurători experimentali).
Elementele constitutive al unui model matematic sunt:
1) variabilele (V) și parametrii (P) care la rîndul lor pot fi de intrare (V
i
și P
i
) și de ieșire (V
e
și P
e
). Atît
variabilele cît și parametrii pot primi valori numerice sau logice. Scopul modelului(matematic) este de a exprima
variabilele și parametrii de ieșire în funcție de variabilele și parametrii de intrare cu eventuală satisfacere a unor
condiții de performanță de către sistem.
2) relațiile funcționale : F
i
(V
i
,P
i
,V
e
,P
e
) = 0 . Aceste relații pot fi de 2 tipuri:
- ecuații (care sunt satisfăcute numai de anumite valori ale variabilelor și parametrilor)
- identități (care sunt satisfăcute de orice valori ale variabilelor și parametrilor). Identitățile exprimă
condițiile de echilibru.
Atît ecuațiile cît și identitățile pot fi relații algebrice sau transcendente, diferențiale sau integrale, deterministă
sau stohastice, etc.
3) caracteristile operative – ele compun modelul matematic și pot fi ipoteze de lucru sau ipoteze statistice.
4) tehnica de rezolvare – aceasta reprezintă o tehnică matematică ce realizează separarea elementelor de ieșire în
funcție de elementele de intrare (adică exprimă sub formă explicită variabile și
parametrii de ieșire (V
e
și P
e
) în funcție de variabilele și parametrii de intrare (V
i
și P
i
).

La construcția modelelor matematice se fac de multe ori ipoteze de simplificări care permit aplicarea tehnicilor de
care dispune matematica, acesta fiind scopul utilizării de către model a caracteristicilor operativ. Rezultă că
modelarea matematică este o aproximare și ea nu permite rezolvarea realistă a problemelor practice dar utilizarea
calculatorului permite îmbunătățirea modelelor matematice prin utilizarea metodelor numerice.
Clasificarea modelelor matematice:
1. După natura variabilelor utilizate în model se clasifică în : continue și discrete, statice și dinamice dacă se ia
în considerație timpul și deterministice și stohastice.
2. Clasificarea topologică adică după structura determinată de părțile în care se descompune modelul: cu o
componentă sau cu mai multe componente, în serie, în paralel și în rețea.
2. Construcția unui model de simulare. Modelul de simulare se construiește în baza scheletului unui model
matematic descriind unele relații prin algoritmi, am putea spune că modelul de simulare reprezintă un algoritm.
Acest algoritm trebuie să descrie corect evoluția sistemului și să permită efectuarea experiențelor care să
înlocuiască experiențele ce trebuie realizată asupra sistemului real.






Un model de simulare utilizează 2 componente de bază:
a) ceasul simulării
b) agenda simulării.
Ceasul simulării asigură eșalonarea corectă în timp a evenimentelor create de model și uneori ajută la
implementarea condiției de finisare a simulării. Ceasul simulării poate fi de 2 feluri: ceas cu creștere constantă și
ceas cu creștere variabilă. Ceasul pornește cu valoarea 0 la începutul simulării.
Dacă modelul se bazează pe ceasul cu creștere variabilă atunci ceasul este crescut cu valoarea ce corespunde
apariției primului eveniment următor apoi programul prelucrează evenimentul după care ceasul crește din nou
reluîndu-și ciclul simulării pînă cînd ceasul atinge o valoare inițială ce corespunde perioadei pe care se realizează
simularea.
Ceasul cu creștere constant presupune că de fiecare dată creșterea se realizează cu o cuantă de timp C apoi se
prelucrează toate evenimentele apărute pe intervalul cu lungimea C.
b) Agenda simulării se compune din elementele memorate de modelul de simulare. Variabilele modelului iau
diverse valori pe parcursul simulării, adică în el permanent au loc niște procese.

O apariție instantanee ce reprezintă schimbarea stării sistemului se numește eveniment.
Tranzițiile de stare sunt rezultatul combinării proceselor evenimente asincrone și concurente.
Activitatea este o perioadă de timp de lungime cunoscută de la începutul ei. Poate fi activitate endogenă(apărută
în interiorul sistemului) și exogenă (apărută în mediul extern dar influențează asupra sistemului).
Întîrziere – o perioadă de timp nespecificată ca lungime.
O serie de evenimente în timp se numește proces. Un proces poate fi: generate/întrerupte, activate/nimicite.
Sincronizarea proceselor se efectuează prin operatori de timp ,,așteaptă” iar logica prelucrării modelelor poate fi
orientată atît pe evenimente cît și pe activități.



Nod extern
Sistem

20.02.2014
În modelele discrete există 3 abordări:
- orientarea pe evenimente
- orientarea pe activități
- orientarea pe procese
Orientarea pe evenimente este modelată prin identificarea schimbărilor ce au loc în model în momentul
efectuării anumitor evenimente, sarcina cercetătorilor fiind de a descrie toate evenimentele care pot schimba
starea sistemului și a defini legătura dintre ele.
La Orientarea pe activități utilizatorii descriu acele activități ce iau parte la evenimentele modelului precum și
condiția de început și sfîrșit a acestor activități (adică la fiecare pas al simulării se examinează condițiile pentru
fiecare activitate). Evenimentele prin care activitățile încep și se sfîrșesc nu se planifică, ele se generează automat
prin condițiile pentru fiecare activitate.
La orientarea pe procese este o îmbinare a abordării pe evenimente și activități. La etapa de formalizare a
fiecărui obiect din sistem i se atașează un proces care constă din evenimente și activități. Pe parcursul simulării
memorarea tuturor evenimentelor ce se petrec împreună cu toate caracteristicile lor nu este necesară și nici
recomandată dacă simularea are loc într-o durată mare de timp adică în agendă se memorează doar acele
evenimente strict necesare, deoarece evenimentele sunt create sau generate la momente de timp ulterioare
ceasului simulării.
Agenda este compusă din agenta evenimentelor curente și agenda evenimentelor viitoare:
A = AEC + AEV
AEC (evenimentele la care timpul de apariție este egal cu ceasul simulării)
AEV (evenimentele care au timpul de apariție ulterior ceasului)
Algoritmul de simulare prelucrează evenimentele numai din AEC iar prelucrarea unui eveniment înseamnă:
fie apariția unui nou eveniment (memorat în AEV) sau modificarea unei stări sau ștergerea/distrugerea unui
eveniment, etc.
Algoritmul de simulare gestionează agenta prin interacțiunea acesteia cu ceasul:
Într-un ciclu de simulare ceasul este actualizat după care se selectează din agenda (A) evenimentele care fac parte
din AEC și se prelucrează pînă cînd devine vidă după care ceasul este crescut din nou și se preia algoritmul de
simulare.
3. Conceptele de bază în modelarea sistemelor
În formă vagă orice sistem constă din următoarele mulțimi:
S = (T, X, Ω, ∑, Y, δ, λ)
T- timpul sistemului (ceasul)
X – mulțimea intrărilor
Ω - mulțimea segmentelor de intrare (forma intrărilor)
∑ - mulțimea stărilor interne ale sistemului (memorie) .
Notă: conceptul de stare este esențială în modelarea sistemelor. Ea descrie structura internă a sistemului.
Y - mulțimea ieșirilor
δ - funcția de tranziție a stărilor
λ - funcția de răspuns
Nivele de reprezentare a sistemului:
1. Reprezentarea la nivel de comportare. În această formă sistemul este reprezentat printr-o cutie neagră.


Aceasta este cea mai vagă formă de reprezentare și ea descrie numai relațiile de intrare și ieșire ce se pot observa
din afara sistemului.
Y X

2. Reprezentarea la nivel de structură de stare. La acest nivel se intră în structura internă a sistemului, adică
se definesc toate mulțimile sistemului (T, X, Ω, ∑, Y, δ, λ)
3. Reprezentarea modulară (ca o structură compusă). Dacă sistemul este complex, atunci se identifică
subsistemele acestuia precum și interconexiunile dintre acesteia.
Nivele de reprezentare a sistemelor legitimează metodologia ,,TOP DOWN” de proiectare a sistemelor de orice
fel (în particular și sistemelor de orice fel și în general metodologia de proiectare ierarhică descendentă a
programelor).
Se numește sistem cu evenimente discrete structura M = (X, S
m
, Y
m, ,

̅

, λ
m
,
̅
)Unde:
X
m
reprezintă mulțimea evenimentelor externe
S
m
– reprezintă mulțimea stărilor secvențiale ale sistemului
Y
m
- mulțimea valorilor de ieșire

̅

– funcția de tranziție a stărilor
λ
m
- funcția de ieșire a sistemului. λ
m
: ∑
m
-> Y
m

̅
- timpul .funcția de avans a timpului
̅
: S
m
→ [0, ∞]
4. Metodologia de realizare a experimentelor de simulare.
Etapele de realizare a unui experiment sunt următoarele:

Orice program de simulare posedă un minim de facilități pentru prelucrări statistice.
Formularea problemei
Realizarea unor
experimente preliminare
Prelucrarea
Formularea modelului
Evaluarea modelului
Construcția unui model de
simulare
Validarea modelului
Planificarea
evenimentelor finale
Prelucrarea și interpretarea
experimentelor simulării
Constă în precizarea întrebărilor la care trebuie să răspundă modelul. La fel se precizează și forma de
răspuns (grafic, histogramă, tabel
Se stabilesc pe baza observațiilor variabilele și parametrii care sunt de intrare și de ieșire
Prelucrarea unor date preliminare. Se estimează parametrii și se testează ipotezele statistice
Formularea unui model matematic preliminar – la această etapă se estimează parametrii, se precizează
relațiile funcționale, ipotezele de lucru, se identifică relațiile care nu pot fi descrise matematic și se
determină dificultățile ce trebuie înlăturate pentru a răspunde la întrebările formulate.
Etapa de decizie. Se evaluează complexitatea modelului. Se poate de reformulat alte etape de mai sus
Se descrie sub formă de algoritm detaliat
Testarea sintactică, formularea programului adică validarea formală. Acest lucru se realizează prin
compararea rezultatelor simulării fie că se compară cu niște rezultate practice cunoscute fie prin
compararea cu soluții
Programul de simularea ce este rulat pe calculator produce de regulă valori de selecție a variabilelor de
ieșire dar care nu definesc selecțiile statistice în sens obișnuit (nu sunt selecții Bernuliene deoarece
valorile de selecție nu sunt de regulă dependente)
21.02.2014
Limbajul de simulare implementează elementele esențiale ale simulării :
- manipularea ceasului
- gestionarea memoriei
Utilizatorul însă are grijă de descrierea evenimentelor și prelucrării lor. În dependență de natura sistemelor
simulate, limbajele de simulare se clasifică în:
- limbaje pentru modelarea sistemelor continue
- limbaje pentru modelarea sistemelor discrete
- limbaje pentru modelarea sistemelor continue-discrete

Aceste modele pentru simularea continuă sunt desformalizate prin intermediul ecuațiilor diferențiale. În limbajul
din grupul al 2lea (limitarea prin blocuri) se utilizează un set de blocuri ce sunt echivalente din punct de vedere
funcțional cu blocurile unui calcul analogic (generatoare, blocuri pentru măsurare, pentru diferență, etc.)
În cazul simulării sistemelor discrete, starea sistemului se poate modifica doar în anumite momente sub acțiunea
Limbaje de simulare
a sistemelor continue
Utilizarea ecuațiilor
diferențiale (ForSIM)
Limitarea prin blocuri
(SIMULINK)
Limbaje de simulare
a sistemelor discrete
Orientate pe
evenimente
Orientate pe
procese (GPSS, SIMUB)
Orientate pe
scanarea activității
Limbaje de simulare a
sistemelor continue-discrete
Orientate pe procese
Orientate pe
activități, mijloace
pentru simularea
concurentă (SLAM)
Orientate pe
evenimente –
mijloace pentru
simularea continuă
(NEDIS)
evenimentelor
În aceste limbaje de simulare, variabilele independente pot fi modificate atît în timp discret cît și continuu.
Sistemul va fi descris prin intermediul elementelor cu anumite atribute și variabile de stare, iar comportamentul
sistemului se va modela prin calcularea acestor variabile de stare cu o anumită perioadă de timp, și a calculul
valorilor atributelor în momentul petrecerii anumitor evenimente.
Noțiuni generale despre distribuții
În orice proces de producție există o anumită rată de variație naturală care apare indiferent de modul în care a fost
proiectat sau implementat procesul. Această variație este incontrolabilă și apare din cauza diferitor cauze
nesemnificative și aceste variații calitative se numesc variabile aliatoare și ele sunt referite ca un sistem stabil cu
cauze întîmplătoare. Atunci cînd aceste variații sunt mici ele nu provoacă nici un discomfort consumatorului, dar
cînd sunt mari trebuie de luat măsuri pentru a fi neutralizate. Atunci cînd aceste variații sunt dăunătoare ele se
numesc sistematice și pot veni de la una sau mai multe cauze posibile, iar procesele care operează în afara lor
spunem că sunt în afara controlului.
Definiție: Variabilele de selecție asupra variabilelor aliatoare uniforme se numesc numere aliatoare. Nu este
posibilă producerea lor la calculator printr-un algoritm la calculator a secvenței de numere aliatoare ce să fie
uniform repartizate pe un interval și care să fie independent stohastic de aceea numerele produse cu calculatorul
se numesc numere pseudo-aliatoare și ele pot fi folosite ca numere aliatoare în cazul cînd au un comportament cît
mai aleatoriu iar algoritmul care produce numere aliatoare se numește generator de numere aliatoare.
Iterînd un generator se poate obține o secvență de numere aliatoare.
În controlul statistic se folosesc diferite modele probabilistice pe care le numim distribuții care caracterizează
variabile aliatoare și care sunt funcții de probabilitate și exprimă probabilitatea că un eșantion de dimensiunea n
să conțină x părți necorespunzătoare. Prin urmare distribuția de probabilitate este un mijloc de modelare a
proceselor. Pentru calculul acestor probabilități se poate de definit o funcție f: [a,b] → R care atribuie fiecărei
valori x
0
ce aparține intervalului [a,b] factorul de proporționalitate f(x
0
) corespunzător probabilității ca variabila x
să ia valori în intervalul [x
0
, x
0
+dx]. Funcția f definită se numește funcție de densitate de probabilitate și ea
verifică proprietățile:
P1: f(x) ≥ 0 ; x[a,b]
P2: ∫ ()

- realizarea unui eveniment sigur.
1. Distribuția uniformă. O variabilă aliatoare este distribuită uniform dacă poate lua aproape orice valoare
într-un interval în care variabila este uniform distribuită. Dacă intervalul a și b sunt limitele intervalului, atunci
densitatea de probabilitate va fi:
() {

Valoarea medie a unei astfel de variabile este (a+b) / 2.
1. Distribuția exponențială. O clasă aparte de probleme sunt acele care urmăresc probabilitatea de apariție a
evenimentelor, de exemplu:
- probabilitatea că o mașină (xerox, imprimantă) să nu să se strice într-o perioadă de timp.
Distribuția exponențială se referă la distribuția de timp între evenimente independente care apar cu o rată
constantă. O variabilă continuă x are o distribuție exponențială de parametrul λ > 0 dacă are funcția de
probabilitate de forma : F(x) = 1 -

≥ 0. Respectiv prin derivare se poate obține densitatea de probabilitate :
f(x) = λ

, x ≥ 0 , iar valoarea medie unei astfel de variabile este 1/λ. Cea mai importantă proprietate de
distribuție exponențială este lipsa de memorie (Marcoviană).
2. Distribuția geometrică (distribuția Pascal). Această distribuție este echivalentul discret a distribuției
exponențială f(x) = P(x = X) = p * q
x-1
unde p + q =1, x = 1,2, … Variabila discretă poate fi considerată ca index
într-o listă posibil infinit de experimente independente unde P este probabilitatea de succes iar q este
probabilitatea de eșec (q = 1-p). Funcția probabilitate F(x) = 1 – q
x
iar media este =

.
3. Distribuția binominală. Fie un experiment și A un eveniment asociat acesteia care se realizează cu
probabilitatea P, iar evenimentul
̅
cu probabilitatea q . Dacă se efectuează n probe independente și se notează
prin X numărul de realizări ale A (evenimentului) atunci : variabila X are o distribuție binominală de ordinul n
dacă ia valorile 0,1,...,n cu probabilitatea P(x = K) =

.
P(x) este un număr pozitiv și reprezintă posibilitatea că din n încercări evenimentul A să se producă de K ori,
știind că probabilitatea evenimentului A este constantă în orice încercare și este egală cu P. Una dintre cele mai
importante este distribuția Poisson și ea mai poartă denumirea de legea evenimentelor rare.






























06.03.2014
În procesul modelării a sistemului, se folosesc dispozitive în parte dar în compoziție cu mai multe dispozitive. De
exemplu:

Aceasta fiind o Q schema multicanal.
Dacă canalele k
i
a diferitor dispozitive sunt legate paralel are loc o deservire multicanal a cererilor. Iar dacă
dispozitivele și compozițiile lui paralele sunt legate succesiv, are loc o deservire multifazică. Se deosebesc Q
scheme deschise și închise.
Deschise – cînd fluxul de ieșire nu poate nimeri la un element al schemei.
În teoria sistemelor de așteptare este de menționat următoarea terminologie în dependență de lungimea șirului:
- sisteme cu pierderi (L
i
≥0)
- sistem cu așteptare ( L
i


aproximativ =

∞ )
- sistem amestecat ( L
i
= n (const))
Alegerea cererilor sau clienților se face după 2 reguli: prioritatea relativă și prioritatea absolută.

5. A scheme (scheme universale) – cea mai cunoscută metodă pentru deservirea formală a proceselor de
funcționare a sistemelor și destinată pentru deservirea comparativă a sistemelor discret continuu deterministe și
stohastice. Are la baza sa noțiunea de agreg (de la agregat). La deservirea agregativă un anumit complex este
descompus într-un număr finit de componente (subsisteme) păstrînd în același timp legăturile dintre ele. În
calitate de element al schemei se utilizează un agregat, iar legătura dintre agregate se face printr-un vector de
conjugare R. Sub agregat vom înțelege : A = < T, X, Y, Z, Z
(y)
, M>

T – momentul de timp
X – intrările
Y – ieșiri
Z – mulțimea stărilor
Z
(y)
– o submulțime din mulțimea y(stările în momentul de emitere a semnalelor de ieșire)
M – mulțimea parametrilor interni
Y
i
x
i
x
k

.
.
.
.
.
.
.
.
y
i

y
l

Avantajele : reprezentarea sistemului în formatul de A schemă ducă la unificarea nu numai algoritmilor de
simulare, dar și posibilitatea de a prelucra și analiza rezultatele modelului de simulare.
Sistemele de așteptare pentru servire cu o singură și mai multe stații
1. SA pentru deserviri cu o singură stație
2. SA pentru deserviri cu mai multe stații
Un fenomen de așteptare se caracterizează prin următoarele aspecte:
- existența cererilor sau a clienților care intră în sistem într-un număr limitat sau nelimitat formînd firele de
așteptare.
- prezența pe traseul de așteptare a uneia sau mai multe stații de servire.
- corelația strînsă dintre sosirea cererilor, formarea firelor de așteptare și deservirea cererilor din fir.
Pot exista unul sau mai multe fire paralele de așteptare și unul sau mai multe stații de servire. Servirea cererilor se
poate efectua în paralel, cascadă, serie-paralel. Un deosebit interes îl poartă deservirea în paralel a cererilor, ele
fiind aplicate la modelarea memoriei calculatorului, transferului paralel de date, a sistemelor multiprocesor, etc.
Disciplina de deservire a cererilor poate fi FIFO, LIFO și conform priorităților.
Reprezentarea schematică a unui sistem de așteptare (SA) cu o singură stație de servire:


Fluxul de intrare descrie modul în care sosesc cererile în sistem ce necesită o deservire. Rata (intensitatea) de
sosire și de servire a cererilor în sistem într-o unitate de timp se notează prin λ, µ.
Dacă cererile sosite suferă o singură fază de deservire, părăsind în continuare sistemul – se numește sistem
monofazic.
Fie că avem un flux de cereri, de tip Poisson , avînd intensitatea de sosire λ, iar durata de servire T
ser
este
distribuită exponențial avînd parametrul µ. Durata medie de sosire a cererilor în sistem T
cer
=

.
Durata de servire nu depinde de lungimea firului de așteptare.
Teoria SA dispune de formule pentru calcularea caracteristicilor de bază a sistemelor descrise. Pentru cazul sosirii
și servirii Poissoniene în regim staționar pot fi calculați mai mulți parametri ai sistemului modelat: numărul mediu
de cereri în firul de așteptare, numărul mediu de clienți (cereri) în sistem, durata medie de reținere a cererilor în
sistem și durata medie de așteptare.
numărul mediu de cereri în firul de așteptare se determină prin : L
q
=

( )

Utilizînd formula lui Little se poate de dedus că :

( )

( )

Durata medie de așteptare :

C
i
Y
i
Q
K
i
2. SA pentru deserviri cu mai multe stații
Reprezentarea :


Cererile sosesc într-un flux nelimitate de tip Poisson cu intensitatea , deservirea se efectuează de prima stație
liberă, toate stațiile sunt identice, durata de servire are distribuție exponențială cu intensitatea .
Sistemele de așteptare multicanal pot fi de 2 feluri: cu sau fără pierderi. Sistemul va funcționa fără blocări cînd
unde m – nr de stații pentru servirea paralelă.
Numărul mediu de stații ocupate se notează prin u, pe parcursul modelării se transformă în : u =

. Probabilitatea
se notează prin P
m
(u) . Probabilitatea că vor fi ocupate toate m stații poate fi determinată astfel:
1)

()

()

()



()

)

()
)

SA multicanal cu pierderi. În cazul aplicării acestei scheme de aplicare, cererea care sosește în sistem în
cazul lipsei unei stații libere de servire poate să părăsească sistemul fără a fi deservită. În acest caz putem
estima următorii parametri:
1. Probabilitatea pierderii ale cererii
2. Numărul mediu de tranzacții pierdute într-o unitate de timp
Acești 2 parametri!!!:

Y
i
Cercetarea SA cu servire prioritare

Formarea firelor de așteptare și deservirea cererilor în SA de regulă se face după principiul FIFO. În unele cazuri
în dependență de urgentarea deservirii cererii se necesită asigurarea unei alte discipline de formare a firului de
așteptare.
Definiție: Modelele în care disciplina de deservire după alte criterii diferă de disciplina intrării cererilor în
sistem se numesc modele cu prioritate. Modele cu prioritate se împart în 2 categorii: relativă și absolută.
SA cu prioritate relativă. Disciplina de deservire prioritară a fost introdusă pentru micșorarea duratei de aflare în
sistem a unei cereri cu prioritate înaltă fapt ce duce inevitabil la mărirea duratei de aflare în sistem a altor cereri
cu o prioritate mai joasă. Servirea conform priorității relative presupune manifestarea priorității numai în
momentul eliberării stației de deservire și alegerii cererii din firul de așteptare (cu prioritatea mai mare). Această
cerere acaparează stația de deservire și decurge deservirea. Dacă pe parcursul deservirii în sistem sosesc cereri cu
prioritatea mai mare procesul de deservire nu va fi întrerupt, cererea ocupînd un loc în firul de așteptare.
Fie că avem un sistem cu ,,r” fluxuri de intrare cu prioritățile respectiv de la 1 pînă la r. Fiecare flux k este de tip
Poisson cu intensitatea

( ) . Fluxul sumar este de asemenea de tip Poisson cu intensitatea ∑

.
Vom presupune că durata de deservire a cererilor cu prioritatea k are o distribuție exponențială

. Respectiv
durata medie de deservire T
ser
=

. În cazul cînd cererea sosită în sistem, iar stația de deservire este ocupata,
atunci se formează r șiruri de așteptare în care se plasează cereri cu prioritatea i(i=1…r).

Sarcina exercitată de către fluxul k asupra sistemului

( )
u
k
– suma sarcinilor dintre fluxul de intrare






λ

λ
2

λ

A
R
B
I
T
R
U





Sisteme cu prioritate absolută. Prioritatea absolută se manifestă prin întreruperea stației de deservire și ocuparea
acestuia de către cererea sosită în sistem cu prioritate mai înaltă decît cererea în curs de deservire. Schematic:

*nu-i finisată schema*
Pot fi acceptate următoarele disciplini de deservire a cererilor întrerupte:
1. După deservirea cererilor cu prioritate mai înaltă continuă deservirea cererii întrerupte luîndu-se în
considerație timpul de la începutul deservirii pînă la întrerupere .
2. Cererea a cărei deservire a fost întreruptă se pierde adică părăsește sistemul rămînînd nedeservită
3. Deservirea cererii întrerupte continuă ignorîndu-se timpul de deservire pînă la întreruperea acesteia.

Cele mai importante cîmpuri din raportul standard generat de GPSS
Titlul standart al unui raport conține numele modelului care a fost simulat, data și ora de rulare a modelului care
este inclus automat.
START TIME END TIME BLOKS FACILITIES STORAGES
0.000 518.63 4 0 0
NAME VALUE
INTRV 10007.00
EXPON 10003.00
BLOCKS – numărul de blocuri utilizate în model
FACILITIES - numărul total de dispozitive utilizate în model
STORAGES – numărul total de dispozitive multicanal și memorii declarate în model
NAME – numele atribuit de către utilizator în model
VALUE – reprezintă valoarea numerică atribuită modelului (sistemul atribuie numere începînd cu 10000)







λ

λ
2

λ

A
R
B
I
T
R
U








14.03.2014
Compartimentul ce se referă la blocuri:
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
GENERATE G1 1 0 0
ADVENCE G0 0 0 0

LABEL – reprezintă numele alfa-numeric alocat blocului
LOC – reprezintă poziția numerică a blocului în model sau locație
BLOCK TYPE – reprezintă denumirea blocului în GPSS (tipul blocului)
ENTRY COUNT – numărul tranzacțiilor ce au intrat în acest bloc de la ultima simulare a modelului sau de la
ultima aplicare a cartelei reset sau clear
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
Compartimentul ce se referă la dispozitive:
FACILITY ENTRIES UTIL. AVE.TIME AVAIL. OWNER PEND INTER RETRY DELAY
STATE1 51 0,95 95,4 0
FACILITY – numărul său numele dispozitivului
ENTRIES – reprezintă numărul de intrări în dispozitivul dat (de cîte ori dispozitivul a fost ocupat de blocurile
SEIZE(sau PREEMPT) de la ultima simulare sau de la ultima aplicare a cartelei CLEAR sau RESET
UTIL. – factorul de utilizare a dispozitivului (coeficientul de utilizare) care se calculează pentru perioada de
modelare de la ultima simulare sau de la ultima aplicare a cartelei CLEAR sau RESET
AVE.TIME – timpul mediu de ocupare a dispozitivului de către tranzacția pentru perioada de simulare sau de la
ultima simulare sau de la ultima aplicare a cartelei CLEAR sau RESET
AVAIL. – (pot fi 2 valori sau 0 sau 1) disponibilitatea dispozitivului
OWNER–numărul de tranzacții ce a ocupat dispozitivul dat(dacă e valoarea 0 atunci el nu a fost ocupat niciodată)
PEND – numărul de tranzacții care așteaptă să preia dispozitivul prin introducerea (regimul de întrerupere)
utilizînd blocul PREEMPT
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 dispozitivul (SEIZE)
INTER – numărul tranzacției curente care a întrerupt acest dispozitiv (contorul acestor tranzacții se află în lanțul
întreruperii)

QUEUE MAX CONT. ENTRY ENTRY(0) AVE.COUNT. AVE.TIME AVE.(0) RETRY
FIR1

MAX – conținutul maximal al firului de așteptare pe parcursul modelării sau de la ultima aplicare a cartelei
CLEAR sau RESET
CONT. – conținutul curent al firului de așteptare la sfîrșitul modelării
ENTRY – reprezintă contorul intrărilor (numărul total de intrări în firul de așteptare pe perioada de simulare)
ENTRY(0) – (contorul intrărilor 0) numărul total de intrări în firul de așteptare cu timpul de reținere 0
AVE.COUNT. – timpul mediul ponderat al conținutului firului de așteptare dea lungul perioadei de măsurare
(produsul spațiu-timp de împărțit la timpul perioadei de măsurare)
AVE.TIME - timpul mediu de reținere a unei tranzacții în firul de așteptare pe perioada de modelare
AVE.(0) – timpul mediul de aflare a unei tranzacții în firul de așteptare cu excepția intrărilor ,,0”
RETRY - numărul de tranzacții care așteaptă o condiție specială în funcție de starea acestui dispozitiv

Echipamentele multicanal (STORAGES)
PROBLEME
Să se modeleze următorul sistem în termenii GPSSS în care fluxul de cereri la intrare este de tip POISSON avînd
o intensitate de 0.1. Durata de deservire are o distribuție exponențială și are intensitatea de 0,2. Să se determine
numărul mediu de cereri în firul de așteptare și durata medie de reținere a unei cereri în sistem.

SIMULATE
myF function RN1, C4
0, 1/0.1,2 /0.2,3/0.7,4
timp TABLE M1, 10,5,20
GENERATE 10,FN$myF
QUEUE sir1
SEIZE statie1
DEPART sir1
ADVANCE 5,FN$myF
RELEASE statie1
TABULATE timp
TERMINATE 1
END

Să se simuleze un sistem de așteptare multicanal pentru serviri fără de pierderi ale cererilor :
m = 3 (numărul de servere)

SIMULATE
MYF3 BVARIABLE F1‘AND’F2‘AND’F3
F3 -> MYF function RN1, C4
0, 1/0.1,2 /0.2,3/0.7,4
timp TABLE M1, 10,5,20
GENERATE 10,FN$myF
QUEUE sir1
Test E BV$MYF3,0
SELECT NU 1,1,3
SEIZE statie1
DEPART sir1
ADVANCE 5,FN$myF
RELEASE statie1
TABULATE timp
TERMINATE 1
END

Cu pierderi trebuie de schimbat :
TABULATE timp
TERMINATE 0
TRANS SAVEVALUE 1+,1
TERMINATE1

Să se simuleze un program ce ar simula următorul sistem:
prin intermediul unor metode statistice sa stabilit că sosirea clienților la o bancă în care lucrează un
singur funcționar corespunzător cu un ghișeu. Au media clienți pe lună iar timpul de servire a unui
client are o distribuție exponențială cu media zile . Să se determine :
1. Probabilitatea că în sistemul de așteptare (SA) să nu existe nici un client la momentul dat.
2. Probabilitatea că în sistem există 5 clienți la momentul dat
3. a) Numărul mediu de clienți în sistem la momentul T ,
b) numărul mediu de clienți care așteaptă la momentul T
c) numărul mediu de clienți care sunt serviți la momentul dat
d) numărul mediu de clienți serviți efectiv într-o
unitate de timp.
4. timpul mediu de așteptare a unui client pînă la servire și timpul mediu de așteptare în întreg sistem.
Considerăm noțiunea de timp – ziua. Deoarece timpul mediu de deservire a unui client este

=>
800 clienți în lună. 4x5 zile lucrătoare = 20 zile lucrătoare.

2
clienți pe zi

1. P
0
= 1 - = 0,2
2. P
5
=

3.a)

)

=> 80% din capacitatea de deservire din partea funcționarului
80% * 50
4)

()
()

( )

()










20.03.2014
Problemă
În timpul zilei la un automat bancar sosesc în mediu 24 clienți/oră (dacă pe minut 0,4).
1. Care este nr mediu de clienți sosiți în T = 5 minute?

2. Sosirile avînd distribuție Poisson, calculați probabilitatea că într-o perioadă de 5 min să sosească 0,1,2 sau 3
clienți.

pentru x = 0 clienți : 0,13
pentru x = 1 clienți : 0,27
pentru x = 2 clienți : 0,27
pentru x = 3 clienți : 0,18
3. Dacă avem mai mult de 3 clienți în fiecare 5 minute, care este probabilitatea că vor apărea întîrzieri.
P(x > 3) = 1 – P (x ≤ 3) = 1 – 0,86 = 0,14
Durata de deservire are o distribuție exponențială = 36 clienți /oră.
( )

4. Care este probabilitatea că T
serv
≤ 1 min
P(t
serv
≤ 1) =

5. Care este Probabilitatea că T
serv
≤ 2 min
P(t
serv
≤ 2) =

2

6. Care este probabilitatea că t
serv
> 2 min
P(t
serv
> 2) =

SA M/M/1
7. Care este probabilitatea să nu existe clienți în SA?

8. Numărul mediu de clienți în rînd

2


9.

10.

11. timpul mediu petrecut de un client în sistem

12. probabilitatea că serverul să fie ocupat?

13. probabilitatea să fie n clienți în SA?

(

)

()

14. Calculați probabilitatea să avem 0,1,2 sau 3 clienți în SA
n = 0 => 0,33
n = 1 => 0,22
n = 2 => 0,15
n = 3 => 0,098
15. probabilitatea că în SA să fie mai mulți de 3 clienți ?
P(n > 3) = 1 – P(n ≤ 3) = 1- 0,798=0,202

Problemă:
Într-o bibliotecă universitară, la biroul de informații sosesc în mediu 10 cititori/oră. Durata de deservire are o
distribuție exponențială și rata de servire este de 12 cereri de asistență realizate/oră.

1. Care este probabilitatea să nu existe cereri de asistență în SA?

2. Care este numărul mediu de cereri ce așteaptă să fie rezolvate?

()

3. T
mediu
de așteptare?

4. T
med
pe care un cititor îl petrece în biroul de informație?

5. Probabilitatea că un nou venit să aștepte pentru a fi ajutat

Problemă:
La cabinetul unui stomatolog rata sosirii pacienților este 2,8 pacienți/oră. Doctorul poate trata în medie 3
pacienți/oră. Studiind timpul de așteptare, un pacient așteaptă în mediu 30 minute înainte de a fi consultat de
medic (T
q
= 30 min).
T
q
= 30 min

1. Care este numărul mediu de pacienți în SA?

2. Dacă un pacient intra în SA la 10:10 la ce oră va părăsi cabinetul?

minute, deci va părăsi la ora 11:00
Problemă
Un birou de taxe și impozite activează 2 ghișee de lucru cu publicul. Rata medie este 14 persoane/oră. Rata de
deservire = 10 clienți/oră pentru fiecare ghișeu (k = 2)
1. Probabilitatea că există clienți în SA ?

(

)

(

)

(

)

2. Numărul mediu de clienți din rînd

(

)

( )( )
2

3. Timpul mediu

pe care un client îl petrece în coada?

4. Durata medie ce petrece un client în SA?

5. Probabilitatea de așteptare

(

)
2
(

)

6. Probabilitatea să fie n clienți în SA?

(

)

21.03.2014
Introducerea în GPSS
Categorii Tipul
1 Dinamică Tranzacții
2 Operațional Blocuri(cartele)
3 Aparataj Dispozitive; EM chei logice
4 Calcul Variabile; funcții
5 Statistică FA; Tabele
6 Memorie Celule de memorie; matrice de celule
7 Grupe Lanțuri; grupuri

Acest tabel reprezintă categoriile și tipurile
Orice sistem poate fi descris prin intermediul unui număr determinat de elemente standard, așa zise obiecte.
Tranzacțiile reprezintă obiectele categoriei dinamice și ele sunt părți componente ale fluxurilor cercetate ce
parcurg structura fixată a modelului îndeplinind un șir de operații indicate. Obiectele categoriei operaționale sunt
blocurile ce redau logica de funcționare a modelului determinând totodată și calea de parcurgere a tranzacțiilor
prin obiectele categoriei de aparataj. Obiectele categoriei de aparataj reprezintă niște elemente abstracte prin
intermediul cărora este alcătuit modelul sistemului real. Categoria de calcul este destinată pentru descrierea
anumitor situații cînd legătura dintre componentele sistemului modelat poate fi ușor descris prin intermediul
expresiilor matematice.
Categoria statistică. Obiectele de categoria statistică sunt destinate pentru culegerea statisticii finale și ele nu
influențează la funcționarea modelului (însă indirect prin intermediul parametrilor lor poate să influențeze asupra
funcționării.
Categoria de memorie este destinată pentru înscrierea valorii necesare în celule sau matrice de celule.
GPSS-ul permite în caz de necesitate de a include tranzacțiile în liste și grupuri fiind posibile operațiile de grup
asupra tranzacțiilor din liste. Pentru descrierea structurii sistemului se folosește și reprezentarea grafică a
blocurilor.
Acțiunea descrise la un bloc se îndeplinește doar la momentul intrării tranzacției în acest bloc.
Tranzacțiile în GPSS pot avea pînă la 100 de parametri și 128 nivele de prioritate. Respectiv fiecare tranzacție
își are numărul său de identificare care nu este accesibil pentru utilizator la fel ca și timpul de generare a
tranzacției.
Programul ce dirijează cu generarea tranzacțiilor, schimbarea stărilor obiectelor și culegerea statisticii finale se
numește simulator. Orice schimbare de stare a sistemului se numește eveniment. Simulatorul fixează timpul de
apariție a evenimentelor și le prelucrează după acest timp.
Pentru menținerea corectă a consecutivităților evenimentelor în timp, în sistemul modelat funcționează și
ceasul de sistem care indică timpul de modelare. Indicațiile ceasului în orice moment de timp se numește timpul
absolut a modelului și acest timp absolut nu poate fi modificat de către utilizator. La fel existe și timpul relativ
care poate fi modificat prin intermediul unor cartele speciale. Deoarece GPSS lucrează cu numere întregi,
respectiv și timpul modelului poate primi doar valori întregi.
Unitatea de timp este aleasă de utilizator, simulatorul lucrînd însă cu timpul modelului.
Simulatorul nu analizează starea sistemului la fiecare moment de timp, dar schimbă valoarea timpului absolut
egalîndu-l cu timpul celui mai apropiat eveniment de unde rezultă timpul de modelare nu depinde de intervale de
timp din sistemul real dar depinde doar de numărul de evenimente prelucrate.
Lanțurile în GPSS
În GPSS tranzacțiile pot să se află în cîteva tipuri de lanțuri. Există 5 tipuri de lanțuri de evenimente:
1) lanțul evenimentelor curente – în care se află tranzacțiile cu timpul evenimentului egal cu timpul modelului,
iar deservirea tranzacțiilor în acest lanț are loc conform priorității tranzacției (dacă sunt mai multe tranzacții
de aceeași clasă, se distribuie conform timpului de apariție a tranzacției).
2) lanțul evenimentelor viitoare – în care sunt incluse tranzacțiile ale căror timp de declanșare este mai mare
decît timpul curent al modelului, iar ordinea de aranjare a acestui lanț este conform timpului de declanșare a
tranzacției (din lanțurile evenimentelor viitoare, tranzacțiile trec în lanțurile evenimentelor curente)
3) lanțul întreruperilor – în care se află tranzacțiile a căror timp de deservire a fost întrerupt, și ele sunt incluse
în model numai după anularea întreruperilor.
4) lanțul tranzacțiilor în pereche – în acest lanț sunt incluse tranzacțiile ale căror parcurgere de mai departe este
imposibilă din cauza lipsei uneia sau mai multe tranzacții.
5) lanțul utilizatorului – în care sunt incluse tranzacțiile care sunt extrase din model de către utilizator.

Sintaxe
Pentru a descrie un program în GPSS se utilizează literele de la A – Z, cifrele 0 – 9, și se utilizează 3 cîmpuri :
1 2 6 8 18 19 71
Eticheta Blocuri sau Cartele Operanzi

Formatul numerelor poate fi cuvînt (reprezintă 4 octeți 2
31
– 1) sau semi-cuvînt (2 octeți 2
15
– 1). În GPSS
fiecare obiect dispune de un șir de atribute care descriu starea lui la momentul dat. Aceste atribute pot avea valori
logice și numerice, iar atributele care sunt accesibile pentru utilizator se numesc standarte.
Atribute numerice standart (ANS) sunt reprezentate printr-o tabelă aparte (pag.59, anexa 1 îndrumarul de lab.).
Cartele în GPSS
Cartelele de control în GPSS se utilizează pentru dirijarea procesului de modelare.
Cartele:
1) SIMULATE – indică simulatorului în caz de necesitate de a se rula modelul. Sunt permise completarea a 2
forme a acestei cartele: SIMULATE și SIMULATE M, unde M reprezintă numărul de minute a timpului de
modelare. Ex: SIMULATE 2 (2 minute).
2) START A,B,C,D – Cîmpul A indică simulatorului la valoarea care se atribuie contorului determinării.
procesul de simulare se finisează atunci cînd acest contor are valoarea mai mică sau egală ca 0. Contorul de
terminări este decrementat cu valoarea care este indicată în cîmpul A, a blocului TERMINATE de ex:
TERMINATE 1
START 100 (cînd 100 de tranzacții vor trece prin blocul TERMINATE, procesul se va stopa).
Cîmpul B este utilizat pentru extragerea statisticii finale. Dacă în cîmpul B este indicată mnemonica NP atunci
nu se va extrage statistica finala.
Cîmpul C este folosit pentru primirea statisticii intermediare, în el se indică intervalul de extragere a statisticii.
Conținutul cîmpului C se decrementează sincron cu decrementarea contorului TERMINATE.
START 200,,5 la fiecare 5 intrări se vor forma cîte un raport (se vor forma 40 rapoarte în cazul dat)
Cîmpul D indică la necesitatea de a extrage statistica lanțului de evenimente curente, lanțul evenimentelor
viitoare, lanțul întreruperilor și utilizatorului.



28.03.2014
Problema:
Să se elaboreze un program ce ar modela procesul de generare a 500 de piese care sosesc în fiecare 11 ± 5 ut
distribuite uniform. Piesele sunt prelucrate de un muncitor în decurs de 10 ± 7 duratele la fel avînd o distribuție
uniform. După servirea a 300 de piese se necesită de prezentat statistica cu un interval de 25 de piese.

300 →
Simulate
generate 11,5
queue fir
seize sd
depart fir
advance 10,7
release sd
terminate 1
start 275,np
start 225,,25

pentru:

simulate stație
Canale BVariable
F1’and’F2
time table m1,0,10,20
generate 11,5
queue fir
test E 1,2,0
select nu 1,1,2
seize sd
depart fir
advance 10,7
release sd
tabulate time
terminate 1


3) CLEAR – la aplicarea acestei cartele se anulează întreaga statistică și din model se elimină toate tranzacțiile,
timpul modelului devenind egal cu 0 (C1 = 0). De asemenea sunt vidate toate celulele și matricele
de celule. Este posibilă utilizarea acestei cartele în regim selectiv indicînd în cîmpul operanzilor
obiectele parametrii cărora trebuie să fie salvați. (această cartelă nu acționează asupra generatoarelor
de numere aliatoare)
ex: CLEAR X1,X10 – celulele X1 și X10 să nu fie vidate(vide).



fir
sd


fir
sd

sd2
4) JOB – această cartelă se introduce între 2 modele ale unui utilizator. Ea îndeplinește aceeași funcție ca și
CLEAR numai că ea mai șterge din memorie descrierea modelului și permite rularea a mai multor
modele. Comparativ cu CLEAR ea instalează generatoarele de numere aliatoare în starea inițială.
5) END – indică simulatorului de sfîrșitul problemei introduse.

Metodele de adresare în GPSS
Există 2 tipuri de adresări: directe și indirecte.
Adresarea directă – adresarea la un obiect concret. Ea este posibilă la adresarea la numărul sau numele obiectului.
De ex: SEIZE 1. (ocupă dispozitivul cu nr)
La adresarea unui atribut numeric standart numele lui se divizează prin $. (de ex. FN$EXP)
Notă: pentru Atributele numerice standart separatorul nu se indică (de ex. FN1)
Adresarea indirectă – se folosește atunci cînd se necesită adresarea la un bloc față de alt bloc cu o etichetă.
Evident că se permite și adresarea la blocul curent. (de ex. Transfer ,#+3 transferul
tranzacției din blocul curent în al treilea tranzacție ce urmează).
În GPSS mai este posibilă adresarea obiectelor cu ajutorul parametrilor tranzacțiilor. În acest caz în loc de numele
sau numărul obiectului se va indica (P
j
sau #j)
Pentru adresarea la parametrii tranzacției se folosesc următoarele indicații:
{
()
()
()

pentru primul (1) caz adresarea se face la parametrul cu numărul n al tranzacție. În cazul (2) adresarea se face la
parametrul cu numărul indicat în valoarea parametrului n. Ex:
{



1) SEIZE P5
2) SEIZE P*5

În GPSS există 3 tipuri de variabile: aritmetice, aritmetice cu virgulă flotante, booleene.
Variabilele aritmetice reprezintă o reuniune aritmetică ale valorilor diferitor MS. După realizarea fiecărei operații
este eliminată partea fracționară din rezultat. Descrierea variabilei se face prin intermediul unei cartele speciale cu
următorul format:
<eticheta> VARIABLE A,B,…
Adresarea la variabile aritmetice se efectuează prin ANS V
j
.
Exemplu:
VAR3 VARIABLE Q5+3+FN$LIRE
valoarea variabilei VAR3 este calculată astfel : lungimea curentă a firului 5 plus 3 plus valoarea funcției LIRE.
Adresarea la VAR3 : V$VAR3
+ plus
- minus
# înmulțire
/ împărțire
@ împărțirea dupa modul

Variabile aritmetice cu virgulă flotantă sunt analogice cu cele aritmetice cu excepția că înaintea îndeplinirii
operației și calculării expresiei, partea fracționară nu se omite, ea se omite doar la valoarea finală. Adresarea la
variabile aritmetice cu virgulă flotantă se efectuează prin ANS V
j
doar că trebuie să difere numele față de
variabilele aritmetice.

VAR2 VARIABLE 10#(11/3)
VAR5 FVARIABLE 10#(11/3)

*VAR2 = 30
*VAR5 = 36
Împărțirea după modul este imposibilă.

Variabilele booleene reprezintă o expresie logică alcătuite din diferite ANS-uri. Descrierea este analogică cu
variabilele aritmetice cu excepția etichetei BVARIABLE.
<eticheta> BVARIABLE <exp.logica>
La prelucrarea variabilei booleene simulatorul verifică 1 sau mai multe condiții. Rezultatul permanent poate fi 0
sau 1. Există posibilitatea de utilizare a 3 operatori pentru acest tip de variabile:
- logici
- condiționali
- booleene

Operatorii logici sunt legați cu stările obiectelor în GPSS.























Log BVARIABLE SF#MEM
Variabila Log va avea valoarea 1 atunci cînd toate canalele echipamentului MEM vor fi ocupate și 0 invers.



























Obiectele
categorie aparataj
Mnemonica Descriere


Dispozitive
FU
n
(F
n
) 1 – ocupat
0 - liber
FNU
n
1 – liber
0 - ocupat
FI
n
1 – prelucrează o întrerupere
0 – în caz contrar




EM


SF
n
1 – echipamentul este ocupat (nu sunt canale libere)
0 – cel puțin un canal este liber
SNF
n
1 – invers ca la SF
n

0 – invers ca la SF
n
SE
n
1 – echipamentul este vid
0 – există cel puțin un canal ocupat
SNE
n
1 – invers ca la SE
n

0 – invers ca la SE
n

Chei Logice
L R
n


1 – cheia logică este resetată
0 – cheia logică nu este resetată
LS
n
1 – cheia logică nu este resetată
0 – cheia logică este resetată
15.05.2014
STORAGES:

Dacă sunt mai multe canale cu aceeași mărime, ele se divizează prin cratimă. Există 2 blocuri ce funcționează cu
echipamentul multicanal:
- blocul ENTER A,B : simulează ocuparea a unuia sau mai multe canale la intrarea
tranzacției în acest bloc. La neajunsul de canale libere, are
proprietatea de a se bloca. În cîmpul A se indică numele sau
numărul EM (echipamentului multicanal), iar în Cîmpul B se
indică numărul de canale pe care le ocupă tranzacția la intrarea în
acest bloc (implicit se ocupă un singur canal). Conține
următoarele ANS : C, ANSj, ANS#n, #n, Str.
ENTER #5,10 – a ocupa 10 canale din echipamentul multicanal
indicat în parametrul 5 (adresare indirectă)
- blocul LEAVE A,B: (blocul LEAVE și ENTER lucrează împreună, trebuie să fie
ambele). Se utilizează pentru eliberarea unui număr dat de canale.
Parametrii ca și la ENTER. Cîmpurile operanzilor A și B analogic
ca și la ENTER. Acest bloc nu refuză niciodată intrarea
tranzacției. Implicit eliberează un canal. Dacă conținutul cîmpului
B este mai mare decît conținutul curent a EM (echipamentului
multicanal) atunci va apărea eroare. Conținutul curent al
echipamentului multicanal se micșorează cu mărimea din cîmpul
B la intrarea tranzacției în blocul LEAVE S
j
= S
j
– [B].
LEAVE 5 – a elibera un canal din EM cu numărul 5
LEAVE #5,10 a ocupa 10 canale din echipamentul multicanal
indicat în parametrul 5.

Blocurile din categoria statistică
Queues – obiectele de tip șir de așteptare sau coadă sunt utilizate pentru culegerea statisticii despre firele de
așteptare ce apar în sistemul modelat în rezultatele diferitor condiții de blocare. În statistica extrasă de simulator
putem distinge:
- lungimea medie a firului de așteptare
- numărul de intrări în firul de așteptare
- numărul de intrări fără rețineri
- timpul mediu de reținere a unei tranzacții în firul de așteptare
- timpul mediu de reținere a unei tranzacții, luînd în considerații cele fără de pierderi
- lungimea curentă și lungimea maximală a firului de așteptare.

Queue A, B : (Atribute A: C, ANSj, ANS#n, #n, Str, B: C, ANSj, ANS#n, #n) blocul Queue e utilizat
pentru înregistrarea intrării a tranzacției în firul așteptat. În cîmpul A se indică numărul sau numele firului de
așteptare, în cîmpul B se indică numărul de locuri sau de unități pe care le ocupă tranzacția în firul de așteptare.
Implicit firul se incrimentează cu o unitate. În paralel cu Queue lucrează blocul DEPART.
DEPART A, B – se utilizează pentru decrementarea conținutului firului de așteptare.
A (C, ANSj, ANS#n, #n, Str) – numele sau numărul firului de așteptare.
B (C, ANSj, ANS#n, #n) – numărul de unități care se decrementează
TABULATE - din această categorie noi estimăm informația despre tabele. Tabelele se utilizează pentru
primirea funcțiilor de repartiție a argumentului dat care poate fi oricare atribut numeric standard. Statistica de
bază reprezentată de tabele conține următoarea:
- suma valorii argumentului introdusă în tabel după ultima activare a cartelei CLEAR sau RESET
- numărul de intrări în tabela
- valoarea medie a argumentului, care se calculează ca suma tuturor valorilor, împărțită
la numărul de intrări.
- devierea pătratică medie a argumentului
- valoarea medie a argumentului în ultimul interval
Intervalul Tabelei în statistică constă din următoarea:
- limita de sus a intervalului
- numărul de nimeriri în interval
- procentajul de nimerire în interval
- numărul sumar de valori mai mici sau egale ca limita de sus a intervalului
- numărul sumar de valori mai mari ca limita de sus a intervalului

<eticheta> TABEL A, B, C, D : În cîmpul B,C,D sunt constante, iar în cîmpul A: C,
ANSj, ANS#n, #n.
A - se indică argumentul tabelei
B – indică limita de jos a intervalului
C - pasul
D – numărul de pași
E – (se utilizează pentru regimul RT) în cîmpul E se indică intervalul de tabulare.
Tabelele pot funcționa în regim de diferență care se determină prin semnul minus după argument. În acest caz în
tabelă nu se va indica valoarea absolută a argumentului, dar diferența dintre valoarea curentă și cea precedentă. La
prima nimerire în interval, în tabel nu se include nimic, se memorează doar valoare argumentului. Există 3
regimuri de funcționare a tabelelor:
- IA
- RT
- QTABLE
Pentru utilizarea acestor regimuri, în cîmpul argumentului se înscrie în mnemonica corespunzătoare.
16.05.2014

TABULATE A, B – (A: C, ANSj, ANS#n, #n; B: C, ANSj, ANS#n, #n) Valoarea argumentului tabelei se
introduce de fiecare dată cînd tranzacția intră în blocul TABULATE. În cîmpul A se indică numărul sau numele
tabelei. În cîmpul B se indică numărul de unități care va incrementa contorul de nimerire în intervalul
argumentului (implicit el este 1). Pentru funcționarea tabelelor există 3 regimuri speciale:
- IA (Inter Arival) : se utilizează pentru evaluarea distribuției intervalelor de timp dintre
tranzacții într-un punct anumit al modelului și în acest caz la
nimerirea tranzacției în blocul TABULATE este fixat timpul absolut
al modelului și din el se scade timpul de sosire a tranzacției
precedente iar rezultatul primit se include în tabelă.
- Rate (RT): este folosit pentru evaluarea distribuției intensității tranzacțiilor într-un
punct anumit al modelului. Acest regim necesită includerea cîmpului E la
cartela TABLE, care ne va indica intervalul de timp în care se va măsura
intensitatea sau rata.
- QTable : se utilizează cînd se permite de a evalua regula de distribuire a timpului de
aflare a tranzacției în firul de așteptare.

Blocurile ce schimbă direcția de mișcare a tranzacțiilor

TRANSFER A, B, C – blocul TRANSFER este mijlocul de bază pentru schimbul direcției a tranzacțiilor. Are
posibilitatea de folosire a 9 regimuri care se indică în cîmpul A al blocului. În cîmpul B și C se indică blocurile
posibile de transfer al tranzacțiilor.
Nr. Regimul Cîmpul A
1 Necondiționat Vid
2 Static .nr de 3 cifre
3 BOTH BOTH
4 ALL ALL
5 PICK PICK
6 Funcție FN
7 Parametru P
8 Subprogram SBR
9 SIM SIM




Regimuri:
Necondiționat – tranzacția care intră în blocul TRANSFER va fi transmisă în blocul indicat în cîmpul B. Cîmpul
A este vid, C nu se utilizează. Ex: TRANSFER ,NEXT
Static – valoarea argumentului care urmează după punct (maximum 3 cifre) indică ce parte din tranzacții vor fi
transferate în blocul indicat în cîmpul C, cealaltă parte din tranzacții vor fi transferate în blocul indicat în
cîmpul B (dacă cîmpul B este vid atunci acea parte de tranzacții se transferă în următorul bloc după
transfer). Pentru acest regim este posibilă adresarea indirectă (#n).
Ex: TRANSFER .33,,PRIM

PRIM
(se scade din 100, deci 33% se duc în blocul PRIM, 100-33=77 se duc în următorul cîmp după TRANSFER)
BOTH - Fiecare tranzacție care intră în blocul TRANSFER va încerca de a trece în blocul indicat în cîmpul B.
Dacă încercarea eșuează, se produce o încercare să intre în blocul indicat în cîmpul C. În caz de ambele
refuzuri tranzacția rămîne în TRANSFER și va încerca să iasă din el după schimbarea următoare a
cîmpului model.
ALL - ……………… La utilizarea acestui regim nu se admite utilizarea adresării indirecte și a atributelor
numerice standard.


23.05.2014
PICK - din consecutivitatea blocurilor cu numerele N, N+1,…, N+i, M în mod aleatoriu se alege blocul unde se
transferă tranzacția. Evident că N este numărul blocului din cîmpul B iar M este numărul blocului din cîmpul C.
Notă: tranzacția va încerca să treacă numai în blocul selectat. În caz de refuz în acest bloc tranzacția rămîne în
blocul TRANSFER pînă la deblocarea direcției.
FUNCȚIE – în acest regim simulatorul calculează valoarea funcției numele căreia este indicat în cîmpul B și
aruncă partea ei fracționară iar pentru a determina numărul blocului unde se va transfera tranzacția valoarea
obținută se adună la valoarea indicată în cîmpul C. În caz de blocare tranzacția rămîne în blocul TRANSFER.
PARAMETRU – în cîmpul A se scrie P iar valoarea argumentului din cîmpul B se va interpreta ca numărul
parametrului ce intră în acest bloc și pentru determinarea numărul blocului unde se va transfera tranzacția se va
aduna acest parametru cu argumentul din cîmpul C.
SUBPROGRAM – tranzacția care intră în acest bloc va încerca să treacă în blocul indicat în cîmpul B. Valoarea
cîmpului C se va interpreta ca număr al parametrului în care automat se va înscrie numărul de ordine a blocului
TRANSFER.
SIM – în acest regim mișcarea tranzacției va fi întreruptă din cauza conectării indicatorului de reținere care se va
afla în stare conectată pînă la îndeplinirea anumitor condiții.

LOOP A, B – (A: ANSj, ANS#n, #n, C. B: C, ANSj, ANS#n, #n, Str) acest bloc se utilizează pentru organizarea
buclelor în GPSS. În calitate de contor al numărului de cicluri poate fi utilizat orice parametru al
tranzacției. Simulatorul calculează valoarea parametrilor tranzacției care este indicată în cîmpul A.
Această valoare se decrementează cu o unitate și este atribuită din nou parametrului dat. Astfel
tranzacția este transmisă blocului indicat în cîmpul B numai în cazul cînd această valoare este
diferită de 0, în caz contrar el trece în următorul bloc.

TEST cond A, B, C – (cond: E, NE, G, GE, L, LE A: C, ANSj, ANS#n, #n B: C, ANSj, ANS#n, #n
C: C, ANSj, ANS#n, #n, Str). blocul TEST indică numărul blocului următor pentru transferul tranzacției în urma
îndeplinirii/neîndeplinirii anumitor condiții. Acest bloc analizează relația algebrică dintre 2 ANS-uri care sunt
indicate în cîmpul A și B. Relația se redă prin mnemonica E, NE, G, GE, L, LE. Acest bloc poate funcționa în 2
regimuri: cu intrare condiționată și necondiționată. În regimul cu intrare necondiționată este prezent cîmpul C,
dacă condiția se îndeplinește, tranzacția trece în următorul bloc după TEST, în caz contrar în blocul indicat în
cîmpul C. În regimul cu intrare condiționată cîmpul C este vid. Tranzacția nu poate intra în blocul TEST pînă cînd
nu se îndeplinește condiția dată. Dacă condiția se îndeplinește tranzacția va trece în blocul ce urmează după
blocul TEST.

GATE cond A, B – acest bloc ca și blocul TEST permite schimbarea direcției de mișcare a tranzacțiilor în
dependență de 12 atribute logice (relații) care se scriu implicit după GATE. Numărul obiectului ce se verifică se
indică în cîmpul A și la fel funcționează în 2 regimuri. Adresa alternativă de transfer se indică în cîmpul B.


Mnemonica atributelor logice
1. Dispozitive
U – use (dispozitiv ocupat)
NU – not use (dispozitiv liber)
I - dispozitiv întrerupt
NI – dispozitiv ne întrerupt

2. EM
SE – echipamentul multicanal este vid (S
j
= 0)
SNE – echipamentul multicanal nu este vid (R
j
= 0)
SF – echipamentul multicanal este plin
SNF – echipamentul multicanal nu este plin
3. Chei logice
LR – cheia este resetată
LS – cheia este setată
4. Tranzacții
M – în blocul indicat în cîmpul A se află o tranzacție în stare de sincronizare care aparține aceeași familii ca și
tranzacția care vrea să intre în acest bloc.
NM – în blocul indicat în cîmpul B nu sunt tranzacții în stare de sincronizare și nici din aceeași familii ca și
tranzacția care vine.


29.05.2014
Singuri de studiat: ASSIGN, INDEX, MARK, ASSEMBLE, SPLIT, GATHER. LANȚUL
UTILIZATORULUI (POATE NIMERI LA EXAMEN)

Blocurile ce modifică parametrii tranzacțiilor

COUNT cond A, B, C, D, E (în toate cîmpurile ANS, ANS#n, #n) – acest bloc permite utilizatorului de a enumera
obiectele care satisfac o anumită condiție. Cîmpul A indică numărul parametrului tranzacției în care se
organizează un numărător de obiecte ce satisfac condiția dată. Cîmpurile B, C determină intervalul de scanare a
obiectelor. B – limita de jos, C – limita de sus. În cîmpul D se folosesc operatorii condiționali care se scriu
nemijlocit după blocul COUNT. În acest caz atributul numeric standard din cîmpul D se compară cu atributul
numeric standard din cîmpul E. Respectiv în cîmpul E se indică un atribut numeric standard (ANS) al obiectelor
cercetate care în continuare se compară cu cel din D. Dacă se utilizează operatorii logici atunci cîmpul D și E sunt
vide.

SELECT cond A, B, C, D, E, F (A,B,C,D,E: C, ANS, ANS#n, #n, F: C, ANS#n, ANSj, #n, Str) – acest bloc
funcționează ca și blocul COUNT cu excepția că în loc de a număra obiectele care satisfac o anumită condiție
blocul SELECT selectează primul din ele scriind numărul acestuia în parametrul indicat în cîmpul A. Cîmpurile
de la A la E sunt analogice ca și la COUNT. Cîmpul F permite ieșirea alternativă. În caz că cîmpul F este vid
tranzacția totdeauna va trece în cîmpul următor.

Familiile de tranzacții fac parte din categoriile de grupare, ele asigurînd o prelucrare specifică pentru anumite
grupuri de tranzacție. Simulatorul urmărește componența acestor familii, respectiv micșorînd sau mărind numărul
membrelor. Fiecare tranzacție introdusă în model inițial este privită drept o familie cu un singur membru respectiv
fiecare tranzacție poate fi membră doar a unei singure familii. Blocul SELECT spre deosebire de blocul COUNT
mai poate funcționa și în regim de minim sau maxim. În acest caz sunt selectate acele obiecte atributele căror sunt
minimale sau maximale și în acest caz cîmpul D și F sunt vide.


Blocul PRIORITY A, B (A: C, ANSj, ANS#n, #n B: Buffer) – acest bloc este utilizat pentru atribuirea
priorității necesare tranzacției. Prioritatea influențează la starea tranzacției în lanțurile evenimentelor curente, la
ordinea de prelucrare a lui respectiv și la poziția în firul de așteptare. Prioritatea inițială a tranzacției se instalează
în blocul GENERATE în cîmpul E. În blocul PRIORITY prioritatea necesară se indică î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 iar dacă în
cîmpul lui stă indicat Buffer atunci îndată după schimbarea priorității simulatorul va schimba și lanțurile
evenimentelor curente.

Un singur frizer la care clienții sosesc
Sosire = 102
Deservire = 12
Simularea timp de 8 ore



SIMULATE 480 (8 ore)
Generate 10,2
QUEUE Fir1
SEIZE stat1
DEPART Fir1
Advance 12,22
RELEASE stat1
TERMINATE 1
END

plus:
să se introducă datele în tabel TIMP3
SIMULATE 480
TIMP3 Table M1, 0,10, 100
GENERATE 10,2
QUEUE Fir1
SEIZE stat1
DEPART Fir1
Advance 12,2
RELEASE stat1
TABULATE TIMP3
TERMINATE 1
END

Să se simuleze sistemul nu pentru 8 ore dar pentru trecerea a 200 clienți:
SIMULATE
TIMP3 Table M1, 0,10, 100
GENERATE 10,2
QUEUE Fir1
SEIZE stat1
DEPART Fir1
Advance 12,2
RELEASE stat1
TABULATE TIMP3
TERMINATE 1
START 200


Dacă se cere că după trecerea a 100 clienți să se afișeze statistica finală cu pasul 10:
SIMULATE
TIMP3 Table M1, 0,10, 100
GENERATE 10,2
QUEUE Fir1
SEIZE stat1
DEPART Fir1
Advance 12,2
In OUT
RELEASE stat1
TABULATE TIMP3
TERMINATE 1
START 200
START 90, np (not print)
START 110, ,10 (200-90)


Să se modeleze lucru la o bancă în care activează 3 ghișee. Serviciul se realizează după FIFO.
m = 3 (s1,s2,s3)
deservire = 10
sosire = 4
Casier 2

SIMULATE
Ghiseu Storages 3 ( 3 ghișee)
Generate 4,1
QUEUE FA1
Enter Ghiseu
Depart FA1
Advance 10,2
Leave Ghiseu
QUEUE FA2
SEIZE Casier
Depart FA2
Advanced 2
Release Casier
Terminate 1
END









Întrebare pentru examen:
Blocul ENTER simulează ocuparea a unuia sau mai multe canale la intrarea
tranzacției în acest bloc conține următoarele ANS : C, ANSj, ANS#n, #n, Str.

S1
S2 S3
G
FA1
FA2
Casier