


















































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Come i byte sono diventati l'unità di misura fondamentale della quantità di informazione e delle capacità di memoria. Viene inoltre illustrata la rappresentazione di numeri in base 2 (binaria) e la struttura di un calcolatore, inclusi i suoi componenti come processore, memoria cache, memoria principale e registri. Inoltre, vengono discusse le differenze tra CISC e RISC e la scelta di codifica delle istruzioni.
Tipologia: Appunti
1 / 58
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!



















































Powerpoint – Le origini in Leibniz Asini e bit Dedichiamo questo breve approfondimento all’origine della notazione binaria, anche allo scopo di accennare brevemente ad uno dei molti contributi che il filosofo e matematico di G. W. Leibniz (1646-1716) ha dato alle origini del pensiero computazionale. Sappiamo che con 1 bit si rappresenta una scelta tra 2 alternative. Qui vediamo il famoso asino di Buridano che è assetato ma indeciso su quale secchio d’acqua scegliere per iniziare a bere. Le origini della numerazione binaria In assenza di informazione l’asino è costretto a morire di sete. Quello che gli manca è un bit di informazione che lo aiuti a dirigersi verso il secchio a sinistra (0) o il secchio a destra (1). (In realtà, questa storia semplifica la motivazione dei filosofi per discutere questa parabola, che è il problema del determinismo e del libero arbitrio.) Come rappresentare una scelta tra più di 2 alternative? Usando sequenze di bit, di lunghezza adeguata al numero di alternative da rappresentare. In generale: -n bit permettono di rappresentare una scelta tra 2n alternative; -per rappresentare una scelta tra N ≥ 1 alternative, sono necessari circa log2 n. di bit. Abbiamo allora la tabella: Alternative 1 2 3 4 5 6 7 8 ... Bit 0 1 2 2 3 3 3 3 ... Leibniz Leibniz era in contatto epistolare con i missionari gesuiti in Cina, in particolare il Padre Bouvet che lo informò nel 1701 che il metodo di contare con i numeri in base 2 comunicatogli in precedenza da Leibniz svelava il mistero delle figure di Fo-Hi, associate allo yin e yand della filosofia taoista secondo il Libro dei Mutamenti, o I-Ching. La rappresentazione delle figure per lo yin e lo yang mediante linee spezzate permette la costruzione di 23 trigrammi (cioè sequenze di 3 figure) e di 2 6 esagrammi (cioè sequenze di 6 figure), equivalentemente di 8 numeri binari di 3 bit e di 64 numeri binari di 6 bit. Peano e il byte C’è una specie di appendice a questa breve storia della scoperta leibniziana della corrispondenza tra rappresentazione binaria e le figure dell’I-Ching. Infatti, le sequenze prese in considerazione da Leibniz non comprendono le sequenze di 8 bit che costituiscono il byte, il gruppo di bit associato ai caratteri della tabella ASCII (estesa).
Tuttavia, un pioniere della logica matematica e ammiratore dell’opera di Leibniz, Giuseppe Peano, nel 1898 inventa una stenografia basata su elementi che corrispondono a gruppi di 8 cifre binarie, osservando che il loro numero è all’incirca pari a quello delle sillabe delle lingue europee. Non è ancora l’origine ufficiale del byte, perché non abbiamo prove che l’idea di Peano abbia avuto influenza sull’origine di questa unità di misura. Quello che è noto è però che Peano si dedicò alla realizzazione di un congegno meccanico per scrivere utilizzando questo codice. Powerpoint - Bit e Byte Il bit è l'unitá minima di misura dell'informazione (dall'inglese “binary digit”), definita come la quantità minima di informazione che serve a distinguere due possibili eventi. Un bit è una cifra binaria, ovvero uno dei due simboli del sistema numerico binario, classicamente chiamati “zero” 0 e “uno” 1. Una sequenza di 8 bit viene chiamata byte, nome che deriva dalla parola inglese “bite” (“morso”, “boccone”, “pezzo” in Italiano) coniato anche per assonanza col termine “bit”, ma rinominato per evitare confusioni accidentali di pronuncia con questo. Il byte è divenuto l'unitá di misura fondamentale della quantità di informazione e delle capacità di memoria La possibilità di rappresentare informazioni di varia natura attraverso numeri permette di manipolare le informazioni rappresentate attraverso operazioni fra numeri che i calcolatori sono in grado di compiere in modo efficiente. Powerpoint - Rappresentazione di numeri in bit Comunemente, i numeri vengono scritti in notazione posizionale. In notazione posizionale, il significato di ogni cifra dipende dalla sua posizione. Per esempio, i due numeri 73 e 37 hanno significati diversi nonostante siano composti dalle stesse cifre (“3” e “7”). In base 10, le cifre che compongono i numeri interi hanno significato (da destra verso sinistra) di unita`, decine, centinaia, etc. Si veda il seguente esempio: Allo stesso modo, nella rappresentazione di numeri in base 2 (binaria), le “cifre” possibili sono soltanto due “0” e “1” e, in modo analogo nella base 10, il loro valore è uguale a potenze crescenti della base numerazione 1 = 20, 2 = 21 , 4 = 22 , 8 = 23 , etc (destra verso sinistra). Quindi, per esempio, il numero binario 10011 sarà uguale al numero (10011) = (19) Si osservi che si usa la notazione (x) per dire che il numero x e rappresentato in base p. Inuna sequenza di bit si usa chiamare il bit più a destra come il meno significativo (vale meno, come le unità in base 10). Analogamente, il bit più a sinistra si chiama bit più significativo. Oltre alla rappresentazione in base 10, che è per noi più naturale, e quella binaria appena descritta, esiste un'altra rappresentazione che riveste un ruolo di notevole importanza nell'informatica: la rappresentazione esadecimale. Il sistema numerico esadecimale (a volte abbreviato come hex) è un sistema numerico posizionale in base 16. Per questo motivo, ha necessità di usare 16 simboli per rappresentare le cifre. Oltre alle “classiche” cifre da 0 a 9 presenti nella numerazione in base 10, che hanno lo stesso valore della base 10, la rappresentazione esadecimale utilizza le seguenti sei cifre aggiuntive:
In una tabella di verità sono elencate tutte le possibili combinazioni delle variabili coinvolte in un’espressione su ogni riga. Inoltre, per ogni possibile valore delle variabili viene scritto il valore dell’espressione. Nelle tabelle di verità, il valore “1” rappresenta “vero”, mentre lo “0” rappresenta “falso”. In seguito sono riportate le tabelle di verità delle sopra menzionate operazioni elementari. x y NOT x x AND y x OR y x XOR y 0 0 1 0 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 1 0 1 1 0 È possibile comporre espressioni booleane complesse. Per esempio, la seguente espressione: w = (x AND y ) XOR (x OR z) ha la seguente tabella di verità: x y z x AND y x OR y w 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 1 1 0 Si osservi che:
Oppure: (9A) XOR (B1) = (10011010) XOR (10110001) = (00101011) = (2B) Powerpoint - Il file Il file è una sequenza ordinata di byte. Quindi due file con gli stessi byte, ma con ordine diverso, sono diversi. Per esempio, un file con contenuto (scritto di seguito attraverso rappresentazione esadecimale dei singoli byte) FC F è diverso dal file che contiene F4 FC I file sono spesso memorizzati sul disco. La codifica dell'informazione è il modo in cui un certo tipo di informazione (testi, immagini, etc) è tradotta in un file, ossia una sequenza di byte. Si dice che una certa codifica rappresenta un certo tipo di informazione. I termini codifica e rappresentazione dell'informazione, si usano spesso come sinonimi. Si possono codificare vari tipi di informazione: testi, immagini, suoni, istruzioni. Lo stesso tipo di Informazione (per esempio le immagini) può essere codificata attraverso diversi tipi di codifica (le immagini hanno varie codifiche o formati: JPG, GIF, PNG, etc.). Fra le varie codifiche di uno stesso tipo di informazione non ne esiste una migliore. Per esempio, il JPG è un formato di immagine che riduce molto la dimensione del file e si presta quindi bene ad essere usato per le immagini dei siti web. Il formato TIFF, invece, è molto dettagliato e si presta quindi bene per rappresentare le fotografie in formato digitale. I file salvati sul disco hanno dei nomi. Per convenzione la loro estensione (ultimi caratteri dopo il punto “.”) determina l'informazione rappresentata e la sua codifica. Esempio:
russo: Њдщ fine è la seguente sequenza di byte (in esadecimale) 72 75 73 73 6F 3A 20 D0 8A D0 B4 D1 89 0A 66 69 6E 65. Si osservi che ognuno dei 3 caratteri in cirillico Њдщ rappresentato da 2 byte (tutti e tre i caratteri sono codificati dalla stringa di byte D0 8A D0 B4 D1 89 ), diversamente da quanto avviene nella codifica ASCII standard. Inoltre, ogni byte della codifica estesa (che non è ASCII standard) ha il bit più significativo uguale a 1. Ad oggi, la codifica UTF-8 richiede da 2 a 4 byte per rappresentare un solo carattere. Powerpoint - Introduzione alla rappresentazione delle immagini Come nel caso del testo, anche per le immagini è necessario tradurre un'immagine in sequenza di byte (numeri da 0 a 255). In questo caso l'idea è la seguente:
Innanzi tutto, un programma è una sequenza di istruzioni. Così come la codifica di un testo si realizza concatenando le codifiche delle parole che lo compongono, la codifica di un programma si realizza concatenando le codifiche delle singole istruzioni che lo compongono. Un programma codificato, detto anche file eseguibile, potrà essere eseguito da un calcolatore. Passiamo quindi a vedere la codifica della singola istruzione. La codifica di un'istruzione è una sequenza di byte composta da due componenti distinte concatenate fra loro:
Powerpoint - Il processore Il processore esegue continuamente istruzioni. Non appena viene acceso inizia ad eseguire la prima istruzione contenuta in una locazione di memoria nota e continua così fino allo spegnimento. Registri Per l'esecuzione delle istruzioni utilizza i registri. I registri sono piccole zone simili alla memoria, ma interne al processore, su cui il processore può scrivere e leggere i dati più velocemente rispetto a quanto farebbe sulla memoria. I registri vengono identificati da un nome. Il nome dei registri è diverso da processore a processore in base a caratteristiche interne (per esempio, i registri dei processori Intel si chiamano: EAX, EBX, etc.). Seguendo la metafora della cucina, i registri rappresentano il piano di lavoro sul cui gli ingredienti (i dati) vengono messi appena prima di essere elaborati: il cuoco, prima di iniziare a cucinare prende gli ingredienti di cui ha bisogno e li tiene a disposizione sul piano di lavoro. Allo stesso modo, il processore preleva dalla memoria i dati di cui ha bisogno e li mette nei registri. Non appena tutti i dati saranno sui registri, il processore potrà eseguire le istruzioni più velocemente. Il vantaggio di svolgere operazioni sui registri invece che sulla memoria è che i primi, essendo piccole celle di memoria fisicamente vicine al processore, sono molto più veloci perché permettono l'accesso ai dati senza dover accedere al bus di comunicazione. Esistono diversi tipi di registro:
Fase di fetch : Il processore preleva dall'indirizzo di memoria contenuto nel Program Counter, l'istruzione che dovrà essere eseguita e la scrive in un altro registro chiamato Istruction Register (IR). Fase di decode : Il processore esamina l'istruzione presente nell'IR, la decodifica e, sulla base della sua decodifica, ne calcola la lunghezza (in byte). Una volta calcolata la lunghezza dell'istruzione, il processore incrementa il PC del numero corrispondente alla lunghezza dell'istruzione. In questo modo, durante la prossima fase di fetch il Program Counter conterrà correttamente l'indirizzo di memoria dell'istruzione successiva. Fase di execute : Il processore preleva gli operandi che saranno necessari per l'esecuzione. Il processore esegue quindi l'istruzione. Una volta eseguita si torna alla prima fase (di fetch) in cui verrà prelevata la prossima istruzione. All'accensione, il valore del PC è pari a zero. Inizia quindi a prelevare la prima istruzione dall'indirizzo zero e così via come descritto in precedenza, fino al suo spegnimento. Modalità di codifica delle istruzioni Ci sono modalità diverse per codificare le istruzioni. Le due famiglie di codifica principali sono:
Per località spaziale, invece, si intende che se una certa locazione di memoria è stata acceduta, allora anche locazioni di memoria limitrofe (ovvero con indirizzi vicini) saranno probabilmente accedute prossimamente. Per esempio, nella fase di fetch del codice, le istruzioni vengono prelevate in sequenza. Seguendo la metafora della cucina, lo sfruttamento della località temporale equivale a tenere a portata di mano in dispensa gli ingredienti (dati) utilizzati più frequentemente, evitando quindi di prelevarli dal supermercato (memoria) tutte le volte. Nelle architetture di calcolatori moderne, possono esistere livelli diversi di cache, a seconda della loro vicinanza al processore (che poi determina la velocità nell'accesso). Si parla di cache L1, L2, L3, etc. Al crescere dell'indice del livello della cache, le cache memory diventano sempre più grandi, lontane dalla CPU e lente. Quindi, la cache di livello L1 è la più vicina (al processore) e veloce, ma anche la più piccola. Abbiamo detto che l'obiettivo della cache (a prescindere dal suo livello) è quello di mantenere le informazioni che si potranno rivelare più utili per l'esecuzione del codice. Se il processore trova all'interno della cache i dati cercati avviene un cache hit e l'accesso al dato avviene in modo più rapido. Altrimenti, se i dati richiesti dal processore non si trovano nella cache avviene un cache miss e i dati devono essere prelevati dalla memoria. Evidentemente, l'accesso ai dati è più veloce se avviene un cache hit rispetto al tempo richiesto nel caso di un cache miss. Gerarchia di memoria Abbiamo visto che la cache serve a rendere disponibili i dati utilizzati più frequentemente. Questo principio viene applicato estensivamente a vari livelli dal più basso (e più vicino al processore) al più alto (e più lontano). Per descrivere questa organizzazione di tanti tipi diversi di memoria dalle più vicine alle più lontane si usa il termine di gerarchia di memoria. In Tabella, sono riportati alcuni valori tipici delle memorie coinvolte nel calcolo. Caratteristiche di vari tipi di memoria. Tipo di memoria access time capacità costo Registri 1 100 0. Cache 10 10 10 Main memory 50 4 x 10 0 Disco SSD 10 10 5 x 10 Disco HDD 10 10 3 x 10 USB key 10 10 5 x 10 Cloud storage 10 10 10 Oltre al tempo di accesso, capacità e costo, hanno un'importanza anche
Architetture multi-processore Il processore, le memorie e tutti i circuiti integrati (integrated circuits, ICs, in inglese) sono circuiti elettronici realizzati su silicio. Attraverso a un processo simile alla stampa chiamato litografia, il silicio può diventare sia conduttore che isolante. Questo permette di disegnare circuiti integrati sul silicio. Inoltre, il silicio è disponibile in quantità abbondante e a basso prezzo. Fino al 2004 circa, l'aumento delle prestazioni della CPU è avvenuto aumentando la densità di integrazione: sulla stessa area di silicio si era in grado di disegnare un numero sempre maggiore di transistor e quindi di realizzare circuiti sempre più complessi e processori sempre più potenti. Lo sviluppo dei processori ha seguito una legge empirica detta Legge di Moore (Moore's law) che determina una crescita esponenziale del numero di transistor in un circuito integrato. Secondo Moore, il numero di transistor presenti in un circuito integrato raddoppia ogni 2 anni. Nel 2004, il nuovo processore della Intel (Intel Tejas) fu cancellato dallo sviluppo perché era fisicamente impossibile raffreddarlo. Difatti, raggiungeva una densità di calore pari al reattore di un missile. Dal 2004 in poi si è passati da un'architettura a singolo processore a una multi-processore. Oggi l'aumento delle prestazioni non avviene più migliorando la singola CPU, ma aggiungendo un numero sempre crescente di processori. In questo caso si parla di architetture multi-processore o multi-core.
Powerpoint - Il sistema operativo Il sistema operativo (abbreviato SO, oppure OS dall'Inglese Operating System, come in iOS oppure MacOS) offre l'accesso alle risorse hardware (HW) e software (SW) in un modo più semplice per il programmatore e una visione astratta dell'hardware. L'astrazione delle risorse offerta dal sistema operativo ha vantaggi e svantaggi. Vantaggi: A prescindere dall'hardware sottostante il programmatore non cambia il proprio programma, quindi le applicazioni non devono essere riprogrammate se cambia la dimensione di memoria del telefono (ad esempio se si passa a a un telefono con memoria maggiore): è compito del SO gestire la memoria. Le applicazioni usano la memoria attraverso il SO. Svantaggi: Il SO è comunque del software aggiuntivo che introduce una piccola perdita di prestazioni rispetto all'utilizzo dell'hardware direttamente da parte del programmatore. Questo accade perché il SO, fungendo da mediatore fra l'applicazione e le risorse hardware disponibili, richiede del tempo aggiuntivo per lo svolgimento delle operazioni richieste dal programma. In generale, i vantaggi sono superiori agli svantaggi in quasi tutti gli ambiti applicativi e quindi il SO è sempre presente. Esempi di sistema operativo sono: Linux, MacOS, Microsoft Windows. Le risorse gestite dal SO includono:
Quando una CPU passa dall'esecuzione di un processo A a quella di un altro processo B avviene un context switch ("cambio di contesto" in italiano) fra i due processi. Attesa di un evento (o bloccaggio di un processo) Durante l'esecuzione di un processo, può essere necessario che il processo si blocchi in attesa di un evento. Questo determina in passaggio dallo stato esecuzione allo stato bloccato del processo. Esempi di eventi che possono determinare il bloccaggio di un processo sono:
Per illustrare meglio la schedulazione dei processi, utilizzeremo nuovamente della metafora della cucina. In questa metafora, rappresentiamo il processore con un cuoco capace di svolgere le tipiche operazioni che si compiono in cucina. I processi da svolgere sono, come visto negli esempi passati, le ricette. Nell’esempio che verrà illustrato, ipotizzeremo di dover eseguire 2 ricette: un pesce sotto sale e delle patate al forno. Si sottolinea entrambi i due processi richiedono l’utilizzo della risorsa condivisa “forno”. Vedremo quindi come verrà utilizzata tale risorsa. Andiamo quindi a illustrare una possibile schedulazione di questi due processi “pesce” e “patate” il cui stato verrà riportato nel disegno in basso. In questo esempio il tempo scorre da sinistra verso destra per entrambi i processi. Inizialmente, viene ordinato del pesce. Siccome il cuoco/CPU è disponibile, inizia immediatamente la preparazione del pesce. Secondo la terminologia dei sistemi operativisi dice che il processo “pesce” passa in stato esecuzione. Mentre il cuoco/CPU sta preparando il pesce, vengono ordinate delle patate al forno. Il nuovo processo “patate” viene quindi creato. Siccome il cuoco non è disponibile, il processo “patate” non potrà eseguire, rimanendo in stato pronto. Dunque abbiamo il processo “pesce” in esecuzione, mentre il processo “patate” appena creato entra in stato pronto. Il cuoco/CPU conclude la preparazione della teglia con il pesce e lo mette in forno. Dovrà attendere 30 minuti per la cottura. Il processo “pesce” è bloccato in attesa della fine della cottura Il cuoco adesso è libero e il processo patate può passare dallo stato pronto allo stato esecuzione. Nella situazione rappresentata adesso, il cuoco/CPU ha terminato la preparazione della teglia con le patate. Siccome il forno però è occupato, il processo “patate” passa in stato bloccato in attesa della liberazione del forno. Quando la cottura del pesce termina, la risorsa condivisa “forno” si libera. Il cuoco esegue quindi brevemente il processo “patate” infornando la teglia di patate. Dopo aver messo le patate nel forno, il cuoco/CPU riprende l’esecuzione del pesce e il processo “patate” è bloccato in attesa che trascorra il tempo di cottura. La cottura delle patate è conclusa. Si libera la risorsa forno Il processo “patate” e` quindi pronto per l’esecuzione. Potrà effettivamente eseguire quando il “pesce” sarà terminato La fase finale della preparazione del pesce sotto sale termina. Il cuoco/CPU può quindi riprendere uno dei processi in stato pronti presenti. Nell’esempio, è presente soltanto il processo di preparazione delle patate al forno che viene quindi messo in esecuzione. Infine, anche il processo della ricetta per la preparazione delle patate al forno può terminare non appena il cuoco/CPU ha concluso la preparazione del pesce. Proviamo quindi a tirare delle conclusioni sulla base degli esempi appena visti. Innanzitutto il numero dei processi in esecuzione non può superare il numero delle CPU disponibili. Abbiamo inoltre visto che sono presenti due stati in cui un processo non viene eseguito: lo stato pronto e il processo bloccato. Proviamo a dire due parole in più sulla differenza tra questi due stati. Quando un processo è in stato pronto, vuol dire che lui non può eseguire perché non c’è alcuna CPU disponibile per l’esecuzione, il processo avrebbe la possibilità di eseguire, ma le CPU non sono disponibili. Diversamente, quando il processo è in stato bloccato, è il processo stesso che non è disponibile per l’esecuzione; si ricordi per esempio il caso delle patate che dovevano essere inserite in forno, quando il forno non era disponibile: in quel caso il processo patate rimaneva boccato, perché non era fisicamente possibile portarlo avanti anche se il cuoco avesse voluto dedicare il proprio tempo alle patate.
In generale quando ci sono più processi pronti da eseguire, il processo che dovrà eseguire fra i vari processi pronti è scelto da un algoritmo che si chiama algoritmo di scheduling, in inglese scheduling algorithm. Powerpoint - La comunicazione e i suoi protocolli Aspetti semiotici della comunicazione Le possibilità di comunicazione consentite dalle tecnologie informatiche sono cresciute oltre ogni aspettativa negli anni recenti, e continuano a crescere assumendo nuove forme. Solo 25 anni fa sembrava miracoloso potere scrivere un messaggio (in puro testo) inviandolo attraverso un computer collegato in rete, ricevendolo in tempo quasi reale in qualsiasi parte del pianeta. Ora questa possibilità è diventata un luogo comune, e non solo si spediscono immagini e testi di qualsiasi livello di complessità grafica, ma ci si scambia file audio, film, denaro e contratti. È utile inquadrare questi fenomeni comunicativi in un ambito concettuale generale, non solo per mettere ordine e delimitarne l’ambito, ma anche per correggere l’impressione che si tratti di meri aspetti tecnologici. Dato che quello che viene scambiato, dal punto di vista di chi usa le tecnologie, sono segni, cioè cose che hanno significato nell’ambito di qualche attività umana, la semiotica potrebbe fornire un lessico utile a definire questo ambito concettuale. La semiotica è una disciplina molto antica che ha acquistato vita indipendente grazie a contributi di filosofi e logici attraverso i secoli, ma in questo contesto siamo solo interessati a quella minima parte della terminologia semiotica che ci permette di parlare delle tecnologie ICT come di tecnologie per la comunicazione (per una vasta panoramica sulla comunicazione). Un processo di comunicazione ha inizio con la produzione di segni da parte di un mittente, che sotto forma di messaggi raggiungono un destinatario muovendosi su un canale. Questa descrizione estremamente sintetica di un processo comunicativo deve essere letta in questo ambito interpretando i termini mittente, destinatario e canale nel senso più ampio possibile. Non è nemmeno necessario che mittente e destinatario siano persone (potrebbero essere insetti, per esempio; la disciplina della zoosemiotica studia appunto i processi di comunicazione animale), o che la produzione di messaggi sia intenzionale (le tracce lasciate da un ladro e interpretate da un investigatore normalmente non lo sono), e il canale potrebbe permettere ai messaggi di muoversi solo attraverso il tempo, non attraverso lo spazio (come una mappa sepolta per secoli). Questo modello del processo comunicativo è una semplificazione di quello utilizzato nel lavoro pionieristico di Claude Shannon e Warren Weaver [5] sulla teoria della comunicazione, e può essere descritto graficamente dallo schema: trascurando, in particolare, una possibile fonte di rumore sul canale che è molto rilevante nel campo delle comunicazioni elettriche. Ci chiediamo ora: che cosa è che viaggia realmente sul canale? L’abbiamo chiamato messaggio, ma un messaggio potrebbe essere interpretato in modi diversi da mittente e destinatario anche senza essere alterato dal suo passaggio attraverso il canale. Quindi quello che effettivamente il canale contiene è un segnale fisico, in cui il messaggio è codificato. Così, prima di entrare nel canale, il messaggio viene codificato sotto forma di segnale dal lato del mittente, mentre dal lato del destinatario viene decodificato per estrarre il messaggio originale.