Salta al contenuto
Note per Studenti Esercizio - processori manager-worker, coda M-M-2 e compressione del registro

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 1010 lavori ogni millisecondo. I lavori sono inviati, attraverso un buffer FIFO, a una coppia di processori identici, ciascuno capace di eseguire 1818 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 30 00030\,000 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 {O,I,E,W}\{O,I,E,W\}: OO se i processori sono entrambi inattivi, II se ne è attivo uno solo, EE se sono entrambi attivi ma non ci sono lavori in coda, WW 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à 88 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 II, sia occupato il processore 11? Se II si divide in due sottostati I1I_1 e I2I_2 (pedice = servitore occupato), basta ancora un registro da 88 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à: 1010 lavori/ms =104=10^4 lavori/s; 88 unità indipendenti: per la sovrapposizione di processi di Poisson il flusso totale è di Poisson con λ=8⋅104\lambda=8\cdot10^4 lavori/s.

Servizio. Un processore esegue 18⋅10918\cdot10^9 operazioni/s; un lavoro ha in media 30 00030\,000 operazioni, quindi il tempo di servizio è esponenziale di media 30 00018⋅109=1,667 μ\frac{30\,000}{18\cdot10^9}=1{,}667\ \mus e il tasso di servizio di un processore è μ=18⋅10930 000=6⋅105\mu=\frac{18\cdot10^9}{30\,000}=6\cdot10^5 lavori/s.

Struttura. Un buffer FIFO unico alimenta due processori identici ("il primo disponibile"): arrivi di Poisson, servizio esponenziale, m=2m=2 servitori, coda infinita, FCFS: M/M/2.

Stabilità. ρ=λmμ=8⋅1042⋅6⋅105=8⋅10412⋅105=0,0667<1\rho=\frac\lambda{m\mu}=\frac{8\cdot10^4}{2\cdot6\cdot10^5}=\frac{8\cdot10^4}{12\cdot10^5}=0{,}0667<1: stabile. Il traffico offerto è G=λμ=8⋅1046⋅105=0,1333G=\frac\lambda\mu=\frac{8\cdot10^4}{6\cdot10^5}=0{,}1333 (in media 0,130{,}13 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): πk=Gkk!π0\pi_k=\frac{G^k}{k!}\pi_0 per k≤2k\le2 e πk=G22ρk−2π0=2ρkπ0\pi_k=\frac{G^2}2\rho^{k-2}\pi_0=2\rho^k\pi_0 per k≥2k\ge2 (infatti G22=4ρ22=2ρ2\frac{G^2}{2}=\frac{4\rho^2}2=2\rho^2). La normalizzazione dà, per m=2m=2, π0=[1+2ρ+2ρ21−ρ]−1=1−ρ1+ρ=0,93331,0667=0,875.\pi_0=\left[1+2\rho+\frac{2\rho^2}{1-\rho}\right]^{-1}=\frac{1-\rho}{1+\rho}=\frac{0{,}9333}{1{,}0667}=0{,}875. (Verifica: 1+2ρ+2ρ21−ρ=(1+2ρ)(1−ρ)+2ρ21−ρ=1+ρ1−ρ1+2\rho+\frac{2\rho^2}{1-\rho}=\frac{(1+2\rho)(1-\rho)+2\rho^2}{1-\rho}=\frac{1+\rho}{1-\rho} ✓.) Quindi: π1=2ρπ0=0,1167,π2=2ρ2π0=0,00778,P[x≥3]=2ρ31−ρπ0=0,000556.\pi_1=2\rho\pi_0=0{,}1167,\qquad\pi_2=2\rho^2\pi_0=0{,}00778,\qquad P[x\ge3]=\frac{2\rho^3}{1-\rho}\pi_0=0{,}000556.

  • Un lavoro trova entrambi i processori disponibili (sistema vuoto, PASTA): π0=0,875\pi_0=\mathbf{0{,}875}.
  • Entrambi occupati: P[x≥2]=2ρ21−ρπ0=1−π0−π1=0,00833P[x\ge2]=\frac{2\rho^2}{1-\rho}\pi_0=1-\pi_0-\pi_1=\mathbf{0{,}00833} (cioè 1120\frac1{120}; è la probabilità di Erlang C, CC).

Le quattro uscite del demone e la compressione

Il demone restituisce: OO se x=0x=0, II se x=1x=1, EE se x=2x=2 (due occupati, nessuno in coda), WW se x≥3x\ge3. Probabilità: P(O)=0,875,P(I)=0,11667,P(E)=0,007778,P(W)=0,000556.P(O)=0{,}875,\quad P(I)=0{,}11667,\quad P(E)=0{,}007778,\quad P(W)=0{,}000556. In un giorno il demone calcola 86 40086\,400 valori (uno al secondo). Con 44 simboli servono ⌈log⁡24⌉=2\lceil\log_24\rceil=2 bit per simbolo: 2⋅86 400=172 8002\cdot86\,400=172\,800 bit =21,6=21{,}6 kilobyte (a 88 bit/byte). Il registro da 88 kilobyte ha 8⋅1024⋅8=65 5368\cdot1024\cdot8=65\,536 bit (o 64 00064\,000 bit se 11 kB =1000=1000 byte): non basta. Ma i simboli sono molto sbilanciati: l'entropia è H=0,875log⁡210,875+0,1167log⁡210,1167+0,00778log⁡210,00778+0,000556log⁡210,000556=0,1686+0,3616+0,0545+0,0060=0,5907 bit/simbolo.H=0{,}875\log_2\frac1{0{,}875}+0{,}1167\log_2\frac1{0{,}1167}+0{,}00778\log_2\frac1{0{,}00778}+0{,}000556\log_2\frac1{0{,}000556}=0{,}1686+0{,}3616+0{,}0545+0{,}0060=0{,}5907\ \text{bit/simbolo}. 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 L~\tilde L vicini a HH: 86 400⋅0,5907=51 03586\,400\cdot0{,}5907=51\,035 bit, meno di 65 53665\,536 (e di 64 00064\,000): è possibile salvare l'intero giorno. I valori campionati a distanza di 11 s si possono considerare indipendenti (il tempo di servizio è di μ\mus: il sistema "dimentica" lo stato in un tempo brevissimo rispetto a 11 s), quindi la sorgente si tratta come senza memoria.

Quale codice? Huffman simbolo per simbolo (lunghezze 1,2,3,31,2,3,3): L~=0,875+0,2333+0,0233+0,0017=1,133\tilde L=0{,}875+0{,}2333+0{,}0233+0{,}0017=1{,}133 bit, cioè 97 92097\,920 bit: non basta (non si migliora molto sul codice fisso a 22 bit perché il simbolo più probabile non può costare meno di 11 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 (1616 parole) L~N=0,715\frac{\tilde L}N=0{,}715 bit/simbolo, cioè 61 79061\,790 bit <65 536<65\,536 ✓ (e <64 000<64\,000 ✓); con terne 0,6220{,}622 bit/simbolo (53 77853\,778 bit); con blocchi di 55 simboli 0,5950{,}595 (51 39751\,397 bit, molto vicino al limite 51 03551\,035). La codifica aritmetica darebbe praticamente HH.

Il sottostato I1I_1, I2I_2

Se i lavori vanno "indifferentemente" al primo processore libero, i due processori sono equivalenti e per simmetria P[processore 1 occupato∣I]=12.P[\text{processore 1 occupato}\mid I]=\frac12. Con la suddivisione I→{I1,I2}I\to\{I_1,I_2\} i simboli diventano 55: P(I1)=P(I2)=0,116672=0,05833P(I_1)=P(I_2)=\frac{0{,}11667}2=0{,}05833. La nuova entropia è H′=H+P(I)⋅1 bit=0,5907+0,1167=0,7073H'=H+P(I)\cdot1\ \text{bit}=0{,}5907+0{,}1167=0{,}7073 bit/simbolo (la scelta tra I1I_1 e I2I_2 aggiunge 11 bit di informazione ogni volta che si è in II). Totale giornaliero con un codice ideale: 0,7073⋅86 400=61 1150{,}7073\cdot86\,400=61\,115 bit <65 536<65\,536 (e <64 000<64\,000): basta ancora il registro da 88 kB, ma con meno margine: con Huffman su blocchi servono almeno terne (0,7390{,}739 bit/simbolo, 63 85263\,852 bit; con coppie 0,8210{,}821 bit/simbolo, 70 95170\,951 bit, non basta). Il margine si assottiglia: 61 11561\,115 bit sono il 93%93\% della capacità del registro, contro il 78%78\% del caso precedente.

alfabeto HH [bit/simbolo] bit/giorno con codice ideale codice a blocchi (Huffman)
{O,I,E,W}\{O,I,E,W\} 0,59070{,}5907 51 03551\,035 coppie: 61 79061\,790
{O,I1,I2,E,W}\{O,I_1,I_2,E,W\} 0,70730{,}7073 61 11561\,115 terne: 63 85263\,852

Lezioni in cui compare

Teoria collegata