22.4 Sistemi di servizio orientati al ritardo
Mentre i sistemi orientati alla perdita rappresentano il modo di operare delle reti di telecomunicazione a
commutazione di circuito, in cui ogni connessione impegna in modo esclusivo alcune risorse di rete, che una volta esaurite producono un
rifiuto della richiesta di connessione, i sistemi
orientati al ritardo sono rappresentativi di reti a
commutazione di pacchetto, in cui i messaggi sono suddivisi in unità elementari (detti pacchetti, appunto) la cui ricezione non deve più avvenire in tempo reale, e che condividono le stesse risorse fisiche (degli organi di commutazione e di trasmissione) con i pacchetti di altre comunicazioni. Pertanto, l’invio di un pacchetto può essere
ritardato se il sistema di servizio è in grado di gestire delle
code di attesa, in cui accumulare le richieste che eccedono il numero di serventi a disposizione, e da cui prelevare (con ritardo) i pacchetti stessi non appena si rendano disponibili le risorse trasmissive necessarie.
In questo caso lo schema che esemplifica la ripartizione dei flussi di richieste si modifica come in figura, dove è evidenziato come la frequenza di richieste
λo si suddivide tra la frequenza delle richieste perse
λp, quelle servite con ritardo
λsr, e quelle servite immediatamente
λsi, in funzione della probabilità di perdita
Pp e di ritardo
Pr. Nei termini di queste quantità, valgono le relazioni:
λp = Ppλo; λsr = Pr(1 − Pp)λo; λsi = (1 − Pr)(1 − Pp)λo
Indicando con
τS = 1μ il tempo medio di servizio di ogni richiesta, (che non comprende quindi il tempo di accodamento), si definisce, come già noto, una intensità di traffico offerto
Ao = λoμ = λoτS, che deve risultare
Ao = Ap + Asr + Asi e quindi Asr = λsrμ, Asi = λsiμ
Considerando il caso in cui la coda abbia una lunghezza finita e pari ad
L, osserviamo che, a prima vista, anche le
L richieste successive all’impegno di tutti gli
M serventi sono accolte (e poste in coda), come se i serventi fossero divenuti
M + L. In realtà l’analisi fornisce risultati differenti, in quanto le richieste accodate devono essere ancora servite, e quindi il calcolo della
Pp non è una diretta estensione dei risultati ottenuti per i sistemi orientati alla perdita. E’ comunque abbastanza semplice verificare che ora la
Pp risulta inferiore alla
PB del caso senza coda, e pertanto l’intensità di traffico smaltito
As = Asr + Asi = (1 − Pp)Ao aumenta, a parità di offerta.
22.4.1 Risultato di Little
Si tratta di un risultato molto generale, valido per qualsiasi distribuzione dei tempi di interarrivo e di servizio, la cui applicazione può tornare utile nell’analisi, e che recita:
Il numero medio N di utenti contemporaneamente presenti in un sistema di servizio è pari al prodotto tra frequenza media di smaltimento delle richieste λs ed il tempo medio di permanenza τp dell’utente nel sistema
e quindi in definitiva N = λs ⋅ τp. Nell’applicazione al caso di servizi orientati alla perdita, si ha τp = τS, mentre nei servizi a coda risulta τp = τc + τS in cui τc rappresenta il tempo medio di coda.
22.4.2 Sistemi a coda infinita ed a servente unico
Prima di fornire risultati più generali, svolgiamo l’analisi per questo caso particolare, in cui la frequenza di richieste perse
λp è nulla, dato che una coda di lunghezza infinita le accoglie comunque tutte. Da un punto di vista statistico un tale sistema è descritto mediante il
diagramma di nascita e morte riportato a fianco, in cui ogni stato
Sk rappresenta
k richieste nel sistema, di cui una sta ricevendo servizio e
k − 1 sono accodate.
Per procedere nell’analisi si applica lo stesso principio di equilibrio statistico già adottato a pag.
1 dove si asserisce che, esaurito un periodo transitorio iniziale, la frequenza media delle transizioni tra
Sk e
Sk + 1 deve eguagliare quella da
Sk + 1 ad
Sk. Indicando con
pk = Pr(Sk) la probabilità che il sistema contenga
k richieste, l’equilibrio statistico si traduce nell’insieme di equazioni
Infatti, in base alle stesse considerazioni svolte nella prima parte della nota
1322 di pag.
1,
λopk è pari alla frequenza media (frazione di
λo) con cui il numero di richieste accolte passa da
k a
k + 1; essendo il servente unico, la frequenza di servizio è sempre
μ = 1τS, indipendentemente dal numero di richieste accodate, e dunque
μpk + 1 è proprio la frequenza media con cui il sistema passa da
k + 1 a
k richieste accolte.
La relazione (
26.9) è di natura ricorsiva, e può esprimersi come
pk = ⎛⎝λoμ⎞⎠k p0 = Ako p0
Per determinare il valore
p0 = Pr(S0), uguale alla probabilità che il sistema sia vuoto, ricordiamo che deve risultare
1 = ∞⎲⎳k = 0pk = ∞⎲⎳k = 0p0 Ako = p0 11 − Ao
da cui otteniamo
p0 = 1 − Ao e dunque
pk = (1 − Ao) Ako
che corrisponde ad una densità di probabilità esponenziale discreta.
Siamo ora in grado di determinare alcune grandezze di interesse:
Probabilità di ritardo Pr: risulta pari alla probabilità che il sistema non sia vuoto, e cioè che ci sia già almeno una richiesta accolta, ed è pari a
Pr = 1 − po = 1 − (1 − Ao) = Ao
Ricordiamo di aver già definito l’efficienza come il rapporto
ρ = AsM tra il traffico smaltito ed il numero dei serventi; nel nostro caso
M = 1 e
As = Ao: dunque
ρ = Ao. Pertanto, il risultato
Pr = Ao = ρ indica come, al tendere ad
1 dell’efficienza, la probabilità di ritardo tenda anch’essa ad
1.
Lunghezza media di coda indicata con
L: risulta essere semplicemente il valore atteso del numero di richieste presenti nel sistema, ovvero
L = E{k} = ∞⎲⎳k = 0kpk = (1 − Ao)∞⎲⎳k = 0kAko = Ao1 − Ao
da cui risulta che per
Ao → 1 la coda tende ad una lunghezza infinita.
Tempo medio di permanenza indicato con
τp, e scomponibile nella somma
τp = τS + τc tra il tempo medio di servizio ed il tempo medio di coda. Possiamo applicare qui il risultato di Little
N = λs ⋅ τp, che esprime la relazione tra numero medio
N di richieste presenti, frequenza di smaltimento (qui pari a quella di offerta), e tempo medio di permanenza; infatti accade che
N = L, ed utilizzando il risultato
L = Ao1 − Ao si ottiene
τp = Nλs = Lλo = Ao1 − Ao 1λo = λoμ 1λo 11 − λo ⁄ μ = 1μ − λo
da cui si osserva che, se la frequenza di offerta tende al valore della frequenza di servizio, il tempo medio di permanenza tende ad
∞.
Tempo medio di coda si calcola come
τc = τp − τS = 1μ − λo − 1μ = μ − μ + λoμ(μ − λo) = Aoμ(1 − Ao) = 1μ ρ1 − ρ = τS ρ1 − ρ
Questo risultato mostra che il tempo medio di coda è legato al tempo medio di servizio e all’efficienza di giunzione, confermando ancora i risultati per
ρ → ∞.
La fig.
22.13 mostra l’andamento delle grandezze appena calcolate.
22.4.3 Sistemi a coda finita e con più serventi
Riportiamo solo i risultati, validi se entrambi i processi di ingresso e di servizio sono esponenziali con frequenza media λo e μ, la coda è lunga L, i serventi sono M e le sorgenti infinite.
Probabilità di k richieste nel sistema
pk(Ao) = ⎧⎪⎪⎨⎪⎪⎩ Akok!α(Ao) 0 ≤ k ≤ M AkoMk − MM!α(Ao) M ≤ k ≤ M + L
in cui
α(Ao) = 1p0(Ao) = ∑M + Lk = 0Akok! e
Ao = λoμ. Si noti come per
0 ≤ k ≤ M ed
L = 0 si ottenga lo stesso risultato già esposto per i sistemi orientati alla perdita, mentre per
M = 1 ed
L = ∞ ci si riconduca al caso precedentemente analizzato.
Probabilità di ritardo
Pr = M + L⎲⎳k = Mpk(Ao) = pM(Ao) 1 − ρL + 11 − ρ in cui ρ = AoM
Probabilità di perdita
Pp = pM + L(Ao) = AM + LoMLM! ⋅ α(Ao)
Tempo medio di coda
τc = τSPr − L ⋅ PM + L(Ao)M − Ao
La Figura
22.14 descrive la probabilità di perdita per un sistema a servente singolo (a sinistra) e con 10 serventi (a destra), in funzione dell’intensità di traffico offerto e della lunghezza di coda
L, così come risulta dalla applicazione delle formule riportate.
Nel caso di trasmissione di pacchetti di lunghezza fissa, per i quali il tempo di servizio è fisso e
non a distribuzione esponenziale, i risultati ottenuti costituiscono una
stima conservativa delle prestazioni del sistema (che potranno cioè essere migliori). L’analisi delle curve permette di valutare con esattezza il vantaggio dell’uso di una coda (a spese del tempo di ritardo). Infatti, aumentando il numero di posizioni di coda si mantiene una probabilità di blocco accettabile anche per traffico intenso.
Ad esempio, per
Pb = 1% ed
M = 1, osserviamo che una coda con
L = 20 posizioni gestisce un traffico di
Ao = 0.83 Erlang, contro gli
Ao = 0.11 Erlang del caso senza coda. Ciò corrisponde ad un aumento dell’efficienza di
0.830.11 = 7.54 volte. D’altra parte ora il tempo medio di coda (calcolato in modo conservativo applicando la relazione per coda infinita) è
τc = τSρ1 − ρ = 0.831 − 0.83τS = 4.9 τS, ed è quindi aumentato (rispetto a
τS) di quasi 5 volte.
Esercizio Un nodo di una rete per dati effettua la multiplazione di pacchetti di dimensione media di 8 KByte su collegamenti con velocità binaria fb = 100 Mbps
-
1) Determinare il tempo medio di servizio di ogni singolo pacchetto;
2) determinare il tempo medio di interarrivo τa tra pacchetti corrispondente ad un traffico di ingresso di 1200 pacchetti/secondo, e l’associata intensità Ao;
3) assumendo che la dimensione dei pacchetti sia una v.a. con densità esponenziale negativa, così come il tempo di interarrivo tra pacchetti, e che la memoria del multiplatore sia così grande da approssimare le condizioni di coda infinita, determinare il ritardo medio di un pacchetto, ossia il tempo medio trascorso tra quando un pacchetto si presenta in ingresso al nodo e quando ne esce;
4) calcolare la quantità di memoria necessaria ad ospitare i dati che si accumulano in un intervallo temporale pari al ritardo medio, considerando pacchetti di lunghezza fissa e pari alla media.
Risposte
-
1) Il tempo medio di servizio di un pacchetto è pari al tempo occorrente per trasmetterlo:
τS = 1μ = durata di un bit ⋅ bitpacchetto = 1108 ⎡⎣secondibit⎤⎦ ⋅ 1024⎡⎣bytepacchetto⎤⎦ ⋅ 8⎡⎣bitbyte⎤⎦ ≃ 655 μsec;
2) τa = 1λ = 11200 = 833 μsec; Ao = λμ = 1200 ⋅ 655 ⋅10 − 6 = 0.786 Erlang;
3) Le condizioni poste corrispondono a quelle di traffico poissoniano e sistema a singolo servente e coda infinita, per il quale la teoria fornisce per il tempo di permanenza il risultato τp = 1μ − λo = 1106655 − 106833 = 1326 ≃ 3 msec;
4) La memoria necessaria è pari al prodotto tra il tempo medio di permanenza ed il numero di bit che si accumulano in quel periodo, ovvero
3 ⋅ 10 − 3[sec] ⋅ 1200⎡⎣pacchsec⎤⎦ ⋅ 1024⎡⎣bytepacch⎤⎦ ≃ 3.7
Kbyte.