Esercizio - processori manager-worker, coda M/M/2 e compressione del registro
Questa pagina non ha ancora la versione ripasso: qui sotto c'è il testo completo.
In questa pagina 4
Testo (approfondimento, "di telecomunicazioni e non di informatica"). Un'architettura manager-workers contiene otto unità logiche che generano indipendentemente lavori di calcolo, ciascuna secondo un processo di Poisson con intensità di lavori ogni millisecondo. I lavori sono inviati, attraverso un buffer FIFO, a una coppia di processori identici, ciascuno capace di eseguire miliardi di operazioni elementari al secondo. I lavori sono indirizzati indifferentemente al primo processore disponibile e ciascuno contiene un numero casuale di operazioni elementari, modellabile come variabile esponenziale di media operazioni. Che sistema a coda è? È stabile? Qual è la probabilità che un lavoro trovi entrambi i processori disponibili? Qual è la probabilità che siano entrambi occupati? Un demone di gestione delle risorse controlla se i processori sono occupati e restituisce un valore nell'alfabeto : se i processori sono entrambi inattivi, se ne è attivo uno solo, se sono entrambi attivi ma non ci sono lavori in coda, se sono entrambi occupati e ci sono anche lavori in coda. Un registro salva i valori calcolati dal demone ogni secondo per un giorno. Il registro ha capacità kilobyte. Si verifichi che, pur non essendo possibile salvare direttamente i valori di un giorno intero, ciò diventa possibile con una compressione senza perdita scelta opportunamente. Qual è la probabilità che, essendo nello stato , sia occupato il processore ? Se si divide in due sottostati e (pedice = servitore occupato), basta ancora un registro da kilobyte?
Teoria usata: Processi di arrivo e processo di PoissonUn sistema a coda ha clienti che arrivano, un'area di attesa e $m$ servitori. Il processo di arrivo è un processo di punto con tempi di interarrivo $\tau_n=t_n-t_{n-1}$ e tasso $\lambda=\frac1{E[\tau]}$. Nel processo di Poisson omogeneo gli arrivi in intervalli disgiunti sono indipendenti e di Poisson con media $\lambda T$, gli interarrivi sono esponenziali $\lambda e^{-\lambda a}$ e senza memoria; somma di processi di Poisson è Poisson (tassi che si sommano), il diradamento con probabilità $p$ dà Poisson di tasso $p\lambda$; in $[0,h]$ c'è un arrivo con probabilità $\lambda h+o(h)$. Servizio con tasso $\mu=\frac1{E[y]}$; notazione di Kendall $A/B/m/K/N-S$.Processi di arrivo e processo di Poisson →, Sistemi a coda M-M-1 e M-M-mIn un sistema M/M/m (arrivi di Poisson $\lambda$, servizi esponenziali $\mu$, $m$ servitori) il numero di clienti $x(t)$ è una catena di Markov di nascita e morte con tassi di nascita $\lambda$ e di morte $\min(k,m)\mu$. A regime il bilancio di flusso $\lambda\pi_{k-1}=\min(k,m)\mu,\pi_k$ dà per M/M/1 $\pi_k=(1-\rho)\rho^k$ ($\rho=\frac\lambda\mu<1$), $E[x]=\frac\rho{1-\rho}$, $E[s]=\frac1{\mu-\lambda}$ (esponenziale), e per M/M/m la probabilità di accodamento di Erlang C, $C=P[x\ge m]$, con $E[q]=\frac{C,G}{m-G}$, $E[w]=\frac C{m\mu-\lambda}$, $E[s]=E[w]+\frac1\mu$ ($G=\frac\lambda\mu$, $\rho=\frac Gm<1$).Sistemi a coda M-M-1 e M-M-m →, Informazione, entropia e informazione mutuaL'informazione di un evento di probabilità $P$ è $i=\log_2\frac1P$ bit; l'entropia $H(x)=\sum p\log_2\frac1p$ è l'informazione media e misura l'incertezza: $0\le H\le\log_2M$, massimo se i simboli sono equiprobabili. Per due variabili: $\max{H(x),H(y)}\le H(x,y)\le H(x)+H(y)$, $H(x|y)=H(x,y)-H(y)$ e l'informazione mutua $I(x;y)=H(x)-H(x|y)=H(x)+H(y)-H(x,y)\ge0$ (zero se e solo se indipendenti). Per una sorgente di $F_s$ simboli/s: rate di informazione $F_sH_s$, rate nominale $F_s\log_2M$, efficienza $\eta=\frac{H_s}{\log_2M}$.Informazione, entropia e informazione mutua →, Codifica di sorgenteLa codifica di sorgente senza perdita assegna ai simboli (o a parole di $N$ simboli) parole di codice di lunghezza variabile, corte per i simboli probabili, con una mappa invertibile. Un codice a prefisso è sempre decodificabile; Kraft-McMillan: se il codice è decodificabile $\sum M^{-l_i}\le1$ e viceversa esiste un codice a prefisso con quelle lunghezze. Shannon: $L\ge\frac{H}{\log_2M}$ e esiste un codice con $L<\frac{H}{\log_2M}+1$ (lunghezze $\lceil\log_M\frac1p\rceil$). Shannon-Fano divide dall'alto, Huffman unisce dal basso i due meno probabili ed è ottimo; raggruppare simboli e la codifica aritmetica si avvicinano al limite.Codifica di sorgente →.
Il sistema a coda
Arrivi. Ogni unità: lavori/ms lavori/s; unità indipendenti: per la sovrapposizione di processi di Poisson il flusso totale è di Poisson con lavori/s.
Servizio. Un processore esegue operazioni/s; un lavoro ha in media operazioni, quindi il tempo di servizio è esponenziale di media s e il tasso di servizio di un processore è lavori/s.
Struttura. Un buffer FIFO unico alimenta due processori identici ("il primo disponibile"): arrivi di Poisson, servizio esponenziale, servitori, coda infinita, FCFS: M/M/2.
Stabilità. : stabile. Il traffico offerto è (in media processori occupati).
Probabilità di stato
Per l'M/M/2 (Sistemi a coda M-M-1 e M-M-mIn un sistema M/M/m (arrivi di Poisson $\lambda$, servizi esponenziali $\mu$, $m$ servitori) il numero di clienti $x(t)$ è una catena di Markov di nascita e morte con tassi di nascita $\lambda$ e di morte $\min(k,m)\mu$. A regime il bilancio di flusso $\lambda\pi_{k-1}=\min(k,m)\mu,\pi_k$ dà per M/M/1 $\pi_k=(1-\rho)\rho^k$ ($\rho=\frac\lambda\mu<1$), $E[x]=\frac\rho{1-\rho}$, $E[s]=\frac1{\mu-\lambda}$ (esponenziale), e per M/M/m la probabilità di accodamento di Erlang C, $C=P[x\ge m]$, con $E[q]=\frac{C,G}{m-G}$, $E[w]=\frac C{m\mu-\lambda}$, $E[s]=E[w]+\frac1\mu$ ($G=\frac\lambda\mu$, $\rho=\frac Gm<1$).Sistemi a coda M-M-1 e M-M-m →, §5): per e per (infatti ). La normalizzazione dà, per , (Verifica: ✓.) Quindi:
- Un lavoro trova entrambi i processori disponibili (sistema vuoto, PASTA): .
- Entrambi occupati: (cioè ; è la probabilità di Erlang C, ).
Le quattro uscite del demone e la compressione
Il demone restituisce: se , se , se (due occupati, nessuno in coda), se . Probabilità: In un giorno il demone calcola valori (uno al secondo). Con simboli servono bit per simbolo: bit kilobyte (a bit/byte). Il registro da kilobyte ha bit (o bit se kB byte): non basta. Ma i simboli sono molto sbilanciati: l'entropia è Per il teorema di Shannon (Codifica di sorgenteLa codifica di sorgente senza perdita assegna ai simboli (o a parole di $N$ simboli) parole di codice di lunghezza variabile, corte per i simboli probabili, con una mappa invertibile. Un codice a prefisso è sempre decodificabile; Kraft-McMillan: se il codice è decodificabile $\sum M^{-l_i}\le1$ e viceversa esiste un codice a prefisso con quelle lunghezze. Shannon: $L\ge\frac{H}{\log_2M}$ e esiste un codice con $L<\frac{H}{\log_2M}+1$ (lunghezze $\lceil\log_M\frac1p\rceil$). Shannon-Fano divide dall'alto, Huffman unisce dal basso i due meno probabili ed è ottimo; raggruppare simboli e la codifica aritmetica si avvicinano al limite.Codifica di sorgente →) con una codifica senza perdita si possono ottenere vicini a : bit, meno di (e di ): è possibile salvare l'intero giorno. I valori campionati a distanza di s si possono considerare indipendenti (il tempo di servizio è di s: il sistema "dimentica" lo stato in un tempo brevissimo rispetto a s), quindi la sorgente si tratta come senza memoria.
Quale codice? Huffman simbolo per simbolo (lunghezze ): bit, cioè bit: non basta (non si migliora molto sul codice fisso a bit perché il simbolo più probabile non può costare meno di bit). Occorre raggruppare i simboli (Codifica di sorgenteLa codifica di sorgente senza perdita assegna ai simboli (o a parole di $N$ simboli) parole di codice di lunghezza variabile, corte per i simboli probabili, con una mappa invertibile. Un codice a prefisso è sempre decodificabile; Kraft-McMillan: se il codice è decodificabile $\sum M^{-l_i}\le1$ e viceversa esiste un codice a prefisso con quelle lunghezze. Shannon: $L\ge\frac{H}{\log_2M}$ e esiste un codice con $L<\frac{H}{\log_2M}+1$ (lunghezze $\lceil\log_M\frac1p\rceil$). Shannon-Fano divide dall'alto, Huffman unisce dal basso i due meno probabili ed è ottimo; raggruppare simboli e la codifica aritmetica si avvicinano al limite.Codifica di sorgente →, §8): con Huffman su coppie ( parole) bit/simbolo, cioè bit ✓ (e ✓); con terne bit/simbolo ( bit); con blocchi di simboli ( bit, molto vicino al limite ). La codifica aritmetica darebbe praticamente .
Il sottostato ,
Se i lavori vanno "indifferentemente" al primo processore libero, i due processori sono equivalenti e per simmetria Con la suddivisione i simboli diventano : . La nuova entropia è bit/simbolo (la scelta tra e aggiunge bit di informazione ogni volta che si è in ). Totale giornaliero con un codice ideale: bit (e ): basta ancora il registro da kB, ma con meno margine: con Huffman su blocchi servono almeno terne ( bit/simbolo, bit; con coppie bit/simbolo, bit, non basta). Il margine si assottiglia: bit sono il della capacità del registro, contro il del caso precedente.
| alfabeto | [bit/simbolo] | bit/giorno con codice ideale | codice a blocchi (Huffman) |
|---|---|---|---|
| coppie: | |||
| terne: |