Sunteți pe pagina 1din 7

SAA 6

UTILIZAREA BIBLIOTECII SIMEVENTS


ÎN MODELAREA ŞI ANALIZA
SISTEMELOR DE AŞTEPTARE

1. Consideraţii generale, motivaţie şi obiectiv


O simulare bazată pe evenimente discrete permite ca tranziţiile de stare ale sistemului
modelat să depindă de evenimente asincrone discrete. În contrast, o simulare bazată numai pe
ecuaţii diferenţiale sau cu diferenţe, în care timpul este variabilă independentă, se numeşte
simulare bazată pe timp, deoarece tranziţiile de stare sunt pilotate de timp.
Biblioteca SimEvents permite simularea bazată pe evenimente discrete sub mediul
Simulink. Cu ajutorul blocurilor din SimEvents pot fi dezvoltate modele ale sistemelor
pilotate de evenimente discrete, modele ce permit evaluarea performanţelor acestora, cum ar
fi: durată de aşteptare, grad de utilizare a resurselor, etc.
Scopul acestei lucrări de laborator este familiarizarea studenţilor cu acest tip de
simulare în mediul Simulink şi investigarea performanţelor unor sisteme simple de aşteptare
utilizând modele construite cu blocuri din biblioteca SimEvents.

2. Cunoştinţe prealabile necesare


Capitolele Sisteme de aşteptare markoviene şi Reţele de sisteme de aşteptare
markoviene din cadrul cursului de Sisteme de aşteptare şi aplicaţii.

3. Breviar de terminologie şi notaţii


3.1. Entităţi şi evenimente
Simularea bazată pe evenimente presupune existenţa unor entităţi care sunt procesate
în timpul simulării, fiind transferate printr-o reţea de fire de aşteptare, servere, porţi, switch-
uri. Aceste entităţi transportă informaţii specifice denumite atribute. De asemenea, entităţile
şi atributele lor pot fi agregate pentru a modela ierarhii de date utilizate în diverse aplicaţii de
planificare, supervizare, analiza reţelelor bazate pe transfer de pachete (sisteme de operare în
timp real, arhitecturi de calculatoare).
Biblioteca SimEvents (figura 1) conţine blocuri ce permit manipularea entităţilor, însă
entităţile nu au o reprezentare grafică. În utilizarea acestor blocuri accentul este pus asupra
proceselor prin care trec entităţile în sistemul modelat.
Apariţia unui eveniment într-un sistem este instantanee şi are drept consecinţă
modificarea stării sistemului, a unei ieşiri şi/sau apariţia altor evenimente. Câteva exemple de
evenimente în cadrul acestui studiu sunt:
♦ trecerea unei entităţi de la un bloc la altul;
♦ terminarea lucrului cu o anumită entitate;
♦ trecerea prin zero a unui semnal conectat la un bloc care este configurat să
reacţioneze la trecerile prin zero (evenimente denumite trigger edges);
Sisteme de aşteptare şi aplicaţii

♦ apelul unei funcţii ce reprezintă o cerere efectuată de un bloc către alt bloc prin
intermediul unui semnal de tip function call.

Fig. 1. Organizarea bibliotecii SimEvents din Simulink.


În timpul unei simulări, apariţia unui eveniment poate determina direct apariţia altor
evenimente, sau poate constitui doar una din condiţiile de apariţie a unui eveniment (în viitor,
în urma apariţiei altor evenimente).
Dacă la un moment dat în simularea unui sistem apar simultan două sau mai multe
evenimente. Dacă aceste evenimente nu sunt legate între ele prin relaţii de cauzalitate, ordinea
de procesare a acestora poate influenţa semnificativ rezultatul simulării. Din acest motiv, în
model trebuie impuse reguli asupra ordinii în care sunt evaluate evenimentele (între
evenimente se impun priorităţi).
Evenimentele nu au o reprezentare grafică. Apariţia unui eveniment poate fi observată
urmărind consecinţele acestuia, prin utilizarea blocului de tip Instantaneous Event Counting
Scope sau a Debugger-ului.

3.2. Tipuri de blocuri în SimEvents


3.2.1. Generarea şi manipularea entităţilor
Entităţile pot fi generate la apariţia unui eveniment sau la anumite momente de timp
prescrise de utilizator.

Fig. 2. Blocuri de generare a entităţilor.

2
Lucrarea 6: Utilizarea bibliotecii SimEvents

După generare, entităţilor le pot fi asociate diverse atribute (date caracterizate prin
nume şi valoare ce sunt transportate de entităţi).

Fig. 3. Blocuri pentru setarea şi citirea atributelor.


Entităţile ce provin din două sau mai multe fluxuri pot fi combinate pentru a forma un
singur flux de entităţi compozite ce păstrează caracteristicile tuturor entităţilor din care
provin. Operaţia inversă o reprezintă separarea unei entităţi compozite în entităţile simple din
care a fost formată.

Fig. 4. Blocuri pentru combinarea şi separarea entităţilor.


Figura de mai jos prezintă blocurile de rutare a entităţilor.

Fig. 5. Blocuri pentru rutarea entităţilor.


Entităţile care ai trecut printr-un anumit punct al modelului pot fi numărate utilizând
blocul Entity Departure Counter. Acest număr poate fi scris la un port de ieşire sau ca valoare
a unui atribut asociat entităţii care părăseşte blocul respectiv.

Fig. 6. Blocul de numărare a entităţilor şi fereastra sa de dialog.


Temă: Să se studieze modelul demonstrativ sedemo_count_attributes.mdl care
ilustrează manipularea atributelor.

3
Sisteme de aşteptare şi aplicaţii

3.2.2. Fire de aşteptare


Se pot folosi 3 tipuri de fire de aşteptare, bazate pe disciplina de servire FIFO, LIFO
sau cu priorităţi.

Fig. 7. Blocuri pentru modelarea firelor de aşteptare.

Pentru cozile de tip FIFO şi LIFO utilizatorul poate impune capacitate finită sau
infinită. Pentru cozile bazate pe priorităţi, utilizatorul poate impune sortarea entităţilor din
coadă după un anumit atribut, în ordine ascendentă sau descendentă a valorilor acestuia.
Pentru toate cele trei tipuri de fire de aşteptare, în timpul simulării pot fi vizualizaţi
următorii indicatori statistici (figura 8): numărul de entităţi care au părăsit coada, numărul de
entităţi din coadă, timpul mediu de aşteptare în coadă, lungimea medie a cozii. Dacă se
impune un „termen de expirare” a entităţilor, numărul de entităţi al căror „termen” a expirat
poate fi, de asemenea, vizualizat.

Fig. 8. Statistici ce pot fi vizualizate în timpul simulării pentru un fir de aşteptare.

3.2.3. Servere
În SimEvents există 3 blocuri ce modelează diferite tipuri de servere: Single Server
care modelează un singur server, N-Server care modelează un număr finit de servere şi
Infinite Server care modelează un număr infinit de servere.

Fig. 9. Blocuri pentru modelarea serverelor.

4
Lucrarea 6: Utilizarea bibliotecii SimEvents

Durata de servire corespunzătoare unui server poate fi setată de utilizator prin


intermediul ferestrei de dialog, poate fi citită de la un port de intrare suplimentar sau poate fi
preluată din valoarea unui atribut al entităţii procesate în blocul respectiv.
În plus, blocul de tip Single Server poate fi utilizat pentru modelarea servirii pe baza
priorităţilor de tip absolut (preemptive priorities).
Toate blocurile pot furniza ca semnale de ieşire, printre altele, numărul de entităţi care
au părăsit blocul, numărul de entităţi în curs de procesare în bloc, durata medie de aşteptare în
bloc (care reprezintă de fapt durata medie de servire a unei entităţi în acel bloc), gradul de
utilizare.

Fig. 10. Fereastra de dialog a blocului Single Server.


Temă: Să se studieze modelul demonstrativ sedemo_server_service_time.mdl care
ilustrează lucrul cu blocurile de tip server.

3.2.4. Sinks
Pentru vizualizarea atributelor, evenimentelor sau semnalelor, biblioteca SimEvents
conţine o serie de blocuri specifice.

Fig. 11. Blocurile din biblioteca SimEvents Sinks.

5
Sisteme de aşteptare şi aplicaţii

4. Probleme propuse
1. I. Să se studieze modelul demonstrativ sedemo_mm1.mdl care ilustrează
implementarea unui sistem de aşteptare de tip M/M/1.
II. Să se construiască modelul Simulink al unui sistem de aşteptare de tip M/M/1
pentru care rata de sosire a clienţilor este λ = 1 min-1 iar rata de servire este μ = 2 min-1.
a. Să se reprezinte grafic numărul de clienţi sosiţi la server vs. numărul de clienţi serviţi pe o
durată de 50 min.
b. Să se reprezinte grafic gradul de utilizare a serverului pe o durată de 50 min.
c. Să se compare valorile teoretice cu cele obţinute prin simularea pe o durată de 10.000 min
pentru următorii indicatori de performanţă ai sistemului:
(i) durata medie de aşteptare în coadă;
(ii) numărul mediu de clienţi din coadă;
(iii) gradul de utilizare a serverului.
d. Să se compare aceste valori cu cele obţinute prin simularea modelului de tip reţea Petri
generalizat stohastică construit în PNTool.

2. I. Să se studieze modelele demonstrative sedemo_single_v_multi_server.mdl. şi


sedemo_single_v_multi_queue.mdl.
II. La un server (S) sosesc job-uri după un proces Poisson de rată λ = 0.5 min-1 iar
durata de servire are distribuţie exponenţială de rată μ = 1 min-1. S-au luat în considerare trei
variante de îmbunătăţire a performanţelor serviciului desfăşurat de acest server în sensul
micşorării duratei medii petrecute de un job în sistem, şi anume:
(a) înlocuirea serverului (S) cu unul mai performant (S1), având rata de servire dublă faţă de
(S), μ1 = 2 μ – fig. 12.(a);
(b) adăugarea unui al doilea server identic cu (S), având rata de servire μ , fiecare cu firul său
de aşteptare, şi împărţirea job-urilor în mod egal între cele două servere identice, rata de
sosire a job-urilor la fiecare server fiind λ 2 – fig. 12.(b);
(c) adăugarea unui al doilea server identic cu (S), având rata de servire μ , şi utilizarea unui
singur fir de aşteptare comun pentru cele două servere – fig. 12.(c).

λ 2
μ
λ λ

λ 2
μ
(a) (b)
μ
λ

μ
(c)
Fig. 12. Cele trei variante considerate în problema 2.

Să se construiască modelele Simulink corespunzătoare celor trei variante şi să se


precizeze care dintre acestea este mai bună din punctul de vedere al duratei medii petrecute de
un job în sistem.

6
Lucrarea 6: Utilizarea bibliotecii SimEvents

3. Fie un sistem de fabricaţie compus dintr-o maşină M şi un depozit D ca în figura de


mai jos, capacitatea sistemului (maşină + depozit) fiind limitată la 4 piese (sistem de aşteptare
de tip M/M/1/4):

4 piese

sosire plecare
piese piese
depozit maşină
(D) (M)

Fig. 13. Reprezentare schematică a sistemului de fabricaţie studiat în problema 3.

Dacă există loc liber în depozit, piesele intră în depozitul D după o distribuţie
exponenţială cu rata λ = 1 min-1. Ori de câte ori maşina M este liberă şi există o piesă în
depozit, aceasta este preluată imediat pe maşină. Maşina M prelucrează piesele după o
distribuţie exponenţială cu rata μ = 2 min-1.
Să se construiască modelul Simulink al acestui sistem. Să se determine prin simulare
valorile următorilor indicatori de performanţă ai sistemului şi să se compare cu rezultatele
teoretice şi cu cele obţinute prin simularea modelului de tip reţea Petri stohastică generalizată:
(i) gradul de utilizare a serverului;
(ii) frecvenţa reală de sosire a clienţilor în sistem;
(iii) numărul mediu de clienţi aflaţi în sistem;
(iv) numărul mediu de clienţi din firul de aşteptare;
(v) durata medie petrecută de un client în sistem.

4. Să se construiască modelele Simulink, să se determine prin simulare indicatorii de


performanţă pentru următoarele sisteme de aşteptare şi să se compare cu valorile teoretice:
(i) sistem de aşteptare de tip M/M/1 care serveşte două clase de clienţi, cu prioritate
relativă de servire, ce sosesc după două procese Poisson independente. Clienţii de
tipul 1 sosesc cu rata λ1 = 0, 2 s-1, iar cei de tipul 2 cu rata λ2 = 0, 6 s-1. Pentru
ambele tipuri de clienţi, duratele de servire au distribuţie exponenţială de rată
μ = 1 s-1.
(ii) sistem de aşteptare este de tip M/M/1/3/4 pentru care λ = 2 s-1 şi μ = 1 s-1.

5. Bibliografie
* * * , SimEvents User’s Guide, The MathWorks Inc., 2005-2009.
M.H. Matcovschi. Lanţuri şi sisteme de aşteptare markoviene, Editura Gh. Asachi, Iaşi, 2003.