Sunteți pe pagina 1din 10

Procese stocastice

Lucrare de laborator

Cercetarea sistemelor cu fire de ateptare prin metoda simulrii


manuale
Scopul lucrrii : familiarizarea cu algoritmul de simulare a sistemelor cu fire de ateptare, cu
prelucrarea datelor obinute n urma similarii i cu calculul indicilor de performan observai.
Funcionarea sistemelor de calcul (calculatoare, servere, reele, etc,) poate fi deseori formalizata
sub forma de sisteme cu fire de ateptare (cu unul sau mai multe servere, conectate uneori n reea)
n care sosesc cererile (clienii) pentru a fi prelucrate (servite). Cele din urma pot fi studiate att
prin metode analitice (dar numai n unele cazuri simple), ct i prin metode de simulare care sunt
alternative sau complementare metodelor analitice. Simularea acestor fenomene necesit
cunoaterea modului de funcionare a sistemelor, modul n care clienii ajung i sunt servii.
Informaia despre sosiri i serviri este foarte important i este necesar de a fi recoltate pe teren
observnd sistemele reale sau lansnd anumite ipoteze cu privire la valorile reale ale parametrilor
fluxurilor de clieni.
Fluxurile de sosiri i de serviri pot fi descrise n dou moduri:
folosind tabele: pentru fiecare client este indicat momentul n care aceasta ar trebui s intre
n sistem i durata sa de serviciu. Acesta metoda necesita stocarea multor date ceea ce
provoac un consum important de memorie;
definind distribuiile statistice ale intervalelor de timp dintre sosirile succesive ale clienilor
i ale duratelor lor de servire (ele sunt generate n msura necesitaii pe parcursul
procesului de simulare ceea ce produce un consum mic de resurse de calcul i de
memorie).
Achizitie de date
Distribuia intervalelor de
servire a clienilor

Distribuia intervalelor dintre


sosirile succesive ale clienilor

Sourca de
clienti

Clieni:
durata de sejur...

Coad de
ateptare

lungimea medie,
durata de ateptare...
Evalurea sistemului

Fig.1. Consideraii generale

Server

Plecri ale
clienilor

gradul de utilizare

Cazul cela mai simplu e sa definim sosirile i serviciile cu ajutorul unui tabel :
No.
clientului
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Perioada dintre
sosirile succesive
10
15
14
9
13
9
11
8
9
10
11
13
17
10
15

Perioada de serviciu
9
17
16
13
14
13
16
14
10
13
14
17
10
7
10

Duratele sunt exprimate n uniti convenionale de timp (de fapt, e vorba de secunde, ore, minute,
milisecunde, etc, dar nu conteaz pentru simulare, pentru c se lucreaz cu uniti convenionale
de timp).
Pentru a simula acest sistem vom defini:
doua tipuri de evenimente
sosirile ele provoac creterea numrului de clieni n n sistem, modifica variabilele de
stare ale serverului i/sau parametrii firului de ateptare;
plecrile ele reduc numrul de clieni n n sistem, schimba starea serverului, fapt care
cauzeaz unele schimbri n coada de clieni din fata lor.
o regula de oprire pentru a termina corect simularea (cu crearea unui raport statistic
coninnd rezultatele i performanele observate) este dat o stare de oprire. Dou cazuri
posibile:

oprire dup scurgerea a unei durate de simulare date;


oprire dup servirea unui anumit numr de clieni.

n acest exemplu vom utiliza prima metod de oprire a simulrii dup consumarea a 150 de uniti
de timp.

Pentru o prelucrare corect a evenimentelor mai e nevoie de un ceas de sistem i de o lista cu


calendarul evenimentelor: evenimentul cel mai apropiat trebuie s fie ntotdeauna n capul listei.
Gestionarul de evenimente (nucleul programului de simulare) e responsabil de ntreinerea acestei
liste i de tratarea evenimentelor n ordine cronologic . Rolul sau se reduce la doua operaii:
includerea n list a ultimului (celui mai recent) eveniment creat i extragerea evenimentului cu
timpul minimal pentru a fi prelucrat.
n exerciiul urmtor vom ncerca sa realizam manual procedura de simulare a unui sistem cu fire
de ateptare cu un singur server. Pentru a facilita aceasta activitate vom organiza calculele ntr-un
tabel :
Tabel de simulare
Tipul
Starea
evenimen- Lungimea
Numrul
serverului
tului
cozii de
clientului
0 liber
s sosire
ateptare
1- ocupat
p plecare

Numrul
evenimentului

Ceasul
sistem

START

(10,1,s), (150,-,Stop)

10

(19,1,p), (25,2,s), (150,-,Stop)

19

(25,2,s) , (150,-,Stop)

25

(42,2,p), (39,3,s), (150,-,Stop)

39

(42,2,p), (48,4,s), (150,-,Stop)

42

(58,3,p), (48,4,s), (150,-,Stop)

48

(58,3,p), (61,5,s), (150,-,Stop)

58

(61,5,s), (71,4,p), (150,-,Stop)

61

(71,4,p), (70,6,s), (150,-,Stop)

70

(71,4,p), (81,7,s), (150,-,Stop)

10

71

(81,7,s), (85,5,p), (150,-,Stop)

11

81

(85,5,p), (89,8,s), (150,-,Stop)

12

85

(89,8,s), (98,6,p), (150,-,Stop)

13

89

(98,6,p), (98,9,s), (150,-,Stop)

14

98

(98,9,s), (114,7,p), (150,-,Stop)

15

98

(114,7,p), (108,10,s), (150,-,Stop)

16

108

10

(114,7,p), (119,11,s), (150,-,Stop)

17

114

(119,11,s), (128,8,p), (150,-,Stop)

18

119

11

(128,8,p), (132,12,s), (150,-,Stop)

19

128

(132,12,s), (138,9,p), (150,-,Stop)

20

132

12

(138,9,p), (149,13,s), (150,-,Stop)

21

138

(149,13,s), (151,10,p), (150,-,Stop)

22

149

13

(151,10,p), (159,14,s), (150,-,Stop)

23

150

STOP

(151,10,p), (159,14,s)

Calendarul evenimentelor
(Timpul, Num. clientului, Tipul
evenimentului)

Evaluarea indicilor de performanta


Scopul simulrii e de a evalua performanele sistemului innd cont de parametrii de intrare (fluxul
de clieni i de serviri, numrul de servere, ordinea servirilor, etc.), deci e necesar sa definim i sa
calculam indicii de performana ai sistemului care ne intereseaz.

Serverul
Bazndu-ne pe tabelul de simulare de mai sus ne propunem sa reprezentam pe un grafic starea
serverului n funcie de timp pe parcursul simulrii.
B(t)
1

t
0
10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

Fig.2. Dinamica utilizrii serverului pe parcursul simulrii


Durata integrala de ocupare a serverului corespunde ariei dintre axa OX si B(t):
T sim

T ocupat =

B( t ) dt

unde Tsim e durata de simulare, B(t) e starea serverului n momentul t.


Gradul de utilizare (ncrctura) se va calcula ca raportul dintre durata integrala de ocupare a
serverului i durata de simulare (cu alte cuvinte, indicele ceasului n momentul opririi simulrii):
T sim

K=

T ocupat
T sim

B( t ) dt

T sim

Pentru cazul nostru:


K=

T ocupat
T sim

134
= 0,89
150

Putem conclude ca serverul a fost destul de ncrcat pe parcursul acestei simulri.

Coada de ateptare
Varierea lungimii cozii de ateptare pe parcursul simulrii e prezentata mai jos :
Q(t)
3

1
t
0

10

20

30

40

50

60

70

80

90

100

110

120

130

140

150

Fig.3. Dinamica cozii de ateptare pe parcursul simulrii


Parametrii de care ne vom interesa sunt: lungimea media a cozii de ateptare Lq, durata medie de
ateptare pentru clienii care s-au reinut in coada de ateptare Tq, lungimea maximala a cozii de
ateptare, etc. Pentru a calcula aceti parametri vom avea nevoie de durata totala de reateptate
pentru toi clienii (durata integrala T).
Tsim

T Q(t)dt
o

Lungimea medie a firului de ateptare:


Tsim

Q(t)dt

Lq T o
Tsim Tsim
Retinerea medie a unui client n coada de ateptare:
T sim

Tq T
Nq

Q (t)dt ,
o

Nq

unde Nq e numrul de clieni care au petrecut n coada de ateptare o durata completa


i au fost servii ulterior de ctre server.
Parametrul T poate fi calculat tinad cont el corespunde suprafeei dintre Q(t) i axa OX. innd
cont de datele obinute pe parcursul simulrii :
T = 1*(42-39) + 1*(58-48) + 1*(70-61) + 2*(71-70) + 1*(81-71) + 2*(85-81) + 1*(89-85)+
2*(108-89) + 3*(114-108) + 2*(119-114) + 3*(128-119) + 2*(132-128) + 3*(138-132) + 2*(149138) + 3*(150-149) = 190
Nq = 8

Tq

(doar clienii 3,4,5,6,7,8,9 si 10 au petrecut in coada de ateptare o durata completa)

T 190

23.75
Nq
8

Lq

T 190

1.27
Tsim 150

Lungimea maximala a cozii de ateptare Lqmax= 3


5

Tabel de simulare cu acumulatori statistici


Cu scopul de a simplifica calculele si de a optimiza calcularea i colectarea datelor utilizate pentru
calcularea indicilor de performa va propunem un tabel care conine cteva variabile
complementare (acumulatori statistici) calculate pe parcursul simulrii.
Tip
evenim.
ssosiri
pplec.

Durata
Lungimea
Starea
Durata
Numrul
integrala
curenta a serverului integrala
clienilor
de
cozii de 0 liber
de util, a
reinuti in
ateptare
ateptare 1- ocupat serverului
coada
n coada
Q(t)
B(t)
Tocupat
T
Nq

Num
even

Ceas
sistem

Num.
client

ti

START

(10,1,s), (150,-,Stop)

10

(19,1,p), (25,2,s), (150,-,Stop)

19

(25,2,s) , (150,-,Stop)

25

(42,2,p), (39,3,s), (150,-,Stop)

39

23

(42,2,p), (48,4,s), (150,-,Stop)

42

26

(58,3,p), (48,4,s), (150,-,Stop)

48

32

(58,3,p), (61,5,s), (150,-,Stop)

58

42

13

(61,5,s), (71,4,p), (150,-,Stop)

61

45

13

(71,4,p), (70,6,s), (150,-,Stop)

70

54

22

(71,4,p), (81,7,s), (150,-,Stop)

10

71

55

24

(81,7,s), (85,5,p), (150,-,Stop)

11

81

65

34

(85,5,p), (89,8,s), (150,-,Stop)

12

85

69

42

(89,8,s), (98,6,p), (150,-,Stop)

13

89

73

46

(98,6,p), (98,9,s), (150,-,Stop)

14

98

82

64

(98,9,s), (114,7,p), (150,-,Stop)

15

98

82

64

(114,7,p), (108,10,s), (150,-,Stop)

16

108

10

92

84

(114,7,p), (119,11,s), (150,-,Stop)

17

114

98

102

(119,11,s), (128,8,p), (150,-,Stop)

18

119

11

103

112

(128,8,p), (132,12,s), (150,-,Stop)

19

128

112

139

(132,12,s), (138,9,p), (150,-,Stop)

20

132

12

116

147

(138,9,p), (149,13,s), (150,-,Stop)

21

138

122

165

(149,13,s), (151,10,p), (150,-,Stop)

22

149

13

133

187

(151,10,p), (159,14,s), (150,-,Stop)

23

150

STOP

134

190

151,10,p), (159,14,s)

Calendarul evenimentelor
(Timpul, Num. clientului, Tipul
evenimentului)

Rezultatele simulrii:
valorile finale ale acumulatorilor
statistici

Mersul lucrrii :
Studiai algoritmul simulrii manuale;
Datele iniiale pentru simulare sunt n anexa, recalculai valorile din tabel n funcie de
numrul Dumneavoastr din lista din registrul grupei;
Efectuai simularea manuala a sistemului cu ateptare cu un singur server utilizndu tabelul
cu acumulatori statistici. Regula pentru a opri simularea: servirea a primilor 25 de clieni
(cu alte cuvinte, simularea se va opri n momentul plecrii din sistem a clientului cu
num. 25)
Desenai graficele varierii strii serverului i a cozii de ateptare pe parcursul simulrii.
Ct a durat servirea a 25 clieni?
Calculai indicii de performana observai n urma simulrii.

Bonus:
Refacei simularea pentru cazul cnd avei doua servere n paralel (sau un server cu doua
canale) cu o coada comuna de ateptare n fata lor. Clientul e servit de oricare dintre cele
doua servere, dac ambele servere sunt ocupate el va atepta n coda de ateptare.
(Indicaie: n acest caz serverul va avea trei stri: 0 - doua canale libere, 1 - un canal
ocupat iar altul liber, 2 - ambele canale ocupate)
Ct a durat servirea a 25 clieni n acest caz?
Calculai indicii de performana observai n urma simulrii sistemului cu doua servere
paralele.
Comparai rezultatele celor doua simulri i prezentai concluziile.
Prezentarea lucrrii:
Lucrarea se prezint sub forma de referat cu urmtorul coninut:

Titlul lucrrii, numele studentului i a profesorului;


Scopul lucrrii;
Tabelul cu datele iniiale pentru simulare;
Rezultatele lucrrii;
Concluzii.

Anexa 1
Date pentru lucrarea de laborator
No. clientului

Perioada dintre
sosirile
succesive

Perioada de
serviciu

21+k

11+k

66+k

151+k

169+k

20+k

30+k

71+k

163+k

27+k

34+k

49+k

67+k

141+k

10+k

133+k

2+k

59+k

10

17+k

5+k

11

140+k

43+k

12

122+k

64+k

13

76+k

148+k

14

8+k

114+k

15

24+k

129+k

16

38+k

86+k

17

60+k

46+k

18

33+k

42+k

19

20+k

70+k

20

313+k

169+k

21

66+k

200+k

22

75+k

170+k

23

284+k

10+k

24

48+k

120+k

25

29+k

78+k

26

31+k

58+k

27

43+k

53+k

28

116+k

85+k

29

22+k

72+k

30

67+k

11+k

31

170+k

113+k

unde k este numrul studentului n lista grupei din care face parte.
8

Anexa 2
Tabel de simulare

Numrul
evenimentului

Ceasul
sistem

Tipul
Starea
evenimen- Lungimea
Numrul
serverului
tului
cozii de
clientului
0 liber
s sosire
ateptare
1- ocupat
p plecare

Calendarul evenimentelor
(Timpul, Num. clientului, Tipul
evenimentului)

Anexa 3

Tabel de simulare cu acumulatori statistici


Num
even

Ceas
sistem

Num.
client

ti

Tip
evenim.
ssosiri
pplec.

Durata
Lungimea
Starea
Durata
Numrul
integrala
curenta a serverului integrala
clienilor
de
cozii de 0 liber
de util, a
reinuti in
ateptare
ateptare 1- ocupat serverului
coada
n coada
Q(t)
B(t)
Tocupat
T
Nq

10

Calendarul evenimentelor
(Timpul, Num. clientului, Tipul
evenimentului)

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