Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Introduzione all'Informatica: Concetti di Base e Applicazioni - Prof. Pozzato, Appunti di Elementi di Informatica

Appunti del corso di Informatica con Pozzato per Lingue e Culture per il Turismo (TO)

Tipologia: Appunti

2020/2021
In offerta
30 Punti
Discount

Offerta a tempo limitato


Caricato il 13/06/2021

chiara-sento
chiara-sento 🇮🇹

4.5

(48)

13 documenti

1 / 57

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Informatica
Storia del calcolo automatico
calcolo formato da somma e sottrazioni che si può fare anche a mano (attività noiosa e incline
all’errore). Per secoli l’uomo ha cercato di porre rimedio a questo fatto “automatizzando” il
processo di calcolo; quindi il calcolatore viene in soccorso dell’uomo per risolvere problemi che
l’uomo trova noiosi, lunghi e che pur essendo in grado di svolgere non sarebbe al riparo da errori.
ABACO è la prima «macchina di calcolo»
nota (V millennio a.c.) il cui scopo è quello
di assistere l’essere umano mentre fa i
calcoli. Non molto diverso da un foglio di
carta. La logica dell’operazione compete
all’utente; l’abaco è esclusivamente un
supporto.
Un passo importante è quello
rappresentato dalla PASCALINA (XVII
secolo d.C.) ed è la prima vera innovazione
rispetto all’abaco. Permette di fare delle
somme ma la logica dell’operazione si
trova all’interno della macchina. La logica
che governa le operazioni è cablata nella
macchina calcolatrice. Questo calcolatore
permetteva di effettuare solo addizioni e
sottrazioni, non si possono fare le
moltiplicazioni e divisioni è di nuovo
l’utente a dover controllare il processo per
quanto riguarda le divisioni e le
moltiplicazioni. Il problema vero è che la
logica che governa le operazioni è cablata
nella macchina calcolatrice; la soluzione è
dunque trattare tale logica come parte dell’input (dati in ingresso alla macchina) della macchina.
PROGRAMMA:
Introduzione concetti di base + applicazioni dell’informatica
Rappresentazione delle informazioni
Architettura dell’elaboratore o HARDWARE [CPU, memoria..]
SOFTWARE [parte dei programmi; caratteristiche, programmi applicativi, sistema operativo,
uso di Windows, programmi di video scritture e uso di word..]
Reti di calcolatori
Multimedialità
Cenni di basi di dati [gestione delle grossi moli di dati]
Basi di dati [modello entità-associazioni; approfondimenti sul modello relazionale;
traduzione dal modello entità-associazione al modello relazionale; SQL]
HTML [pagine web]
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
Discount

In offerta

Anteprima parziale del testo

Scarica Introduzione all'Informatica: Concetti di Base e Applicazioni - Prof. Pozzato e più Appunti in PDF di Elementi di Informatica solo su Docsity!

Informatica

Storia del calcolo automatico

→ calcolo formato da somma e sottrazioni che si può fare anche a mano (attività noiosa e incline all’errore). Per secoli l’uomo ha cercato di porre rimedio a questo fatto “automatizzando” il processo di calcolo; quindi il calcolatore viene in soccorso dell’uomo per risolvere problemi che l’uomo trova noiosi, lunghi e che pur essendo in grado di svolgere non sarebbe al riparo da errori. ABACO è la prima «macchina di calcolo» nota (V millennio a.c.) il cui scopo è quello di assistere l’essere umano mentre fa i calcoli. Non molto diverso da un foglio di carta. La logica dell’operazione compete all’utente; l’abaco è esclusivamente un supporto. Un passo importante è quello rappresentato dalla PASCALINA (XVII secolo d.C.) ed è la prima vera innovazione rispetto all’abaco. Permette di fare delle somme ma la logica dell’operazione si trova all’interno della macchina. La logica che governa le operazioni è cablata nella macchina calcolatrice. Questo calcolatore permetteva di effettuare solo addizioni e sottrazioni, non si possono fare le moltiplicazioni e divisioni è di nuovo l’utente a dover controllare il processo per quanto riguarda le divisioni e le moltiplicazioni. Il problema vero è che la logica che governa le operazioni è cablata nella macchina calcolatrice; la soluzione è dunque trattare tale logica come parte dell’input (dati in ingresso alla macchina) della macchina.

PROGRAMMA :

 Introduzione → concetti di base + applicazioni dell’informatica  Rappresentazione delle informazioni  Architettura dell’elaboratore o HARDWARE [CPU, memoria..]  SOFTWARE [parte dei programmi; caratteristiche, programmi applicativi, sistema operativo, uso di Windows, programmi di video scritture e uso di word..]  Reti di calcolatori  Multimedialità  Cenni di basi di dati [gestione delle grossi moli di dati]  Basi di dati [modello entità-associazioni; approfondimenti sul modello relazionale; traduzione dal modello entità-associazione al modello relazionale; SQL]  HTML [pagine web]

In questa direzione si è mosso Charles Babbage che ha inventato il primo esempio di MACCHINA DI CALCOLO PROGRAMMABILE cioè qualcosa in grado di eseguire delle operazioni e di ricevere la logica di controllo di una nuova operazione. Babbage era molto avanti rispetto al suo tempo in quanto la tecnologia non era ancora sviluppata a sufficienza, la macchina analitica avrebbe dovuto funzionare a vapore e l’esigenza di automatizzare il calcolo non era forte. Le idee di Babbage vengono riscoperte nella prima metà del novecento da  Alan Turing uno dei primi padri dell’informatica e anche dell’intelligenza artificiale. Introduce MACCHINA DI TURING , è una macchina astratta di calcolatore che gli ha permesso di giungere a risultati clamorosi nel senso che ha tracciato a livello concettuale è possibile fare con le macchine attuali. Ha tracciato un confine tra i problemi che la macchina è in grado di risolvere e quelli che non è in grado di risolvere. Delinea ciò che è computazionalmente trattabile e problemi che se dati in pasto ai computer portano a una non determinazione e quindi a non poter completare l’esecuzione del programma stesso. Lo strumento teorico descritto per valutare che cosa si può calcolare ha di fatto tracciato la forma di quella che è l’attuale struttura del calcolatore; alla base del suo funzionamento c’è la stessa idea alla base della macchina analitica (Babbage).  John von Neumann contributo pratico descrivendo un calcolatore effettivamente costruibile; è ancora oggi il modello su cui si basano i computer moderni (smartphone, tablet, computer). Dopo von Neumann ci sono solo dei cambiamenti a livello tecnologiche spesso molto importanti e significative.

Informatica

INFORMATION AND COMMUNICATION TECHNOLOGY : informatica come tecnologia con risvolti ingegneristici e fisico-matematici del calcolo automatico, con teorie e tecniche di comunicazione. → COMPUTER SCIENCE : informatica come scienza basata sulla modellizzazione, formalizzazione e verifica sperimentale (teoria degli automi, logica formale, teorie del linguaggio).

TEMI DELL’INFORMATICA:  Calcolabilità [si occupa di cosa è calcolabile e cosa no; parte teorica]  Complessità [parte teorica con risvolti immediati; massiccia presenza di algoritmi per risolvere uno stesso problema; studio del comportamento asintotico degli algoritmi]  Teoria dei linguaggi formali  Algoritmi e strutture dati  Linguaggi di programmazione [permettono di comunicare al computer la procedura che in quel momento non è in grado di risolvere]  Compilatori e interpreti [interprete → macchina virtuale]  Architettura dei calcolatori [CPU, RAM]  Sistemi operativi [parte di base del software, comune a tutte le applicazioni like Windows, IOS; strato di software che si pone tra l’hardware e le applicazioni; fornisce repertorio di funzioni che semplificano la scrittura delle applicazioni]  Ingegneria del software [modo migliore per scrivere il software]

2 categorie principali:  SISTEMA OPERATIVO [software di base]: permette all’elaboratore di svolgere le proprie funzioni (Windows, MacOS)  PROGRAMMI APPLICATIVI

Dati → materia prima del trattamento dell’informazione  SEMPLICI : lettere e numeri  COMPLESSI : suoni, immagini, filmati, grafici + peso dei dati Tipi di dati, evoluzione temporale storica dei dati elaborati:  Dati numerici → primi ad essere elaborati dal computer, primi per l’organizzazione militari e poi per le grandi aziende  Parole → elaborate in promemoria, lettere, relazioni, articoli, libri  Elaborazione di numeri → consiste in operazioni relativamente semplici o in operazioni più complesse  Grafici → illustrare e rendere più comprensibile il significato di una tabella di dati numerici  Fotografie e altri elementi →memorizzati, elaborati e inseriti in documenti o presentazioni multimediali  Personaggi e oggetti animati  Suoni  Video

Un elaboratore elettronico basa il suo comportamento e attività sulla necessità di gestire dei dati e informazioni.

Rappresentazione delle informazioni

I computer non elaborano solo numeri, ma anche testi, immagini, suoni e filmati. Il computer è in grado solo di riconoscere due simboli 0 e 1 perché al suo interno è come se ci fossero componenti elettronici che possono essere considerati come un insieme di tanti interruttori che come tali possono essere accessi e spenti. Il vincolo della rappresentazione delle informazioni è che l’informazione deve essere rappresentabile in modo digitale. Tipi di segnali

 Segnali analogici → insieme continuo

di valori che trasmettono molte informazioni e sono sensibili alle interferenze. Deve essere rappresentatore sotto forma di frequenze 0 e 1 per poter essere inserito all’interno di un computer.

 Segnali digitali → insieme discreto di

valori (ad esempio due stadi), semplici da distinguere. Il computer è in grado di gestire i segnali di tipo digitale.

Vantaggi:

o semplice basato su un insieme discreto di valori (2) o non ambiguo, non sensibile alle interferenze o riproducibile senza errori

Bit

BIT: Binary digIT (cifra binaria)

All’interno del computer ci sono tantissimi piccoli interruttori che possono essere accesi o spenti, ciascuno di essi è un bit che permette di rappresentare un segnale binario discreto su due valori.  Elemento di base per rappresentare qualsiasi tipo di informazione; tutto quello che c’è all’interno del computer è classificato come sequenza di bit. A seconda che gli interruttori assumano la posizione on piuttosto che quella off questa farà sì che una configurazione rappresenti un’immagine mentre un’altra configurazione di bit ne rappresenterà un altro.  Perché il sistema di bit? Semplice e rappresenta quasi ogni informazione  Come viene realizzato un bit? Può essere realizzato attraverso diverse tecnologie: Presenza/assenza di carica elettrica Direzione di magnetizzazione Presenza/assenza di corrente/tensione Passaggio/non passaggio di luce (dispositivi ottici: cd, dvd, blu ray) ~ Avendo due soli valori è sufficiente prendere dei dispostivi che per loro natura permettono di rappresentare secondo una certa convenzione due valori (1 e 0).  Immaginare gli interruttori all’interno del computer come delle lampadine dove se la lampadina è accesa assumerà il valore 1 mentre se sarà spenta assumerà il valore 0.  Può assumere due valori (0 e 1)  con un bit si possono rappresentare solo 2 informazioni: avendo a disposizione un bit possono rappresentare all’interno del computer delle informazioni che possono assumere 2 valori. È sufficiente stabilire una convenzione/corrispondenza tra i due possibili valori che può assumere un bit e le due possibili informazioni da rappresentare. Non è detto che le informazioni si possano tutte ridurre a due soli possibili esiti. Ad esempio in un questionario ci sono 10 domande a cui uno studente può rispondere solo con VERO o FALSO, rappresentare all’interno del computer queste domande un bit non mi basta quindi ne posso utilizzare altri, possono usarne 10 uno per ciascuna domanda. Si fa corrispondere ciascun bit a ciascuna risposta data al questionario: 0,1,1,0,1,1,1,0,0,0 (falso, vero, vero, falso, vero, vero, vero, falso, falso, falso). Si è stabilita una convenzione e le si sono codificate in binario. Come fare per rappresentare più di due informazioni usando i bit? Si combinano più bit insieme per rappresentare ogni informazione. Ad esempio con 2 bit possiamo codificare 4 informazioni 00, 01, 10, 11. Ciascun bit può assumere sempre e solo due valori, ma se ne prendo due il ragionamento lo posso ripetere su entrambi.  Con 1 bit si hanno 2 valori e rappresenta 2 informazioni (0, 1)  2 bit 4 valori quindi 4 informazioni (00, 01, 10, 11)  3 bit 8 valori quindi 8 informazioni (000, 001, 010, 011, 100, 101, 110, 111)  Quindi con N bit si rappresentano 2N^ informazioni, ogni volta che aggiungiamo un bit raddoppiano le informazioni diverse che possiamo andare a rappresentare rispetto al passo precedente  Problema inverso: se abbiamo K informazioni di quanti bit abbiamo bisogno per rappresentarle? Dobbiamo utilizzare un numero di bit sufficiente per esprimerle tutte per cui dobbiamo scegliere N in modo che 2N^ ≥ K Se 2 N=K ogni combinazione di bit ha un’informazione corrispondente Se 2 N^ > K alcune combinazioni di bit non corrispondono alle informazioni e quindi c’è uno spreco inevitabile

BIT INFORMAZIONI

1,5 TB Hard disk esterno 10 TB Biblioteca del congresso degli Stati Uniti 400 TB Database del centro dati climatico 8 PB World Wide Web 2 EB Informazioni generate in un anno in tutto il mondo 5 EB Parole mai pronunciate per iscritto 8 EB Traffico mensile in Internet 500 EB Informazioni digitali 4200 EB Parole mai pronunciate nelle registrazioni

Rappresentazione dei numeri

NUMERO : concetto che rappresenta una quantità  NUMERALE : simbolo che rappresenta una quantità Se pensiamo al numero quindici ci viene in mente “quindici”, “15”, “fifteen”, “XV”

Sistema di numerazione decimale → più diffuso. Quando parliamo del sistema

decimale facciamo riferimento ad un «alfabeto» di 10 simboli, cioè le dieci cifre di base che si utilizzano maggiormente (dallo 0 al 9). La potenza di 10 dipende dalla posizione della cifra: la NOTAZIONE POSIZIONALE riguarda la posizione di una cifra in un numerale ed indica il suo peso in potenze di 10. Numerale 245 → 2 centinaia, 4 centinaia, 5 unità → 2 volte 10^2 , 4 volte 10^1 , 5 volte 10^0 200+40+5 = 245 quindi il 5 pesa meno del 4 il quale pesa meno del 2 Numerale 3704 → 310^3 +7^2 +010^1 +410^0 = 3000+700+0+4 = 3704 Se vogliamo evitare ambiguità tra numero e numerale, possiamo indicare come pedice la base del sistema di numerazione utilizzata  370410. Lo si fa perché la notazione decimale non è l’unica esistente.

Sistema di numerazione binario → usa come base il 2; è quello utilizzato dai computer

perché ha un alfabeto fatto solo di 2 cifre (0;1). Il numero di cifre coincide con il numero di bit. Numerale 101 2 → 1 volta 2^2 , 0 volte 2^1 , 1 volta 2^0 NOTAZIONE POSIZIONALE : posizione di una cifra in un numerale indica il suo peso in potenze di

Ad esempio: Numerale (^100100112) → 12^7 + 02^6 + 02^5 + 12^4 + 02^3 + 02^2 + 12^1 + 12^0 = 128+0+0+16+0+0+2+1=147 (numero)

NUMERI DECIMALI NUMERI BINARI

I numeri pari terminano con 0, mentre quelli dispari terminano con 1

Massimo numero rappresentabile → è il numero più grande esprimibile con un dato

numero di cifre che non coincide con il numero di informazioni rappresentabili. Si inizia a contare da 0.  SISTEMA DECIMALE 100 (10^2 ) numeri diversi Da 0 10 a 99 10 , cioè da 0 a 10^2 - 1 (numero che precede la potenza di 10) massimo numero rappresentabile è 10^2 - 1  SISTEMA BINARIO 4 (2^2 ) numeri diversi Da 0 2 a 11 2 , cioè da 0 a 2^2 - 1 massimo numero rappresentabile è 2^2 - 1 Numeri a N cifre  SISTEMA DECIMALE 10 N^ numeri diversi Da 0 10 a 9…9 10 , cioè da 0 a 10N- 1 Massimo numero rappresentabile è 10N- 1  SISTEMA BINARIO 2 N^ numeri diversi Da 0 2 a 1…1 2 , cioè da 0 a 2N- 1 Massimo numero rappresentabile è 2N- 1

Numerale 11111111 2 = 12^7 +12^6 +12^5 +12^4 +12^3 +12^2 +12^1 +12^0 = 255 10 =2^8 - 1 25610 = 100000000 2 Quando si è definito il numero di cifre con cui si rappresentano i numeri, si definisce anche il numero massimo rappresentabile. Numerale 34510 →

Numerale 111 2 →

digitiamo sulla tastiera attraverso una sequenza di bit, a ciascuna sequenza di bit corrisponde un carattere. La convenzione a cui si fa riferimento è il codice ASCII (American Standard Code for Information Interchange) il quale è uno standard per quanto riguarda la rappresentazione dei caratteri. Uno standard è necessario perché non basta fissare un’associazione tra sequenza di bit e carattere; è necessario che tutti facciano riferimento a quello standard. Questo codice mappa le varie sequenze dei caratteri corrispondenti. Questo codice utilizza i 7 bit ( 27 =128 possibili caratteri utilizzabili) meno significativi di un byte; rappresenta le lettere dell’alfabeto anglosassone maiuscole e minuscole, cifre e segni di punteggiatura e i caratteri non stampabili (infatti il codice ASCII inizia dal numero 32). I caratteri maiuscoli vengono prima rispetto ai corrispondenti caratteri minuscoli; anche gli stessi numeri vengono prima dei caratteri maiuscoli e minuscoli.

Questa tabella si utilizza sia per la codifica (dal carattere alla stringa binaria; questo avviene grazie
ad un processore all’interno della tastiera del computer) che per la decodifica (dalla stringa binaria

ad un carattere specifico). Essendo che era insufficiente per rappresentare i comuni segni diacritici, si decide di estendere il codice ASCII passando da 128 a 256 (cioè contiene 8 bit; codice ASCII ESTESO : da 0 a 128 rimane tutto uguale all’ASCII normale).

Esempio di codifica: casa → C: 01100011 A: 01100001 S: 01110011 A: 01100001

Decodifica → si divide la sequenza in gruppi di 8 bit (ogni gruppo è un byte) 01101001 01101100 00100000 01010000 01101111 00101110 I L P O. Poi si va sulla tabella ASCII e si controlla a cosa corrisponde la stringa binaria.

Numeri → Le cifre da 0 a 9 rappresentate in ASCII sono caratteri (simboli) e non quantità

numeriche quindi non possono essere utilizzate per rappresentare quantità da utilizzare in calcoli aritmetici. Di conseguenza se chiediamo al computer di ordinare alfabeticamente (lessico graficamente) le stringhe (sequenze di caratteri) “3” e “20431” metterà prima 20431 e poi 3. Si

Si va sulla tabella del codice ASCII e si guarda a quale stringa binaria corrisponde ogni singola lettera.

guardano i primi due caratteri delle stringhe proposte, se i primi due caratteri sono uguali allora si guarda il terzo carattere; se i primi due caratteri delle stringhe sono diversi e quelli di una stringa vengono prima nel codice ASCII allora l’intera stringa viene prima rispetto all’altra. Il PROBLEMA è che i 256 caratteri dell’ASCII esteso sono insufficienti per alcuni sistemi di scrittura (tipo quello cinese o giapponese che si basa su degli ideogrammi); quindi non esiste un unico ASCII esteso ma uno o più diverso per ogni lingua. Esistono tabelle di codifica per ogni lingua o insieme di lingue. È diventato problematico rappresentare testi complessi che comprendano sistemi di scrittura diversi. La SOLUZIONE è stata quella di definire uno standard che utilizzi più bit e che comprenda tutti i sistemi di scrittura: UNICODE → vengono utilizzati più byte 2 o 4 per includere quasi tutti i sistemi di scrittura e le lingue del mondo; utilizzare fino a 4 byte per ogni carattere (fino a 32 bit, oltre i 4miliardi di possibili caratteri rappresentabili). Unicode ha introdotto due «dialetti» (UTF-8, UTF-16) che definiscono come codificare il numero di un carattere Unicode come sequenza di bit

  • UTF- alcuni caratteri sono codificati con 8 bit, altri con 16 bit (quelli aggiunti; 2 byte) e pochi con 32 bit (4 byte); compatibile con ASCII: i caratteri codificati con 8 bit coincidono con i caratteri ASCII; più usata per mail e pagine web.
  • UTF- alcuni caratteri sono codificati con 16 bit e pochi con 32 bit; usato da Windows

Codifica delle immagini

Ci sono varie tecniche per memorizzare in modo digitale un’immagine e poi elaborarla. Supponiamo di voler utilizzare il nostro computer per immagazzinare un’immagine in bianco e nero; la prima cosa è che viene fatto quello che fa lo scanner con cui un documento fisico viene digitalizzato e trasferito sul computer. Accade che lo scanner digitalizza l’informazione, definisce una sorta di griglia con un certo numero di righe e di colonne sull’immagine reale e poi va a vedere con un laser se in corrispondenza di ciascun incrocio riga-colonna se quel puntino è bianco o nero. A seconda che sia bianco o nero assegna una sequenza di bit. Questi puntini sono i PIXEL. L’idea è quella di apporre una griglia formata da linee, righe e colonne a distanza costante di modo che ciascun puntino sia uguale agli altri. Se il pixel è bianco abbiamo un bit a 0, se è nero abbiamo un bit a 1.

colonne (pixel tutti della stessa dimensione) e andiamo ad attribuire il colore a ciascun pixel. In corrispondenza di ciascun pixel andiamo a metter 3 byte (ovvero 24 bit) perché ciascun byte viene utilizzato per rappresentare il livello di ciascuno dei colori primari. Associare a ciascuna combinazione un’intensità diversa del colore stesso, quindi il pixel complessivamente lo si ottiene attraverso un mescolamento di un certo livello di R, G, B e per ognuno abbiamo 1 byte cioè 8 bit e quindi 256 possibili livelli per ciascuno dei 3 colori. Nero → tutto a 0 Bianco → tutti i bit a 1 Rosso → massimo livello (1) per quanto riguarda il rosso e il minimo (0) per gli altri colori Per gli altri colori sarà un mix dei colori primari Quanti colori possiamo rappresentabili? 256 livelli per ogni canale; 3 byte per ogni pixel = 3x8 bit per ogni pixel  224 colori Le immagini in bianco e nero occupano meno spazio

Esempio: Immagine 150 x 200 pixel truecolor (risoluzione molto bassa) Occorrono 3 byte (24 bit) per pixel quindi 1502003 byte = 90000 byte

Per evitare di saturare la disponibilità di un dispositivo con le immagini, esistono delle TECNICHE DI COMPRESSIONE delle immagini, le quali sono dei meccanismi che consentono di ridurre la dimensione/l’occupazione dello spazio occupato dall’immagine. Se ho una serie di pixel che richiedono la stessa codifica li posso rappresentare in modo «abbreviato». Se ho 6 pixel vicini e dello stesso valore e colore, posso fare 6*per quel valore

Questa è la tecnica del lossless → senza

perdita di informazione cioè quando la decomprimiamo l’immagine è identica all’originale (gif, tiff, png).

Lossy → tecnica di compressione che

causa la perdita di informazione cioè il processo di compressione “scarta” alcuni dati e quando si decomprime l’immagine non è uguale alla originale (jpeg, png). Permette di risparmiare molto più spazio rispetto al lossless. Può capitare che l’immagine sia sgranata. Approssimano l’immagine ed è dunque meno dettagliata.

Codifica delle immagini in movimento → sequenza di immagini che prendono il nome

di fotogramma o frame. Sono tante immagini una dopo l’altra. Una sequenza di immagini in movimento occupa molto più spazio rispetto alla fotografia statica. Ci sono tecniche più efficienti per la loro memorizzazione che tengono traccia delle differenze tra un frame e l’altra, o tecniche di compressione lossy (mpeg, avi, dvx, quicktime).

Codifica dei suoni

Su un sistema elettronico ci possono essere dei suoni oltre alle immagini e anche i suoni possono essere codificati in digitale cioè come sequenza di bit.

Il suono è uno dei principali mezzi di comunicazione ma a differenza di altri mezzi dobbiamo tenere conto di un dato di fatto differente: è un’onda di pressione che si ha in presenza di un mezzo (aria, acqua). Quando un suono viene rilevato dall’orecchio o da un microfono viene trasformato in uno stimolo/segnale elettrico e le quantità fisiche che entrano in gioco sono durata, intensità e variazione nel tempo della pressione dell’aria. Abbiamo la necessità di rappresentare in digitale delle quantità che di fatto sono analogiche; il suono varia in funzione del tempo e le grandezze in questione sono analogiche. Asse x → tempo Asse y → variazione di pressione corrispondente al suono stesso Variando l’ampiezza cambia il suono prodotto.

Problema: Passare da rappresentazione analogica a rappresentazione digitale.

Idea: si fa un’approssimazione;

si effettuano dei campionamenti sull’onda (cioè si misura il valore dell’onda a intervalli costanti di tempo) e si codificano in forma digitale le informazioni estratte da tali campionamenti. I campioni che vengono fatti sono molti frequenti perché la rappresentazione sarà tanto più fedele quanto più numerosi saranno i campioni. Ad esempio il telefono usa 8000 campionamenti al secondo (8 kHz); mentre i cd audio usano 44100 campionamenti al secondo (44,1 kHz). Analogamente alle immagini, maggiore è la frequenza dei campionamenti migliore sarà la precisione con cui il segnale viene memorizzato e la fedeltà all’originale.

Discretizzando esclusivamente sul tempo abbiamo ancori campioni analogici cioè l’ampiezza del suono. Non è vero che prendendo un campione il valore corrispondente all’ampiezza del suono cade in un insieme finito di possibili valori, se così fosse non ci sarebbe nessun problema. Nel range di possibili valori assumibili la curva del suono assume tutti gli infiniti valori che ci sono tra il valore minimo e massimo dell’ampiezza. Tutto questo non è rappresentabile all’interno della macchina e allora bisogna discretizzare anche l’ampiezza di modo da poter esprimere il valore in binario. In corrispondenza del primo campione, il valore dell’ampiezza e ricercabile tra 0 e la prima tacca. Ma quanti possibili valori ci sono tra 0 e 1? Ce ne sono infiniti. Se prendiamo in considerazione il secondo

Ad alto livello come funziona?

  1. All’avvio dell’elaboratore programmi e dati risiedono in memoria secondaria; è stato avviato il sistema operativo (Windows, MacOs) ovvero il software di base. Non è un programma esplicitamente selezionato ma parte all’avvio del computer, del dispositivo. Questi programmi risiedono in memoria secondaria perché permette di mantenere le informazioni anche quando è spento. 2. I programmi per essere eseguiti devono essere portati in memoria principale, così anche i dati per essere utilizzati dai programmi. 3. La CPU esegue i programmi (elenco lunghissimo di istruzioni di base) eseguendo le istruzioni di cui sono composti. 4. Avviene l’input/output e la memorizzazione su memoria secondaria

Ram

 Insieme alla CPU è una componente fondamentale del calcolatore  Permette di memorizzare sia il programma che i dati  Fisicamente è formata da componenti elettronici miniaturizzati (transistor, resistenze, condensatori); contiene degli «interruttori». Ogni unità elementare può trovarsi a due diversi livelli di tensione elettrica, sono il corrispettivo fisico del bit.  Strutturata in una sequenza di CELLE (O LOCAZIONI) DI MEMORIA. Ogni cella memorizza un byte, le celle sono numerate in sequenza: INDIRIZZO. Servono per individuare le zone della memoria in cui scrivere o leggere delle informazioni. Specificando l’indirizzo di una cella la CPU è in grado di leggere e/o modificare il valore del byte memorizzato in quella cella. Gli indirizzi di memoria il computer li esprime come sequenze di bit; codifica il numero in bit che è strettamente collegato alla dimensione della RAM.  Lo SPAZIO DI INDIRIZZAMENTO è l’insieme o il numero delle celle indirizzabili direttamente. Il numero di celle indirizzabili è una potenza di 2. Con 16 bit si indirizzano 2^16 = 65.536 celle; 32 bit si indirizzano 2^32 = 4.294.967.296 celle. Numero di celle indirizzabili = numero di informazioni rappresentabile con un certo numero di bit. Il numero di bit dello spazio di indirizzamento con cui vado ad indirizzare le celle di memoria impone la dimensione massima della memoria RAM stessa.  L’unità di misura della memoria è il byte. Si usano dei multipli: Kilobyte (KB) = 1024 byte (2^10 byte) Megabyte (MB) = 1024 KB (2^20 byte) Gigabyte (GB) = 1024 MB (2^30 byte) Quindi: con 16 bit si indirizzano 64 KB di memoria; con 32 bit si indirizzano 4 GB di memoria.  R andom A ccess M emory ( RAM ): memoria ad accesso casuale. Perché si chiama «ad accesso casuale»? Si può accedere direttamente alle varie celle, una volta noto il loro indirizzo. Il tempo necessario per accedere ad una cella è lo stesso, indipendentemente dalla posizione della cella

nella sequenza. Il termine «random» (casuale) indica proprio il fatto che non vi sono differenze

nell’accesso alle varie celle della memoria.

 Caratteristiche

VELOCE : perché è formata da circuiti quindi accesso è velocissimo; il tempo di lettura/scrittura di una cella è compreso tra 5 e 30 nanosecondi (miliardesimi di secondo = 10-9^ s) VOLATILE : formata da componenti elettronici, se viene tolta l’alimentazione anche per un breve periodo di tempo (frazioni di secondo) tutto ciò che contiene viene perso (e la macchina deve ripartire). RELATIVAMENTE COSTOSA : i circuiti costano.

Rom

R ead- O nly M emory, memoria in sola lettura su cui non possiamo scrivere nulla ma possiamo leggere quello che ci hanno inciso sopra chi ha creato la ROM sulla quale si trova scritto un pezzetto del sistema operativo che serve per avviare il computer. Ci sono delle particolari ROM (EPROM) sulle quali si possono modificare le informazioni per l’avvio dei programmi.  La ROM si trova nell’unità centrale insieme a CPU e RAM.  Non è volatile; veloce quasi quanto la RAM  Solitamente usata per memorizzare programmi e dati necessari all’avvio dell’elaboratore: programmi di bootstrap (avvio dell’elaboratore); configurazione del sistema.

Memoria cache

Stesse proprietà della RAM, ma:  più veloce (ma più piccola e costosa) della RAM → circuiti ancora più evoluti  localizzata fisicamente tra la CPU (ha bisogno che programmi e dati stiano in RAM per essere elaborati) e la RAM  memorizza i dati di uso più frequente, evitando alla CPU di doverli recuperare tutte le volte dalla RAM  influisce pesantemente sulle prestazioni e sul costo della CPU; dimensioni tipiche sono 512 KB, 1 MB, 2 MB, 4 MB

Cpu

C entral P rocessing U nit  Programmi che vengono eseguiti all’interno del computer vengono eseguiti in linguaggio macchina, ovvero come sequenza di 0 e 1 che pilotano la circuiteria del computer in modo che avvengano certe azioni. In base agli interruttori che vengono accessi si attivano dei componenti piuttosto che altri.  Tutti i programmi, anche Word, Excel, … internamente sono codificati in LM  I programmi sono sequenze di istruzioni in LM  Le istruzioni sono comandi elementari, ad esempio: somma due numeri; leggi dalla memoria; scrivi in memoria; scrivi verso il dispositivo di output; confronta due numeri  La CPU è in grado di eseguire un numero limitato di istruzioni; le istruzioni si suddividono in: aritmetiche, logiche; di salto (le istruzioni non vengono eseguite linearmente ma si salta un blocco di programma); di lettura/scrittura in memoria; di lettura/scrittura verso dispositivi I/O

 Combinando in modo diverso sequenze anche molto lunghe di istruzioni (iprogrammi) si

possono fare svolgere al computer compiti completamente diversi  È possibile avere più CPU in uno stesso elaboratore, in questo modo l’elaboratore può eseguire più programmi alla stesso tempo Elaboratore MULTIPROCESSORE : più CPU nello stesso elaboratore

Esempio di ciclo fetch-decode-execute

Immaginiamo di avere un programma composto da tre istruzioni tutte formate da sequenze di bit: ADD 48,4 → somma i numeri 48 e 4 (= potrebbero essere anche due celle della RAM) JUMP 1 → “salta” all’indirizzo 1 OUT 3, Acc → effettua l’output del valore contenuto nel registro accumulatore verso il dispositivo 3 (= risultato dell’ultima operazione aritmetica; dispositivo numero 3 perché ci possono essere più dispositivi collegati al nostro computer) Il nostro programma si trova nel Program Counter (5) e quando si avvia l’elaboratore questa istruzione va a inserire nella RAM. La control unit inizia a fare l’operazione di FETCH, preleva l’istruzione da eseguire e poi memorizza il tutto nell’Instruction Register. Quindi la CU incrementa l’indirizzo contenuto nel registro PC in modo da eseguire in seguito l’istruzione successiva. La CU decodifica (DECODE) l’istruzione che permette di capire che, essendo un’operazione ADD 48,4 , è necessario l’intervento dell’Arithmetic Logic Unit. A questo punto si procede con l’esecuzione (EXECUTE) vera e propria; viene appunto fatta la somma che va a posizionarsi all’interno dell’accumulatore. Nel PC si è passato a 5 a 6 perché esso conserva in ogni istante l’indirizzo dove andare a reperire la prossima istruzione da eseguire. A questo punto il ciclo ricomincia da capo, il PC ci dice di andare alla cella di indirizzo 6 della RAM; prelevo l’istruzione portandola in IR. Questa volta l’istruzione si chiama JUMP 1; la CU incrementa l’indirizzo contenuto nel registro PC in modo da eseguire in seguito l’istruzione successiva (7). La CU decodifica l’istruzione JUMP e quindi non devo coinvolgere la ALU; dato che si tratta di un’istruzione di salto, la prossima istruzione da eseguire è la 1. CU mette nel PC la codifica di 1 e si ricomincia da capo. FETCH all’indirizzo 1, prendo l’istruzione OUT 3, Acc. Porto l’istruzione nel IR e la CU incrementa l’indirizzo contenuto nel registro PC. DECODE: non coinvolge la ALU; coinvolgere però un sistema di output in questo caso la stampante. Quindi EXECUTE: invia il dato 52 all’unità di output.

Memoria secondaria

 Componente fondamentale perché è una memoria che viene aggiunta al computer per superare le limitazioni della RAM: poco capiente, costosa, volatile

 Caratteristiche della memoria secondaria:

  • capiente
  • (relativamente) poco costosa
  • non volatile (mantenere in modo persistente anche quando non c’è alimentazione le informazioni, ovvero i bit, all’interno della memoria stessa)
  • lenta Non si può usare solo ed esclusivamente la memoria secondaria perché la RAM deve esserci e perché la memoria secondaria è lenta rispetto alla RAM. La CPU può eseguire (ed elaborare) esclusivamente programmi (e dati) che risiedono in memoria principale. I programmi e i dati risiedono in memoria secondaria, perciò devono essere copiati in memoria principale. Quando si esegue un programma, il sistema operativo lo copia da memoria secondaria (es. hard disk) in RAM; l’operazione si chiama loading o caricamento. È composta da:

 supporti di memorizzazione → componente fisico in cui vengono immagazzinati i dati

 dispositivi di memorizzazione → dispostivi che leggono/scrivono dati dal/sul supporto di

memorizzazione La memoria secondaria è realizzabile su tecnologie diverse con anche costi differenti:

 Magnetica

Sfrutta il fenomeno fisico della polarità. Sul supporto sono presenti particelle magnetiche. La

testina di lettura/scrittura cambia/rileva la polarità delle particelle. Prese due particelle magnetiche adiacenti: stessa polarità → 0; diversa polarità → 1. Usata per alcuni hard disk, floppy disk e nastri.

 Ottica

Sfrutta la riflessione della luce di un laser. Sul supporto sono presenti delle minuscole scanalature (PIT) che formano zone chiare (luce riflessa) e zone scure (luce non riflessa): chiaro/scuro o scuro/chiaro → 1; chiaro/chiaro o scuro/scuro → 0. Indipendentemente dal fenomeno fisico che viene utilizzato, viene utilizzato un fenomeno per codificare gli 1 e gli 0 che permette di rimanere sul disco anche quando questo non viene utilizzato. Usata nei compact disk e nei DVD.

 Magneto-ottica (non più tanto utilizzata al momento): riscrive i supporti ottici;

 Flash (o allo stato solido): tecnologia simile alla RAM, velocità superiore al magnetico e

all’ottico Costituita da chip simili a quelli della RAM, ma in grado di registrare l’informazione in modo permanente; tempo di accesso ridotto; leggera e facilmente trasformabile, tutto questo perché non esistono parti in movimento. Usata per macchine fotografiche digitali, penne USB, smartphone, lettori MP3 ed alcuni hard disk.