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 21 p e 21 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 t0 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 0t 0 0t k 1t 1t k k t k k 1t 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 0t p1 t 1t pk t t pk t 1 k k t pk 1 t k 1t pk 1 t k 1t 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 P0 P0 1 i i P0 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 P0 i P0 D P0 D i 0 i 1 i 0 1 1 P0 D P0 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 Pn n 1, k k 1 P0 u k 1u 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 pk detto l’utilizzo “vero” del servente, cioè la probabilità (u = s) di trovarlo occupato a s 1 pk s 1 pk 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 P0 n! Pn n u u P0 n c c! c nc dalle equazioni di bilanciamento: 2 u2 u c 1 u c u u 1 P0 1 u 1 c 1! c! c c 2! c 1 u n u c 1 P0 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 Pn P0 2 c!1 n c C c, u Pn c Pn nc 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 P0 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 c1 C c, u 1 sw 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 c1 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 rN 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 21 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 c2 c s2 r s c1 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 21 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 11 u j s r j 1 u j 11 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 21 u j 21 u j 11 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 1PP r 1NP r 1M / 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 11 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: SW 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