Informatica per la comunicazione - lezione 5 - 2013-14 Appunti 5-6.pdf · 2014-02-28 · locale che...

69
Informatica per la comunicazione - lezione 5 -

Transcript of Informatica per la comunicazione - lezione 5 - 2013-14 Appunti 5-6.pdf · 2014-02-28 · locale che...

Informatica per

la comunicazione" - lezione 5 -  

3"

+"5"

stampa"

“ciao”"

?"

Ma da dove provengono i dati e le istruzioni che vengono elaborati dalla CPU?!

Riprendiamo la metafora della persona che fa di conto.I dati di un problema sono scritti sul suo quaderno.!

RAM"

Presentiamo il secondo componente del computer, che corrisponde al quaderno da cui chi fa di conto prende i dati, e su cui annota i passaggi intermedi e i risultati finali.Questo componente si chiama RAM (Random Access Memory), o memoria centrale in italiano.!

Anche la RAM è costituita da circuiti elettronici con numerosi transistor. La configurazione appare più complessa perché lo scopo della RAM non è di rispondere a degli stimoli elettrici inviando segnali in uscita, ma di conservare al suo interno l’informazione che le viene inviata. Realizzare una memoria richiede una composizione di transistor più complessa.!

Il nome in inglese della RAM vuole sottolineare la caratteristica del dispositivo di memoria che permette l’accesso alle informazioni in esso contenuti in qualunque posizione. Si può scegliere un punto di accesso casuale (random access), e la RAM è in grado di fornire il dato presente in quel punto. Il nome italiano, invece, sottolinea il ruolo centrale svolto dalla RAM all’interno del calcolatore: la RAM lavora in strettissimo contatto con la CPU.!

operazioni, operandi "

risultati"Dalla RAM provengono i dati e le operazioni che la CPU deve eseguire su di loro. !I risultati ottenuti in uscita dalla CPU vengono a loro volta memorizzati sulla RAM.!

8"

Vediamo ora le altre componenti che partecipano alle operazioni del computer: chiaramente con solo la CPU e la RAM non arriviamo a visualizzare il risultato di un’operazione sullo schermo.!

3"+"5"

Abbiamo detto che i dati e le operazioni da eseguire sono memorizzate nella RAM.!

3"+"5"

Dalla RAM, vengono trasferiti alla CPU, per ordine della CPU stessa (o meglio, della CU) che preleva istruzioni da eseguire dalla RAM in continuazione, dall’accesione del computer al suo spegnimento.!

8"

Ottenuto il risultato in uscita dalla ALU, esso viene mandato alla RAM…!

8"

…dove viene memorizzato.!

8"stampa su schermo"

La CPU continua a prelevare istruzioni dalla RAM e caso vuole che la prossima comandi una stampa su schermo del risultato dell ’operazione fatta in precedenza.!

8"

La CU nella CPU recepisce il comando, e invia appositi segnali per far eseguire il trasferimento del risultato dalla RAM verso lo schermo.!

8"

Scheda grafica"

I segnali della CU fanno sì che il dato venga trasferito dalla RAM al componente che gestisce i segnali da inviare allo schermo: la scheda grafica (o graphic card in inglese)…!

8"

*  

…e dalla scheda grafica allo schermo. Quest’ultimo trasferimento è più complesso degli altri perché dalla codifica digitale dell’informazione bisogna passare alla versione analogica adatta all’essere umano di fronte allo schermo: non più segnali elettrici, bensì onde luminose che rappresentano un segno.!

GPU"

La scheda grafica mostra di avere una ventola. In realtà, anche la CPU è sempre accompagnata da una ventola, che si accende non appena il lavorio dei calcoli alza la temperatura dei circuiti facendola avvicinare a una soglia d’allerta. Senza ventilazione, ogni processore fonderebbe a causa della sua stessa attività (spostare elettroni da una parte all’altra produce calore). Di fatto, la scheda grafica ha un suo processore, la GPU (Graphical Processing Unit), a cui la CPU centrale delega l’esecuzione di istruzioni legate alla visualizzazione su schermo. Per la visualizzazione di un semplice ‘8’ la CPU se la cava tranquillamente, ma nel caso di applicazioni grafiche più pesanti come i giochi elettronici, la CPU si appoggia alla GPU per potersi dedicare ad altro. !

E’ un po’ come se la mano del calcolatore umano avesse un piccolo cervello locale che la guida nella scrittura, senza impegnare il cervello principale. !

*  

C’è un altro motivo per porre un asterisco sul trasferimento di informazione dalla scheda graficha allo schermo.!

Questo è il primo trasferimento che esce dai confini della scatola che racchiude i componenti interni del computer.!

Periferica"I componenti esterni del computer si chiamano periferiche. Lo schermo è, appunto, una periferica del computer.!

Periferiche di input"

Le periferiche di input sono quelle che permettono il flusso di informazioni dall’esterno verso l’interno del computer.!

Periferiche di output"

Le periferiche di output, viceversa, sono quelle che permettono il flusso di informazioni dall’interno verso l’esterno del computer.!

Avete notato che il Wii controller era in entrambi i gruppi di periferiche? Questo perché esistono periferiche che permettono il flusso di informazione in entrambe le direzioni. Nel caso del Wii controller, esso permette all’utente di muovere il cursore nel menu della Wii oppure di controllare il gioco (input), ma, in determinate situazioni di gioco o quando il cursore passa sopra una voce selezionabile del menu, esso vibra, fornendo informazione all’utente (output).!

Nel seguente lucido il Wii controller è mostrato con altre periferiche che sono sia di input sia di output.!

PS3 Dual Shock controller (Sony)!

Touch screen dell’iPhone (Apple)!

Hard Disk esterno (WD)!

Chiavetta USB (Lacie)!

Wii controller (Nintendo)!

In particolare, focalizziamoci sulla chiavetta USB e l’hard disk esterno…!

…anch’essi, come la RAM, sono dispositivi di memoria.!

HD"

In realtà esiste un altro dispositivo di memoria interno al computer: l’hard disk, o hard drive, noto anche come disco fisso o disco rigido, in italiano.!

Confrontiamo la RAM con l’HD. Hanno caratteristiche complementari che fanno sì che entrambi siano necessari per il buon funzionamento di un computer.!

E’ un dispositivo elettronico fatto di transistor. !

E’ un dispositivo magnetico fatto da dischi e una testina di lettura e scrittura.!

E’ volatile: mantiene il contenuto memorizzato solo mentre è alimentata dall’elettricità. Una volta spento il computer, senza elettricità perde il suo contenuto. !

Memorizza i dati sotto forma di domini magnetici orientati nei suoi dischi. Come le calamite, essi non si esauriscono mai, e conservano l’informazione, anche senza elettricità. E’ non volatile.!

E’ molto veloce e riesce quindi a lavorare in sincronia con la CPU.!

E’ molto lento, quindi viene usato per conservare l’informazione a computer spento o per fare spazio nella RAM.!

SSD"Recentemente, in alternativa al classico HD magnetico, viene offerto un nuovo tipo di HD, detto SSD (Solid State Disk), che ha la stessa caratteristica di non volatilità, ma è basato su tecnologia elettronica, quindi senza parti meccaniche (dischi, testine) che possono guastarsi, e più veloce.!

Viene da chiedersi perché l’SSD non venga proposto come alternativa alla RAM volatile. In realtà, l’SSD, come le altre memorie elettroniche non volatili (chiavette USB, schede SD “Secure Digital” tipiche delle macchine fotografiche digitali), pur essendo più veloci dell’HD magnetico, sono comunque molto più lente della RAM, e non riuscirebbero a lavorare in sincronia con la CPU (che arriva a lavorare a frequenze di 3 GHz, ossia a compiere 3 miliardi di operazioni al secondo).!

L’HD magnetico rimane ancora la soluzione più diffusa per la conservazione di informazione a computer spento, perché decisamente la più conveniente dal punto di vista dei costi. La tecnologia SSD è relativamente nuova, ed ancora molto cara.!

Di fatto, l’HD è dove tutta l’informazione deve essere memorizzata prima dello spegnimento del computer. Quando “salvate” un documento, ciò che state facendo è ordinarne la memorizzazione nell’HD. L’HD è l’origine dei dati e delle istruzioni che dalla RAM vanno alla CPU. Prima di tutto vengono trasferiti dall’HD alla RAM. Questo è quello che succede quando accendete un computer: per un po’ di tempo dovete attendere perché sta avvenendo questo trasferimento.!

Bus"

Tutti i componenti di un computer sono collegati tra di loro attraverso un canale che trasporta segnali elettrici che rappresentano i dati, le operazioni su tali dati, e i comandi della CPU alle varie parti del computer. Il canale prende il nome di bus. Quando collegate una perifericha al computer (la stampante o una chiavetta USB “Universal Serial Bus”), la state in realtà connettendo al bus per renderla parte del sistema.!

Informatica per

la comunicazione" - lezione 6 -  

Strumenti per elaborare simboli"

Questa lezione verte su quali sono i simboli che si possono elaborare per mezzo dei computer.!

8"simbolo" simbolo"Ricordo che, in informatica, il termine “simbolo” ha un significato molto più debole che nelle discipline umanistiche: per “simbolo” intendiamo un qualunque segno, come ad esempio una cifra, senza alcun significato associato, come succede invece per il leone, a cui associamo per simbolismo il concetto di “coraggio”.!

8"

Avere delle semplici cifre su un computer sembra un po’ limitativo rispetto a quello che solitamente vediamo succedere sui computer intorno a noi.!

8"

Jonathan Franzen, ad esempio, ha scritto un intero romanzo sul suo computer.!

E, sicuramente, sui computer degli studenti del corso si svolgono almeno queste tre attività: i social network, l’ascolto di musica, e la visione di film.!

8"

Ragioniamo.Premessa 1: i computer sono basati sul modello di calcolatore proposto da Turing e non sono altro che esecutori automatici di operazioni su simboli.Premessa 2: con i computer scriviamo romanzi, navighiamo nei social network, ascoltiamo musica, guardiamo film.!

Conclusione:!scrivere romanzi, navigare nei social network, ascoltare musica, guardare film sono operazioni su simboli.!

Il ragionamento non fa una piega, ma la conclusione potrebbe lasciare perplessi.!

8"

Per capire meglio la conclusione del ragionamento precedente, occorre fare più chiarezza sul legame che c’è tra tutte queste attività e i simboli elaborati da un computer.!

codifica"

Tale legame è dato da una codifica.!

Codifica: corrispondenza biunivoca tra le entità di un particolare dominio e l’ insieme dei numeri naturali oppure un suo sottoinsieme."

Codifica: corrispondenza biunivoca tra le entità di un particolare dominio e l’ insieme dei numeri naturali oppure un suo sottoinsieme."

Una co r r i spondenza s i d i ce biunivoca quando ci sono tanti elementi da una parte quanti dall’altra, e ogni elemento viene messo in corrispondenza con uno e un sol’altro elemento.!

Codifica: corrispondenza biunivoca tra le entità di un particolare dominio e l’ insieme dei numeri naturali oppure un suo sottoinsieme."

In una codifica, gli elementi presi in considerazione possono essere di qualunque tipo da una parte…!

Codifica: corrispondenza biunivoca tra le entità di un particolare dominio e l’ insieme dei numeri naturali oppure un suo sottoinsieme."

…ma dall’altra gli elementi devono essere dei numeri naturali.!

0"

1"

2"

3"

In altre parole, una codifica consiste nel far corrispondere a un elemento di nostro interesse uno e un solo numero naturale, come ad esempio avviene per gli studenti universitari, che ricevono un numero naturale che li caratterizza in maniera univoca: la matricola. Questo non vuol dire che lo studente stesso può venire elaborato da un computer, naturalmente, ma che almeno riusciamo a creare un riferimento allo studente che il computer può trattare.!

8"

Vediamo come si può creare una codifica per i testi.!

UTF-8" Universal Character Set Transformation Format – 8bit"

La codifica dei testi si basa sulla codifica dei caratteri che li compongono: se ad ogni lettera e ogni segno di punteggiatura faccio corrispondere un numero, ottengo una corrispondenza biunivoca tra lettere e numeri. Perché tale corrispondenza sia utile, deve essere nota e condivisa da tutti coloro che vogliono usare un computer per scambiarsi i testi così codificati. La presente tabella mostra una nota codifica: UTF-8!

108927350456345347653845098753094857039845628765039417538945734589349058340958447826296204237862386437826178162372762130487627634780123640237462837467637643764208701828736347565805656582760278635082716508217365827136502781356082173656573802783562387460215606098465246574568038047569345830948563094563074560384756038476501837465087314650138746507834560384756037486578346574658734506183745601837465018376456758403876573480187364571088573465783104587134653178451103874650  

Per poter essere elaborato da u n c o m p u t e r, i l t e s t o d i “Freedom” di Franzen deve essere codificato sotto forma di sequenza di numeri. Ciascun numero corrisponde in maniera unica a un carattere del testo.!

8"

Vediamo come si può costruire una codifica anche i social network come Facebook.!

Ciò che vediamo sul nostro computer di un social network non è altro che un insieme di testi e immagini.!

Ci siamo già occupati dei testi, quindi ora concentriamo la nostra attenzione sulle immaigini.!

Guardando una foto molto dettagliata di dolci bergamaschi, viene difficile da pensare che ci possa essere una corrispondenza con i numeri naturali.!

Guardando un’immagine a bassa risoluzione di SuperMario, si può invece intuire come può essere codificata una foto.!

pixel: picture element"

Nell’immagine di SuperMario, si possono riconoscere elementi quadrati di base, caratterizzati dalle posizione che occupano, e dal loro colore: i pixel.!

pixel (1/12000000)"

Anche questa foto è fatta di pixel. Semplicemente non li vediamo perché sono troppo piccoli. In questa immagine ce ne sono ben 12 milioni.!

La codifica delle immagini si basa sui pixel che la compongono. Come il testo viene considerato come una sequenza di caratteri per essere codificato…!

…così consideriamo una foto come una sequenza di pixel. Se riusciamo a codificare un pixel, possiamo codificare un’intera immagine.!

0   1   2  

codifica della posizione del pixel"

Abbiamo detto che la prima caratteristica di un pixel è la sua posizione. Se immaginiamo di inserire l’immagine in piano cartesiano, ecco che siamo in grado di individuare la posizione di pixel tramite le sue coordinate numeriche!

0   1   2  

codifica del colore?"

0   1   2  

Se immaginiamo di organizzare i colori in una tabella, allo stesso modo dei pixel siamo in grado di associare a ciascun colore un valore numerico, corrispondente alle coordinate del colore nella tabella.!

567872872983093948748974987498748467101187627862876783546354137676129123621352413651243873614983502385746754779090939423847293847283478237492384723894728347298374283647165155155625465463546354376473658475984759824757671511019824928493849340283918091740375474783474736478364734637843940109134813409463074560384756038476501837465087314650138746507834560384756037486578346574658734506183745601837465018376456758403876573480187364571088573465783104587134653178451103874650  

I pixel che compongono SuperMario, quindi, possono venire codificati in base alla loro posizione ed al loro co lo re , pe rmet tendo d i esprimere l’immagine, una sequenza di pixel, sotto forma di una sequenza di numeri.!

108927350456345347653845098753094857039845628765039417538945734589349058340958447826296567346374637463349348989810101029493848374873487394873481761764739487398473948738471893749183748374837483743814718397491384791834781347139847183947318478134718347387483478347384738748738473483748734873847384738478347834738478347834791837498137483483138746507834560384756037486578346574658734506183745601837465018376456758403876573480187364571088573465783104587134653178451103874650  

Si p rocede in man ie ra analoga per la foto da 12 milioni di pixel. Non è affatto un caso che le foto più dettagl iate occupino più spazio nel computer: ci sono semplicemente più pixel codificati.!

0   1   2  

Come si sarà notato, nella tabella che permette la codifica dei colori, non tutte le sfumature sono presenti. Basta prendere due quadrati adiacenti e immaginare di prendere il colore intermedio: esso non è chiaramente presente nella tabella, quindi non è un colore codificato.!

Questo vuole dire che solo una piccola parte dei colori presenti nello spettro dell’arcobaleno può essere codificato. Numerosissime sfumature (infinite, per essere precisi) rimangono tagliate fuori dalla codifica. D’altronde non è pensabile di avere una tabella di dimensioni infinite per accomodare le infinite sfumature dei colori.!

Analogicovs.

Digitale  

Questo è il problema della conversione dall’“analogico” al “digitale”: la codifica di fenomeni fisici comporta sempre una perdita di informazione. Volendo fare un parallelo con la matematica, i fenomeni fisici sono caratterizzati da sfumature infinitesimali analoghe ai numeri reali, mentre le codifiche sono corrispondenze con i numeri naturali, che, pur essendo infiniti, sono comunque molto minori di quelli reali e non riescono a fungere da riferimenti alle suddette sfumature.!

E’ il discorso delle persone che dicono che guardare una foto non potrà mai eguagliare la visione del vero.In realtà, tridimensionalità a parte, le codifiche attuali di colori arrivano a catturare milioni di sfumature, molte delle quali indistinguibili all’occhio umano. Quindi, seppur con perdite, le codifiche ci permettono di avere delle approssimazioni più che buone della realtà. !

Compressione  

Abbiamo menzionato prima che la foto dettagliata dei dolci dà luogo a una sequenza codificata di numeri molto più lunga di quella relativa al disegno molto semplice di SuperMario.Le lunghezze delle codifiche naturalmente dipendono da che cosa viene codificato: maggiore è l’informazione da codificare, più lungo è il risultato, e infatti la foto dei dolci (con tutti i dettagli e le sfumature dati dai 12 milioni di pixel) sicuamente occupa più spazio nel computer che il disegno di SuperMario (che, di fatto, è una sequenza di 16 x 12 pixel).!

Vi sono, però, modi diversi di descrivere la sequenza di pixel codificati, e, se scegliamo in maniera accorta, possiamo ottenere una descrizione più breve della stessa sequenza, in modo da farle occupare meno spazio sul computer, e anche risparmiare tempo nel trasmetterla da un computer all’altro.Chiamiamo “compressione” un modo per ottenere sequenze di simboli che descrivono una particolare informazione in maniera più breve del semplice elenco delle codifiche di ciascun elemento che la compone. !

pixel bianco, pixel verde, pixel verde, pixel giallo, pixel giallo, pixel giallo, pixel giallo, pixel verde, pixel verde, pixel verde, pixel verde, pixel bianco "

1 pixel bianco, "2 pixel verdi, 4 pixel gialli, 4 pixel verdi, 1 pixel bianco "

La descrizione dell’immagine di SuperMario, ad esempio, p u ò e s s e r e c o m p r e s s a descrivendone i pixel come mostrato nel secondo riquadro rosso.!

Qualunque tipo di informazione che può essere codificato, può essere compresso. Il rapporto di compressione, ossia quanto riusciamo a sintetizzarne la descrizione, dipende dal contenuto dell’informazione. (Immaginate di dover descrivere un rettangolo 16 x 12 tutto bianco. Come fareste?)!

8"

Vediamo ora come funziona la codifica che permette di avere musica sul computer.!

frequenza"

ampi

ezza"

timbro"

I suoni, e quindi anche la musica, sono dovuti a vibrazioni dell’aria (o di un qualsiasi mezzo*) che si propagano sotto forma di onde e che, colpendo i nostri timpani, danno luogo a ciò che noi percepiamo con le nostre orecchie. Le onde sonore sono caratterizzate da un’ampiezza (che determina l’intensità del suono: più è ampia l’onda più è forte il suono), una frequenza (che determina l’altezza della nota: note alte corrispondono a frequenze alte), e da una forma (che determina il timbro del suono: la mia voce, quella di Giovanna, pianoforte, violino, piatti…)!

*nel vuoto i suoni non si propagano!