Reti di code
M. Arrigoni Neri & P. Borghese rev. 14/04/13
Teoria delle code – ramo di applicazione della teoria delle
probabilità
Utilità della teoria delle code
comprensione del sistema reale
calcolo del comportamento in “condizioni limite”
estensione / verifica dei risultati di un modello di simulazione
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 1
indice
 Il fenomeno coda
 soluzione di code elementari isolate in stato
stazionario




M/M/1
M/M/1/k
M/M/c
coda M/G/1
 discipline di servizio
 leggi di conservazione (cenni)
 metodo di scomposizione – aggregazione (cenni)
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 2
modello di coda
notazione
 A/B/c/K/m/Z






disciplina (regole di servizio) (default FIFO)
dimensioni sorgente (def. Infinito)
capacità (numero di posizioni) (def.inf.)
numero di serventi
processo dei servizi
processo degli arrivi
Processi
arrivi
partenze
posizione
di attesa
Ingegneria Dalmine
servente(i)





"Impianti Informatici"
G
H
Ek
M
D
generale
iperesponenziale
erlang
esponenziale
deterministico
Reti di code - 3
modello di coda (cont.)
 se le code fanno parte di una rete occorrono informazioni
addizionali sulla struttura di questa come:
 interconnessioni fra i centri di servizio (code);
 strategie di routing - deterministiche, basate su probabilità,
dipendenti dalle classi di carico, dallo stato del sistema;
 una coda o una rete di code può essere studiata (risolta) in
modi e situazioni diverse:
 metodi analitici e/o simulazione;
 analisi dei transienti o in condizioni di equilibrio
 i risultati possono essere forniti secondo punti di vista e
dettagli differenti:
 quello del cliente che entra nel sistema per ricevere il servizio;
 quello del fornitore che provvede le risorse;
 dai soli valori medi delle variabili interessate alle loro complete
distribuzioni
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 4
approccio alla soluzione
 sotto appropriate ipotesi restrittive i metodi analitici forniscono
risultati esatti per i valori medi dei parametri di prestazione
 ipotizzare distribuzioni esponenziali e instradamenti con probabilità
fissate produce soluzioni esatte (non diverse da quelle dell’analisi
operazionale)
 in qualche caso si possono ottenere anche momenti di ordine
superiore (es. varianza);
 spesso le reti non possono essere risolte in modo esatto, ma
esistono metodi approssimati che forniscono buoni risultati;
 una coda isolata può avere soluzione esatta ma, inserita in una
rete, non è detto che quest’ultima sia ancora risolubile in modo
esatto
 l’analisi dei transienti non è generalmente affrontabile se non
con la simulazione
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 5
distribuzioni derivate dall’esponenziale
 distribuzione Erlang-k
 vengono percorsi k cicli
ciascuno con distribuzione
esponenziale di media Ts /k
Ts/k
f t   k e  k t
densità di probabilità del ciclo
 la distribuzione Ek ha:
 media = 1/ = Ts
f t   k 
k
(indipendente da k)
 varianza = Ts2 /k
e  k t k 1
t
k  1!
densità di probabilità della somma
dei k cicli esponenziali
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 6
densità di prob. Erlang
Erlang
media  = h
varianza 2 = h2/
( stadi - ciascuno di media h/)
in figura i grafici per h = 1
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 7
distribuzioni derivate dall’esponenziale (cont.)
f t   2 p 2  e 2 p t  21  p   e 21 p   t
2
p
Ts/2p
 distribuzione
iperesponenziale H
 i due stadi (esponenziali)
Ts/2(1-p)
paralleli ed esclusivi vengono
scelti con probabilità p e 1-p
rispettivamente
 la distribuzione H ha:
 media = 1/ = Ts
1-p
25
20
(indipendente da p)
 varianza =  Ts
15
2

10
  = 1/(2p(1-p)) - 1
Ingegneria Dalmine
5
p

0,5
0,211
1
2,003
"Impianti Informatici"
0
0
0,1
0,2
0,3
0,4
0,5
p
Reti di code - 8
grafici Ek e H
Erlang media n/r - varianza n/r2
(n stadi - ciascuno di media 1/r)
Ingegneria Dalmine
"Impianti Informatici"
Iperesponenziale
Reti di code - 9
code M/M/./. in equilibrio
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 10
ipotesi semplificative
da cui:
per t0
 P{1 arrivo in t} = t
 P{0 arrivi in t} = 1-t
 P{arrivi > 1 in t} = 0
gli arrivi sono un processo di
Poisson con tempi
esponenziali di media 1/
 P{1 partenza in t} = t
 P{0 partenze in t} = 1-t
 P{partenze > 1 in t} = 0
i tempi di servizio hanno
distribuzione esponenziale di
media 1/
 P{arrivi 1 & partenze 1 in t} = 0 arrivi e servizi sono fra loro
indipendenti
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 11
transizioni di stato nell’intervallo (t,t+t)
1  0t 
0
0t
k 1t
1t
k  k t
k
k 1t
Ingegneria Dalmine
"Impianti Informatici"
1  k  k t 
Reti di code - 12
transizioni di stato nell’intervallo (t,t+t)
pk t 
probabilità dello stato k all’istante t
p0 t  t   p0 t 1  0t   p1 t 1t
pk t  t   pk t 1  k  k t   pk 1 t k 1t  pk 1 t k 1t

 p t   1
k 0
k
normalizzazione
dp0 t 
 0 p0 t   1 p1 t 
dt
0 p0  1 p1
stato stazionario dp/dt = 0
k  k  pk  k 1 pk 1  k 1 pk 1
dpk t 
 k  k  pk t   k 1 pk 1 t   k 1 pk 1 t 
dt
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 13
coda (M/M/1) stazionaria: diagramma delle transizioni di stato
- sorgente poissoniana con interarrivi ta = 1/
capacità illimitata
- 1 servente
- tempi di servizio esponenziali s = 1/
processo di Markov omogeneo
(non dipende dal tempo)

0

1


2

P(i) 

i-1


i


i+1


P(i+1) 
equilibrio: P(i)  = P(i+1) 
Ingegneria Dalmine
P(i): frazione del tempo
nello stato (i)
"Impianti Informatici"
Reti di code - 14
coda (M/M/1) stazionaria (cont.)
 se > dopo un certo tempo t la coda conterrà (-)  t elementi in
media perciò è instabile
 se < allora / < 1 rappresenta l’utilizzo del servente
 la coda raggiunge nel tempo l’equilibrio statistico in cui la
probabilità P(i) è indipendente da t
 il processo degli arrivi e quello dei completamenti hanno la
stessa distribuzione FA(t) = FC(t) - ma non sono correlati
 i processi degli arrivi (A), dei servizi (S), delle partenze (C) e dei
tempi di risposta (R) hanno la stessa forma (esponenziale)
FS = 1-e - t
FA = 1-e - t
FC = 1-e - t
FR = 1-e - ( - ) t
Ingegneria Dalmine
"Impianti Informatici"
1/(-) =
1/ /(1-/)
Reti di code - 15
calcolo di P(i)
 P(i) : probabilità dello stato (i) - (contente i elementi)
 in un intervallo t lo stato (i) viene abbandonato con probabilità ·t
verso lo stato (i +1) e ·t verso lo stato (i -1)
 dallo stato (0) si può passare solo a (1)
 la probabilità che in t si verifichi più di una transizione è trascurabile
equazioni di bilanciamento:
P(0)  = P(1) 
P(1)  = P(2) 
P(i -1)  = P(i) 
perciò:
P(i) = P(0)·( / )i per ogni i
i

1
1   P i   P0       P0  
1 
i
i  

P0   1  

probabilità che il sistema
non contenga elementi
il sistema è stabile per
 /  = Utilizzo < 1
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 16
distribuzione della lunghezza delle code (M/M/1)
0,5
0,4
/
0.5
0.75
0.9
0,3
0,2
0,1
0,0
P(i) = (1- /)·(/)i
U = utilizzo = / = 1-P(0)
P(i) > P(k)
Ingegneria Dalmine
(i<k)
"Impianti Informatici"
Reti di code - 17
lunghezza media della coda e tempo medio di risposta (M/M/1)
lunghezza media della coda Q()
Q = 0·P(0) + 1·P(1) + …. + i·P(i)+… =
i
i


  


P0    i     P0       D   P0    D   
 i 0   
i 1

   i 0   



1

1

 P0    D
 P0   

 1 
   2 1 

1  



i
D indica l’operatore
derivata (rispetto a /)
numero medio Q
di clienti in coda

r(u) = s · (1 + Q(u)) = s · (1 + u / (1-u)) = s / (1-u) (condizioni di equilibrio)
oppure r(u) = Q /  (legge di Little)
oppure anche r(, ) = 1/(-)
w(u) = s · u / (1-u) tempo medio di attesa
Lq = w(u)  = u2 / (1-u) numero medio di clienti in attesa (da Little)
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 18
coda (M/M/1/k) in equilibrio:
diagramma delle transizioni di stato
- come M/M/1 ma
- capacità della linea di attesa limitata a k-1
- se tutti i posti sono occupati la richiesta è rifiutata
- rappresenta una situazione più realistica della precedente

0

1



2


k-1


k

equazioni di
bilanciamento:
P(0)  = P(1) 
P(1)  = P(2) 
P(k -1)  = P(k) 
P(i) = 0 per i > k
dal momento che non possono esserci più di k utenti
nel sistema, lo stato stazionario viene raggiunto per
qualunque valore di  e 
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 19
coda (M/M/1/k) in equilibrio (cont.)
 risolvendo le equazioni di stato otteniamo (detto il
“traffico” u = /):
P(i) > P(h) (u < 1; i < h)
1 u

k 1
1 u
1

 Pn  n  1, k    
k 1
P0 

u
k  1u k 1
L


k 1
1 u
1 u
k


2
Ingegneria Dalmine
"Impianti Informatici"
P(i) < P(h) (u > 1; i < h)
numero medio
di clienti in coda
(se / < 1: il numero medio
di utenti in coda è < di quello
corrispondente a M/M/1)
Reti di code - 20
coda (M/M/1/k) in equilibrio (cont.)
 detto a il flusso di utenti nel sistema, allora:
a   1  pk 
 detto  l’utilizzo “vero” del servente, cioè la probabilità
(u = s)
di trovarlo occupato
  a s   1  pk  s  1  pk  u
 p(k) = probabilità di perdita di utenti
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 21
coda (M/M/1/k) in equilibrio (cont.)
U
n
0
1
2
3
4
5
1-P(5)

L
r/s
M/M/1
0,5
0,5
0,25
0,125
0,0625
0,03125
0,015625
P(n)
M/M/1/5 M/M/1/5
0,5
1
M/M/1/5
2
0,507937
0,253968
0,126984
0,063492
0,031746
0,015873
0,015873
0,031746
0,063492
0,126984
0,253968
0,507937
0,166667
0,166667
0,166667
0,166667
0,166667
0,166667
0,984127 0,833333 0,492063
0,5 0,492063 0,833333 0,984127
1 0,904762
2 1,83871
2,5 4,095238
3 4,16129
/
Prob di perdita
utilizzo effettivo
del servente
numero medio in coda e resp.time per i valori
U in testa alle colonne (max = 5)
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 22
coda (M/M/1/k) in equilibrio (cont.)
P(n)
0,6
0,5
0,4
0,3
0,2
0,1
0
0
1
2
3
4
5
6
7
n
u=0,5
M/M/1
Ingegneria Dalmine
u=0,5
u=1
u=2
M/M/1/5
"Impianti Informatici"
Reti di code - 23
coda (M/M/c) stazionaria: diagramma delle transizioni di stato
c serventi identici servono
tutti i clienti
c

0

1

0
un’unica linea di attesa

2
2
0
clienti in attesa

c-1
3
0

(c-1)

c
c+1
c
c
0

0
c
1
2
nota: gli arrivi e i completamenti
hanno la stessa distribuzione esponenziale:
FA = FC = 1-e - t
ma FR non è esponenziale
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 24
coda (M/M/c) stazionaria (cont.)
u n
n  0,1,..., c
 P0

 n!
Pn    n
u

 u P0 n  c
 c! c nc
dalle equazioni di bilanciamento:
2


u2
u c 1
u c  u  u 
1  P0  1  u   
  1       

c  1! c!  c  c 
2!


 c 1 u n u c 1 
P0    

n
!
c
!
1


n

0


1

u
c
il sistema è stabile per:  =  / c < 1
utilizzo per servente
u=/<c
u è il numero medio di utenti in servizio = di serventi occupati
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 25
distribuzione della lunghezza delle code M/M/c
P(i) - c=2
P(i) - c=4
0,4
0,3
0,3
0,2
0,2
0,1
0,1
0,0
0,0
0
5
10
15
20
25
30
0
5
10
i
u=0,5
u=0,75
15
20
25
30
i
u=0,90
u=0,5
u=0,75
u=0,90
nel grafico: u = utilizzo per servente (altrove denominato )
Il valore massimo di probabilità è in prossimità di n  /
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 26
coda (M/M/c) stazionaria (cont.)
uc 
Lq   n  c   Pn   P0
2
c!1   
n c


C c, u   Pn  c   Pn  
nc
Wq 
Lq


s
r
1  2
u3
C 3, u  
3!
Ingegneria Dalmine
C c, u  s
c  1   
uc
c!
numero medio di clienti
in attesa (esclude quelli in servizio)
probabilità che tutti i c
serventi siano occupati
c 1 i
uc
u 



1




 c!

i  0 i! 

r  s  Wq
2 2
C 2, u  
1 
 u3

u 2 
  1   1  u  
2 

 3!
"Impianti Informatici"
Lq = C(c,u) ·  / (1-)
c=2
uc 1
C c, u   P0
c! 1  
c=3
Reti di code - 27
confronto tempi di attesa servizio
 a parità di utilizzo una
coda M/M/c ha un tempo
di attesa prossimo a
quello della coda M/M/1
diviso c
 tempo medio di attesa
 tempo medio di attesa
Wq 
s
1 


C c, u  s
c 1   
s
1 
,
E Wq q  0 
dei clienti che attendono
M/M/1
Ingegneria Dalmine
, Wq 
"Impianti Informatici"

 c 1 s  
E Wq q  0 
M/M/c
Reti di code - 28
confronto tempi di attesa servizio (cont.)
 un altro modo di interpretare le formule:
Wq = 0  (1-Prob(attesa)) + s /(c (1-))  Prob(attesa)
Lq = Wq   = 0  (1-Prob(attesa)) +  / (1-)  Prob(attesa)
Prob(attesa) = C(c,u)
s / (c ·(1-)) rappresenta il tempo medio di attesa nel caso in cui si debba
attendere
 / (1-) rappresenta il numero medio di utenti che si trovano nel caso in cui si
debba attendere
( =  s / c)
Osservazione: ogni utente in coda contribuisce all’attesa mediamente con un
tempo s, anche quello il cui servizio è in corso, questo solo perché la
distribuzione dei tempi è esponenziale (priva di memoria)
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 29
confronto fra M/M/1 e M/M/c
M/M/1


Q
Lq


 s


1 
1 
2
1 
C c, u 
s
1 
w
s
c1     C c, u 

1 
sw

s
1 
E w | q  0
E Lq | q  0
utilizzo servente
c

r

M/M/c

prob w  0 
s
1 
utenti in attesa
tempo di risposta
C c, u 
c1   
tempo di attesa
s
c 1   


1 
1 

utenti in coda
tempo di attesa (quando q > 0)
utenti in attesa (quando q > 0)
C c, u 
probabilità di attendere
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 30
calcolo approssimato del tempo di risposta in M/M/c
 se al posto dei c serventi della nostra coda ponessimo un solo servente
di potenza pari a c volte quelli originari ci troveremmo nella situazione
seguente (dove x* è la variabile corrispondente a x del caso M/M/c):
 s* = s/c; * = 
 Wq* =  s / c(1-)
(tempo di attesa)
 Wq = C(c,u) s / c(1-)
 se C(c,u)  
(per  elevato, cfr. pagine seguenti)
 allora Wq   s / c(1-) = Wq*
 r  s +  s / c(1-)
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 31
calcolo approssimato del tempo di risposta in M/M/c (cont.)
 Il tempo di risposta può essere approssimato dalla somma del tempo di
servizio più il tempo di attesa che si avrebbe nel caso in cui al posto dei
c serventi ce ne fosse uno di potenza pari a c volte quelli iniziali
response tim e
Il grafico confronta il valore
esatto del tempo di risposta
M/M/2 con quello ottenuto
dalla formula approssimata
(caso s = 1)
12
10
8
M/ M/ 2
6
approx
4
2
0
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
u t i l i z z o se v e n t e
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 32
C(c,u): probabilità di dover attendere per il servizio
probabilità che tutti i serventi siano occupati
1
0,9
0,8
0,7
0,6
C(1,u)
C(1,u) = u
C(2,u)
0,5
C(4,u)
0,4
0,3
C(6,u)
0,2
0,1
0
0
0,2
0,4
0,6
0,8
1
utilizzo servente
a parità di utilizzo (cioè a parità di tasso di arrivi per server = u/c), la probabilità
di dover attendere per essere serviti diminuisce al crescere del numero di serventi
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 33
confronto tempi di risposta
effetto multiprocessore su
r/s
tempi di risposta
20,00
18,00
16,00
14,00
1 processore
12,00
2 processori
10,00
4 processori
8,00
6 processori
6,00
4,00
2,00
0,00
0,00
0,20
0,40
0,60
0,80
• le curve di prestazione (al
crescere del numero di
serventi, a parità di utilizzo
per servente) divengono più
“regolari”
• in particolare il punto
“ottimale” si sposta verso
utilizzi più elevati e a cui
corrispondono rapporti r/s
inferiori
1,00
u/c
in questo caso si confrontano
processori uguali con carico
totale pari a (numero processori
 carico unitario)
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 34
ricerca del punto ottimale di funzionamento
tempo di risposta/ tempo di servizio
utilizzo
per proc.
1 proc.
2 proc.
4 proc.
6 proc.
0,05
0,10
0,15
0,20
0,25
0,30
0,35
0,40
0,45
0,50
0,55
0,60
0,65
0,70
0,75
0,80
0,85
0,90
0,95
1,0526
1,1111
1,1765
1,2500
1,3333
1,4286
1,5385
1,6667
1,8182
2,0000
2,2222
2,5000
2,8571
3,3333
4,0000
5,0000
6,6667
10,0000
20,0000
1,0025
1,0101
1,0230
1,0417
1,0667
1,0989
1,1396
1,1905
1,2539
1,3333
1,4337
1,5625
1,7316
1,9608
2,2857
2,7778
3,6036
5,2632
10,2564
1,0000
1,0002
1,0010
1,0030
1,0068
1,0132
1,0232
1,0378
1,0584
1,0870
1,1260
1,1794
1,2532
1,3572
1,5094
1,7455
2,1489
2,9694
5,4571
1,0000
1,0000
1,0001
1,0003
1,0010
1,0027
1,0057
1,0111
1,0197
1,0330
1,0529
1,0819
1,1243
1,1867
1,2811
1,4315
1,6934
2,2335
3,8853
Ingegneria Dalmine
"Impianti Informatici"
esempio: calcolo
del punto “ottimale” nel
caso di due serventi
r
s
1  2

dr
 s2

d 1   2


 

2

r

s
2

s
1   
2
1
 0.577
3
r  1 .5
s
Reti di code - 35
ricerca del punto ottimale di funzionamento (cont.)
utilizzo
0,10
0,15
0,20
0,25
0,30
0,35
0,40
0,45
0,50
0,55
0,60
0,65
0,70
0,75
0,80
0,85
0,90
0,95
du/u
1,0000
0,5000
0,3333
0,2500
0,2000
0,1667
0,1429
0,1250
0,1111
0,1000
0,0909
0,0833
0,0769
0,0714
0,0667
0,0625
0,0588
0,0556
dr1/r1
0,0556
0,0588
0,0625
0,0667
0,0714
0,0769
0,0833
0,0909
0,1000
0,1111
0,1250
0,1429
0,1667
0,2000
0,2500
0,3333
0,5000
1,0000
dr2/r2
0,0076
0,0128
0,0182
0,0240
0,0302
0,0370
0,0446
0,0533
0,0633
0,0753
0,0898
0,1082
0,1324
0,1657
0,2153
0,2973
0,4605
0,9487
dr4/r4
dr6/r6
0,0002
0,0008
0,0020
0,0038
0,0064
0,0098
0,0143
0,0199
0,0270
0,0359
0,0474
0,0625
0,0830
0,1122
0,1564
0,2311
0,3818
0,8378
0,0000
0,0001
0,0003
0,0007
0,0016
0,0031
0,0053
0,0086
0,0130
0,0192
0,0276
0,0391
0,0555
0,0796
0,1174
0,1830
0,3190
0,7395
i valori du, dr1, ... sono ottenuti per differenza
fra valori successivi delle colonne della tabella
della pagina prededente - es:
calcolo grafico
dal momento che il punto ottimale è
quello in cui:
r/ = dr/d
e cioè dr/r = d/; ma essendo
l’utilizzo u proporzionale a 
du/u = dr/r
0,0556 = (1.1111-1.0526)/1.0526)
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 36
coda M/G/1 in equilibrio
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 37
tempo medio residuo
 per calcolare il tempo medio di risposta della coda M/M/1 basta
conoscere il numero medio di elementi in coda infatti ciascuno di questi
contribuisce all’attesa per la stessa quantità (anche quello in servizio grazie alla memoryless)
 un utente arriva a caso e attende il suo turno, quanto dovrà attendere in
media perché termini il tempo di servizio in corso, se la distribuzione dei
tempi non è esponenziale?
 si potrebbe pensare che l’attesa sia pari alla metà della durata media del
fenomeno dei servizi, ma questo è vero solo se il processo è
deterministico. Infatti, l’utente attende mediamente la metà dell’intervallo
in cui arriva (cioè della durata del processo in corso), ma la durata di
questo non è necessariamente uguale alla media.
 se è molto probabile che incontri un intervallo più lungo della media,
allora la sua attesa sarà mediamente maggiore della metà della media.
(paradosso dei tempi di attesa)
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 38
tempo medio residuo (cont.)
 il paradosso nasce dal fatto che è vero che l’attesa vale la metà
dell’intervallo, ma la lunghezza media dell’intervallo scelto non è la
media delle lunghezze;
 nel calcolo della ampiezza media degli intervalli, tutti hanno lo
stesso peso,
 nel nostro caso invece ogni intervallo (di determinata ampiezza)
ha come peso la probabilità con cui viene incontrato
istante di arrivo
tempo residuo
intervallo osservato
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 39
tempo medio residuo (cont.)
 l’utente del servizio, che arriva a caso, trova la coda occupata con
probabilità = u
 u è anche il numero di utenti mediamente in servizio
 perciò se rs è il tempo medio residuo al completamento del
servizio e N il numero di elementi in coda:
 r = s + rs + (N – u) s
 detto poi r0 il tempo residuo al completamento del servizio in corso
 r0 = (tempo residuo | w > 0)
 rs = 0 (1-u) + r0 u
 r0 = rs / u
 (se r0 = s allora: r = s + su + Ns – su = s + rs  r (1- u) = s)
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 40
tempo medio residuo – (calcolo)
andamento nel tempo del processo
r(t): tempo residuo al completamento del servizio in corso
Xi : tempo di servizio dell’ imo utente
rt
inizio servizio
x1
x3
x2
x1
x2
M(t): numero di
arrivi in (0,t)
x4
x3
x4
1
1 M t  1 2 1 M t  1 M t  2
r (t )   r  d   X i 
Xi

t0
t i 1 2
2 t M t  i 1
t
rs  lim t  r t 
Ingegneria Dalmine
M t 

t
1 M t  2
Xi  X 2

M t  i 1
"Impianti Informatici"
rs = Area / t
r0 = Area / t busy
(per t  )
1
rs   X 2
2
Reti di code - 41
coda (M/G/1) in equilibrio
distribuzione generale dei
tempi di servizio
  /  = u = 1 - P(0): probabilità che il servente sia occupato = utilizzo =
numero medio di utenti in servizio
 s = 1 /  : tempo medio di servizio
 N =  r : numero medio di utenti nella stazione
 r0 : tempo medio residuo al termine del servizio in corso = rs / u
(visto dall’utente che arriva e trova il servente occupato)
r  u  r0  N  u   s  s

Ingegneria Dalmine
u
N  u   r0 
1 u
rN

rs  M 2 M 2
r 0 

u
2 s
2s
M 2 V  s2
r0 

2s
2s
"Impianti Informatici"
Reti di code - 42
digressione: altro metodo per calcolare r0
 (Nota: m è usato al posto del valore s delle pagine precedenti)
 siano f(x), m, M2 rispettivamente la densità di probabilità, la





media e il secondo momento dell’ampiezza dell’intervallo
sia T un periodo molto lungo (T >> m) - in esso allora
cadranno T/m intervalli
un intervallo di durata compresa fra x e x + x ha probabilità
f(x) x di verificarsi
il numero medio di intervalli di tale durata nel periodo T sarà
allora: f(x) x T/m
essi coprono la porzione x f(x) x T/m
la probabilità che l’utente arrivi in un intervallo di ampiezza x è
allora: (x f(x) x T/m) / T = x/m f(x) x
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 43
digressione: altro metodo per calcolare r0 (cont.)
 se la probabilità che l’intervallo osservato abbia durata x vale:
(x f(x) x / m) allora il suo valore medio è:

m   x  x f  x dx 1
0
m

1
M2
m
 che è  m; il segno di uguaglianza vale
se m2 = M2 (caso di varianza nulla cioè
lunghezza costante)
 il tempo medio residuo è allora: r0
m M2

2 2m
nota: il tempo medio residuo può essere > m
r0 = m (c2 + 1) / 2
r0 > m (per c > 1) (distribuzioni iper-esponenziali)
m/2  r0  m (per 0  c  1) (distribuzioni ipo-esponenziali)
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 44
coda (M/G/1) in equilibrio (cont.)
u u Vs  s 2
N u
s 1  u 2s
u 2 cs  1
u
1 u 2
r  N /
2
cs  1 
2
s u cs  1
r s
1 u 2
2
M 2 s 
2
M 1 s 
 M1(r) = r dipende da M1(s) e da M2(s)
 M2(r) analogamente dipende da M1(s), M2(s), M3(s)
su M 2
u M2



M2
2
1  u 2s
1  u 2s 21  u 
tempo medio di
attesa sevizio
= rs / (1 - u)
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 45
coda (M/G/1) in equilibrio (cont.)
s u cs  1
1 su 1 su 2
r s
s

cs
1 u 2
2 1 u 2 1 u
2
 tempo di servizio
 attesa dovuta alla
variabilità degli arrivi
 attesa dovuta alla
variabilità dei servizi
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 46
confronto tempi di risposta
tempo di risposta/ tempo di servizio coeff C
utilizzo per
processore
0,05
0,10
0,15
0,20
0,25
0,30
0,35
0,40
0,45
0,50
0,55
0,60
0,65
0,70
0,75
0,80
0,85
0,90
0,95
Ingegneria Dalmine
C=0
1,03
1,06
1,09
1,13
1,17
1,21
1,27
1,33
1,41
1,50
1,61
1,75
1,93
2,17
2,50
3,00
3,83
5,50
10,50
C=0,5
1,03
1,07
1,11
1,16
1,21
1,27
1,34
1,42
1,51
1,63
1,76
1,94
2,16
2,46
2,88
3,50
4,54
6,63
12,88
C=2
C=1
1,05
1,11
1,18
1,25
1,33
1,43
1,54
1,67
1,82
2,00
2,22
2,50
2,86
3,33
4,00
5,00
6,67
10,00
20,00
1,13
1,28
1,44
1,63
1,83
2,07
2,35
2,67
3,05
3,50
4,06
4,75
5,64
6,83
8,50
11,00
15,17
23,50
48,50
C=3
1,26
1,56
1,88
2,25
2,67
3,14
3,69
4,33
5,09
6,00
7,11
8,50
10,29
12,67
16,00
21,00
29,33
46,00
96,00
"Impianti Informatici"
La tabella riporta
l’andamento del tempo
di risposta normalizzato
r/s in funzione
dell’utilizzo e per diversi
valori di c
Reti di code - 47
confronto tempi di risposta (cont.)
tempo risp / tempo serv.
120
100
C=0
80
C=0,5
60
C=1
C=2
40
C=3
20
al crescere del coefficiente
di variazione c il punto
ottimale di esercizio si
sposta verso l’origine e
corrisponde a un valore
r più elevato e
utilizzo u minore
0
0,00
0,20
0,40
0,60
0,80
1,00
U
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 48
calcolo del punto ottimale di funzionamento
 max(/r) si ottiene per dr/d = r / 
dr dr du cs  1 2
1



s 
d du d
2
1  u 2
2
2

2
1
s u c s  1
 s 


   1 u
2 
r
cs
uo
r/s
0
1
2
3
4
0.586
0.500
0.387
0.309
0.255
1.71
2.00
2.58
3.23
3.92
cs  1  1  u 


2
 u 
2
l’utilizzo “ottimale” uo è
quello per cui la
lunghezza della coda
nella stazione vale 1
1  uo
ro  s  s
uo
N 0  o  ro  u o  1  u o   1
uo = s / ro
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 49
formula approssimata per il tempo medio di risposta
 cs e c siano rispettivamente i coefficienti di variazione dei
servizi e dei tempi di arrivo,
 allora la formula seguente è un’approssimazione del tempo
medio di risposta:
u c s  c
r  s  s

1 u
2
2
2
 la formula approssimata più generale (G/G/c), che risulta esatta
per M/M/c e M/G/1, è la seguente:
C c, u   s  c2  c s2 
r s


c1     2 
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 50
formula approssimata G/G/c nel caso heavy traffic
 in condizioni di carico elevato cioè quando   1,
detti  s rispettivamente le deviazioni standard degli arrivi e dei
servizi,
 il tempo medio di attesa ha una distribuzione molto prossima a
quella esponenziale di media Wq
Wq  
Ingegneria Dalmine
 2 
 s2
c
 s
21 

c 

"Impianti Informatici"
Reti di code - 51
discipline di servizio
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 52
discipline di servizio
 il fenomeno dei servizi è caratterizzato oltre che dalla distribuzione
dei tempi dalla disciplina di alimentazione della coda
 i clienti sono serviti nell’ordine di arrivo - come abbiamo tacitamente
assunto fino ad ora - disciplina nota come FCFS o FIFO
 disciplina “Processor Sharing” (PS) - ogni nuovo utente che arriva è
ammesso al servizio senza attesa - la velocità del servizio totale non
varia ma a ciascun utente della coda viene dedicata la porzione /n
(dove n è la lunghezza della coda) - (è un’approssimazione della
disciplina round robin quando il tempuscolo t tende a 0)
Utente che
richiede un
servizio S
S=S-t
min(S, t)
Ingegneria Dalmine
"Impianti Informatici"
S>0
Reti di code - 53
disciplina PS
 una caratteristica sorprendente della disciplina PS è che il tempo medio
di risposta e la distribuzione delle probabilità di n clienti nella coda
dipendono solo dalla media del tempo di servizio e cioè:
 r = s / (1 - u) come nel caso M/M/1
 perciò nel caso di cs > 1 (cs < 1) la disciplina è più (meno) efficiente
di quella M/M/1//FIFO
 se i serventi fossero c > 1 allora:
 se n  c: ogni utente riceve servizio a velocità 
 se n > c: ciascun utente riceve simultaneamente servizio a velocità
c/n
 anche in questo caso il valore medio r dipende solo da s ed è dato
dalla formula valida nel caso M/M/c
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 54
discipline con priorità
 ad ogni cliente è associata una priorità fissa che determina l’ordine di




servizio (se i < j, il cliente di classe i ha priorità su quelli di classe j)
clienti della stessa classe di priorità sono serviti in ordine di arrivo
se il servizio una volta iniziato non è interrompibile la disciplina è
detta nonpreemptive (NP) o senza prelazione - tipica nei sistemi di
comunicazione se il cliente che arriva interrompe il servizio di un altro di più bassa
priorità (che riprenderà dal punto di interruzione quando saranno
esauriti i servizi di clienti a priorità più elevata), la disciplina è detta
preemptive (PP) o con prelazione - tipica dei sistemi operativi
in entrambi i casi una grandezza importante è l’utilizzo della stazione
fino alla classe di priorità j compresa
j
u ( j )   i s i
i 1
Ingegneria Dalmine
u  u(K )

s   i si
i 1 
K
"Impianti Informatici"
i
M 2 si 
i 1 
K
M 2 s   
Reti di code - 55
discipline con priorità (cont.)
 il caso più semplice è
quello in cui la
distribuzione dei servizi
è esponenziale e
indipendente dalla
classe M/M/1/..
 naturalmente ha senso
assegnare una priorità
se le classi sono diverse
fra loro anche per la
forma della
distribuzione: ha perciò
più interesse il caso
M/G/1/..
NP
PP


u

r  j   s 1 
 1  u  j  11  u  j  
s
r j  
1  u j  11  u j 
 M 2 s 
NP
r j  s j 
PP
j





M
s

i
2 i 

1
i 1
s j 

r j 
1  u  j  1 
21  u  j  




21  u  j  11  u  j 
 M2(fino alla classe j)
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 56
discipline con priorità (cont.)
 si noti come il caso PP si riduca al considerare un server che ha
capacità pari a quanto resta dopo il consumo delle classi a
priorità più elevata - la formula del tempo di risposta si può
infatti ottenere da quella M/G/1 dividendo il tempo di servizio sj
per (1 - utilizzo fino alla classe j-1)
 inoltre valgono le relazioni seguenti:
r 1PP  r 1NP  r 1M / M / 1
r K PP  r K NP  r K M / M / 1
r  j NP  r  j M / M / 1  1  u   1  u  j  11  u  j 
 j  2,, K  1
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 57
descrizione intuitiva del fenomeno PP
 supponiamo per semplicità che ci siano solo due classi di priorità e




che un cliente della classe (2) arrivi e richieda un certo tempo T
(non ci interessa per quale ragione). Gli utenti della classe (1)
producono un lavoro con una rate pari a u(1) nell’unità di tempo che
causa un ritardo addizionale alla classe (2) di T·u(1). Ma durante il
tempo addizionale gli utenti della classe (1) continuano ad arrivare
e a consumare la risorsa con lo stesso tasso, perciò la classe (2)
incorrerà in un ulteriore ritardo T·u(1)·u(1) e così via.
allora l’attesa dell’utente di classe (2) diviene:
T·(1 + u(1) + u(1)2 + u(1)3 +.....) = T /(1- u(1))
l’estensione ad altre classi è ovvia: il ritardo della classe (j) si
calcola trattando l’effetto delle classi di priorità superiore (i < j)
conglobandole in un unico insieme che produce lavoro con
consumo di risorse:
u(1) + u(2) +... u(i)
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 58
leggi di conservazione
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 59
strategie di scheduling
 supponiamo di avere un sistema composto da una singola risorsa
a cui accedono job di K diverse categorie a cui sono assegnati
diversi obiettivi di prestazione:
W = (W1,….., WK)
Wk: tempo medio di risposta della classe k in condizioni stazionarie
W dipende dall’algoritmo usato per selezionare i job per il servizio
un dato vettore W è accessibile se esiste una strategia S tale che:
SW
l’insieme di accessibilità dipende dal grado di complessità permesso
(es.: se si può interrompere un job in esecuzione) e dalle informazioni
note (es.: se si conosce in anticipo la richiesta di un job o solo la sua
distribuzione)
 VS(t): carico virtuale al tempo t (data la strategia S) - somma dei tempi
di servizio rimanenti per tutti i job presenti nella stazione all’istante t






Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 60
leggi di conservazione
il server è idle con
clienti in attesa
VS(t)
un job abbandona il servizio
prima del termine
arrivi di job
t
 la figura mostra un possibile processo VS(t)
 se la strategia S non permette le due azioni che appaiono in figura
tratteggiate - si dice che S conserva il lavoro
 il processo stocastico V(t) tende allora ad una distribuzione di equilibrio
di valore medio V
 VS(k): carico medio virtuale della classe k - dipende da S
 V =  VS(k) non dipende da S (è lo stesso per tutte le S che conservano
il lavoro)
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 61
leggi di conservazione (cont.)
 al variare della strategia il vettore (VS(1), VS(2),....,VS(K)) varia
ma in modo tale che la somma dei suoi elementi resta costante
 il caso più semplice è quello dei tempi di servizio esponenziali:

uk  k
k
V k  
K
u   uk
k 1
Nk
k
 u kWk
N k  k Wk
K
1 K uk
V   u kWk 

1  u k 1  k
k 1
 nel calcolo della costante V si è ipotizzata una disciplina senza
priorità
 agendo sulle priorità vengono modificati i valori Wk e quindi Nk
ma V = k V(k) = costante
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 62
leggi di conservazione (cont.)
 in sintesi esiste un iperpiano che contiene un’area di
accessibilità delle strategie S, e in particolare scelta una classe
g  K esiste una strategia Sg che minimizza il tempo di risposta
Wg della classe g
 ogni decrescita di una componente di V deve essere
compensata da una proporzionale crescita delle altre
W3
W1
Ingegneria Dalmine
W2
"Impianti Informatici"
Reti di code - 63
leggi di conservazione (cont.)
 se consideriamo tutte le classi raggruppate il carico virtuale V
può interpretarsi come il tempo medio che un generico utente
deve attendere per iniziare il servizio; la costanza di V implica
allora che:
 i valori medi dei tempi di risposta e di attesa, del numero di
utenti in coda e in attesa sono indipendenti dalla disciplina di
alimentazione della coda;
 la forma delle distribuzioni per il numero degli utenti in coda e in
attesa resta invariata;
 invece cambia la forma per le distribuzioni dei tempi di risposta
e di attesa, in particolare è la disciplina FIFO quella che dà
luogo alla minore varianza
2FIFO(tw)  2RAND (tw)  2LIFO (tw)
 inoltre la distanza fra le varianze cresce con l’utilizzo
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 64
leggi di conservazione (cont.)
 il risultato vale più in generale:
 se le distribuzioni degli arrivi e dei servizi sono generali e se la
disciplina di servizio è non-preemptive, esiste una grandezza
costante V determinata solo da k e k 
 la disciplina di servizio deve però rispettare le regole seguenti:
 ogni volta che il sistema passa dallo stato di “idle” la memoria di S
si azzera, cioè le decisioni che vengono prese in un periodo di
“busy” non sono basate su quelle prese nei periodi passati
 solo le informazioni sullo stato presente e passato sono note - non
è per esempio possibile basare la decisione sul tempo esatto
rimanente ma solo sul suo valore atteso, per esempio la strategia di
servire per primo il job che sappiamo più breve non è fra quelle
conservative
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 65
un esempio di strategia che conserva il lavoro
 procedura (strategia di scheduling) che privilegia i job brevi:
 tutti i job alla partenza hanno priorità 1 (in quanto non abbiamo
modo di valutare a priori la domanda) - ad essi viene assegnato un
quantum q1
 a quelli che sono ancora in vita al termine di q1 viene assegnato un
quantum q2 > q1 e una priorità 2
 a quelli che sono ancora in vita al termine di q2 viene assegnato un
quantum q3 > q2 e una priorità 3
 e così via .......
 in questo modo i job che richiedono un tempo  q1 hanno
ricevuto la massima priorità - quelli con q1 < richiesta  q2
hanno passato la loro vita per la maggior parte in priorità 2 etc.
 il problema principale consiste nella determinazione i valori q.
 o meglio dei rapporti fra questi; i valori assoluti dipendono dalla
potenza della macchina e dal tipo di carico
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 66
scomposizione - aggregazione
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 67
rete di code
 una rete è risolubile in modo esatto se:
1. ogni nodo consiste di una coda M/M/c dove il nodo i possiede ci
serventi identici, ciascuno con tempo di servizio 1/i con distribuzione
esponenziale per ogni classe di transazione.
2. i clienti arrivano dall’esterno al nodo i con un processo di Poisson con
media 1/i.
3. completato il servizio al nodo i, il cliente va istantaneamente al nodo j
con probabilità qij, oppure lascia la rete con probabilità 1- (qi1+qi2+..qim)
 allora:


la probabilità di uno stato è il prodotto di fattori ciascuno dei quali
rappresenta la probabilità di stato di un componente isolato dal resto
della rete: p(k1,k2,..km) = p(k1)· p(k2)··· p(km)
p(k1,k2,..km): probabilità che lo stato sia di ki elementi nel nodo i
(i=1,2,..m)
 il metodo MVA può essere impiegato per ottenere soluzioni di reti
risolubili in forma di prodotto
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 68
digressione: teorema di Norton per le reti elettriche
Il comportamento di  è lo stesso nel circuito equivalente
come nel circuito dato
Rete elettrica
Rete
equivalente
I
Ingegneria Dalmine
R
 cortocircuitato


una rete complessa può essere semplificata
sostituendone una parte con una corrente
equivalente ed una impedenza parallela
(tutti i componenti eccetto  sono sostituiti
da un’unica corrente I e da una resistenza
interna parallela R
I è determinata dal flusso quando  è
cortocircuitato, R dal voltaggio del circuito
aperto)
"Impianti Informatici"
Reti di code - 69
teorema di Norton per le reti di code
4
1
3
2
scomposizione
5
in generale questa soluzione è
solo approssimata perché una
singola stazione può non essere
capace di riprodurre l’intero
spettro di comportamenti di
parecchie stazioni interconnesse
4
3
cortocircuito
5
1
2
Ingegneria Dalmine
aggregazione
modello
equivalente
nelle reti elettriche e nelle reti di code
si conservano i flussi di entità
"Impianti Informatici"
Reti di code - 70
metodo gerarchico di soluzione
 una rete di code in certe condizioni abbastanza generali può essere
suddivisa in parti tali che:
 le interazioni fra le parti sono più deboli di quelle interne
 interazioni più deboli significa che i flussi fra le diverse parti sono, in
prima approssimazione trascurabili, se confrontati con quelli interni
 allora:
 a breve termine viene raggiunto un equilibrio locale in ciascun
sottosistema indipendentemente dagli altri;
 a lungo termine viene raggiunto un equilibrio globale che mantiene
approssimativamente quello locale;
 le interazioni interne alle parti possono essere studiate come se quelle
esterne non esistessero;
 le interazioni esterne possono essere analizzate senza far riferimento ai
comportamenti interni;
 la struttura stessa di un sistema reale suggerisce il modo di aggregare i
componenti
Ingegneria Dalmine
"Impianti Informatici"
Reti di code - 71
metodo gerarchico di soluzione (cont.)
 prendiamo il modello chiuso (esempio
– esso può
essere separato in due parti:
trattato in Analisi operazionale)
 terminali (T) e modello centrale interno
(CPU & I/O) - ()
 () viene studiato in isolamento
cortocircuitando il resto della rete
variando il suo parametro (popolazione
di utenti)
 viene risolto il modello esterno in cui ()
è sostituito da una stazione equivalente
con servizi dipendenti dalla lunghezza
della coda

T

(analogo del teorema di Norton per le reti di code)
T
Ingegneria Dalmine
"Impianti Informatici"

Reti di code - 72
modello completo equivalente
 il modello è ora molto più semplice perché composto da due sole
stazioni di servizio (Terminali e coda equivalente a )
 nasce però un problema pratico di realizzazione dell’algoritmo perché
bisogna calcolare i valori marginali della distribuzione della lunghezza
della coda per ogni stazione load dependent
MVA load dependent

s
 k
rk n   sk 1  nk n  1
n
 i sk i  Pk i  1, n  1
 i 1
tempi di residenza per
visita alla stazione k
• stazione IS
• stazione load independent
• stazione load dependent
Pk i, n
Ingegneria Dalmine
frazione di tempo in cui nel nodo k si
trovano i elementi quando ce ne sono
n in totale nell’intero modello
"Impianti Informatici"
Reti di code - 73