CAPITOLO 6
ANALISI DEL RITARDO
IN UNA RETE DATI
.
1
6. ANALISI DEL RITARDO IN UNA RETE DATI
In questo capitolo analizzeremo, in modo quantitativo e qualitativo, gli elementi di ritardo presenti
in una rete per dati. Fondamentalmente considereremo reti di tipo packed switched (commutazione
di pacchetto), ma qualche cenno verrà fatto anche per le reti di tipo circuit switched (commutazione
di circuito).
Utilizzando la teoria analitica delle code o utilizzando un approccio di tipo ingegneristico,
studieremo come si possa progettare una rete, dimensionarla e valutarne le prestazioni.
In particolare, uno degli obiettivi è quello di comprendere quali metodi analitici o simulativi
conviene utilizzare per fare un’analisi delle prestazioni di una rete.
I parametri prestazionali più importanti, che storicamente sono stati presi in esame nelle reti per
dati, sono:
THROUGHPUT [bit/sec ]. Misura l’efficienza del sistema, e rappresenta il volume del traffico che
viene smaltito dalla rete nell’unità di tempo: analiticamente esso si può
quantificare attraverso il rapporto tra il traffico offerto ed il traffico
smaltito. Esiste un’altra interpretazione (non di interesse prestazionistico)
di throughput, inteso come volume di traffico offerto alla rete.
Per quanto riguarda l’efficienza, essa è del 100% quando tutto quello
immesso nella rete riesce ad essere interamente smaltito. Legato al
throughput, un altro parametro importante, è la
PROBABILITÀ
DI
PERDITA, ovvero la parte di traffico che, per qualche motivo, non arriva a
destinazione e, quindi, viene perso dalla rete.
RITARDO. E’ il tempo che intercorre fra il momento in cui un messaggio viene consegnato alla rete,
per essere recapitato a destinazione, e il tempo in cui effettivamente viene consegnato
all’utente. Se un dato può arrivare anche dopo diversi secondi, invece, un segnale audio o
video non può superare i limiti imposti al ritardo di consegna, in quanto l’informazione
nella sua globalità si degraderebbe eccessivamente. L’informazione video e audio risente
fortemente anche del jitter, cioè dalla varianza del ritardo con cui questi messaggi
vengono consegnati a destinazione.
Questi parametri consentono di valutare l’utilizzazione delle risorse ed in un certo senso la “qualità”
del servizio, in termini di ritardo medio, offerto ai clienti.
Esistono chiaramente dei legami tra i parametri citati. Ad esempio, se un’informazione sosta nei
buffer di rete per troppo tempo, questa verrà automaticamente scartata, provocando l’aumento della
probabilità di perdita, cioè diminuirà il throughput. Pertanto vi saranno applicazioni in cui conviene
minimizzare la probabilità di perdita (applicazioni di tipo dati, ad esempio il bancomat), altre
(codifica del segnale vocale citata in precedenza) in cui sono necessari piccoli ritardi di consegna,
ed altre (trasferimento di dati multimediali fra due banche dati) in cui si richiedono sia basse
probabilità di perdita che ridotti ritardi di consegna.
Per valutare un sistema di telecomunicazioni tramite i parametri sopra citati e per dimensionare la
rete, al fine di avere determinati parametri prestazionali, si devono utilizzare opportuni modelli di
riferimento. Come si è già detto, gli strumenti a disposizione sono due:
•
si simula il comportamento della rete in laboratorio,
•
oppure si crea un modello analitico che rappresenti il sistema che si vuole studiare; si
mandano degli input al modello e si osservano gli output, misurando i valori dei parametri
caratteristici.
2
6.1 Elementi di Ritardo in una Rete Dati
Consideriamo la subnet (sottorete) mostrata in Fig. 6.1-1; il ritardo, che un generico pacchetto
subirà, sarà dovuto alla somma dei ritardi accumulati su ogni link attraversato.
Questa somma è espressa in termini statistici, poiché, il numero di nodi che vengono attraversati dal
pacchetto informativo, in una singola comunicazione, dipende dall’algoritmo di instradamento
utilizzato. Pertanto si deve tenere conto di due processi statistici: il numero di nodi attraversati dal
pacchetto ed il ritardo che su ciascuna tratta il pacchetto stesso subisce.
Ipotesi di lavoro che si assume è quella di supporre tali processi strettamente non correlati: questa è
una grande semplificazione che mi consente di non considerare le probabilità congiunte.
Fig. 6.1-1: Sottorete di una rete per dati
Il ritardo associato ad ogni link, è costituito da quattro componenti:
1. PROCESSING DELAY (RITARDO DI PROCESSAMENTO): tempo che trascorre tra quando il
pacchetto è correttamente ricevuto al nodo di testa del link e quando esso viene assegnato
alla coda di trasmissione di un link d’uscita. Se, ad esempio, consideriamo un pacchetto che
arriva al nodo A di Fig. 6.1-1, il quale lo indirizza verso il nodo B, il PROCESSING DELAY è
rappresentato dal tempo che trascorre tra l’istante in cui il pacchetto è ricevuto al nodo A, e
l’istante in cui il pacchetto è assegnato alla coda di trasmissione del link che collega A e B.
2. QUEUEING DELAY (RITARDO DI CODA): tempo che trascorre tra l’istante in cui il
pacchetto è assegnato ad una coda per la trasmissione e l’istante in cui il pacchetto inizia ad
essere trasmesso. Questo ritardo è quello di natura maggiormente statistica, perché dipende
da tanti fattori che non si riescono a prevedere con precisione.
3. TRANSMISSION DELAY (RITARDO DI TRASMISSIONE): tempo che trascorre tra l’istante in
cui il primo e l’ultimo bit del pacchetto sono spediti.
4. PROPAGATION DELAY (RITARDO DI PROPAGAZIONE): tempo che trascorre tra l’istante in
cui l’ultimo bit è spedito dal nodo di testa del link e l’istante in cui esso è ricevuto dal nodo
di coda del link. Questo tempo dipende dalle caratteristiche del mezzo trasmissivo, ed è
proporzionale alla distanza che separa il sender dal receiver. Tale delay risulta essere molto
piccolo salvo nel caso delle trasmissioni via satellite. Tipicamente i mezzi di comunicazione,
usualmente utilizzati (cavo coassiale), hanno una velocità di propagazione pari a 2⋅108
m/sec.
Visto che ogni nodo è un sistema coda-servente, il nodo A di Fig. 6.1-1 lo si può schematizzare
come mostrato in Fig. 6.1-2: quindi
3
1. il PROCESSING DELAY non è altro che la somma del tempo di attesa nella input queue più il
tempo di processamento al server S1,
2. il QUEUEING DELAY è il tempo di attesa nella output queue,
3. mentre il TRANSMISSION DELAY non è altro che il tempo di processamento o di servizio al
server corrispondente alla output queue.
Nodo B
…
S3
Nodo A
…
Input Queue
Output Queue
S1
Nodo F
…
S2
Output Queue
Fig. 6.1-2 - Schematizzazione delle code presenti nel generico nodo di una subnet.
Osserviamo che quanto detto sinora trascura la possibilità che un pacchetto debba essere
ritrasmesso a causa di un errore o per qualche altra causa; d’altro canto, questo non deve
preoccuparci, perché, nella maggior parte dei link, le ritrasmissioni sono così rare che possono
essere trascurate.
In seguito, nel modellare il generico nodo, trascureremo ove è possibile
il PROPAGATION DELAY, che dipende dalle caratteristiche del mezzo e dalla distanza dei nodi
connessi dal link, ma è del tutto indipendente dal traffico presente nella rete, e
il PROCESSING DELAY, che, nelle reti a banda stretta, incide poco sul ritardo totale: esso infatti
rappresenta il tempo di lettura e di processamento del dato da parte del nodo di commutazione;
quest’ultima assunzione ha l’effetto di far sparire la input queue ed il relativo servente dalla Fig.
6.1-2.
Definiamo, infine, quello che si definisce in letteratura FATTORE “ a “, pari al rapporto fra il tempo
di propagazione su un link ed il ritardo di trasmissione necessario per immettere un messaggio sul
link. Esso viene molto spesso utilizzato come parametro complementare per la valutazione delle
prestazioni delle reti locali (LAN): più elevato è il fattore “ a “, più basse sono le prestazioni di una
rete ETHERNET.
6.1.1 Ritardo di Trasmissione per Traffico Multiplexato
Esaminiamo il RITARDO DI TRASMISSIONE (TRANSMISSION DELAY) del pacchetto, nel caso in cui la
tecnica di multiplexing sia TDM, FDM o di Statistical Multiplexing. In ogni caso il link verrà visto
come un bit pipe, sul quale possono essere trasmessi un certo numero di bit al secondo.
Questo valore indicato tipicamente con C (numero di bit trasmessi nell’unità di tempo nel link),
espresso in bps (bit/sec), dipende sia dalle caratteristiche del mezzo fisico di cui il link è costituito,
che dalle interfaccie usate per la comunicazione.
Caso 1: Statistical Multiplexing
Se la multiplazione è statistica, i pacchetti che arrivano dalle varie sorgenti sono posti in
un’unica coda e vengono serviti con una politica di tipo FIFO (First input first output).
4
Detta L (bits) la lunghezza di un generico pacchetto, e detta C (bps) la capacità del canale,
poiché la risorsa trasmissiva è allocata interamente ad un singolo pacchetto alla volta, il tempo di
servizio, inteso come trasmissione del pacchetto, è pari a :
td =
L
C
Eq. 6.1-1
Caso 2: Frequency Division Multiplexing
Supponiamo di avere m sorgenti di traffico, le quali devono essere multiplate mediante FDM sul
nostro link. In tal caso, detta W la banda passante del canale, ad ogni stream di traffico verrà
associato un canale avente banda circa pari a W/m. Detta C bps la capacità trasmissiva del
canale, all’i-esimo traffic stream sarà associato un canale C/m bps. Da cui segue che il tempo
necessario a trasmettere un pacchetto lungo L bits è pari a:
td =
L mL
=
C
C
m
Eq. 6.1-2
Osserviamo come questo tempo sia m volte più grande rispetto a quello relativo allo statistical
multiplexing.
Caso 3: Time Division Multiplexing
Supponiamo di avere m stream di traffico. Se la dimensione degli slot temporali è piccola
rispetto alla lunghezza del pacchetto da trasmettere, lungo L bits, si ha lo stesso tempo di
trasmissione, dato dalla Eq. 6.1-2; infatti, anche in questo caso, è come se ogni stream avesse
associato un canale di capacità C/m.
Se invece slot e pacchetto hanno la stessa dimensione, vale la relazione dell’Eq. 6.1-1, ma
bisogna aspettare un tempo pari a
(m − 1)
L
C
Eq. 6.1-3
prima di poter trasmettere un altro pacchetto appartenente allo stesso stream (visto che si
trasmette un pacchetto per volta degli m stream di traffco).
Dalle relazioni ricavate sinora, si nota che lo statistical multiplexing è quello che garantisce il
trasmission delay più piccolo. Ciò è dovuto al fatto che le risorse allocate ai traffic stream dagli
schemi di multiplazione TDM ed FDM, vengono sprecate nel caso in cui una sorgente non ha
nulla da spedire.
Ci resta adesso da calcolare il QUEUEING DELAY. Questa grandezza, come detto, è più difficile da
calcolare poiché è un parametro statistico estremamente variabile; per il suo studio faremo uso della
teoria delle code.
5
6.2 Sistemi a Coda
Il processo assunto alla base della maggior parte dei sistemi a coda è mostrato in Fig. 6.2-1.
Dei clienti (customers) richiedenti un dato servizio, sono generati nel tempo da una input source.
Questi clienti entrando nel queueing system formano una coda. A certi istanti, un membro della
coda viene scelto come prossimo cliente da servire, secondo una certa politica nota come disciplina
della coda (per esempio la disciplina potrebbe essere FIFO, LIFO, ecc.). Quando il servizio
richiesto dal cliente viene svolto dal server, il customer può uscire dal sistema a coda.
Queue
Customers
Server
…
Fig. 6.2-1: Schema di un sistema a coda
Possono essere fatte diverse assunzioni sui vari elementi che costituiscono il queueing system.
In generale per caratterizzare un sistema a coda deve essere specificata
la statistica dei tempi di inter-arrivo, la statistica dei tempi di servizio,
nonché la disciplina usata per gestire la coda.
CONSIDERAZIONI.
Sia le reti a commutazione di pacchetto (dati) che quelle a commutazione di circuito (chiamate
telefoniche) si riconoscono nel modello sopra schematizzato.
In particolare il nodo di una rete a commutazione di pacchetto, che si basa sulla filosofia dello store
and forwarding, prevede un buffer finito in cui si accodano i pacchetti per essere trasmessi dal link,
il quale rappresenta il servente del nostro schema.
Se il sistema prevede slot di una certa lunghezza temporale, i pacchetti avranno lunghezza fissa e il
tempo di servizio, ovvero il tempo di trasmissione, sarà costante e pari alla lunghezza L dell’unità
informativa fratto la capacità C del sistema.
Se, viceversa, la lunghezza dell’unità informativa non è costante, L sarà la lunghezza media del
pacchetto e L/C rappresenterà il tempo medio di trasmissione, ovvero il tempo di servizio del nostro
schema.
Con le reti a commutazione di circuito, attraverso la fase di set-up, si servono le richieste di
chiamata, mettendo a disposizione la risorsa trasmissiva per un periodo di tempo pari alla durata
media di una conversazione telefonica: ovviamente durante tale periodo le risorse saranno
indisponibili ed eventuali altre richieste di chiamata non potranno essere servite.
Pertanto si può immaginare che i clienti siano le richieste di chiamata, il servente sia il trunk
(tronco, ovvero il mezzo) ed il tempo di servizio sia pari alla durata media di una conversazione
telefonica.
Normalmente nelle reti a commutazione di circuito, il buffer è sempre vuoto, visto che se c’è la
risorsa, si apre la comunicazione, viceversa si rigetta la chiamata mandando un tono di occupato
direttamente dalla centrale. Questo è il motivo del perché la rete telefonica è definito sistema a pura
perdita. Invece un sistema a coda è detto a pura attesa se il buffer è infinito (caso non reale),
mentre è ad attesa e perdita se ha un buffer finito (come accade ad ogni multiplexer reale) che, non
appena si riempie, causa la perdita dei clienti che arrivano.
Per studiare, quindi, i sistemi a coda, non è sufficiente conoscere la dimensione del buffer, il
numero di serventi, la strategia di servizio dei buffer e la distribuzione di probabilità degli arrivi, ma
6
occorre anche conoscere la distribuzione di probabilità dei tempi di servizio, la quale è legata (come
detto prima) alla distribuzione statistica delle lunghezze dei pacchetti (che rappresentano il flusso
dei clienti). Nella maggior parte dei casi, come già detto, se si conosce,
9la distribuzione dei tempi di servizio (ovvero la lunghezza media dei pacchetti) e
9la distribuzione dei tempi di interarrivo dei clienti,
si possono ricavare grandezze importanti quali
a)
b)
c)
d)
e)
il numero medio dei clienti che esiste nel sistema,
il numero medio dei clienti in attesa,
il numero medio dei clienti nel servente,
il numero medio dei clienti complessivo fra buffer e servente ed
il ritardo medio subito dal cliente nel sistema, nella sua totalità o in ciascuna parte
del sistema stesso (singolo buffer o servente).
Conoscere la distribuzione statistica di un processo, significa conoscere la funzione densità di
probabilità (Pdf), o i momenti di diverso ordine.
I momenti del primo ordine, cioè i valori medi, vengono indicati con la seguente simbologia molto
diffusa in letteratura:
λ = frequenza media di interarrivo [clienti/sec] ⇒ 1/λ = tempo medio di interarrivo
µ = frequenza media del servizio [clienti/sec] ⇒ 1/µ = tempo medio del servizio
ρ= λ /µ =fattore di utilizzazione [adimensionato].
Se prendiamo come riferimento il nodo A di Fig. 6.1-1, i customers sono rappresentati dai pacchetti
che arrivano e vengono assegnati ad un link per la trasmissione, mentre il server è rappresentato
dalla transmission facility. La coda corrisponde invece al buffer associato al link uscente dal nodo,
tramite cui il pacchetto deve essere spedito.
Date le distribuzioni di probabilità dei tempi di interarrivo e dei tempi di servizio, il nostro obiettivo
sarà quello di determinare le seguenti quantità:
IL NUMERO MEDIO DI CLIENTI NEL SISTEMA
• IL RITARDO MEDIO DEL GENERICO CLIENTE
•
dove per numero di clienti nel sistema si intende il numero di utenti presenti nella coda più il
numero dei clienti che stanno usufruendo del servizio offerto dal sistema.
Mentre il ritardo di un cliente è costituito dal tempo di attesa in coda più il tempo di servizio.
NUMERO DI CLIENTI NEL SISTEMA
Sia
pn(t) = Probabilità che all’istante t vi siano n clienti nel sistema,
che nel discreto è rappresentata da una funzione densità di probabilità di tipo impulsiva:
Supposte note le informazioni statistiche necessarie per la determinazione delle probabilità pn(t), per
ogni t, e definito
N (t ) = Numero medio di clienti al tempo t
7
si ha che (dalla definizione di valore medio):
+∞
E{N (t )} = N (t ) = ∑ n ⋅ p n (t )
Eq. 6.2-1
n =0
Osserviamo che sia pn(t) che E{N(t)} dipendono dal tempo e dalla distribuzione delle probabilità al
tempo t=0, ossia {p0(0), p1(0), p2(0), ..., pn(0), ...}.
Sarebbe interessante andare a studiare il sistema sia in transitorio che a regime.
Se si considera il sistema STAZIONARIO si può supporre irrilevante il transitorio ai fini dello studio
del sistema, visto che il sistema raggiunge una condizione di l’equilibrio (cioè il sistema non
esplode; il sistema esplode se il numero degli utenti che arriva è sempre maggiore del numero di
utenti che parte), ovvero:
∃pn ,N:
Eq. 6.2-2
lim p n (t ) = p n
t →+∞
+∞
N = ∑ np n = lim N (t )
n → +∞
n=0
dove pn e N sono indipendenti dalla distribuzione delle probabilità iniziale. Potrebbe anche risultare
N=∞ nonostante il sistema sia STAZIONARIO: ciò accade per esempio nel caso in cui il rate con cui
arrivano i clienti è superiore rispetto a quello con cui il sistema riesce a servirli.
Se il sistema è anche ERGODICO, allora è possibile utilizzare anche dei potenti strumenti analitici,
quali le catene di MARKOV. Un sistema si definisce ERGODICO quando le medie temporali
coincidono con le medie di insieme (cioè le medie temporali possono essere fatte su una qualsiasi
delle funzioni membro, perché hanno tutte le stesse statistiche).
Detta N(t) una funzione di campionamento del numero dei clienti nel sistema, definiamo media
temporale di tale funzione nell’intervallo [0,t] la grandezza:
t
1
N t = ∫ N (τ ) dτ
t0
Eq. 6.2-3
lim N t = lim N (t ) = N
Eq. 6.2-4
Se il sistema è ERGODICO, segue che
t → +∞
t →+∞
RITARDO MEDIO DEL GENERICO CLIENTE.
Supposta nota la distribuzione di probabilità di ritardo di ciascun cliente, siamo in grado di calcolare
il ritardo medio di ogni cliente.
Sia Tk = E{Tk } = ∫
+∞
0
f Tk (r ) ⋅ r ⋅ dr il ritardo medio del k-esimo cliente.
Nel caso di sistema STAZIONARIO, per k→+∞, il ritardo medio del generico cliente sarà pari a:
T = lim Tk = lim E{Tk }
k → +∞
k → +∞
Eq. 6.2-5
8
(Anche in questo caso è possibile che risulti T=∞)
Se inoltre il sistema risulta essere ERGODICO si ha che:
1 k
T = lim Tk = lim ∑ Ti
k →+∞
k →+∞ k
i =1
Eq. 6.2-6
dove Ti rappresenta il ritardo dello i-esimo cliente.
Ricapitolando quanto trovato sin ora, abbiamo che, dato un sistema STAZIONARIO ed ERGODICO, il
numero medio di clienti nel sistema è dato dalla relazione Eq. 6.2-4, ed è indicato con N, mentre il
ritardo medio che il generico cliente sperimenterà è dato dalla Eq. 6.2-6, ed è indicato con T.
Nel prossimo paragrafo, vedremo come tali grandezze sono tra di loro legate.
6.2.1 Applicazione dei Sistemi a Coda nelle Reti
I sistemi a coda possono essere usati per modellare sia delle reti a commutazione di pacchetto che le
reti a commutazione di circuito.
Nelle RETI A COMMUTAZIONE DI PACCHETTO, i clienti sono i pacchetti da trasmettere. Supponendo
che i pacchetti abbiano dimensione variabile con media di L bit e che il canale trasmissivo abbia
capacità di trasmissione pari a C bit/sec, il tempo medio di trasmissione di un pacchetto è dato da:
1 L
=
µ C
Eq. 6.2-7
dove µ è il rate medio di servizio (espresso in Pacchetti/Sec).
Detto λ il rate medio di arrivo si definisce Fattore di Utilizzazione:
ρ=
λ
µ
Eq. 6.2-8
e sostituendo nella Eq. 6.2-8 la Eq. 6.2-7 si ha:
ρ=
λ⋅L
C
Eq. 6.2-9
Il numeratore della Eq. 6.2-9 rappresenta il carico medio nella rete (λ L [bit/sec]), mentre il
denominatore rappresenta la capacità di trasmissione della rete [bit/sec].
Dunque il PARAMETRO ρ, adimenzionato, fornisce, quantitativamente, la misura di quanto è
caricato il sistema. Se ρ > 1, il sistema non riesce a smaltire il carico poiché il numero medio di
arrivi è superiore rispetto al numero medio di partenze.
Come detto in precedenza, anche le reti a commutazione di circuito possono essere modellate con i
sistemi a coda. I clienti sono le chiamate telefoniche attive e il tempo di servizio medio è costituito
dalla durata media di una conversazione. La statistica entra in gioco solo durante la fase di set-up di
una nuova connessione in cui le risorse sono le porte di uscita degli autocommutatori.
Indicheremo dunque con λ il RATE MEDIO con cui arrivano le chiamate e con 1/µ la DURATA MEDIA.
9
6.2.2 Teorema di Little
Il teorema di Little stabilisce che tra N e T intercorre una dipendenza lineare.
Detta λ la costante di proporzionalità risulta che (questa formula viene tipicamente chiamata
formula di Little, in quanto John D. C. Little fu il primo a darne una prova rigorosa; essa infatti
veniva ritenuta valida come regola del buon senso):
N=λT
Eq. 6.2-10
dove λ = Rate medio degli arrivi dato dalla relazione:
Valore atteso degli arrivi in [0, t]
t →∞
t
λ = lim
Eq. 6.2-11
Supponiamo che i clienti siano gestiti secondo una politica di tipo First Come Fist Served (FCFS)
(la formula di Little è valida anche se la coda non è gestita con la tecnica FCFS; la dimostrazione
presentata però vale solo se la tecnica di scheduling usata è FCFS).
Dimostriamo il teorema di Little.
HP. : si consideri un sistema STAZIONARIO ed ERGODICO;
TS. : detti
N = numero medio di utenti nel sistema = lim E{N (t )} (sistema è stazionario)
t →∞
T = tempo medio speso dagli utenti nel sistema =
lim E{T }
k →∞
k
(essendo il processo stazionario T è lo stesso per tutti gli utenti )
α (t )
(processo è stazionario)
λ= frequenza media degli arrivi = lim
t
t →∞
dove
α(t) = Numero degli arrivi nell’intervallo [0, t]
β(t) = Numero delle partenze nell’intevello [0, t]
si trova che
N=λT
DIMOSTRAZIONE
Supposto N(0) = 0 (sistema vuoto per t=0), dalla definizione di α(t) e β(t) risulta chiaramente:
N(t)=β(t) - α(t)
Eq. 6.2-12
dove N(t) indica il numero di clienti presenti nel sistema all’istante t. Indichiamo con ti l’istante in
cui l’i-esimo utente arriva al sistema, mentre con Ti il tempo speso nel sistema dall’i-esimo utente.
Dato un istante t generico, l’area racchiusa tra le due curve di Fig. 6.2-2, in virtù della Eq. 6.2-12, è
pari a:
t
∫ N (τ )dτ
0
Ma d’altro canto, visto che le partenze e gli arrivi avvengono uno alla volta, esaminando la figura
6.2-2 risulta che
t
β (t )
∫ N (τ )dτ = ∑ T
i
0
i =1
+
α (t )
∑ (t − t )
i
i = β ( t ) +1
Eq. 6.2-13
10
Dividendo ambo i membri della Eq. 6.2-13 per t e moltiplicando e dividendo il 2° membro per α(t),
si ottiene:
β (t )
t
α (t )
1
τ
τ
=
⋅
(
)
N
d
t ∫0
t
α (t )
∑ T + ∑ (t − t )
i
i
i = β ( t ) +1
i =1
α (t )
Eq. 6.2-14
Osserviamo che il primo membro della Eq. 6.2-14 non è altro che la media temporale in [0, t] del
numero di clienti presente nel sistema (vedi Eq. 6.2-3). Il termine
α (t )
= λt
t
dove λt rappresenta la media temporale del rate degli arrivi nell’intervallo [0, t]. Infine notiamo che
risulta:
β (t )
α (t )
β (t )
α (t )
∑ T + ∑ (t − t ) ∑ T + ∑ (t − T )
i = β ( t ) +1
α (t )
i
i
i
i
i =1
=
i =α ( t ) +1
i =1
α (t )
1 α (t )
=
∑ Ti =Tt
α (t ) i=1
dove Tt rappresenta la media temporale del tempo che un cliente spende nel sistema nell’intervallo
[0,t].
α(t)
β (t)
Fig. 6.2-2: rappresentazione di α(t) (numero degli arrivi) e di β(t) (numero delle partenze)
nell’intevello [0, t]in una coda gestita con la tecnica FCFS
11
In virtù delle osservazioni fatte, possiamo scrivere che
N t = λt Tt
Eq. 6.2-15
Poiché il sistema è STAZIONARIO ed ERGOTICO:
lim N t = N
t → +∞
lim λt = λ
t → +∞
lim Tt = T
t → +∞
e quindi è dimostrata la formula di Little
N=λT
È importante notare che Tt include il tempo speso nel sistema da tutti i clienti arrivati tra 1 e β(t),
ma tralascia il tempo speso dai clienti ancora nel sistema all’istante t.
Se si suppone che Nt → N<∞ (il che implica che tutti i clienti sono serviti in un tempo finito),
l’effetto dovuto alla presenza dei clienti nel sistema all’istante t diviene via via trascurabile, ed al
crescere di t, Tt può effettivamente essere interpretato come la media temporale del tempo di
sistema.
L’importanza del teorema di Little deriva dalla sua generalità. Esso può essere applicato ad un
qualsiasi sistema a coda che raggiunga una condizione di equilibrio statistico. Il sistema non deve
necessariamente essere una singola coda, ma può essere in generale un complesso sistema di
arrival-departure. La cosa importante, nell’applicare il teorema di Little, è quella di interpretare nel
modo appropriato N, λ e T.
Prendiamo in esame la coda del Queueing System. Secondo una appropriata simbologia, detta λ la
frequenza di arrivo dei clienti, la lunghezza media della coda (NQ) è data, applicando il teorema di
Little, dalla relazione
N Q = λW
Eq. 6.2-16
dove W è il tempo medio di attesa in coda (waiting time).
Analogamente, applicando il teorema di Little nella parte di uscita del sistema a coda, si ha che il
numero medio di pacchetti in trasmissione ρ sul servente di un sistema a coda è dato dalla
frequenza di arrivo λ dei pacchetti per il tempo medio di trasmissione = X = 1 :
µ
ρ =λX
Eq. 6.2-17
Il parametro ρ è anche chiamato fattore di utilizzazione della linea, poiché è definito come il
numero medio di pacchetti entranti nel servente per il tempo medio di trasmissione, ovvero
rappresenta l’intervallo di tempo nel quale la linea è occupata nella trasmissione di un pacchetto.
APPLICAZIONE DEL TEOREMA DI LITTLE
Controllo di Flusso a Finestra
Consideriamo un canale di trasmissione in cui si opera un controllo di flusso a finestra.
Questo può essere visto come un sistema in cui c’è sempre lo stesso numero N di clienti; infatti
si suppone che la sorgente (oppure le sorgenti) di messaggi abbia sempre pronto un pacchetto
da inviare e i segnali di acknowledgements sono trascurabili.
12
Dal teorema di Little si ricava che:
N=λT
dove :
N = numero di pacchetti medio nel sistema;
λ = frequenza di arrivo dei pacchetti;
T = ritardo medio di trasmissione dei pacchetti.
Osserviamo, dunque, che
• se il canale è congestionato, T cresce e quindi deve necessariamente diminuire λ.
• Inoltre a parità di λ, se si aumenta la finestra (N), aumenta anche il tempo medio trascorso
dai pacchetti sul canale.
Sistema Time Sharing
Il teorema di Little consente anche di valutare i limiti di throughput in un sistema time-sharing
a N terminali. Gli utenti accedono al sistema tramite i terminali, che, dopo un periodo medio R
di setting, inviano la richiesta di esecuzione al computer, caratterizzato da un tempo di
processamento medio pari a P.
Tali richieste vengono accodate e servite dal computer (il quale ha una singola CPU) secondo
degli specifici algoritmi di scheduling.
Se vogliamo calcolare il massimo throughtput, dobbiamo supporre che tutti i terminali siano
attivi, cioè il numero di job nel sistema sia sempre N.
Fig. 6.2-3: Sistema Time Sharing
Applicando il teorema di Little fra i punti A e C (Fig. 6.2-3) si ha che:
λ=
N
T
Eq. 6.2-18
Il tempo medio T che un utente spende nel sistema è dato da:
T=R+D
13
dove D è il ritardo medio osservato dall’istante in cui il job è accettato all’istante in cui il job è
completato. Tale ritardo varia a secondo se ci sono o no altri job in coda.
• Nel caso più fortunato, D=P (P=tempo di processamento) e il job in esame non deve
attendere il completamento di altri task,
• mentre nel caso più sfortunato si ha che D=NP, visto che il job deve attendere il
completamento del job degli altri N-1 utenti. Si deduce dunque che:
R+P ≤ T ≤ R + N . P
Ricavando T dall’Eq. 6.2-18, la relazione sopra scritta diventa:
R+P≤
N
≤ R+ N ⋅P
λ
λ
1
1
≤ ≤
R+ N ⋅P N R+P
da cui:
N
N
≤λ≤
R+ N ⋅P
R+P
Eq. 6.2-19
Inoltre il throughput λ è anche limitato dalla capacità di processamento del computer, per cui si
ha che:
λ≤
1
P
Eq. 6.2-20
Combinando l’Eq. 6.2-19 e l’Eq. 6.2-20 si ottiene che:
N
N 
1
≤ λ ≤ min  ,

+
R+ N ⋅P
P
R
P


Eq. 6.2-21
Dalla Eq. 6.2-21 si ottengono i limiti per il tempo di attesa medio T:
λ 1
1
 1 1 N 
≤ = ≤ min 
,

R+ N ⋅P N T
NP
N R + P

max{NP, R + P} ≤ T ≤ R + N ⋅ P
Eq. 6.2-22
Le equazioni Eq. 6.2-21 e Eq. 6.2-22 sono riportate in Fig. 6.2-4.
Si nota che all’aumentare del numero di terminali N, il throughput tende al valore massimo
(1/P), ed il tempo medio di attesa cresce in maniera proporzionale ad N.
Il numero di terminali diventa il collo di bottiglia del sistema, quando N<1+R/P e la CPU è idle
(senza nulla da fare) per porzioni più o meno lunghe di tempo.
Viceversa la CPU diventa il collo di bottiglia del sistema quando N>1+R/P.
14
Fig. 6.2-4: Curve che mettono in relazione N (numero di terminali) con λ e T
6.3 Nomenclatura per i sistemi a coda
La nomenclatura che useremo (notazione di Kendall) per identificare i vari tipi di sistemi a coda fa
uso di 5 simboli.
•
la prima lettera indica la natura del PROCESSO DEGLI ARRIVI. I valori tipici sono:
M: MEMORYLESS (proprietà fondamentale dei processi markoviani), indica che il
processo degli arrivi è un processo di Poisson (distribuzione di probabilità
esponenziale).
G: GENERAL, indica che il processo degli arrivi è caratterizzato da una distribuzione di
probabilità generale. In questo caso non si conosce l’andamento della funzione
distribuzione di probabilità degli arrivi, ma si conoscono solamente i momenti del 1°
e del 2° ordine, cioè il valor medio e il valore quadratico medio.
D: DETERMINISTIC, indica che il processo degli arrivi è caratterizzato da una
distribuzione di probabilità deterministica.
•
la seconda lettera indica la natura della distribuzione di probabilità dei tempi di servizio. I
valori possibili, anche in questo caso, sono M, G, D e il significato è uguale a quello
spiegato precedentemente, con la differenza che tali simboli si riferiscono alla distribuzione
di probabilità del PROCESSO DELLE PARTENZE.
•
Il terzo simbolo indica il NUMERO DI SERVENTI del sistema a coda.
•
Il quarto simbolo indica il NUMERO MASSIMO DI CLIENTI NEL SISTEMA. In genere
questo simbolo non è indicato in quanto per default è infinito. Se n è il valore indicato,
allora il numero massimo di clienti presente nel sistema sarà, a secondo di due diverse
interpretazioni esistenti, o n o (n-1).
•
Il quinto simbolo indica il NUMERO MASSIMO DI SORGENTI ATTIVE. Anche questo
simbolo potrebbe non essere presente visto che per default è infinito. Ogni sorgente (nel
nostro caso sorgente di pacchetti) può immettere un solo pacchetto alla volta: inoltre
l’emissione del pacchetto successivo potrà avvenire solo quando si è certi che il precedente
sia stato trasferito. E’ il caso di sistemi come la rete metropolitana DQDB o di
autocommutatore telefonico.
Limitando il numero di sorgenti attive, si può imporre un throughput massimo al sistema.
15
Un sistema a coda di tipo M/M/1 è dunque un sistema caratterizzato da un solo servente (terzo
simbolo), in cui i clienti arrivano secondo un processo di Poisson con frequenza λ e in cui la
distribuzione dei tempi di servizio è esponenziale con valore medio pari a 1/µ secondi. Mentre il
numero massimo di clienti e il numero massimo di sorgenti attive è infinito.
I sistemi caratterizzati da un processo di arrivo e un processo delle partenze di tipo Poissoniano
sono i più semplici da studiare e, come vedremo successivamente, sono anche i più conservativi.
Essi infatti tendono a sovradimensionare il sistema, assicurando le performance richieste.
I sistemi M/M/N possono essere studiati e risolti con la teoria delle CATENE DI MARKOV.
Calcolata la probabilità pn che nel sistema vi siano n utenti (facilmente ricavabile in una catena di
Markov), si riesce a determinare il numero medio N di utenti nel sistema. Si ha infatti che:
∞
N = ∑ n ⋅ pn
Eq. 6.3-1
n=0
Sfruttando il teorema di Little è facile ricavare anche il tempo medio T trascorso da un utente nel
sistema:
T=
N
λ
Eq. 6.3-2
In modo analogo è possibile ricavare il numero medio NQ di utenti in coda ed il tempo medio W di
attesa in coda di un utente.
6.4 Processi di Poisson
Un processo di Poisson è un processo di enumerazione, caratterizzato da una distribuzione
esponenziale, le cui variabili sono indipendenti e identicamente distribuite (i.i.d.).
Passando ad una definizione più rigorosa, un processo stocastico {A(t) | t≥ 0} che assume valori
interi non negativi, si dice di Poisson con frequenza λ se:
1. A(t) è un processo di enumerazione che rappresenta il numero totale di arrivi dal tempo 0 al
tempo t. Cioè :
A(0)=0, e
per s<t, A(t)-A(s) rappresenta il numero di arrivi nell’intervallo [s,t].
2. Il numero degli arrivi che occorrono in intervalli di tempo disgiunti sono indipendenti.
3. Il numero degli arrivi in ciascun intervallo di lunghezza τ è distribuito secondo Poisson con
parametro λτ.
∀ t ,τ > 0 :
P{A(t + τ ) − A(t ) = n} = e
−λτ
(λτ ) n
n!
n = 0,1,2,...
Eq. 6.4-1
Quindi, nella distribuzione di Poisson, la probabilità che nell’intervallo [0,τ] vi siano n arrivi sarà
data dalla Eq. 6.4-1. Per semplicità indicheremo questa probabilità con il simbolo p(n), per cui:
e − λτ
p{n} = (λτ )
n!
n
n = 0,1,2,...
Eq. 6.4-2
Risulterà ovviamente che :
16
∞
∑ p ( n) = 1
n=0
Eq. 6.4-3
DIMOSTRAZIONE:
n
∞
 ∞ − λτ (λτ )

(
λτ )
− λτ
− λτ λτ
∑e

1
e
e
e
=
=
=
∑
 n=0

!
!
n
n
n =0


n
Si può anche dimostrare che
♦ il VALORE MEDIO è dato da:
∞
E ( n) = ∑ n ⋅ p ( n) = λ ⋅ τ
n =0
Eq. 6.4-4
dove la costante di proporzionalità
λ=
E (n)
τ
Eq. 6.4-5
rappresenta il rate medio degli arrivi di Poisson.
DIMOSTRAZIONE:
1
n
∞
∞
∞

λτ )n −
(
(λτ )n = e −λτ ⋅ λτ ⋅ e λτ = λτ 
− λτ (λτ )
− λτ
− λτ
 E (n ) = ∑ ne
λτ
λτ
=
e
=
e
⋅
⋅
∑
∑


n!
n!
n=0
n =1 (n − 1)!
n =0


♦ La VARIANZA è data da:
σ n2 ≡ E (n 2 ) − E 2 (n) = λ ⋅ τ
Eq. 6.4-6
cioè la varianza coincide con il valor medio.
DIMOSTRAZIONE:
∞


2
2
E
n
n 2 p (n ) = (λτ ) + λτ 
=

∑
n=0


( )
♦ la DEVIAZIONE STANDARD NORMALIZZATA è uguale a:
σn
1
=
E (n)
λ ⋅τ
Eq. 6.4-7
Essa tende a zero per λτ→∞, cioè per valori grandi di λτ (τ>>1/λ) la distribuzione è
concentrata attorno al valore medio; dunque se si misura il numero di arrivi n in un intervallo
grande (τ>>1/λ), segue con buona approssimazione che:
λ=
E ( n) n
≅
τ
τ
♦ La PROBABILITÀ CHE NON VI SIA NESSUN ARRIVO nell’intervallo [0,τ] è (dalla Eq. 6.4-2):
p(0) = e − λτ
Eq. 6.4-8
e tende a 0 al crescere di t.
17
6.4.1 Proprietà dei processi di Poisson
Analizziamo adesso delle interessanti proprietà dei processi di Poisson.
PROPRIETÀ 1
Se il processo degli arrivi è poissoniano, lo sarà anche il processo dei tempi di interarrivo
(tempi che intercorrono tra un arrivo e il successivo). Quindi anche i tempi di interarrivo sono
indipendenti ed esponenzialmente distribuiti con parametro λ: cioè detto t n l’istante di tempo
dell’n-esimo arrivo, gli intervalli τ n= t n+1 – t n, al variare di n, sono indipendenti con una
distribuzione di probabilità così fatta:
P{τ n ≤ s}= 1 − e − λ⋅s , s ≥ 0
Eq. 6.4-9
La corrispondente funzione densità di probabilità è (la derivata):
− λ ⋅τ n
n
p (τ ) = λ ⋅ e
Eq. 6.4-10
DIMOSTRAZIONE: La distribuzione di probabilità cumulativa dei tempi di interarrivo si ottiene
facilmente osservando la Fig. 6.4-1.
τ
Istante di arrivo
Istante di origine
arbitrario
Istante s
tempo
Fig. 6.4-1: asse temporale
Essa infatti equivale alla probabilità che il numero di arrivi nell’intervallo [0,s]
sia nullo, da cui:
P{τ n > s}=prob{ numero degli arrivi in [0,s]= 0} = ps (0) = e - λ s
Quindi:
P{τ n ≤ s} = 1 - e - λ s
Eq. 6.4-11
La funzione densità di probabilità (Fig. 6.4-2) si ottiene derivando l’equazione
6.4-11:
− λ ⋅τ n
Eq. 6.4-12
n
p(τ ) = λ ⋅ e
P(τ)
λ
λ e -1
0
τ
1/λ
Fig. 6.4-2: funzione densità di probabilità.
18
Dalla Fig. 6.4-2, per arrivi di Poisson, si deduce che la probabilità tra due
eventi successivi decresce esponenzialmente all’aumentare di τ.
Dimostriamo che il valore medio e la varianza di τ n valgono rispettivamente 1/λ
λ e 1/λ
λ 2.
+∞
[
− λs
]
− λs + ∞
0
[
{}
quindi
+∞
1
 1

E{τ n } = ∫ spτ n (s)ds = ∫ sλe ds = − se
+ ∫ e ds = − e − λs  =
0
0
0
λ
 λ
0
+∞
+∞
+∞
2 +∞
2
+∞
E τ n2 = ∫ s2 pτ n (s)ds = ∫ s2λe−λsds = − s2e−λs 0 + 2∫ se−λsds = ∫ sλe−λs ds = 2
0
0
0
λ 0
λ
+∞
σ n2 = E {τ n2 }− E{τ n } =
+∞
− λs
]
2 1
1
− 2 = 2
2
λ λ
λ
PROPRIETÀ 2
Per ogni t ≥ 0 e δ ≥ 0,
P (A(t + δ ) − A(t ) = 0 ) = 1 − λδ + ο (δ )
P (A(t + δ ) − A(t ) = 1) = λδ + ο (δ )
P (A(t + δ ) − A(t ) ≥ 2 ) = ο (δ )
con o(δ):
lim
δ →0
Eq. 6.4-13
Eq. 6.4-14
Eq. 6.4-15
0(δ )
= 0.
δ
PROPRIETÀ 3
Se gli arrivi in n intervalli disgiunti sono indipendenti e distribuiti secondo Poisson con
parametri λτ1, λτ2, ..., λτn , il numero degli arrivi nell’unione di tali intervalli è distribuito
secondo Poisson con parametro λ(τ1+τ2+...+τn).
PROPRIETÀ 4
Dati k processi di Poisson indipendenti A1,A2, ... , Ak, la loro unione è ancora processo di
Poisson con frequenza pari alla somma delle frequenze dei processi componenti:
λ = λ1 + λ2 + ...+ λk
Questa proprietà è molto utile nella pratica: infatti se in un dato nodo della rete arrivano più
flussi di pacchetti, provenienti da sorgenti indipendenti, che emettono dati secondo un processo
di Poisson, il flusso risultante sarà distribuito ancora secondo Poisson, con frequenza pari alla
somma delle frequenze delle sorgenti.
Bisogna comunque osservare che le ipotesi di emissione poissoniana ed indipendente (di
pacchetti) sono spesso grossolane e lontanissime dalla realtà; vedremo, infatti, come tale
indipendenza non è mai verificata.
PROPRIETÀ 5
Analogamente a quanto visto per il processo dei tempi di interarrivo, anche la distribuzione dei
tempi di servizio è esponenzialmente distribuita con parametro µ. Cioè, detto sn il tempo di
servizio dell’n-esimo utente, si ha che
P{s n ≤ s} = 1 − e − µ ⋅s
Eq. 6.4-16
Derivando si ottiene la funzione densità di probabilità
p( sn ) = µ ⋅ e − µ⋅s
Eq. 6.4-17
19
con media 1/µ e varianza 1/µ2.
Il parametro µ si dice frequenza di servizio ed è la frequenza (in clienti serviti per unità di
tempo) alla quale il servente lavora quando è occupato.
È possibile ripetere tutti i discorsi fino ad ora fatti per il processo delle partenze.
In un sistema M/M/N si assume che:
⇒ I TEMPI DI INTERARRIVO hanno distribuzione esponenziale, sono tra loro indipendenti ed
identicamente distribuiti.
⇒ I TEMPI DI SERVIZIO hanno distribuzione esponenziale, sono tra loro indipendenti ed
identicamente distribuiti.
⇒ I TEMPI DI SERVIZIO e DI INTERARRIVO sono fra loro indipendenti.
Una importante proprietà della distribuzione esponenziale è la MEMORYLESS. Applicando tale
proprietà al processo delle partenze e al processo degli arrivi si può affermare che:
•
Il tempo residuo necessario per completare un servizio in corso nel servente è indipendente da
quando il servizio è cominciato.
• Il tempo occorrente per il prossimo arrivo è indipendente da quando si è verificato l’ultimo
arrivo.
Queste due affermazioni si traducono in termini di probabilità:
P{sn > r + t sn > t }= P{sn > r} per r , t ≥ 0
P{τ n > r + t τ n > t}= P{τ n > r} per r , t ≥ 0
Quindi, gli istanti di tempo in cui i futuri clienti di un sistema arriveranno o completeranno il
servizio sono indipendenti dai tempi di arrivo degli N(t) clienti presenti nel sistema e da quanto
servizio hanno già ricevuto i clienti (correntemente) sotto servizio. Questo significa che il processo
{N(t) | t ≥ 0 } è una catena di Markov tempo continua.
6.5 Catene di Markov tempo discrete
Abbiamo preannunciato che il processo N(t) (utenti nel sistema all’istante t) può essere studiato
facendo uso delle catene di Markov tempo continue, dove la variabile t assume valori continui.
È sufficiente comunque per i nostri scopi usare la teoria (più semplice) delle catene di Markov
tempo discrete (in cui la variabile t è discreta), utilizzando questo semplice artificio: presa una
Catena di Markov tempo-continua, si campiona l’asse temporale passando da un dominio continuo
ad un dominio tempo. In pratica consideriamo gli istanti di tempo
0, δ, 2δ, … , kδ, …
dove δ è un numero positivo piccolo.
Indichiamo con
N k = numero di utenti nel sistema all’istante kδ =N(kδ)
Poiché N(t) è una catena di Markov tempo continua e N k = N(kδ), si vede che:
{ N k | k = 0, 1, 2, ....}
è una catena di Markov tempo discreta.
Detto questo, diamo una definizione più rigorosa alle catene di Markov tempo discrete.
20
DEFINIZIONE DI CATENA DI MARKOV TEMPO DISCRETA
Sia {X nn=0, 1, ...} un processo stocastico tempo discreto che assume valori interi non
negativi. Gli stati in cui il processo può trovarsi sono i = 0, 1,2,… . Xn è una catena di Markov
se esiste una probabilità fissa Pij, che il processo passi dallo stato i, in cui si trova, allo stato j,
indipendente dalla storia che ha precedentemente portato il processo nello stato i. Tale concetto
è riassunto nell’Eq. 6.5-1:
Pi j = P{X n +1 = j X n = i, X n −1 = i n −1 ,..., X 0 = i 0 }= P{X n +1 = j X n = i}
∀ n > 0, i n −1 ,..., i 0 , i, j
Eq. 6.5-1
In generale si dovrebbe scrivere Pij(n +1) , per indicare che le probabilità si riferiscono allo slot
(n+1)-esimo; escludendo questa notazione si sta tacitamente ammettendo che la catena di
Markov sia omogenea, cioè Pij(n +1) = Pij , ∀ n.
Le Pij, così definite, sono dette probabilità di transizione dallo i allo stato j (dove j può anche
essere lo stesso stato i). Ovviamente, essendo probabilità risulterà che:
Pij ≥ 0,
∞
∑P
ij
= 1, i = 0,1,...
j =0
Eq. 6.5-2
Si definisce matrice delle probabilità di transizione di stato la seguente matrice qui di seguito
descritta:
 P00 P01
P
 10 P11
P = ..... .....

 Pio Pi1
..... .....
P02 ...............
P12 ...............
..... ...............

Pi 2 ...............
..... ...............
Tale matrice ha una riga che sarà linearmente dipendente dalle altre; per cui non è una matrice
a rango massimo. Inoltre presenta un autovalore unitario e autovalori compresi nel cerchio di
raggio unitario, cioè:
λ1 = 1
λi < 1
con i = 2,3,…,N
Si definiscono pure le grandezze:
π i = lim P{s (n ) = i}
n→∞
che indicano qual’è la probabilità di trovarsi nello stato i-esimo quando si osserva il sistema.
Esse sono appartenenti a vettori riga, che si ricavano dal seguente sistema:
( P T − I )Π T = 0


πi =1
 ∑
i
21
Tipicamente le catene di Markov vengono rappresentate graficamente (Fig. 6.5-1) come un
insieme di stati (valori che il processo può assumere) uniti da archi che rappresentano le
probabilità di passaggio da uno stato all’altro.
P11
P00
1
P22
0
2
Pii
Pjj
i
j
Fig. 6.5-1: transizioni di stato in una Catena di Markov tempo-discreta.
Possono essere definite anche le probabilità di transizione ad n passi:
Pijn = P{X n + m = j X m = i}, n ≥ 0, i ≥ 0, j ≥ 0
n
e quindi, conseguentemente, la matrice P di transizione ad n passi.
Date le probabilità di transizione ad n passi vale l’equazione di Chapman-Kolmogorov:
n+m
ij
P
∞
= ∑ Pikn ⋅Pkjm , n, m ≥ 0, i, j ≥ 0
k =0
Eq. 6.5-3
dove Pijn sono gli elementi della matrice [P]n ottenuta dalla matrice [P] elevata alla n-esima
potenza. Dall’Eq. 6.5-3 si evince che la probabilità di transizione a più passi da i a j, si ottiene
come prodotto delle probabilità di transizione dallo stato i ad un qualunque stato intermedio k
e dallo stato k allo stato j. Quindi:
[P ( ) ] = [P ( ) ]⋅ [P ( ) ]
n+m
Conseguentemente si ha che
n
m
[P ( ) ] = [P ( ) ]⋅ [P] = [P ( ) ]⋅ [P]
n
n −1
n−2
2
= ... = [P ]
n
Introduciamo adesso alcune definizioni.
DEFINIZIONE: si dice che due stati i e j comunicano tra loro se esistono due indici n e n’ tali che:
Pijn > 0
Pjin ' > 0
DEFINIZIONE: se tutti gli stati comunicano fra loro, la catena di Markov si dice irriducibile (Fig.
6.5-1).
22
Catena di Markov irriducibile
Catena di Markov NON irriducibile
(a)
(b)
Fig. 6.5-1: (a) Catena di Markov irriducibile; (b) Catena di Markov NON irriducibile
DEFINIZIONE: una catena di Markov si dice aperiodica se per qualunque stato i, non esiste un
numero intero d ≥ 2 tale che Piin = 0 con n multiplo di d. Viceversa una catena di
Markov è detta periodica se esiste uno stato in cui è possibile ritornare solo in un
numero di passi multiplo di d.
DEFINIZIONE: una distribuzione di probabilità {pj | j ≥ 0} è una distribuzione stazionaria per la
catena di Markov se
∞
p j = ∑ pi ⋅ Pij ,
j≥0
i =0
Eq. 6.5-4
Per catene di Markov irriducibili e aperiodiche si ha che:
p j = lim Piin ,
n→∞
j≥0
Eq. 6.5-5
dove pj , detto tempo medio di permanenza, rappresenta la probabilità, a regime, che il sistema si
trovi in quello stato, cioè la porzione di tempo in cui il processo visita in media lo stato j.
Dunque 1/pj è il tempo medio di ricorrenza, ovvero il numero atteso di transizioni tra due
successive visite dello stato j (se pj=0, il tempo medio di ricorrenza è infinito).
Si può inoltre dimostrare che in una catena di Markov irriducibile e aperiodica possono verificarsi
due possibilità:
a) pj = 0 per tutti gli stati j ≥ 0.
In questo caso la catena di Markov non ha distribuzione stazionaria (è il caso di un sistema
M/M/1 in cui λ>µ).
b) pj > 0 per tutti gli stati j ≥ 0.
In questo caso la distribuzione di probabilità
∞
p j = ∑ pi ⋅ Pij ,
i =0
j≥0
è l’unica distribuzione stazionaria della catena.
La distribuzione stazionaria di una catena di Markov, se esiste, può essere calcolata attraverso le
equazioni di bilanciamento globale (Eq. 6.5-2); si ha infatti che:
∞
∑P
i =0
ji
=Pjj +
∞
∑
i =o, i ≠ j
Pji = 1 ⇒
∞
∑P
ji
= 1 − Pjj
i =o, i ≠ j
23
Moltiplicando ambo i membri per pj si ha:
∞
∑P
pj ⋅
= p j − p j ⋅ Pjj
ji
i =o , i ≠ j
Sfruttando l’Eq. 6.5-4 si ha che
pj ⋅
∞
∑
i =o , i ≠ j
∞
Pji = ∑ pi ⋅ Pij − p j ⋅ Pjj
⇒
pj ⋅
∞
∑
i =o , i ≠ j
i =o
∞
Pji = ∑ pi ⋅ Pij − ( pi ⋅ Pij ) i = j
i =o
da cui si ottiene
pj ⋅
∞
∑
Pji =
i =o , i ≠ j
∞
∑ p ⋅P
i
Eq. 6.5-6
ij
i =o , i ≠ j
La Eq. 6.5-6 indica che in condizioni di equilibrio, la probabilità di una transizione in partenza da j
eguaglia la probabilità di una transizione in arrivo a j. Questa è una proprietà generale di una
distribuzione stazionaria.
Generalizzando il discorso ad un insieme di stati S si ha:
∞
∞
∑ p ∑ P =∑ p ∑ P
j
j∈S
ji
i∉S
i
i∉S
ij
Eq. 6.5-7
j ∈S
La Eq. 6.5-7 indica che la probabilità che si abbia una transizione in partenza da S è pari alla
probabilità che si abbia una transizione verso S.
6.6 Processi di Nascita e Morte
I PROCESSI DI NASCITA E MORTE (birth-death) sono catene di Markov in cui due stati successivi
differiscono solo di una unità. Cioè questi processi sono caratterizzati dalla proprietà che se ci si
trova in uno stato, le uniche possibilità sono quelle o di rimanere nello stesso stato o di spostarsi in
uno stato che differisce di una unità da quello di partenza.
Tali processi sono ideali per caratterizzare l’evoluzione di una coda. In essa infatti gli utenti
arrivano uno alla volta e si accodano per ricevere il servizio.
Condizione necessaria e sufficiente affinché la catena sia irriducibile è che:
Pi , i+1 > 0 e Pi+1 , i > 0 per ogni i
0
1
2
n
n+1
Fig. 6.6-1: Processo di nascita e morte
Considerando l’insieme di stati S={0, 1, 2, ..., n}, le equazioni di bilanciamento parziali (Eq. 6.5-7)
danno:
Eq. 6.6-1
pn Pn , n+1 = pn+1 Pn+1 , n
n = 0, 1, .....
24
ovvero, la probabilità di una transizione dallo stato n allo stato n+1 è pari alla probabilità di una
transizione dallo stato n+1 allo stato n.
Generalizzando l’Eq. 6.6-1 si ottengono le equazioni di bilanciamento dettagliate:
p j ⋅ Pji = p i ⋅ Pij
i, j ≥ 0
Eq. 6.6-2
Queste equazioni permettono di calcolare facilmente la distribuzione stazionaria {pj | j ≥0 }.
Osserviamo che non sempre valgono le equazioni di bilanciamento dettagliate per una data catena
di Markov irriducibile e aperiodica. Un modo per verificare la loro validità è ipotizzare la validità e
tentare di risolvere il sistema che ne viene fuori per ottenere le probabilità pj con la condizione al
contorno che:
∑
p j =1
j
Esistono due possibilità:
a) L’assunzione non è vera, ed il sistema di equazioni è inconsistente.
b) Viceversa la distribuzione di probabilità {pj | j ≥0 }trovata è l’unica distribuzione
stazionaria del sistema (sicuramente essa soddisfa anche le equazioni di bilanciamento
globali).
Alcune catene di Markov (irriducibili e aperiodiche) hanno la proprietà che la loro distribuzione {pj
| j ≥0 }soddisfa un insieme di equazioni di bilanciamento parziali che rappresentano un
intermedio tra quelle di bilanciamento globale e quelle di bilanciamento dettagliate.
1
2
k
∀ stato j, si consideri una partizione Sj , Sj , …, Sj di stati complementari: allora le Eq. 6.6-3
pj ⋅
∑P
i∈S mj
ji
=
∑p
i
i∈S mj
⋅ Pji ,
m = 1,2,..., k
Eq. 6.6-3
vengono dette equazioni di bilanciamento parziali.
Si può dimostrare che se la {pj | j ≥0 }risolve un insieme di equazioni di bilanciamento parziali,
allora risolve anche le equazioni di bilanciamento globali, e quindi è l’unica distribuzione
stazionaria della catena di Markov irriducibile e aperiodica.
È importante individuare il giusto insieme di equazioni parziali soddisfatte dalla distribuzione
stazionaria per calcolare quest’ultima nel modo più semplice possibile.
6.7 Sistemi M/M/1
I sistemi M/M/1 sono, come preannunciato, i sistemi a coda più semplici da studiare.
Essi sono caratterizzati dal processo {N(t) | t ≥ 0} (numero di clienti nel sistema all’istante t) in cui i
tempi di interarrivo e di servizio sono distribuiti esponenzialmente.
Abbiamo visto, nel paragrafo precedente, come tale processo continuo può essere studiato tramite
una catena di Markov tempo discreta Nk = N(kδ). Quindi {Nk | k = 0,1,2,....} rappresenta una
catena di Markov tempo discreta in cui in ogni intervallo campionato si ha al più un evento, cioè
siamo di fronte a un processo di nascita e morte.
Dette Pij le probabilità di transizione (definite nelle Eq. 6.5-1), sfruttando le proprietà dei processi
di Poisson (Eq. 6.4-13, 6.4-14 e 6.4-151) si ha che:
P00 = 1 − λ ⋅ δ + ο (δ )
Eq. 6.7-1
25
Pii = 1 − λ ⋅ δ − µ ⋅ δ + ο (δ ) i ≥ 1
Eq. 6.7-2
Pi ,i +1 = λ ⋅ δ + ο (δ ) i ≥ 0
Eq. 6.7-3
Pi ,i −1 = µ ⋅ δ + ο (δ ) i ≥ 1
Eq. 6.7-4
Pij = ο (δ ) i, j ≠ i, i + 1, i − 1
Eq. 6.7-5
Per verificare queste equazioni, osserviamo che, la probabilità che vi siano 0 arrivi e 0 partenze da
uno stato i ≥ 0, in un intervallo Ik = [δ , (k+1)δ], è pari a (e-λδ)(e-µδ) in quanto i processi degli
arrivi e delle partenze sono indipendenti e Poissoniani.
Sviluppando questa probabilità in serie si ha appunto la Eq. 6.7-2. Analogamente, supponendo che
il sistema si trovi nello stato 0, la probabilità di restare nello stato 0 equivale a dire che
nell’intervallo δ vi siano 0 arrivi, per cui tale probabilità è data da (e-λδ) che sviluppata in serie da
proprio la Eq. 6.7-1. In maniera analoga si possono ricavare le altre equazioni.
Nella Fig. 6.7-1 è rappresentato in forma grafica il sistema M/M/1 con le relative probabilità di
transizione di stato , in cui gli archi rappresentano le transizioni da uno stato all’altro (in alcuni testi
gli archi sono etichettati con i rate medio (λ,µ), quindi le transizioni ricorsive non possono essere
etichettate con (1-λ-µ)).
1-λδ
0
1-λδ-µδ
λδ
µδ
1
1-λδ-µδ
1-λδ-µδ
2
n
λδ
µδ
1-λδ-µδ
λδ
µδ
n+1
λδ
µδ
Fig. 6.7-1: Grafo di un sistema M/M/1
6.7.1 Equazioni di bilanciamento per sistemi M/M/1
Consideriamo le probabilità stazionarie:
Pn = lim P{N k = n} = lim P{N (t ) = n}
k →∞
t →∞
Eq. 6.7-6
Dalla Eq. 6.6-1 (equazione di bilanciamento dettagliata) si ha che:
pn Pn,n+1 = pn+1 Pn+1,n
Facendo uso delle Eq. 6.7-1, Eq. 6.7-2, Eq. 6.7-3, Eq. 6.7-4 e Eq. 6.7-5 si ha che:
pn ⋅ λ ⋅ δ + ο (δ ) = p n+1 ⋅ µ ⋅ δ + ο (δ )
pn ⋅ λ ⋅ δ = pn +1 ⋅ µ ⋅ δ
Poiché pn non dipende da δ, dividendo ambo i membri della relazione precedente per δ ed
eseguendo il limite per δ→0 si ottiene che
p n +1 =
λ
pn = ρ ⋅ pn
µ
n = 0, 1, ...
Eq. 6.7-7
26
dove ρ=λ/µ è il FATTORE DI UTILIZZAZIONE. Applicando la Eq. 6.7-7 con n e n-1 piuttosto che con
n+1 e n si ha:
λ
pn−1 = ρ ⋅ pn−1
µ
pn =
n = 0,1, ...
Sostituendo tale risultato nella Eq. 6.7-7 si ha:
p n+1 = ρ 2 ⋅ pn−1
Iterando il ragionamento si ottiene che:
pn+1 = ρ n ⋅ po
n = 0,1 , ...
Eq. 6.7-8
Le probabilità pn sono ovviamente tutte positive e la loro somma (per n che va da 0 a infinito) deve
risultare pari a 1. Si ha dunque:
∞
∑p
n
=1
n =0
Sostituendo a pn il valore ottenuto nella Eq. 6.7-8, si ha:
∞
∞
∑ p =∑ρ
n
n
n =0
⋅ p0 =1
n =0
Se il fattore di utilizzazione ρ è minore di 1, cioè il rate di servizio è maggiore del rate di arrivo, la
serie precedente è una serie geometrica, la cui somma è 1/(1-ρ); quindi
∞
∞
∑ p = ∑ρ
n
n =0
n =0
n
⋅ p0 =
p0
=1 ⇒
1− ρ
p0 = 1 − ρ
Sostituendo tale risultato nella Eq. 6.7-8 otteniamo che:
pn = ρ n ⋅ (1 − ρ )
n = 0,1 , ...
Eq. 6.7-9
L’Eq. 6.7-9 rappresenta dunque la probabilità di avere n clienti nel sistema in funzione di ρ.
Per n=0 l’Eq. 6.7-9 diviene:
p0 = (1 − ρ )
da cui si vede come ρ rappresenta il complemento ad 1 della probabilità che nel sistema non ci sia
nessun cliente, ovvero la probabilità che il servente sia occupato. Questo è in accordo con il
significato fisico assegnato al parametro in esame. Una volta conosciute le pn è semplice calcolare il
numero medio di clienti nel sistema; infatti, dalla definizione si ha:
∞
∞
∞
n=0
n =0
n =0
∞
d
(ρ n ) =
n = 0 dρ
N = ∑ n ⋅ p n =∑ n ⋅ ρ n (1 − ρ ) = ρ ⋅ (1 − ρ )∑ n ⋅ ρ n −1 =ρ ⋅ (1 − ρ )∑

1
d  ∞
d  1 

 = ρ ⋅ (1 − ρ )
= ρ ⋅ (1 − ρ )
 ∑ ( ρ n )  = ρ ⋅ (1 − ρ )
dρ  n = 0
dρ  1 − ρ 
(1 − ρ )2

da cui segue che
27
λ
µ
ρ
λ
=
= / =
N=
λ µ −λ µ −λ
1− ρ
1−
µ
µ/
λ
µ
Eq. 6.7-10
L’Eq. 6.7-10 è graficata in Fig. 6.7-2. Si nota che all’aumentare del fattore di utilizzazione ρ, anche
il numero di clienti medio aumenta e per ρ→1, il numero di clienti tende a infinito.
Il diagramma è, infatti, valido solo per ρ <1; mentre per ρ≥1 il sistema diviene instabile.
Fig. 6.7-2: Fattore di Utilizzazione in funzione del Numero medio dei clienti nel sistema
Nel contesto di un sistema di trasmissione a commutazione di pacchetto, abbiamo visto che
1/µ=L/C, dove L è la lunghezza media dei pacchetti e C è la capacità trasmissiva del canale. Quindi
la condizione di instabilità si raggiunge quando
ρ=
λ
L
= λ ≥ 1 ⇒ λL ≥ C
µ
C
λ [pacch./Sec.] , L [bit/pacch.], C [bit/Sec.]
A questo punto possiamo calcolare il ritardo medio di un cliente nel sistema; applicando il
teorema di Little e utilizzando l’Eq. 6.7-10, si ha che:
ρ
ρ
N 1− ρ
T= =
=
λ
λ
λ (1 − ρ )
che scritta in funzione di µ diventa
λ
1
N µ −λ
Eq. 6.7-11
T= =
=
λ
λ
µ −λ
Il tempo medio di attesa in coda per un cliente è dato dal tempo medio di attesa nel sistema
meno il tempo medio di servizio, cioè:
W=
ρ
1
1 µ −µ +λ
− = / /
=
µ − λ µ µ ⋅ (µ − λ ) µ − λ
Eq. 6.7-12
Da quest’ultima Eq., utilizzando il teorema di Little, è possibile calcolare il numero medio di
clienti in coda per un sistema M/M/1:
28
Nq = λ ⋅W = λ
ρ
ρ
ρ
ρ
ρ2
=
=
=
=
1
1− ρ 1− ρ
µ−λ µ
−1
−1
ρ
λ
ρ
Eq. 6.7-13
6.7.2 Confronto fra Multiplexing Statistico e Deterministico
I sistemi M/M/1 possono modellare un multiplexer con buffer infinito e con tempi di servizio e di
arrivo esponenziali. Per questa ragione consideriamo M FLUSSI DI TRAFFICO poissoniani,
statisticamente identici e indipendenti con frequenza di interarrivo pari a λ/m pacchetti al secondo.
Le lunghezze dei pacchetti sono indipendenti ed esponenzialmente distribuite; il tempo medio di
trasmissione è 1/µ.
Nel caso di MULTIPLEXING STATISTICO, i flussi di traffico sono riuniti in un unico flusso
poissoniano con frequenza di interarrivo pari a λ (questo grazie all’indipendenza dei flussi di
ingresso), per cui il ritardo medio è dato dalla Eq. 6.7-11 ed è pari a:
T=
1
µ −λ
Nel caso di MULTIPLEXING DETERMINISTICO (FDM o TDM), il canale fisico è suddiviso in canali
logici, ognuno dei quali si comporta come un sistema M/M/1 con frequenza di interarrivo λ/m e
frequenza media di servizio pari a µ/m (la capacità trasmissiva del canale è ripartita equamente tra
gli m richiedenti). Il ritardo medio sperimentato dai pacchetti sarà dunque (dall’Eq. 6.7-11):
λ/m
µ/m−λ/m
1
N
m
=
=
=
T=
λ/m
λ/m
µ/m−λ/m µ −λ
Osserviamo dunque che nel caso di MULTIPLEXING DETERMINISTICO il tempo medio di attesa è m
volte maggiore di quello ottenuto con un MULTIPLEXING STATISTICO. Questi risultati valgono
solamente se il traffico di ingresso è di tipo poissoniano.
Nel caso in cui, il traffico di ingresso è regolare, nel senso che una sorgente non può produrre
ulteriori pacchetti finché il precedente non è stato inviato, con una tecnica di multiplexing di tipo
DETERMINISTICO (ogni sorgente ha un canale dedicato) il tempo medio di attesa in coda è nullo.
Se viene usata la tecnica di MULTIPLEXING STATISTICO, il ritardo medio per pacchetto diminuisce,
ma il tempo medio di attesa in coda diviene positivo.
6.8 Sistemi M/M/1/N
Questi sistemi sono un caso particolare del sistema M/M/1, e costituiscono il modello più idoneo a
rappresentare la realtà, supposta vera l’ipotesi di avere tempi di interarrivo e di servizio
esponenzialmente distribuiti e indipendenti fra loro. Chiaramente i sistemi M/M/1/N continuano ad
essere dei processi nascita e morte, in cui si passa da stato a stato attraverso delle transizioni che
non prevedono salti.
Essi sono composti da N+1 stati (dallo stato 0 allo stato N) e servono a modellare dei sistemi in cui
si ha un buffer finito nel quale memorizzare le richieste di servizio. Dato che si ha a disposizione un
servente, il numero massimo di utenti in coda sarà N-1 (a differenza del sistema M/M/1 in cui il
buffer aveva dimensione infinita).
L’EVOLUZIONE TEMPORALE di un sistema M/M/1/N è del tutto analoga a quella di un sistema
M/M/1, con l’eccezione che se un cliente arriva quando vi sono già N clienti nel sistema, viene
scartato perché il buffer è completamente pieno.
29
Le equazioni di bilanciamento (ovvero la probabilità di transizione dallo stato n allo stato n+1, è
uguale alla probabilità di transitare dallo stato n+1 allo stato n) portano ancora al risultato dell’Eq.
6.7-8, con la variazione del range di n, che in questo caso va da 0 a N.
pn+1 = ρ n ⋅ po
n = 0,1 , ..., N
La condizione di normalizzazione è:
N
∑p
n
=1
n =0
applicando l’equazione di bilanciamento si ha che (ρ≠1)
N
N
∑p =∑p
n
n=0
⇒
p0 =
⋅ ρ = p0 ∑ ρ n =1 ⇒
0
n=0
1
N
∑ρ
n =0
=
n
N
n
n =0
1
∞
∑ρ
n =0
n
−
∞
∑ρ
=
n
n = N +1
1
∞
1
− ∑ρn
1 − ρ n = N +1
Ponendo x=n-N-1(che equivale a n=x+N+1)
p0 =
1
∞
1
− ∑ ρ x + N +1
1 − ρ x=0
=
1
∞
1
− ρ N +1 ∑ ρ x
1− ρ
x =0
=
1
1
1
− ρ N +1
1− ρ
1− ρ
=
1− ρ
1 − ρ N +1
Sostituendo p0 nell’equazione di bilanciamento si ha che:
pn =
(1 − ρ ) ⋅ ρ n
1 − ρ N +1
Eq. 6.8-1
Calcolando l’Eq. 6.8-1 per n=N, si ottiene la probabilità di blocco (Fig. 6.8-1), ovvero la
probabilità di avere il buffer è pieno ed ogni pacchetto in entrata scartato. Questa equivale alla
probabilità che il sistema si trovi allo stato N.
(1 − ρ ) ⋅ ρ N
PB = p N =
1 − ρ N +1
Eq. 6.8-2
Invertendo tale relazione, sarebbe possibile determinare qual è l’N che consente di garantire una
probabilità di blocco da noi imposta; unico limite sta nel fatto che l’Eq. 6.8-2 non è facilmente
invertibile. Solo sotto opportune ipotesi (vedi più avanti) tale relazione si semplifica e quindi si può
facilmente invertire.
Esiste una sottile differenza tra la definizione di probabilità di blocco e di probabilità di perdita:
DEFINIZIONE: la probabilità di blocco è, come detto, la probabilità che il sistema abbia le risorse
completamente impegnate;
DEFINIZIONE: la probabilità di perdita è invece data dalla probabilità di blocco per la probabilità
che in questa condizioni arrivi un nuovo input (ipotizzando tale eventi indipendenti),
venendo dunque scaricato e quindi perso.
30
In un sistema M/M/1/N, la condizione ρ < 1 non è più necessaria per l’equilibrio.
Si può inoltre dimostrare che la Eq. 6.8-2 vale anche per ρ≥1.
PB
1
1/(N+1)
Region of congestion
0
ρ
1
Fig. 6.8-1: Probabilità di blocco
Dalla Fig. 6.8-1 si nota che quando il carico aumenta (λ aumenta e dunque ρ=λ/µ aumenta di
conseguenza), aumenta anche la probabilità che la coda si riempia completamente, e per ρ→∞, la
probabilità che nel sistema vi siano N clienti (probabilità di blocco) tende a 1, ovvero la coda tende
ad essere perennemente piena. Questo significa che, al contrario di un sistema M/M/1, il sistema
M/M/1/N non presenta, per sua natura, condizioni di instabilità: anzi la sua stabilità è tale da
bloccarsi nel momento in cui non è più in grado di gestire nuovi input a causa della saturazione
delle sue risorse.
La regione con ρ>1 è detta regione di congestione nella quale si ha maggiore probabilità che la
coda sia piena. Applicando il teorema di Hopital è facile ricavare che per ρ→1, la PB dell’Eq. 6.8-2
tende a 1/(N+1).
L’Eq. 6.8-2 può essere usata per progettare la dimensione della coda del multiplexer in base alla
probabilità di perdita voluta. Se ρ< 1 e N >> 1, l’Eq. 6.8-2 diventa:
(1 − ρ ) ⋅ ρ N
≅ (1 − ρ ) ⋅ ρ N ,
PB =
N +1
1− ρ
ρ N +1 << 1
Eq. 6.8-3
Questa significa che per PB basse, la probabilità che una coda finita sia nello stato n=N può essere
calcolata come la probabilità che una coda infinita sia nello stesso stato.
ESEMPIO dell’Eq. 6.8-3: consideriamo un concentratore su linea a 2400 bit/s che riceve traffico di
pacchetti con lunghezza media pari a L=1200 bit e intensità λ=1 pacch/sec. Il parametro µ è pari
all’inverso del tempo medio di trasmissione, che è Lλ/C=1200/2400=0.5 sec, per cui µ=2.
Il fattore di utilizzazione che si ottiene è pari a ρ=1/2=0.5.
La seguente tabella (Fig. 6.8-2) mostra (siamo nel caso ρ<1) la lunghezza del buffer per due valori
di probabilità di perdita:
Probabilità di perdita
10-3
N
9
10-9
19
Fig. 6.8-1: lunghezza del buffer per due valori di probabilità di perdita.
31
Dovendo simulare il comportamento di un multiplexer di una rete per trasmissioni dati, in cui le
probabilità di perdita e di blocco sono, rispettivamente, dell’ordine di 10-9 e di 10-12, è necessario
aspettare almeno 109 eventi per trovare, a livello statistico, un valore significativo di probabilità di
perdita o di blocco. Ma realizzare una simulazione di questo tipo comporta tempi lunghissimi, con
tutti gli inconvenienti associati. Per ovviare a questo problema, senza rinunciare allo strumento
simulativo, si simula il sistema per dati ragionevoli (10-4, 10-5) e se si trova che il modello analitico
definito continua a funzionare, si può estendere la validità anche per valori più stringenti (10-9).
Da un punto di vista analitico è comunque più facile pensare al multiplex con buffer infinito; ma
come si può valutare il processo di perdita se non si considera una simulazione in cui il buffer è
finito? La soluzione a tale problematica si risolve con la tecnica “Surviver function”, che consiste
nel confondere in sede simulativa il fenomeno della perdita con il fenomeno del superamento di una
certa soglia all’interno del buffer.
6.9 Relazione tra carico e throughput (in sistemi single server)
Per un sistema SINGLE-SERVER il THROUGHPUT γ, ovvero il volume di traffico nell’unità di tempo,
si può calcolare come traffico smaltito. Osserviamo che il throughput sarebbe uguale al rate medio
di servizio (µ) se la coda non fosse mai vuota, per cui si ha che:
γ = µ ⋅ (1 − p 0 )
Eq. 6.9-1
dove il termine (1-p0) rappresenta la probabilità che il servente sia occupato.
•
Nel caso ideale di sistema M/M/1, p0 = (1-ρ) e quindi, essendo il buffer infinito, tutto che arriva
in ingresso prima o poi verrà smaltito, cioè il throughput è pari al volume di traffico che viene
ad insistere sul buffer:
γ = µ ⋅ (1 − (1 − ρ )) = µ ⋅ ρ = µ/
λ
=λ
µ/
Infatti nei SISTEMI CON BUFFER INFINITO, tutti i clienti, che entrano nel sistema, prima o poi
verranno serviti, dunque il throughput è uguale alla frequenza degli arrivi. Come si vede dalla
precedente relazione, il throughput normalizzato γ/µ è il fattore di utilizzazione ρ (ρ<1).
•
Nel caso reale di SISTEMI CON BUFFER FINITO M/M/1/N, si trova che il throughput normalizzato
è pari a:
γ
1− ρ
1 − ρ N +1 − 1 + ρ ρ ⋅ (1 − ρ N )
= (1 − p0 ) = 1 −
=
=
µ
1 − ρ N +1
1 − ρ N +1
1 − ρ N +1
Notiamo che per ρ→1, γ/µ è uguale alla forma indeterminata 0/0; applicando l’Hopital si ha:
γ
ρ ⋅ (1 − ρ N )
(1 − ρ N ) + ρ ⋅ (− N ⋅ ρ N −1 )
1 − ρ N − ρ ⋅ N ⋅ ρ N −1
= lim
=
=
=
lim
lim
ρ →1 µ
ρ →1 1 − ρ N +1
ρ →1
ρ →1
− ( N + 1) ⋅ ρ N
− ( N + 1) ⋅ ρ N
lim
−N
1− ρ N − N ⋅ ρ N
N
=
=
N
ρ →1 − ( N + 1) ⋅ ρ
− ( N + 1) N + 1
= lim
32
Questo significa che su N+1 clienti solo N verranno serviti.
In Fig. 6.9-1 è rappresentato il throughput normalizzato per sistemi M/M/1/N.
Normalized
Throughput γ /µ
1
N/(N+1)
0
Normalized load, ρ
1
Fig. 6.9-1: Throughput normalizzato per sistemi M/M/1/N
Per i sistemi reali a coda finita, si può fare un altro ragionamento per calcolare il throughput γ:
visto che il buffer è finito, si deve necessariamente tenere conto del contributo di λ che verrà
realmente smaltito, più la parte di traffico perso. Quindi se consideriamo il carico netto in
arrivo
λ (1 − PB )
dove PB è la probabilità di blocco, per il principio di conservazione (tutto quello che entra nel
sistema a coda, prima o poi esce), si avrà che:
γ = λ (1 − PB )
Eq. 6.9-2
Quindi il THROUGHPUT può essere calcolato in due modi:
⇒ o in uscita dal sistema a coda
⇒ o in ingresso dal sistema stesso.
6.10 Sistemi State Dependent
In questo paragrafo vedremo di analizzare i sistemi a coda in cui il rate di arrivo e/o di servizio
dipendono dallo stato del sistema stesso: praticamente in tali sistemi i server sono più di uno.
Quindi il generico stato n sarà caratterizzato da una coppia λn , µn che rappresenta rispettivamente
il rate con cui arrivano i clienti ed il rate con cui vengono serviti quando il sistema si trova nello
stato n.
In generale un sistema di questo tipo può essere schematizzato come un processo di nascita e morte
(essendo i tempi di interarrivo e di servizio con distribuzione esponenziale) in cui ogni stato è
caratterizzato da un differente valore di λn o/e µn (Fig. 6.10-1).
1-λ0δ
0
1-λ1δ-µ1δ
λ 0δ
µ1δ
1
λ 1δ
1-λ2δ-µ2δ
1-λnδ-µnδ
2
n
µ2δ
1-λn+1δ-µn+1δ
λ nδ
µn+1δ
n+1
λn+1δ
µn+2δ
Fig. 6.10-1: Sistema a coda State Dependent
33
Analogamente per sistemi M/M/1, detta pn la probabilità di stato in regime stazionario, possiamo
scrivere la seguente equazione di bilanciamento:
p n λ n δ + ο (δ ) = p n +1 µ n +1δ + ο (δ )
Eq. 6.10-1
Da cui, dividendo ambo i membri per δ, e facendo tendere δ→0 si ha:
pn λnδ + ο (δ ) pn+1 µ n+1δ + ο (δ )
=
δ
δ
⇒ pn λn = pn+1 µ n+1
Eq. 6.10-2
Dall’Eq. 6.10-2, per n=0,1,… otteniamo che:
p0 λ0 = p1 µ1
⇒
p1λ1 = p 2 µ 2
⇒
λ0
p0
µ1
λλ
λ
p 2 = 1 p1 = 0 1 p0
µ2
µ1 µ 2
..........................
p1 =
n=0
per
per
n =1
Generalizzando le relazioni ora ottenute si ha che
n −1
pn =
∏λ
k =0
n
k
∏ µk
p0
Eq. 6.10-3
k =1
dove p0 è da determinarsi attraverso una opportuna condizione di normalizzazione.
A partire dalla relazione Eq. 6.10-3, si possono ricavare sia N che T.
6.10.1 Sistemi M/M/N
I SISTEMI M/M/N, similmente ai sistemi M/M/1, sono caratterizzati da un processo degli arrivi
poissoniano, una distribuzione dei tempi di servizio esponenziale ed indipendente dai tempi di
interarrivo e un buffer infinito. L’unica differenza risiede nel fatto che i sistemi M/M/N hanno N
serventi in grado di processare le richieste dei clienti, quindi siamo di fronte ad un tipico processo
state-dipendent.
Se supponiamo che gli N serventi siano identici (cioè ogni servente impiega lo stesso tempo a
servire ogni cliente), la catena di Markov che modella un sistema siffatto è un processo di nascita e
morte mostrato in Fig. 6.10-2.
1-λδ
0
1-λδ-µδ
λδ
µδ
1
1-λδ-2µδ
λδ
2µδ
1-λδ-(N-1)µδ
2
N-1
(N-1)µδ
1-λδ-Nµδ
λδ
N
Nµδ
1-λδ-Nµδ
λδ
N+1
Nµδ
Fig. 6.10-2: Modello Markoviano di un sistema M/M/N
Osserviamo che, in questo caso, ciò che dipende dallo stato è il rate con cui vengono serviti i clienti.
34
Cioè la coda è assolutamente indipendente dallo stato del sistema, quindi λ è lo stesso per ogni stato
(vedremo, invece, che esistono sistemi detti a “descoragement”in cui λ decresce al crescere di N),
mentre i pacchetti che arrivano non sanno qual’è la condizione del sistema (a meno che esista un
protocollo che invii messaggi di controllo per ridurre la bit-rate). Questo comporta che il rate di
servizio µ si incrementa ad ogni transizione di stato visto l’incremento della capacità di servizio.
Quando si arriva alla condizione di riempimento degli N serventi, il rate di servizio sarà sempre pari
a Nµ. In pratica, riferendoci alla Fig. 6.10-2, possiamo scrivere che:
λn = λ
∀n ∈ N
 nµ 0 ≤ n ≤ N
µn = 
 Nµ n > N
Eq. 6.10-4
Sostituendo le Eq. 6.10-4 nell’Eq. 6.10-3 si ottiene:
 λn
λk
p0 0 ≤ n ≤ N
∏

n
µ
!
n
pn = k+=∞0
p0 = 
n
λ

µk
p n>N
∏
 N ! N n− N µ n 0
k =1
+∞
λ
(visto che dobbiamo riferirci alle potenzialità massime del sistema (Nµ=
Nµ
massima capacità del servizio), in coerenza a quanto visto per i sistemi M/M/1) si ha:
Essendo ρ =
 λn ⋅ N n
ρn ⋅ Nn
p0 0 ≤ n ≤ N
 ! µ n n p0 =
n N
n!
pn = 
n
n
N
Eq. 6.10-5
λ
ρ
⋅
N

=
>
p
p
n
N
0
 N ! N n N − N µ n 0
N!
Per ricavare p0 imponiamo la condizione di normalizzazione:
+∞
+∞
 N Nn n
Nn n
NN n
NN n
ρ p0 + ∑
ρ p 0 = p 0 ∑
ρ + ∑
ρ 
1 = ∑ pn = ∑
n =0
n = 0 n!
n = N +1 N !
n = N +1 N !
 n=0 n!

+∞
N
in cui operando il cambiamento di variabile k=n-N-1 nella 2° sommatoria segue che
 N Nn n NN
ρ +
1 = p0 ∑
!
n
N!
=
0
n

+∞
∑ρ
k =0
k + N +1n

 N N n n N N N +1 +∞ k 
ρ +
ρ ∑ρ  =
 = p0 ∑
!
!
n
N
=
0
n
k =0



 N N n n N N N +1 1 
 N N n n ( Nρ ) N
ρ 
ρ +
ρ
ρ +
= p 0 ∑
=
⋅
p
0 ∑

.
ρ
ρ
−
−
!
!
1
!
!
1
n
N
n
N
 n=0

 n =0

da cui si ricava che:
p0 =
1
N
ρ
N n n ( Nρ ) N
ρ +
⋅
∑
N! 1 − ρ
n = 0 n!
Eq. 6.10-6
35
Vediamo ora di calcolare la probabilità che un cliente trovi tutti i serventi occupati, e venga
quindi costretto ad attendere in coda.
+∞
NN n
NN
ρ p0 =
p0 ∑ ρ n =
N!
n = N N!
n=N
+∞
+∞
P{Accodamento}= ∑ p n = ∑
n= N
=
+∞
+∞
( Nρ ) N p 0
NN
NN
p0 ρ N ∑ ρ k =
p0 ∑ ρ k + N =
N!
N!
N! 1 − ρ
k =0
k =0
La relazione:
( Nρ ) N p 0
PQ = P{Accodamento} =
N! 1 − ρ
Eq. 6.10-7
è nota in letteratura con il nome di Formula C di Erlang.
Considerando il momento in cui si comincia ad accodare (ovvero quando arrivano l’N+1-esimo
pacchetto, l’N+2-esimo pacchetto, etc.,), il numero medio di clienti in coda è pari a (utilizzando
l’Eq. 6.10-5):
+∞
N Q = ∑ n ⋅ pn+ N
n =0
+∞
+∞
( Nρ ) N
( Nρ ) N
N N ρ n+ N
= ∑n
p0 =
p 0 ∑ nρ n =
p 0 ρ ∑ nρ n −1 =
N!
N!
N!
n =0
n =0
n =0
+∞
+∞
( Nρ ) N
( Nρ ) N
d
d  + ∞ n  ( Nρ ) N
d  1 
n

 =
=
(ρ ) =
p0 ρ ∑
p0 ρ
p0 ρ
∑ ρ  =
−
ρ
ρ
ρ
ρ
!
!
1
N!
d
N
d
N
d
n=0
 n =0 


p 0 ( Nρ ) N
( Nρ ) N
ρ
ρ
=
=
p0
N!
(1 − ρ ) 2 N !(1 − ρ ) (1 − ρ )
e quindi in virtù della formula C di Erlang (Eq. 6.10-7) possiamo ancora scrivere:
N Q = PQ
1
(1 − ρ )
Eq. 6.10-8
Mediante il teorema di Little possiamo ora ricavare il tempo medio di attesa in coda:
W=
NQ
λ
=
PQ ⋅ ρ
λ ⋅ (1 − ρ )
Eq. 6.10-9
Una volta calcolato il tempo medio di attesa in coda, è immediato ricavare il tempo medio di
attesa nell’intero sistema. Infatti ricordando che il tempo medio di servizio è 1/µ si ha:
T=
ma essendo ρ =
PQ ⋅ ρ
1
1
+W = +
µ
µ λ ⋅ (1 − ρ )
Eq. 6.10-10
λ
, si ha in definitiva che
Nµ
36
λ
λ
PQ
PQ
1
1
1
Nµ
Nµ
= +
= +
T= +
µ λ ⋅ (1 − λ ) µ λ Nµ − λ µ Nµ − λ
Nµ
Nµ
PQ
Infine, usando nuovamente il teorema di Little, dall’Eq. 6.10-10 è immediato ricavare il numero
medio di clienti nel sistema:
N = λ ⋅T =
λPQ ρ
Pρ
Pρ
λ
λ
+
=N
+ Q
= Nρ + Q
µ λ (1 − ρ )
(1 − ρ )
Nµ (1 − ρ )
Eq. 6.10-11
6.10.2 Sistemi M/M/∞
Esasperiamo il concetto di sistemi a più serventi, considerando un NUMERO INFINITO DI SERVENTI.
Per cui, a differenza dei sistemi di tipo M/M/N, risulta:
λn = λ
µ n = nµ
∀n ∈ℵ
Eq. 6.10-12
∀n ∈ℵ
Sostituendo queste relazioni nella relazione Eq. 6.10-3, ricavata per un generico sistema state
dependent, si ottiene:
n
λ 1
p n = p 0  
 µ  n!
∀n ∈ℵ
Eq. 6.10-13
Imponendo la condizione di normalizzazione si ha:
+∞
λ
(λ / µ ) n
(λ / µ ) n
1 = ∑ p n =∑
= p 0 exp 
p0 = p0 ∑
n!
n!
n =0
n =0
n =0
µ
+∞
da cui:
+∞
 λ
p0 = exp − 
 µ
Eq. 6.10-14
Sostituendo la Eq. 6.10-14 nella Eq. 6.10-13 si ottiene:
n
λ 1
 λ
exp − 
p n =  
 µ  n!
 µ
∀n ∈ ℵ
Eq. 6.10-15
La relazione Eq. 6.10-15 ci dice che, in condizioni stazionarie, il numero di clienti nel sistema ha
una distribuizione di Poisson con parametro λ/µ, per cui il numero medio di clienti nel sistema è
N=
λ
µ
T=
1
µ
Mentre, come poteva essere intuito,
37
Infatti, poiché il numero di serventi è infinito (un infinito in atto non può essere pensato, sicché il
numero è infinito in potenza ma non in atto – Aristotele), ogni cliente attende nel sistema solo il
tempo necessario ad essere servito.
Può essere dimostrato che anche nel caso in cui i tempi di servizio non sono distribuititi
esponenzialmente, se il numero di serventi è infinito, allora, la distribuzione del numero di clienti
nel sistema è Poissoniana.
6.10.3 Sistemi M/M/N/N
I sistemi M/M/N/N vengono detti SISTEMI A PERDITA, in quanto la dimensione della coda di attesa
è N. Quindi tutti gli utenti che trovano il sistema occupato vengono persi. Questo modello è di
grande importanza nella telefonia. La catena di Markov che modella un sistema di questo tipo è
mostrata in Fig. 6.10-3.
1-λδ
0
1-λδ-µδ
λδ
µδ
1-λδ-2µδ
1-λδ-(N-1)µδ
2
N-1
λδ
1
2µδ
(N-1)µδ
λδ
1-Nµδ
N
Nµδ
Fig. 6.10-3: Modello Markoviano di un sistema M/M/N/N
Con riferimento alla Fig. 6.10-3 possiamo scrivere:
λn = λ
µ n = nµ
0 ≤ n ≤ N , n ∈ℵ
Eq. 6.10-16
0 ≤ n ≤ N , n ∈ℵ
In virtù delle Eq. 6.10-16 la relazione Eq. 6.10-3 diviene:
n
λ 1
p n = p0  
 µ  n!
0 ≤ n ≤ N , n ∈ℵ
Imponendo la condizione di normalizzazione, al fine di ricavare p0, si ha:
N
(λ / µ ) n
(λ / µ ) n
1 = ∑ p n =∑
p 0 = p0 ∑
n!
n!
n =0
n =0
n=0
N
N
da cui si ricava:
p0 =
1
N
(λ / µ ) n
∑
n!
n =0
Eq. 6.10-17
La probabilità che un cliente, arrivando, trovi tutti i server occupati, e quindi vada via, si ottiene per
n=N, cioè:
N
λ 1
 
N
µ
N!
λ 1
= N 
p N = P{Blocco} = p0  
(λ / µ ) n
 µ  N!
∑
n!
n =0
Eq. 6.10-18
Questa equazione è nota in letteratura con il nome di Formula B di Erlang.
38
6.10.4 Confronto tra Sistemi M/M/N e M/M/1
Lo scopo di questa sezione è quello di valutare le differenze, in termini quantitativi, tra un sistema
M/M/2 state-dipendent con N=2, caratterizzato dall’avere un tempo medio di servizio pari a 1/µ
relativo ad ogni servente, ed un sistema M/M/1 avente un tempo medio di servizio pari a 1/2µ, cioè
un rate di servizio doppio.
•
Per un SISTEMA M/M/2, in virtù della Eq. 6.10-5, possiamo scrivere:



pn = 



ρn ⋅Nn 
ρ n ⋅ 2n
=
p0 
p0 0 ≤ n ≤ 2

n!
 n!
 N =2
ρn ⋅N N 
ρ n ⋅ 22
=
p
p0 n > 2
0
 2!
2
!

 N =2
Sviluppando un paio di termini, otteniamo:
p1 = 2 p0 ρ
4
p0 ρ 2 = 2 p0 ρ 2
2
4
p3 = p0 ρ 3 = 2 p0 ρ 3
2
4
p4 = p0 ρ 4 = 2 p0 ρ 4
2
…
p2 =
pk = 2 p0 ρ k
…
Quindi per un sistema M/M/2 (cioè per N=2) si ha che
∀n ∈ ℵ − {0}
pn = 2 p0 ρ n
Imponendo la condizione di normalizzazione, si ha:
+∞
+∞
n =0
n =1
+∞
1 = ∑ p n = p 0 + ∑ 2 p 0 ρ = p0 + 2 p0 ∑ ρ
=
n
k +1
K =0
+∞
= p0 + 2 p0 ρ ∑ ρ k = p0 +
K =0
2 p0 ρ
=
1− ρ
p0 − p 0 ρ + 2 p0 ρ p0 + p 0 ρ
(1 + ρ )
=
= p0
1− ρ
1− ρ
(1 − ρ )
Da cui si deduce che
p0 =
1− ρ
1+ ρ
e quindi
pn = 2
1− ρ n
ρ
1+ ρ
∀ ∈ ℵ − {0}
Calcoliamo ora il numero medio di clienti nel sistema:
+∞
+∞
n=0
n =1
N = ∑ np n =∑ 2
=2
1− ρ
1 − ρ +∞
1 − ρ d  +∞ n 
ρ ∑ nρ n −1 =2
ρ
∑ ρ  =
nρ n =2
1+ ρ
1 + ρ n =1
1 + ρ dρ  n =1 
1− ρ d  1 
1− ρ
2ρ
1

 = 2
ρ
ρ
=
2
1 + ρ dρ  1 − ρ 
1 + ρ (1 − ρ )
1− ρ2
39
cioè
N=
2ρ
1− ρ2
Eq. 6.10-19
Essendo ρ=λ/2µ (in generale per sistemi M/M/N ρ=λ/Nµ), il tempo medio di attesa nel sistema
è dato da:
T =
2ρ 1
2λ
1
1/ µ
N
=
=
=
2
2
λ 1 − ρ λ 2 µ ⋅ (1 − ρ ) λ (1 − ρ 2 )
Eq. 6.10-20
I valori di N e T che si ottengono sono inferiori rispetto a quelli ricavati per il sistema M/M/1:
questo è un risultato prevedibile visto che avendo più serventi a disposizione, le prestazioni del
sistema M/M/2, in termini di N e T, sono nettamente migliori.
•
Se consideriamo invece un SISTEMA M/M/1, con rate di servizio 2µ (doppio), dall’Eq. 6.7-10
si ha che
ρ
1− ρ
ρ 1
λ
1 1 / 2µ
N
=
=
T= =
λ 1 − ρ λ 2 µ ⋅ (1 − ρ ) λ 1 − ρ
N=
Eq. 6.10-21
Osserviamo, dalle relazioni sopra riportate, che per ρ→0, il tempo medio che un cliente attende nel
sistema M/M/1, che stiamo considerando, è circa la metà di quello speso nel sistema M/M/2.
Mentre per ρ→1, i due sistemi hanno un comportamento analogo.
In Fig. 6.10-4 è rappresentato l’andamento di µT al variare di ρ=λ/2µ per i sistemi M/M/1,M/M/2 e
M/M/1 con tempo medio di servizio 1/2µ.
µT
5
M/M/1
4
3
M/M/2
2
M/M/1, 2µ
µ
1
0
0.2
0.4 0.5 0.6 0.8
1.0
ρ=λ/2µ
Fig. 6.10-4: andamento di µT al variare di ρ per i sistemi M/M/1, M/M2 e M/M/1
con tempo medio di servizio pari a 1/2µ.
COMMENTO AL GRAFICO DI FIG. 6.10-4
i. Per ρ=0 la curva relativa al sistema M/M/1 classico e M/M/2 (Fig. 6.10-4) partono dallo
stesso valore (visto che, in mancanza di carico, avere 1 servente o 2 serventi è indistinguibile),
seguendo un andamento asintotico che, rispettivamente, tende al valore 0.5 e 1. Questo
perché, ad alto carico, raddoppiano le prestazioni per il sistema M/M/2 a 2 serventi.
40
ii. Se mettiamo a confronto le curve di Fig. 6.10-4, relative al sistema M/M/2 e M/M/1 in cui
l’unico servente ha una rate di servizio doppia (pari a 2µ), notiamo che, entrambe, tendono
asintoticamente al valore 1, ma è l’M/M/1 ad avere una resa migliore.
Questo è dovuto al fatto che ciascun servente del sistema M/M/2 lavora con una rate di
servizio che è limitata a µ, mentre l’unico servente del sistema M/M/1 ha una capacità di
servizio doppia a vantaggio del tempo di trasmissione che risulterà estremamente ridotto.
Quindi è migliore la resa di un sistema avente una unica linea con rate di servizio Nµ,
piuttosto che un sistema M/M/N ad N linee aventi, ciascuna, rate di servizio pari a µ.
E’ comunque più complesso e costoso realizzare il sistema ad un servente con rate di servizio
Nµ; infatti, a secondo delle applicazioni, si preferisce utilizzare il sistema M/M/N.
6.10.5 Sistemi M/M/N/N - Modello di un Auto Commutatore a Perdita.
I sistemi M/M/N/N sono utili per modellare un AUTO COMMUTATORE A PERDITA (ovvero una
centrale telefonica), dove la parola “perdita” si riferisce a quei clienti che, trovando il sistema
occupato, vengono persi (nel modello in esame non capita mai che un cliente viene accodato).
Precisiamo che l’ultimo simbolo N rappresenta il numero massimo di clienti (sorgenti) del sistema,
non della coda: cioè il buffer ha ampiezza nulla.
In Fig. 6.10-5 è riportato la schema di principio di un auto commutatore.
Input Lines
1
2
•
•
•
M
Output Lines
λ
λ
λ
1
Auto
Commutatore
2
•
•
•
N
Fig. 6.10-5: Modello di un autocommutatore per una rete circuit switched
Osserviamo che sono presenti M linee di ingresso ed N di uscita. Tipicamente M > N, in modo tale
⇒ da condividere le risorse di comunicazione,
⇒ ridurre i costi,
⇒ pur mantenendo bassa la probabilità di blocco.
Essendo in un regime di commutazione di circuito, quando arriva una nuova richiesta di chiamata,
l’auto commutatore instaura una giunzione fisica tra la linea di ingresso e una di uscita, oppure
manda il tono di occupato, scartando automaticamente la richiesta, se le linee di uscita sono tutte
occupate. Vediamo ora di studiare le performance di un sistema siffatto, che è utilizzato nelle reti
telefoniche.
A tal fine SUPPONIAMO TRASCURABILI i tempi di processamento ed i tempi necessari a compiere le
commutazioni per connettere una linea di ingresso alla corretta linea d’uscita.
Detto ciò osserviamo che ognuna delle M input lines può essere o nello stato di idle, per un tempo
esponenzialmente distribuito, avente valore medio pari ad 1/λ, oppure potrebbe generare una
chiamata avente durata media pari a 1/µ.
Ad ogni chiamata (cliente) è assegnata una delle N linee d’uscita; nel caso in cui tutte le linee
d’uscita dovessero essere occupate, la chiamata viene bloccata.
41
L’autocommutatore di Fig. 6.10-5 si comporta come un processo di nascita e morte in cui l’arrival
rate ed il service rate sono:
λn = ( M − n ) λ
µ n = nµ
0≤n≤ N ≤M
Eq. 6.10-22
0≤n≤ N ≤M
Precisiamo che, in questo contesto, il tempo di servizio corrisponde al tempo medio della durata di
una conversazione (e non al tempo medio di trasmissione del pacchetto).
La catena di Markov associata al sistema in esame è dunque quella riportata in Fig. 6.10-6; notiamo
che a differenza del sistema M/M/N/N, studiato nella sezione precedente, qui il rate degli arrivi
dipende dallo stato del sistema, cioè siamo di fronte a un sistema state-dipendent, visto che
l’autocommutatore vede solamente le chiamate che può gestire e non quelle perse (da un punto di
vista dell’utente, invece, è importante la possibilità di poter inoltrare un maggior numero di richieste
telefoniche).
1-Mλδ
1-(M-1)λδ-µδ 1-(M-2)λδ-2µδ
Mλδ
0
1-(M-N+1)λδ-(N-1)µδ
(M-1)λδ
1
µδ
2µδ
1-Nµδ
(M-N+1)λδ
2
(N-1)µδ
N-1
Nµδ
N
Fig. 6.10-6: Catena di Marcov associata all’autocommutatore
Vediamo ora di ricavare la distribuzione delle probabilità di stato. Ricordiamo che, per un generico
sistema state dependent, risulta
n −1
pn =
∏λ
k
k =0
n
∏µ
p0
Eq. 6.10-23
k
k =1
Per cui sostituendo nell’Eq. 6.10-23 la 6.10-22 si ottiene:
n −1
n −1
pn =
∏λ
k =0
n
k
∏ µk
p0 =
k =1
∏ ( M − k )λ
k =0
n
∏ kµ
p0 =
Mλ ⋅ ( M − 1)λ ⋅ ( M − 2)λ ⋅ ... ⋅ ( M − n + 1)λ
p0 =
µ ⋅ 2µ ⋅ ... ⋅ nµ
k =1
M ( M − 1)( M − 2) ⋅ ... ⋅ ( M − n + 1) ⋅ λn
=
p0 =
1 ⋅ 2 ⋅ ... ⋅ n ⋅ µ n
=
( M − n) ⋅ ... ⋅ 2 ⋅ 1
M ( M − 1)( M − 2) ⋅ ... ⋅ ( M − n + 1) ⋅ λn
=
p
0
( M − n) ⋅ ... ⋅ 2 ⋅ 1
n! ⋅ µ n
M ( M − 1)( M − 2) ⋅ ... ⋅ ( M − n + 1)( M − n) ⋅ ... ⋅ 2 ⋅ 1λn
=
p0 =
n!( M − n) ⋅ ... ⋅ 2 ⋅ 1 ⋅ µ n
n
n
 M  λ 
λ
M!
  p0 =    p0
=
( M − n)!n!  µ 
 n  µ 
cioè in definitiva
42
n
 M  λ 
p n =    p0
 n  µ 
0≤n≤ N
Eq. 6.10-24
Vediamo ora di ricavare un’espressione per p0 , imponendo la condizione di normalizzazione; si ha:
n
 M  λ 
1 = ∑ p n = ∑    p0
n =0
n = 0  n  µ 
N
N
⇒
 N  M  λ  n 
p0 = ∑    
 n =0  n  µ  
−1
In definitiva la distribuzione di probabilità del processo delle chiamate, risulta pari a:
n
 M  λ 
  
 n  µ 
pn =
n
N
 M  λ 
  
∑
n = 0  n  µ 
0≤n≤ N
Eq. 6.10-25
Tale distribuzione di probabilità è detta “Distribuzione di Engset”.
Ricavata la distribuzione delle probabilità di stato, andiamo a determinare due parametri
estremamente importanti:
•
PROBABILITÀ DI BLOCCO
•
PROBABILITÀ DI PERDITA.
Tali probabilità sono così definite:
DEFINIZIONE 1: Si definisce probabilità di blocco PB la probabilità che tutte le N output
lines siano occupate. Ossia:
PB = Prob{N Output Lines Occupate}
DEFINIZIONE 2: Si definisce probabilità di perdita (Loss Probability) PL la probabilità che
una chiamata sia persa (la perdita è chiaramente da attribuire alla
indisponibilità di risorse):
PL = Prob{Venga persa una chiamata}
Nei sistemi in cui l’arrival rate è state dependent, questi due parametri sono tipicamente diversi
(anche se la loro differenza è sostanzialmente piccola), mentre risultano identici quando l’arrival
rate del sistema non dipende dallo stato.
LA PROBABILITÀ DI BLOCCO PB viene spesso chiamata (nelle reti telefoniche) Time Congestion,
visto che può essere calcolata rapportando il tempo in cui il sistema è del tutto occupato al tempo di
osservazione. Dalla DEFINIZIONE 1 segue che la probabilità di blocco PB coincide con la probabilità
che il sistema si trovi nello stato N, cioè PB si ottiene dall’Eq. 6.10-25 per n=N:
N
PB = [ pn ]n = N
 M  λ 
  
N µ
=    n
N
 M  λ 
  
∑
n = 0  n  µ 
Eq. 6.10-26
LA PROBABILITÀ DI PERDITA PL è spesso detta Call Congestion (nelle reti telefoniche), in quanto
può essere calcolata considerando il rapporto tra il numero di chiamate perse ed il numero di
43
chiamate osservate. Il calcolo della probabilità di perdita non è così immediato come quello della
probabilità di blocco. E’ conveniente, quindi, esprimere PL in funzione di PB. A tal fine
consideriamo le seguenti grandezze:
PN (a) = Prob{arrivo di una chiamata | il sistema è bloccato}
p(a) = Prob{arrivo di una chiamata}
Osserviamo che la probabilità dell’arrivo di una chiamata (p(a)) per la probabilità di perdita (PL)
deve uguagliare il prodotto tra la probabilità dell’arrivo di una chiamata, condizionata dal fatto che
il sistema sia bloccato (PN(a)), per la probabilità che il sistema si effettivamente bloccato PB, cioè:
p (a ) ⋅ PL = PN (a ) ⋅ PB
Eq. 6.10-27
Se consideriamo il processo di nascita e morte di Fig. 6.10-6, si nota che la probabilità PN(a) è
proporzionale a λNδ, dove λN è dato dall’Eq. 6.10-22 per n=N, mentre p(a) è proporzionale a λTδ,
dove λT è il rate di interarrivo medio pari a
N
λT = ∑ λ n p n
Eq. 6.10-28
λ δ
λ
PN ( a )
PB = N PB = N PB
λT δ
λT
p(a)
Eq. 6.10-29
n=0
Dall’Eq. 6.10-27, si ottiene:
PL =
Osserviamo che in virtù dell’Eq. 6.10-28
PL ≤ PB
Sostituendo nella 6.10-29 l’espressione di λN (Eq. 6.10-22 per n=N), di λT (Eq. 6.10-28), di pn (Eq.
6.10-25) e di PB (Eq. 6.10-26), otteniamo che:
44
cioè in definitiva:
N
 λ   M − 1
  

µ  N 
PL =
n
N 
 λ   M − 1

  
∑
µ
n
n = 0 

  
Eq. 6.10-30
Confrontando l’Eq. 6.10-26 della PB con la relazione appena ottenuta si deduce che:
PL ( M ) = PB ( M − 1)
PL → PB
e
per M → +∞
Se calcoliamo il limite per M→+∞ di PB si ha che
N
N
 λ  M 
λ
M!
   
 
N
µ
µ ( M − N )! N!
lim PB = lim   n  = lim   n
=
M → +∞ N 
M → +∞
M → +∞ N 


M
λ  
λ
M!

   
 
∑
∑
n = 0  µ  ( M − n)!n!
n = 0  µ   n  




N
= lim
λ 1
 
 µ  N!
 λ  n ( M − N )! 

 
∑
n = 0  µ  ( M − n)!n!


M → +∞ N
N
=
λ 1
 
 µ  N!
 λ  n 1
( M − N )!


lim


∑
 
M →∞ ( M − n)!
n = 0  µ  n!


N
⇒
N
λ 1
 
µ
N!
⇒ lim PB =   n
M → +∞
N
λ 1
 
∑
n = 0  µ  n!
Mediante questi semplici passaggi abbiamo quindi trovato che per M→∞ la probabilità di blocco
PB tende alla formula B di Erlang,, cioè per M→∞ la distribuzione di probabilità di Engset tende
alla distribuzione di Erlang.
Vediamo ora di studiare il CASO PARTICOLARE IN CUI RISULTA M=N.
In tal caso non si ha blocco, in quanto le input lines sono tanto quanto le output lines.
Dall’Eq. 6.10.25, per M=N, si determina facilmente la distribuzione delle probabilità di stato:
n
n
n
  M  λ  n 
 N  λ 
 N  λ 
 N  λ 
  
  
  
    
n
n
n
n µ
µ
µ
µ


=    n =   N =   N
pn =     n 
N
N
 N  λ 
 λ
λ+µ
 ∑  M  λ  








+
1
∑
 n  µ 
 µ
 n=0  n  µ  
µ
n =0 
 




M =N
45
Indicando
a=
λ
λ
µ
⇒ (1 − a ) = 1 −
=
λ+µ
λ+µ λ+µ
possiamo scrivere che:
n
 N  λ 
  
n
n
n
n  µ 
 N  λ 
N  λ λ +µ 
N

 (1 − a )N =
=    (1 − a ) =    ⋅
pn =
N
 n  µ 
n µ λ+µ
λ+µ 


 µ 
N
=  
n
n
n
n
n
 λ λ+µ
N
N
−n
N
N
N −n

 (1 − a ) =   a n (1 − a ) (1 − a ) =   a n (1 − a )
λ+µ µ 
n
n
n
N
N −n
pn =   a n (1 − a )
n
Eq. 6.10-31
Quindi, per M=N, la probabilità di stato ha una distribuzione binomiale. Ciò segue dal fatto che,
essendo M=N, ogni sorgente ha la sensazione di avere un canale dedicato.
Un canale può quindi essere modellato come un processo di nascita e morte a due stati (Fig. 6.107), in cui il rate con cui il canale diviene busy è λ, mentre il rate con cui il canale diviene idle è µ.
λ
Idle
Busy
µ
Fig. 6.10-7: processo di nascita e morte a due stati
In questo sistema le probabilità di stato si ottengono banalmente dalle seguenti relazioni:
 λp idle = µp busy

 p idle + p busy = 1
Risolvendo questo banale sistema otteniamo che:
µ

 pidle = λ pbusy
µ
 pbusy + pbusy = 1
λ
cioè
µ
µ λ

 pidle = λ pbusy = λ λ + µ = (1 − a )

λ
1

=
=a
pbusy =

µ λ+µ
1+

λ

µ

=
= (1 − a)
p
idle

λ+µ

λ
 pbusy =
=a

λ+µ
Eq. 6.10-32
46
Le Eq. 6.10-32 valgono per un generico canale ed indicano le probabilità che esso sia libero
oppure occupato. Quindi la probabilità di avere n canali occupati è data dalla distribuzione
binomiale:
n
N
N −n
pn =   a n (1 − a )
n
la quale è proprio quanto trovato precedentemente come distribuzione della probabilità di stato.
6.11 Sistemi M/G/1
I sistemi M/G/1 sono sistemi
⇒ a singolo servente
⇒ in cui i clienti arrivano secondo un processo di Poisson con frequenza λ (cioè i tempi di
interarrivo sono esponenzialmente distribuiti) e
⇒ in cui i tempi di servizio seguono una distribuzione generica (non necessariamente esponenziale
come accadeva nei sistemi M/M/1), di cui conosciamo solamente il valor medio e la varianza
(cioè il momento del primo e secondo ordine).
IPOTESI. Supponiamo che
I CLIENTI siano serviti secondo una tecnica di scheduling FIFO e che
¾
LE VARIABILI CASUALI (X1 , X2 , .... ) siano identicamente distribuite e indipendenti dai
¾
tempi di interarrivo,
dove Xi rappresenta il tempo di servizio dell’i-esimo cliente.
Indichiamo con
X = E{X }=
1
µ
il tempo di servizio medio (momento del primo ordine) e con
{ }
X2 =E X2
il momento del secondo ordine del tempo di servizio.
Si può dimostrare che, per i sistemi M/G/1 vale la formula di Pollaczek-Khinchin (P-K):
W=
λ⋅X2
2(1 − ρ )
Eq. 6.11-1
dove W è il tempo medio di attesa in coda sperimentato da ciascun utente e dove
ρ=
λ
=λ⋅X
µ
è il fattore di utilizzazione .
Il tempo medio T di attesa nel sistema sarà pari alla somma del tempo medio X speso nel servente
più il tempo medio W di attesa in coda (Eq. 6.11-1), cioè
λ⋅X2
1 λ⋅X2
= +
T = X +W = X +
2(1 − ρ ) µ 2(1 − ρ )
Eq. 6.11-2
47
Applicando il teorema di Little e utilizzando le Eq. 6.11-1 e 6.11-2, è immediato calcolare,
rispettivamente, il numero medio di clienti in attesa in coda e nel sistema:
λ2 ⋅ X 2
N Q = λ ⋅W =
2(1 − ρ )
λ λ2 ⋅ X 2
λ2 ⋅ X 2
=ρ+
N = λ ⋅T = +
µ 2(1 − ρ )
2(1 − ρ )
• Adesso proviamo a calcolare il tempo medio di attesa in coda per sistemi M/M/1 come caso
particolare della formula P-K (Eq. 6.11-1).
Ricordiamo che il momento del secondo ordine (o valore quadratico medio) è dato dalla somma
della varianza più il valore medio al quadrato, cioè
X 2 =σ 2 + X
2
(dimostrazione: indicando con η la media si ha che
2
σ 2 = E (x − η ) = E x 2 − 2 xη + η 2 = E x 2 − 2ηE{x}+ η 2 = E x 2 − 2ηη + η 2 = E x 2 − η 2 ).
In una distribuzione esponenziale σ2=1/µ2, dove µ è il valore medio; quindi:
{
} {
} { }
X2 =
{ }
{ }
1
1
2
+ 2 = 2
2
µ
µ
µ
Sostituendo tale valore nella Eq. 6.11-1 si ha:
2
λ⋅X2
µ2
2ρ
=
=
=
W=
2(1 − ρ ) 2(1 − ρ ) 2 µ (1 − ρ )
λ⋅
ρ
λ
µ (1 − )
µ
=
ρ
(µ − λ )
Eq. 6.11-3
Questo risultato dimostra che la formula P-K per i sistemi M/G/1 vale anche per i sistemi
M/M/1, i quali rappresentano un caso particolare dei sistemi M/G/1.
• Analizziamo adesso i sistemi M/D/1, che costituiscono un altro sotto caso dei sistemi M/G/1.
In tali sistemi il tempo di servizio è deterministico, ovvero la distribuzione dei tempi di servizio è
uniforme. Con un sistema M/D/1 si possono modellare i sistemi TDM-SLOTATI, in cui le unità
informative vengono tutte trasmesse in slot di lunghezza fissa (come nei sistemi sincroni PCM o
asincroni ATM (in cui le unità informative sono strutturate in celle di lunghezza fissa, paria a 53
ottetti).
Un esempio reale di tali sistemi, sono le reti in cui la lunghezza dei pacchetti è costante, quindi il
tempo di servizio è costante per tutti i pacchetti. Dunque la varianza del tempo di servizio è nulla
(σ2=0) e
X 2 = 0+
1
1
= 2
2
µ
µ
Dalla formula P-K (Eq. 6.11-1) si ottiene:
1
λ⋅X
ρ
µ2
=
=
W=
2(1 − ρ ) 2(1 − ρ ) 2 µ (1 − ρ )
2
λ⋅
Eq. 6.11-4
48
Nel caso M/D/1, il momento del secondo ordine assume il valore minimo, e quindi anche W, T, NQ
e N assumono il valore minimo. In particolare,
⇒ W e NQ sono la metà dei corrispondenti valori per sistemi M/M/1, con uguale rate di servizio e
di arrivo, mentre
⇒ T e N sono la metà dei corrispondenti valori per i M/M/1 se ρ≅1 (saturazione) e sono uguali ai
corrispondenti valori per i M/M/1 per ρ piccolo.
Ciò accade perché, per ρ piccolo, il tempo di servizio, che è circa lo stesso nei due casi, è
quello che incide di più, mentre, per ρ grande, il termine più pesante è il tempo di attesa.
In pratica i sistemi M/D/1 e M/M/1 si differenziano notevolmente quando il tempo di attesa diventa
significativo rispetto al tempo di trasmissione, mentre risultano pressoché uguali se il tempo di
attesa è più significativo di quello di trasmissione.
In genere, i valori di T e N per sistemi M/G/1 sono intermedi tra quelli per l’M/D/1 (che
corrispondono al caso migliore) e quelli per l’M/M/1 (che corrispondono al caso peggiore).
Come conseguenza di quanto ricavato, osserviamo che usare il multiplexing statistico e quindi un
modello M/D/1, suddividendo l’asse temporale in slot (in cui la durata dello slot coincide con il
tempo di trasmissione di un pacchetto), implica il minimo tempo medio di attesa dei pacchetti in
coda (visto che nell’M/D/1 σ2=0), in cui è però necessario introdurre l’overhead e operare la
sincronizzazione la dove è necessario.
Inoltre, bisogna evidenziare anche che, se per un dato sistema non è possibile conoscere il momento
del primo e del secondo ordine del tempo di servizio, è giustificato l’utilizzo di un sistema M/M/1
(caso peggiore) come modello analitico del sistema in esame, in quanto esso porta eventualmente al
sovra-dimensionamento del sistema. Quindi, se i parametri prestazionali che si ottengono con un
modello M/M/1 sono accettabili, allora, nella realtà, avremo senz’altro prestazioni migliori.
DIMOSTRIAMO ADESSO LA FORMULA DI P-K. Tale dimostrazione farà riferimento alla definizione del
tempo residuo di servizio.
DEFINIZIONE: si definisce tempo residuo di servizio, relativamente all’i-esimo cliente, il tempo
necessario affinché l’utente sotto servizio, all’arrivo del cliente i-esimo, esaurisca
il servizio stesso.
Siano:
Wi: Tempo di attesa in coda dell’i-esimo cliente.
Ri: Tempo di servizio residuo visto dall’i-esimo cliente: cioè, se nel servente è presente il
cliente j-esimo, quando il cliente i arriva, con Ri indichiamo il tempo necessario affinché
il cliente j completi il servizio. Se non vi sono clienti nel sistema (cioè il sistema è vuoto),
quando i arriva, Ri sarà zero.
Xi: Tempo di servizio dell’i-esimo cliente.
Ni: Numero di clienti presenti nella coda di attesa all’arrivo dell’i-esimo cliente.
Considerando un buffer infinito con un servente che opera con tecnica FIFO, si ha che il tempo di
attesa in coda per l’i-esimo cliente è pari al tempo di servizio residuo (del cliente già nel sevente
quando i arriva) più la somma dei tempi di servizio degli Ni utenti in coda, prima dell’arrivo di i:
Wi = Ri +
…
i i-1
i −1
∑X
j
j =i − N i
i-Ni
Ni
49
Essendo le variabili Ni, Xi-1, .... , Xi-Ni indipendenti, si ha che:
 i−1

E{Wi } = E{Ri }+ E  ∑ E{X j N i } = E{Ri }+ E{N i E{X }} = E{Ri }+ X ⋅ E{N i }
 j =i − N i

Facendo il limite per i che tende a infinito si ha:
W = R+
1
NQ
µ
Eq. 6.11-5
dove R è il tempo residuo medio, definito come:
R = lim E{Ri }
i →∞
Dalla formula di Little, NQ = λ W, e quindi l’Eq. 6.11-5 diventa:
W = R+
1
1
NQ = R + λ ⋅ W
µ
µ
⇒ W ⋅ (1 − ρ ) = R
cioè
W=
R
(1 − ρ )
Eq. 6.11-6
Ma come si vede dall’Eq. 6.11-6, per ottenere il tempo medio di attesa in coda, occorre determinare
il tempo residuo medio R.
Calcoliamo R graficamente:
Tempo di servizio residuo
r(τ)
tutti i triangoli sono
isosceli e rettangoli
x1
0
x1
x2
xM(t) t
τ
Fig. 6.11-1: tempo residuo di servizio in funzione di τ
Osserviamo che quando inizia un nuovo servizio, di durata X , r(τ) parte dal valore X e decresce
linearmente fino a raggiungere il valore 0 dopo X unità di tempo, quindi la funzione r(t) “tempo di
servizio residuo istantaneo” avrà l’andamento a dente di sega.
Consideriamo un istante t in cui r(t)=0. Si ha che:
t
1
1 M (t ) 1 2
⋅ r (τ )dτ = ⋅ ∑ X i
t ∫0
t i =1 2
dove M(t) è il numero di servizi completati in [0,t], e Xi è il tempo di servizio dell’i-esimo cliente.
Moltiplicando e dividendo il secondo membro per M(t) si ha:
M (t )
t
∑X
2
i
1
1 M (t ) i =1
⋅ ∫ r (τ )dτ = ⋅
⋅
2 t
t 0
M (t )
50
Effettuando il limite per t tendente ad infinito (supponendo che tale limite esista), si ha:
M (t )
∑X
t
2
i
1
1
M (t )
lim ⋅ ∫ r (τ )dτ = ⋅ lim
⋅ lim i =1
t →∞ t
t →∞
t → ∞ M (t )
2
t
0
I limiti al secondo membro sono rispettivamente il rate medio di servizio dei clienti (che equivale al
rate medio di arrivo, visto che, per t→∞, il numero degli utenti che sono serviti è pari al numero
degli utenti che sono arrivati; quindi la media temporale della frequenza di servizio è uguale a
quella della frequenza di arrivo), e il momento del secondo ordine del tempo di servizio.
Il primo membro rappresenta, invece, il tempo di servizio residuo medio. In definitiva si ha quindi:
R=
1
⋅λ ⋅ X 2
2
e quindi dall’Eq. 6.11-6 segue che
W=
λ⋅X2
R
=
(1 − ρ ) 2(1 − ρ )
c.v.d.
Si noti che un sistema M/G/1, con ρ < 1, può presentare tempi di attesa infiniti se il momento del
secondo ordine tende ad infinito. Quello che succede in questo caso è che una piccola quantità di
utenti hanno un tempo di servizio molto lungo. Durante questo ampio intervallo di tempo, un
numero molto elevato di clienti arriva nel sistema, i quali vengono accodati e sperimentano,
dunque, un lungo ritardo.
6.11.1 Sistemi a coda con priorità
Consideriamo un sistema M/G/1 in cui i clienti sono divisi in CLASSI DI PRIORITÀ DECRESCENTE.
Questa classe di sistemi è utilizzata nella realtà per garantire una qualità di servizio in termini di
priorità agli utenti che la richiedono (ovviamente pagando un plus).
Un sistema con priorità si può modellare con un multiplexer in cui i vari flussi, a differente priorità,
in ingresso, accedono virtualmente in più code che vengono servite attraverso un algoritmo di
scheduling a priorità decrescente.
Supponiamo inoltre che le priorità vengano gestite senza preemption, ovvero senza interruzione:
ogni cliente, sotto servizio, completa il proprio esercizio, senza interruzione, anche se arriva un
cliente a più alta priorità. Esistono sistemi che utilizzano una politica di gestione della priorità con
interruzione: realizzare una tecnica di scheduling di questo tipo è estremamente difficile, ecco
perché si preferisce la filosofia dell’assenza di interruzione.
Quando un server diventa disponibile, il primo cliente a più alta priorità, in attesa nella coda, viene
servito. Indichiamo con:
⇒ λk
il rate di arrivo degli utenti di classe k;
⇒ X k = 1 / µ k il momento del primo ordine del tempo di servizio relativo alla classe k;
⇒ X k2
il momento del secondo ordine del tempo di servizio relativo alla classe k.
Calcoleremo adesso il TEMPO MEDIO DI ATTESA IN CODA PER LE VARIE CLASSI DI PRIORITÀ.
Indichiamo con:
⇒ N Q(k )
il numero medio di utenti nella coda di priorità k;
⇒ Wk
il tempo medio di attesa nella coda con priorità k;
51
⇒ ρ k = λ k / µ k l’utilizzazione del sistema per la priorità k.
⇒ R
il tempo residuo di servizio medio. Tale parametro non dipende da k perché
stiamo supponendo che non ci sia preemption.
Dall’Eq. 6.11-5, per la classe di priorità più alta valgono le stesse considerazioni fatte per sistemi
M/G/1, cioè segue che:
W1 = R +
1 (1)
N
µ1 Q
e quindi per l’Eq. 6.11-6 (che si è determinata applicando il teorema di Little) si ha:
W1 =
R
1 − ρ1
Per la seconda classe di priorità si ha:
W2 = R +
1
1
1
⋅ N Q(1) + ⋅ N Q( 2) + ⋅ λ1 ⋅W2
µ1
µ2
µ1
dove il quarto addendo del secondo membro rappresenta il ritardo aggiuntivo causato dai clienti di
priorità più alta che arrivano quando il customer di priorità 2 è già in attesa nella coda (senza esser
stato ancora servito).
Scriviamo la precedente relazione in una forma facilmente iterabile:
W2 = R +
1 λ1 (1) 1 λ2
1
⋅ NQ +
⋅ N Q( 2) + ⋅ λ1 ⋅W2
µ1 λ1
µ 2 λ2
µ1
ma essendo ρ1 = λ1 / µ 1 , ρ 2 = λ 2 / µ 2 ,
N Q(1)
λ1
= W1 , e
N Q( 2 )
λ2
= W2
W2 = R + ρ1 ⋅ W1 + ρ 2 ⋅ W2 + ρ1 ⋅ W2
W2 ⋅ (1 − ρ1 − ρ 2 ) = R + ρ1 ⋅ W1 ⇒ W2 =
R + ρ1 ⋅ W1
(1 − ρ1 − ρ 2 )
Ricordando che W1 = R /(1 − ρ1 ) , segue che
W2 =
(1 − ρ1 ) ⋅ W1 + ρ1 ⋅ W1
R + ρ1 ⋅ W1
W1
=
=
(1 − ρ1 − ρ 2 )
(1 − ρ1 − ρ 2 )
(1 − ρ1 − ρ 2 )
oppure
1 − ρ1 + ρ 1
R
⋅R
1 − ρ1
1 − ρ1
R + ρ 1 ⋅ W1
R
W2 =
=
=
=
(1 − ρ1 − ρ 2 ) (1 − ρ 1 − ρ 2 )
(1 − ρ1 − ρ 2 ) (1 − ρ 1 ) ⋅ (1 − ρ1 − ρ 2 )
R + ρ1 ⋅
Quindi, in definitiva,
Wk =
R
(1 − ρ1 − ρ 2 − ... − ρ k −1 ) ⋅ (1 − ρ1 − ρ 2 − ... − ρ k )
Eq. 6.11-7
52
Con un procedimento analogo al precedente si trova che:
R=
dove
X2 =
1
1  n 
⋅ λ ⋅ X 2 = ⋅  ∑ λi  ⋅ X 2
2
2  i =1 
λ1
X 12 +
n
∑λ
i
i =1
λ2
X 22 + ... +
n
∑λ
i
i =1
λn
X n2
n
∑λ
i
i =1
è il momento del secondo ordine mediato su tutte le classi di priorità.
Sostituendo R (ora scritta) nell’Eq. 6.11-7 si ottiene:
 n  2
 ∑ λi  ⋅ X
 i =1 
Wk =
2 ⋅ (1 − ρ1 − ρ 2 − ... − ρ k −1 ) ⋅ (1 − ρ1 − ρ 2 − ... − ρ k )
Tk =
1
+ Wk
µk
Eq. 6.11-8
Eq. 6.11-9
Tali valori dipendono fortemente dalle distribuzioni dei tempi di servizio delle varie classi.
Si può facilmente dimostrare che il ritardo medio per cliente tende a ridursi quando si
attribuisce priorità più alta ai clienti con tempi di servizio più brevi (nell’esempio che segue è
dimostrata numericamente tale proprietà). Questo si traduce, nelle reti a commutazione di
pacchetto, nell’attribuire priorità maggiore ai pacchetti di controllo che, solitamente, sono molto più
brevi rispetto ai pacchetti dati.
ESEMPIO: consideriamo una rete a commutazione di pacchetto con capacità trasmissiva di 9600
bit/secondo. Supponiamo che in tale rete circolino due tipi di pacchetti:
ƒPacchetti di controllo, con lunghezza fissa di 48 bit;
1
48
=
= 5 m sec .
µ1 9600
σ 12 = 0
X 12 =
1
µ 12
ƒPacchetti dati con lunghezza media di 960 bit, e con varianza pari a 2/(µ2)2;
1
960
2
1
3
=
= 0.1 sec .
σ 22 = 2
X 22 = σ 22 + 2 = σ 22 = 2
µ 2 9600
µ2
µ2
µ2
Supponiamo che il 20% del traffico totale è dovuto ai pacchetti di controllo, mentre
l’80% è dovuto ai pacchetti dati. Si avrà che:
λ = λ1 + λ 2 = 0.2 ⋅ λ + 0.8 ⋅ λ
Supponendo un fattore di utilizzazione ρ=0.5, si ricava che:
λ1 λ 2
+
= 0.5 ⇒ 0.2 ⋅ λ ⋅ 5 ⋅ 10 −3 + 0.8 ⋅ λ ⋅ 0.1 = 0.5
µ1 µ 2
500
⇒ λ ⋅ (10 −3 + 80 ⋅ 10 −3 ) = 500 ⋅ 10 − 3 ⇒ λ =
≅ 6.17 pacch. / sec .
81
ρ=
53
⇒ Se non ci fosse stata alcuna priorità, il tempo medio di attesa in coda, per tutti i
pacchetti, sarebbe stato quello dell’Eq. 6.11-1, dove il momento del secondo ordine è
dato dalla somma pesata dei singoli momenti del secondo ordine:
X2 =
λ1
λ
0.2 ⋅ λ 1
0.8 ⋅ λ 3
⋅ X 12 + 2 ⋅ X 22 =
⋅ 2 +
⋅ 2 =
λ
λ
λ
λ
µ1
µ2
= 0.2 ⋅ 25 ⋅ 10 − 6 + 0.8 ⋅ 3 ⋅ 10 − 2 ≅ 0.8 ⋅ 3 ⋅ 10 − 2 = 2.4 ⋅ 10 − 2
Da cui si ottiene che:
W=
λ⋅X2
6.17 ⋅ 2.4 ⋅ 10 −2
≅
≅ 148 m sec
2 ⋅ (1 − ρ )
2 ⋅ (1 − 0.5)
⇒ Invece con uno schema a priorità, in cui i pacchetti di controllo hanno precedenza
rispetto ai pacchetti dati, il tempo medio di attesa, nelle due diverse code con priorità,
sarà:

1
3
 0.2 ⋅ 2 + 0.8 ⋅ 2
λ
⋅

µ1
µ2
λ ⋅ X 2 + λ 2 ⋅ X 22
= 
W1 = 1 1
2 ⋅ (1 − ρ1 )
 0.2 ⋅ λ 

2 ⋅ 1 −
µ
1


≅



≅
6.17 ⋅ 2.4 ⋅ 10 − 2
6.17 ⋅ 2.4 ⋅ 10 − 2
≅
≅ 74.5 m sec
2 ⋅ 0.994
2 ⋅ (1 − 6.17 ⋅ 10 −3 )

1
3 
 0.2 ⋅ 2 + 0.8 ⋅ 2 
⋅
λ

µ1
µ 2 
λ1 ⋅ X 12 + λ 2 ⋅ X 22

=
≅
W2 =
2 ⋅ (1 − ρ1 − ρ 2 ) ⋅ (1 − ρ 1 )
 0.2 ⋅ λ 0.8 ⋅ λ   0.2 ⋅ λ 

 ⋅ 1 −
−
2 ⋅ 1 −
µ1
µ 2  
µ1 

≅
2 ⋅ (1 − 6.17 ⋅ 10 −3
6.17 ⋅ 2.4 ⋅ 10 − 2
6.17 ⋅ 2.4 ⋅ 10 − 2
≅
≅ 149 m sec
2 ⋅ 0.5 ⋅ 0.994
− 0.8 ⋅ 6.17 ⋅ 0.1) ⋅ (1 − 6.17 ⋅ 10 −3 )
Da questo semplice esempio si vede come il tempo medio di attesa in coda per i pacchetti con alta
priorità si è praticamente dimezzato, mentre per i pacchetti a più alta priorità è rimasto invariato (un
solo msec. di differenza).
6.12 Intensità del Traffico
DEFINIZIONE: l’intensità del traffico si definisce come la quantità media di unità di lavoro che
viene offerta al sistema (o viene smaltita dal sistema) nell’unità di tempo.
Pur essendo un numero puro, l’unità di misura attribuita, convenzionalmente, a tale
grandezza è l’Erlang e la lettera usata per indicarla è la lettera A.
DEFINIZIONE: si definisce Traffico Offerto
AO =
λ
µ
che rappresenta l’utilizzazione del sistema.
54
DEFINIZIONE: si definisce Traffico Smaltito
AS =
γ
µ
Ovviamente il Traffico offerto è uguale al Traffico smaltito quando λ = γ, ovvero quando il buffer è
infinito: infatti, con un buffer finito, si deve valutare γ in ragione del traffico offerto, meno il
traffico scaricato.
Nel caso di reti a commutazione di circuito, la grandezza che indica di quanto vengono impegnate le
risorse della rete è:
 chiamate

×
tempo
di
chiamata


 tempo

Dualmente per le reti a commutazione di pacchetto, si ha:
 messaggi

× tempo di trasmissione

 tempo

Consideriamo adesso due semplici esempi.
ESEMPIO 1.
In un sistema telefonico, supponiamo che la frequenza di interarrivo delle chiamate
sia λ=4 chiamate/minuto, e il tempo medio di conversazione sia 1/µ=3
minuti/chiamata. Quindi AO=12 Erlang. Questo significa che a regime avrò 12
linee occupate.
ESEMPIO 2.
In una rete a commutazione di circuito se γ=1.5 messaggi/secondo e il tempo medio
di trasmissione 1/µ=10 secondi/messaggio, AS = 15 Erlang.
L’INTENSITÀ DI TRAFFICO da anche:
•
il numero medio di sorgenti contemporaneamente attive, ovvero il Traffico Offerto, che
rappresenta una misura del carico che bisogna prevedere per dimensionare il sistema.
•
Il numero medio di risorse (serventi) contemporaneamente occupate, ovvero il Traffico
Smaltito, che rappresenta una misura della capacità di smaltimento di traffico del sistema.
DEFINIZIONE: si definisce Traffico Perso
AP =
λ ⋅ PB
µ
In equilibrio statistico segue che:
AO = AS + AP
Il fattore di utilizzazione ρ indica l’intensità di traffico smaltita dal singolo servente:
ρ=
λ
A
= S <1
N ⋅µ N
 Erlang 
 linea 
Eq. 6.12-1
In condizione di stabilità ρ deve essere minore di 1, dunque AS deve essere minore di N.
Dalla Eq. 6.12-1 si ricava che:
AS = ρ ⋅ N
55
Per questo motivo, a volte, con l’unità di Erlang si indica la frazione di tempo per la quale una linea
è impiegata, moltiplicata per il numero di linee in uscita dal sistema.
Le formule ricavate nei paragrafi precedenti possono essere espresse in funzione di A. Infatti
⇒ la probabilità di accodamento, secondo Erlang-C, in un sistema M/M/N, si può riscrivere come
N ⋅ AN
PQ = p 0
N !⋅( N − A)
con
 N −1 A n A N
N 
+
p 0 = ∑

 n =0 n! N! ( N − A) 
⇒ mentre la probabilità di blocco, secondo Erlang-B (o secondo Engset con M>>N), in un
sistema M/M/N/N, sarà cosi riscritta:
AN
PB = N N ! n
A
∑
n = 0 n!
Esistono delle tabelle che permettono di calcolare il numero di linee in uscita che garantiscono una
certa PB a fronte di una data intensità di traffico A. Ad esempio, con A compreso fra 5 e 50 si ha
che:
PB=1%
N=5.5+1.17A
5<A<50
PB=0.1%
N=7.8+1.28A
5<A<50
6.13 Analisi di Reti – Reti di Code
Nelle reti per dati, vi sono molti nodi di commutazione, ognuno dei quali, ai fini della valutazione
delle prestazioni, può essere schematizzato come uno dei sistema a coda (multiplex) fino ad ora
studiati, per il calcolo delle performance.
Quindi una rete per dati la si può schematizzare come un insieme di sistemi a coda che
interagiscono fra loro, dove il traffico dati uscente da un sistema a coda entra in una o più code
successive, prima di uscire dalla rete ed arrivare a destinazione.
Nella Fig. 6.13-1 è mostrato un semplice esempio di rete di code.
56
Fig. 6.13-1: rete di code
Analiticamente, questo tipo di sistemi sono difficili da studiare. Questo è dovuto, principalmente, al
fatto che il tempo di interarrivo dei pacchetti diventa strettamente correlato alla lunghezza dei
pacchetti, una volta che essi hanno attraversato la prima coda (punto di ingresso del flusso in
esame). Inoltre non si hanno modelli analitici che ci permettono di analizzare come il mixing
(mescolamento) dei flussi di traffico si configurano: questo è dovuto al fatto che le assunzioni
normalmente fatte sull’indipendenza dei processi degli arrivi e delle partenze, non valgono più,
complicandosi notevolmente. Gli esempi qui riportati ci quantificano in parte tali complicazioni.
ESEMPIO A. Supponiamo di avere due nodi di uguale capacità in cascata e un unico flusso di
pacchetti di lunghezza fissa con arrivi distribuiti esponenzialmente.
λ pacch./sec.
1
2
Fig. 6.13-2: nodi in cascata
La prima coda sarà dunque un sistema (multiplex) di tipo M/D/1. Sia 1/µ il tempo di
trasmissione di entrambi i nodi. I pacchetti dunque arriveranno nella seconda coda
con intervalli maggiori o uguali a 1/µ (arriveranno esattamente a intervalli pari a 1/µ
se il servente 1 fosse sempre occupato). Ma poiché, come già detto prima, 1/µ è
anche il tempo di servizio nella seconda coda, in quest’ultima non vi sarà attesa.
Quindi adottare per tale sistema un modello basato su arrivi di Poisson, anche per il
secondo nodo, sarebbe del tutto inappropriato. Ciò significa che se i due nodi 1 e 2
sono singolarmente modellizzabili come sistemi M/D/1, nel momento in cui si
collegano, il nodo 2 perde le sue proprietà di sistema M/D/1.
ESEMPIO B. Consideriamo, adesso, il sistema precedente (Fig 6.13-2) in cui, però, la lunghezza dei
pacchetti non è più fissa, ma distribuita esponenzialmente e indipendente sia da
pacchetto a pacchetto, che dal tempo di interarrivo nella prima coda.
La prima coda è dunque M/M/1. La seconda coda non può, invece, essere modellata
come un sistema M/M/1, visto che il tempo di interarrivo nella seconda coda è
strettamente correlato con la lunghezza dei pacchetti.
Infatti se consideriamo un intervallo temporale in cui arrivano molti pacchetti nella
prima coda, il tempo di interarrivo tra due qualsiasi pacchetti nella seconda coda
equivale al tempo di trasmissione del secondo pacchetto nella prima coda.
57
Dunque, i pacchetti lunghi aspetteranno tipicamente meno tempo nella seconda coda
rispetto ai pacchetti brevi, poiché la loro trasmissione nella prima coda richiederà un
tempo elevato durante il quale la seconda coda si andrà svuotando.
Dunque in entrambi gli esempi riportati non esiste una soluzione analitica ben precisa.
Il processo SIMULATIVO ha mostrato che, in condizioni di alto traffico, modellare,
complessivamente, l’intera rete come l’insieme di tante code M/M/1 (quanti sono i nodi della rete)
(ignorando la correlazione fra la lunghezza dei pacchetti e il tempo di interarrivo), porta a risultati
analitici cautelativi (ritardi più elevati), mentre a basso carico, i risultati ottenuti analiticamente
danno ritardi inferiori rispetto a quelli che si sperimentano nella realtà.
ESEMPIO C. In quest’altro esempio è mostrato come, in una generica rete, il processo degli arrivi
ad una coda non è Poissoniano. Nella rete con feedback (retroazione), mostrata in
Fig. 6.13-3, la probabilità p rappresenta la probabilità che un cliente, servito, venga
riportato in ingresso.
Poisson λ
λ/(1-p)
+
λ/(1-p)
λ
+
pλ/(1-p)
Fig. 6.13-3: rete con feedback
Affinché la frequenza di traffico che esce dalla rete sia λ, è necessario che
(1 − p ) ⋅ x = λ
⇒
x=
λ
(1 − p )
dove x è la frequenza di traffico servita dalla coda.
Dalla Fig. 6.13-3, la frequenza di traffico in ingresso alla coda vale
λ + p⋅x = λ +
λ − p⋅λ + p⋅λ
λ
p ⋅λ
=
=
(1 − p )
(1 − p )
1− p
ovvero il traffico di ingresso non è Poissoniano.
Se λ>>µ, si vede facilmente che si tratta di traffico a burst.
In generale si distinguono due classi di reti di code, che sono raffigurate schematicamente in Fig.
6.13-4 e 6.13-5.
•
In Fig. 6.13-4 sono presenti dei flussi di traffico entranti ed uscenti dalla rete. Per questo
motivo, tali reti vengono chiamate RETI DI CODE APERTE (open-network). Tipicamente una rete
a commutazione di pacchetto è rappresentabile come una rete di code aperte.
•
Invece nella Fig. 6.13-5, i clienti sono intrappolati all’interno della rete, non vi sono arrivi o
partenze da e verso l’esterno. Per tale motivo, queste reti vengono chiamate RETI DI CODE
CHIUSE (closed-network). Tutte le reti che hanno rapporti di feedback, cioè iterazioni
all’indietro che producono riattivazioni del flusso (un esempio è l’Alternate bit Protocoll, in cui
si può trasmettere solo quando il riceiver risponde con l’ACK), si possono classificare come reti
di code chiuse.
58
1
q21
q12
λS
2
qS6
qS1
q24
q13
6
3
q34
q53
4
q65
q45
q4d
5
λd
Fig. 6.13-4: Reti di Code Aperte
2
λ2
q12
λ1
1
λ3
q13
q11
3
Fig. 6.13-5: Reti di Code Chiuse
UNA RETE DI CODE APERTA si dice di Jackson se:
1) il flusso di traffico esterno, nella sua globalità, è possoniano (distribuzione esponenziale);
2) la distribuzione dei tempi di servizio è possoniano per ciascuna delle code della rete (ossia la
lunghezza dei pacchetti in ingresso a ciascuna coda sia distribuita esponenzialmente);
3) i tempi di servizio nelle varie code sono indipendenti.
Il TEOREMA DI JACKSON afferma che una rete di code è di Jackson se è risolvibile in forma
prodotto, cioè se la distribuzione della probabilità globale p(n) su
59
tutta la rete è esprimibile attraverso il prodotto delle singole
distribuzioni di probabilità relative a ciascuna coda (questo mostra
l’indipendenza dei processi dalle code). Tali probabilità devono
essere calcolate considerando ogni sistema a coda di tipo M/M/1.
DIMOSTRAZIONE DEL TEOREMA DI JACKSON
Consideriamo una rete di Jackson aperta (Fig. 6.13-6) formata da M code, in cui il tempo di
servizio dei clienti nelle varie code è distribuito esponenzialmente. Sia:
λ il rate medio di arrivo Poissoniano dalla sorgente esterna (flusso totale esterno);
qij la probabilità (fissa) che un pacchetto che completa il servizio nella coda i sia instradato
µi
verso la coda j;
il rate di servizio.
Focalizziamo l’evoluzione su una singola coda (singolo nodo appartenete alla rete di Jackson
aperta). La retroazione tiene conto della ritrasmissione.
Sorgenti esterne
qsi λ
Destinazioni esterne
+
+
µi
λi
λi
qki λk
qid λk
qij λi
qii λi
Flussi provenienti da
altre code della rete
Flussi uscenti verso
altre code della rete
Fig. 6.13-6: rete di Jackson aperta a M code
L’equazione di equilibrio in uscita è
M
q id + ∑ q ij = 1
1≤ i ≤ M
Eq. 6.13-1
j =1
mentre l’equazione di equilibrio in ingresso è
M
λi = q si λ + ∑ q ji λ j
1≤ i ≤ M
Eq. 6.13-2
j =1
dove λi è il rate del flusso di traffico in uscita al servente.
L’obiettivo è quello di determinare la probabilità pi(ni) che la coda i-esima si trovi nello stato ni,
ovvero la probabilità che nella coda i-esima ci siano n clienti. Poiché siamo in presenza di una
interconnessione di code, le varie probabilità potrebbero non essere indipendenti. Indichiamo,
dunque, la distribuzione di probabilità globale, attraverso la distribuzione di probabilità vettoriale
p(n) ≡ p(n1 , n 2 ,..., ni ,..., n M )
che rappresenta la probabilità che nel nodo1 ci siano n1clienti, che nel nodo 2 ci siano n2 clienti, …,
che nel nodo M ci siano nM clienti.
Estendiamo adesso il concetto di equazione di bilanciamento, visto in precedenza, a questo caso in
cui p(n) è un vettore. In particolare uguagliamo la probabilità di entrare nello stato n=(n1,n2,…,nM)
(multidimensionale) con la probabilità di uscire da questo stato.
Per semplificare la notazione indichiamo con
p(n − 1i ) ≡ p(n1 , n2 ,..., ni − 1,..., nM )
60
e analogamente con
p(n − 1i + 1 j ) ≡ p(n1 , n2 ,..., ni − 1,..., n j + 1,..., nM )
Con questa notazione, l’equazione di bilanciamento globale, ottenuta uguagliando il rate totale delle
partenze dallo stato n con il rate degli arrivi in n, è:
M
M


λ + ∑ µ i  ⋅ p (n) = λ ⋅ ∑ q si ⋅ p (n − 1i ) +
i =1
i =1


M
+ ∑ qid ⋅ µ i ⋅ p ( n + 1i ) +
i =1
M
M
+∑
∑q
i =1
ji
Eq. 6.13-3
⋅ µ j ⋅ p (n + 1 j − 1i )
j =1
LA PARTE SINISTRA della Eq. 6.13-3 rappresenta la frequenza di uscita dallo stato n (ci può essere un
arrivo con rate λ, oppure una partenza da una qualsiasi delle M code con corrispondente rate pari a
µi).
LA PARTE DESTRA dell’equazione Eq. 6.13-3 rappresenta, invece, la somma delle frequenze di tutti i
possibili modi per entrare nello stato n. Ad esempio, nello stato n è possibile entrarci dallo stato n-1i
con un arrivo nella coda i-esima. Questo può avvenire in due modi diversi:
⇒ con l’arrivo di un pacchetto dall’esterno con rate λ qsi ,
⇒ oppure con l’arrivo di un pacchetto dalla coda j con rate qji µj.
Infine un pacchetto può uscire dalla coda i verso una destinazione esterna con rate qid µd.
Dall’Eq. 6.13-2 si ricava che
M
q si =
λi − ∑ q ji λ j
j =1
1≤ i ≤ M
λ
Sostituendo tale risultato nell’Eq. 6.13-3 si ha che:
M
M
M


λ + ∑ µ i  ⋅ p ( n ) = λ ⋅ ∑


i =1
i =1
λi − ∑ q ji λ j
j =1
λ
⋅ p(n − 1i ) +
M
+ ∑ qid ⋅ µ i ⋅ p(n + 1i ) +
i =1
M
+∑
i =1
M
∑q
ji
Eq. 6.13-4
⋅ µ j ⋅ p (n + 1 j − 1i )
j =1
Si dimostra che tale equazione è soddisfatta da:
λi ⋅ p ( n − 1i ) = µ i ⋅ p ( n)
Eq. 6.13-5
61
ovvero l’equazione di bilanciamento dettagliata, per la quale la frequenza con cui una coda cambia
stato, per incremento del numero di pacchetti, è uguale alla frequenza con cui la stessa coda (o
un’altra nel sistema) cambia stato per decremento del numero di pacchetti.
Per verifica, sostituendo
µ i ⋅ p(n) = λi ⋅ p(n − 1i )
µi ⋅ p(n + 1i ) = λi ⋅ p(n)
µ j ⋅ p(n + 1 j − 1i ) = λ j ⋅ p(n − 1i ) ,
ottenute dall’Eq. 6.13-5, nell’ Eq. 6.13-4 si ha:
M
M
M


λ ⋅ p ( n ) + ∑ µ i ⋅ p ( n)  = λ ⋅ ∑


i =1
i =1
λi − ∑ q ji λ j
j =1
λ
⋅ p (n − 1i ) +
M
+ ∑ qid ⋅ λi ⋅ p (n) +
i =1
M
M
+∑
∑q
i =1
M
ji
⋅ λ j ⋅ p(n − 1i )
j =1
M
M
λ ⋅ p (n) + ∑ λi ⋅ p(n − 1i ) = ∑ λi ⋅ p(n − 1i ) − ∑
i =1
i =1
i =1
M
∑q
ji
λ j ⋅ p (n − 1i )
j =1
M
+ ∑ qid ⋅ λi ⋅ p (n) +
i =1
M
M
+∑
∑q
i =1
ji
⋅ λ j ⋅ p(n − 1i )
j =1
da cui segue che
M
λ ⋅ p (n) = p (n) ⋅ ∑ q id ⋅ λ i = p (n) ⋅ λ
c.v.d .
i =1
L’Eq. 6.13-5 è dunque una SOLUZIONE della rete di code aperta.
Riordinando la Eq. 6.13-5 si ha:
λ
p(n) =  i
 µi
Ripetendo ni volte segue che:
che equivale a:

 ⋅ p(n1 , n2 ,..., ni − 1,..., nM )

λ
p(n) =  i
 µi
ni

 ⋅ p(n1 , n2 ,...,0,..., nM )

p(n) = ρ ini ⋅ p(n1 , n2 ,...,0,..., nM )
Eseguendo lo stesso procedimento per tutte le code si ha:
62
M
p(n) = ∏ ρini ⋅ p(0)
i =1
dove p(0) indica la probabilità che tutte le code siano vuote. Questo valore si calcola dalla
condizione di normalizzazione
 M ni

 M ni 
ρ i ⋅ p(0)  = p(0) ⋅ ∑  ∏ ρi  = 1
∑n p(n) = ∑n  ∏
n  i =1
 i=1


 M ni 
Se la serie converge, cioè ∑  ∏ ρ i  < ∞ , allora il segno di sommatoria può scambiarsi con
n  i =1

quello del prodotto, per cui si ha:
M
M
 M ni 
1
ni
⋅
ρ
=
⋅
ρ
=
⋅
=1
(
0
)
(
0
)
(
0
)


p
p
p
∑n  ∏
∑
∏
∏
i
i 
−
ρ
(
1
)

i =1
i =1 n
i =1
i
M
p(0) = ∏ (1 − ρi )
ρi < 1, ∀i
ρi < 1, ∀
i =1
da cui si ricava che
M
p(n) = ∏ (1 − ρi ) ρini
ρi < 1, ∀
i =1
Eq. 6.13-6
ni
Visto che la quantità (1 − ρ i ) ρ i rappresenta proprio la distribuzione di un singolo sistema
M/M/1, la soluzione 6.13-6, trovata, si dice in forma prodotto e indica che ciascuna delle M code
può essere trattata come un sistema M/M/1 indipendente dagli altri.
Nel calcolo della Eq. 6.13-6 si è assunto che le frequenze di servizio sono fra loro indipendenti
(lunghezza dei pacchetti indipendenti) e che il fattore di utilizzazione di ogni coda è inferiore a 1.
PER UNA RETE DI CODE CHIUSA si ottiene ancora
ni
M
 λi 
p(n) = ∏   ⋅ p(0) = ∏ ρ ini ⋅ p(0)
i =1  µ i  i
i =1
M
dove
•
•
le frequenze λi non sono legate ad una frequenza esterna λ (come nell’Eq. 6.13-2);
nella rete c’è un numero fisso N di pacchetti che circola.
Questo porta al calcolo di una costante di normalizzazione f(N,M) (dove M è il numero di nodi
della rete), per cui:
M
1
ρini
p(n) =
∏
f ( N , M ) i=1
Il calcolo può essere risolto facilmente attraverso l’algoritmo di Buzen.
In definitiva concludiamo dicendo che
UNA RETE A COMMUTAZIONE DI PACCHETTO PUÒ ESSERE RISOLTA
SE È RICONDUCIBILE ALLE ASSUNZIONI DELLA RETE DI JACKSON.
63
6.14 Approssimazione di indipendenza di Kleinrock
Una rete a commutazione di pacchetto è modellabile attraverso una rete di Jackson?
In linea di principio la risposta è no.
Uno dei primi a studiare le reti a commutazione di pacchetto è stato Kleinrock.
Kleinrock ha provato che in una rete a commutazione di pacchetto, in determinate condizioni
operative (quando cioè la rete comincia a saturarsi), viene a perdersi la correlazione esistente tra la
lunghezza del pacchetto in uscita da un certo nodo e la lunghezza dello stesso pacchetto che entra
nel nodo successivo. Consideriamo una rete in cui i flussi di traffico entranti seguono percorsi pi
costituiti da sequenze di collegamenti fra la rete (Fig. 6.14-1).
Xp2
λij = Xp1+Xp2
i
Xp1
Xp3
Fig. 6.14-1: flussi di traffico che seguono i percorsi pi.
Sia xp (pacch./sec.) la frequenza di arrivo del flusso associato al generico percorso p.
La frequenza di arrivo totale relativa al collegamento (i,j) è:
λij =
∑x
p
tutti i percorsi
che attraversano
il link ( i , j )
L’APPROSSIMAZIONE DI KLEINROCK assume che si può studiare il percorso generico (i,j) come
un sistema M/M/1, non tenendo conto delle interazioni del traffico su (i,j) con il traffico esistente
sugli altri collegamenti, in quanto il confluire di diversi flussi ha l’effetto di ripristinare
l’indipendenza tra i tempi di interarrivo e la lunghezza dei messaggio.
L’approssimazione di Kleinrock risulta ragionevolmente vera se valgono le seguenti Hp:
• la rete è densamente connessa, ma non completamente connessa, con molte maglie che
collegano un generico nodo con tanti altri nodi;
• gli arrivi ai nodi di ingresso della rete sono Poissoniani;
• le lunghezze dei pacchetti sono distribuite esponenzialmente;
• il carico della rete è vicino ai valori massimi.
Se il tempo di processamento e di propagazione sono trascurabili,
secondo il modello M/M/1, il numero medio dei pacchetti sul collegamento (i,j) è pari a
N ij =
λ ij
µ ij − λij
Eq. 6.14-1
dove 1/µij è il tempo medio di trasmissione su (i,j).
Il numero medio di pacchetti su tutta la rete sarà:
64
λij
( i , j ) µ ij − λij
N = ∑ N ij = ∑
(i , j )
Eq. 6.14-2
Supponendo i buffer infiniti, usando il teorema di Little, si ricava il ritardo medio per pacchetto
nel sistema (dovuto agli accodamenti e alle trasmissioni), che è pari a:
T=
dove γ =
∑
p
λij
N 1
= ⋅∑
γ γ (i , j ) µ ij − λij
Eq. 6.14-3
x p è la frequenza di arrivo del traffico totale in ingresso al sistema.
nel caso in cui i tempi di processamento e di propagazione dij non sono trascurabili,
il tempo medio di ritardo diventa:
T=
 λij

1
⋅ ∑
+ λij ⋅ dij 

γ (i , j )  µij − λij

Eq. 6.14-4
Infine, il ritardo medio per pacchetto, in un flusso di traffico, associato al percorso p è:
Tp =
1
⋅
∑
γ tutti gli (i , j )
collegamenti
appartenenti a p


λij
1

+
+ d ij 
 µ ⋅ (µ − λ ) µ

ij
ij
ij
 ij

Eq. 6.14-5
Se l’assunzione fatta sulla distribuzione delle lunghezze dei pacchetti non è realistica, cioè se tale
distribuzione non è esponenziale, la Eq. 6.14-1 va sostituita con la formula P-K, e l’Eq. 6.14-2
insieme all’Eq. 6.14-5 vanno modificate.
Nell’ipotesi di Kleinrock, il ritardo end-to-end può dunque essere calcolato come il ritardo dovuto a
una catena di M sistemi M/M/1 indipendenti, cioè
M
T =∑
i =1
M
1
=∑
µ i − λ i i =1
1
M
µi
1/ µi
=∑
µ i − λ i i =1 1 − ρ i
µi
Eq. 6.14-6
ESEMPIO: Consideriamo la rete di Fig. 6.14-2, in cui per semplicità i link trasmissivi sono
unidirezionali.
⇒ I γi rappresentano i rate di arrivo poissoniani ai rispettivi nodi;
⇒ accanto ai link sono anche riportate le probabilità che un pacchetto venga
instradato su di esso.
Fig. 6.14-2: esempio di rete nell’ipotesi di Kleinrock
65
⇒ Inoltre, i numeri in parentesi, accanto ai link, rappresentano il carico nel link
espresso in pacchetti al secondo. Questi valori sono ottenuti semplicemente
sommando la frequenza di arrivo al nodo e moltiplicandola per la probabilità che i
pacchetti vengano instradati sul link.
Infatti, sul link (1,2), bisogna moltiplicare il rate di arrivo al nodo 1 (2 pacch./sec)
per la probabilità che i pacchetti vengano dirottati sul link (1/4). Per cui il traffico
sul link (1,2) sarà 1/2.
Analogamente per gli altri link si ha:
Link (i,j)
(1,2)
(1,5)
(5,2)
(5,4)
(2,4)
(2,3)
Rate nel nodo i
2
2
2+3/2=7/2
2+3/2=7/2
2+1/2+7/4=17/4
2+1/2+7/4=17/4
Prob. di instradamento
¼
¾
½
½
2/3
1/3
Traffico sul link
½
3/2
7/4
7/4
17/6
17/12
Osserviamo infine che il rate medio di ingresso di pacchetti è (γ1+γ2+ γ3)=6
pacchetti/secondo.
La frequenza di uscita dei pacchetti sui nodi 3 e 4 è data da (17/12+55/12)=72/12=6.
Supponendo che il rate medio di servizio di tutti i link sia µi=3 pacchetti/secondo, il
tempo medio di attesa dei pacchetti dal nodo 1 al nodo 3,passanti per il nodo 2, si
ottiene applicando l’Eq. 6.14-6:
T13 =
1
1
+
3 − (1 / 2) 3 − (17 / 12)
Analogamente il ritardo medio end-to-end dal nodo 1 al nodo 4, passando per il nodo
5, è:
1
1
T14 =
+
3 − (3 / 2) 3 − (7 / 4)
Infine il ritardo medio su tutta la rete, mediato su tutti i link, si ottiene applicando
l’Eq. 6.14-3:
T=
λij
N 1
= ⋅∑
γ γ (i , j ) µij − λij
dove γ rappresenta il rate di arrivo netto sulla rete.
66