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 nn=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