docente - maurizio mancini · –la scelta della rappresentazione è in genere vincolata al tipo di...

141
queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/ Docente (Doc.) Maurizio Mancini [email protected] Casa Paganini Piazza Santa Maria in Passione, 34 16123 – Genova http://www.casapaganini.org

Upload: trandiep

Post on 18-Feb-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Docente

• (Doc.) Maurizio Mancini

[email protected]

• Casa Paganini– Piazza Santa Maria in Passione, 34

16123 – Genova

http://www.casapaganini.org

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Materiale

• Sito:– http://www.mauriziomancini.org/wordpress/fdi-2016

• Testo di riferimento:– C. Thomas Wu,"Introduzione alla Programmazione ad Oggetti in

Java"

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Un po' di storia

• Circa 2400 a.C.: L’invenzione del abaco

• 1621 d.C.: L’invenzione del regolo

• 1642: Blaise Pascal crea la prima macchina meccanica per il calcolo delle somme

• 1833: Macchina

differenziale di Babbage

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Un po' di storia

• 1843: Ada Lovelace (la prima programmatrice al mondo) pubblica le proprie annotazioni

• 1890: Viene utilizzata l’elettricità in un progetto di elaborazione dei dati (schede perforate)

• 1900: Prima macchina automatica a schede perforate

• 1945: Proposta dell’architettura “general purpose” (macchina di von Neumann)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Un po' di storia

• 1946: Primo computer elettronico negli Stati Uniti (ENIAC)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Un po' di storia

• 1952: Il computer UNIVAC prevede correttamente l’elezione del presidente americano Eisenhower

• 1967: La prima calcolatrice portatile

• 1969: Nasce le rete ARPANET che darà l’origine a Internet

• 1981: IBM introduce i personal computer

• 1982: Computer portatili, compact disk

• 1984: La prima stampante laser, il desktop publishing

• 1985: Telefoni cellulari

• 1993: Desktop multimediali

• 1994: Trasmissione wireless (senza fili) per il computer portatili

• 1998: Inizia la transizione dalle videocassette ai DVD

• …

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Informatica

• L'informazione: la sua codifica; le tecniche per raccoglierla, memorizzarla, distribuirla, trasformarla...

• Il computer: il suo funzionamento, le possibilità che offre per la trasformazione dell’informazione, le tecniche di utilizzo...

• La comunicazione: tra computer, tra persone (mediata dal computer)

Informatica:

la scienza della rappresentazione e

dell'elaborazione dell'informazione

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Hardware + Software

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Hardware e software

• Hardware:

– Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche

• Software:

– Programmi di base per la gestione del sistema

– Programmi applicativi per l’uso del sistema (possono usare i programmi di base)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Hardware

• In un computer possiamo distinguere quattro unità funzionali:

– Il processore

– La memoria principale

– La memoria secondaria

– I dispositivi di input (inserimento)/output (restituzione di risultati)

• Il processore e la memoria principale costituiscono l’unità centrale del computer

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Componenti principali di un computer

Processore

Stampante

Periferiche di input/outputMemoria secondaria

(o di massa)

Unità centraleMemoria

principale

Tastiera e monitor

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

L’uso dell’informazione

• Un computer deve:

– Memorizzare l’informazione• Usando la memoria principale/secondaria

– Elaborare l’informazione • Usando il processore

– Fare l’input/output dell’informazione• Usando i dispositivi di input/output

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Tipi di informazione

• Esistono vari tipi di informazione, di natura e forma diversa, così come rappresentazioni diverse della stessa informazione– La scelta della rappresentazione è in genere vincolata al tipo di

utilizzo ed al tipo di operazioni che devono essere fatte sulle informazione stesse

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Tipi di informazione

• Il computer memorizza ed elabora informazioni che devono essere rappresentate in una forma gestibile

• Rappresentazione digitale– Originariamente “rappresentazione digitale” significava:

rappresentare l’informazione con le cifre 0,1,2,…,8,9

– Oggi “rappresentazione digitale” significa: rappresentare l’informazione con le cifre 0,1 (bit): la rappresentazione binaria

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Rappresentazione binaria

Mondo

informazione rappresentazione

binaria

codifica

decodifica

Computer: memorizzazione,

elaborazione

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Rappresentazione binaria

• L’entità minima di informazione che possiamo trovare all’interno di un elaboratore prende il nome di bit– binary digit – cifra binaria

– un bit può assumere due valori (0 e 1)

• Rappresentazione binaria:– solo due simboli (0 e 1)

• Perché usiamo la rappresentazione binaria?

• Perché le informazioni rappresentate nel sistema binario possono essere elaborate secondo vari criteri e con vari strumenti …

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Perché la rappresentazione binaria?

• I due simboli (0 e 1) possono essere rappresentate da:

Due stati di

polarizzazione di una

sostanza

magnetizzabile

Due stati di carica

elettrica di una

sostanza

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Perché la rappresentazione binaria?

• I due simboli (0 e 1) possono essere rappresentate da:

Al passaggio/non

passaggio di corrente

attraverso un cavo

conduttore

Al passaggio/non

passaggio di luce

attraverso un cavo ottico

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Rappresentazione binaria

• In generale: la rappresentazione binaria è basato sulla presenza o assenza di un fenomeno fisico (in un certo luogo, a un certo punto di tempo)

• Discreta: non esiste alcuna gradazione di valore– Il fenomeno è presente oppure assente, con nessuna via di mezzo

• La logica è la base del funzionamento del computer:– “Associando il valore vero con la presenza di un fenomeno e il

valore falso con la sua assenza, possiamo implementare il mondo logico per mezzo del mondo fisico.”

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

• Per poter rappresentare un numero maggiore di informazione si usano sequenze di bit

• Per esempio, per rappresentare quattro informazioni diverse possiamo utilizzare due bit che ci permettono di ottenere quattro configurazione distinte

00 01 10 11

Codifica dell’informazione

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica dell’informazione

• Il processo secondo cui si fa corrispondere ad un’informazione una sequenze di bit prende il nome codifica dell’informazione

informazione rappresentazione

binaria

codifica

dell’informazione

decodifica

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica binaria

• Esempio - un esame può avere quattro possibili esiti:

ottimo, discreto,

sufficiente, insufficiente

• Codifico (due bit):– ottimo con 00

– discreto con 01

– sufficiente con 10

– insufficiente con 11

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica binaria

• Esempio - otto colori: nero, rosso, blu, giallo, verde, viola, grigio, arancione

• Codifico (tre bit):– nero con 000

– rosso con 001

– blu con 010

– giallo con 011

– verde con 100

– viola con 101

– grigio con 110

– arancione con 111

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica binaria

• Esempio - otto colori: nero, rosso, blu, giallo, verde, viola, grigio, arancione

• Codifico (tre bit):– nero con 000

– rosso con 001

– blu con 010

– giallo con 011

– verde con 100

– viola con 101

– grigio con 110

– arancione con 111

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

• Con 2 bit si codificano 4 informazioni (22)

• Con 3 bit si codificano 8 informazioni (23)

• …

• Con N bit si possono codificare 2N informazioni differenti

Codifica binaria

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

• Se il problema è quello di dover rappresentare M informazioni differenti si deve selezionare il numero di N bit in modo tale che

2N M

• Esempio: per rappresentare 40 informazioni differenti devo utilizzare 6 bit perché

26 = 64 – 5 bit non sono sufficienti perché 25 = 32

Codifica binaria

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica binaria

• Esiste una particolare aggregazione di bit che è costituita da 8 bit (28 = 256 informazioni) e prende il nome di byte

• Di solito si usano i multipli del byte

Kilo KB 210 (~ un migliaio, 1024 byte)

Mega MB 220 (~ un milione, 1KB x 1024)

Giga GB 230 (~ un miliardo, 1MB x 1024)

Tera TB 240 (~ mille miliardi, 1GB x 1024)

Peta PB 250 (~ miliardo miliardi, 1TB x

1024)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica dei caratteri

• Alfabeto anglosassone– Lettere maiuscole e minuscole

– Cifre numeriche (0, 1, 2, …, 9)

– Simboli di punteggiatura (, . ; : ! “ ? …)

– Segni matematici (+, -, {, [, >, …)

– Alcuni caratteri nazionali (à, è, ì, ò, ù, ç, ñ, ö, …)

può essere codificato usando un byte (220 caratteri circa)

• Il metodo di codifica più diffuso tra i produttori di hardware e di software prende il nome Extended ASCII(ASCII = American Standard Code for Information Interchange)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica dei caratteri (Extended ASCII)

Extended ASCII Simbolo

00000000 NUL (spazio bianco)

… …

00111110 >

00111111 ?

01000000 @

01000001 A

01000010 B

01000011 C

… …

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica delle parole

• Parole sono sequenze di caratteri

• Codifica della parole cane01100011 01100001 01101110 01100101

c a n e

• Il problema inverso: data una sequenza di bit, il testo che essa codifica può essere ottenuto nel modo seguente:– Si divide la sequenza in gruppi di otto bit (byte)

– Si determina il carattere corrispondente ad ogni byte

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica dei caratteri

• Abbiamo considerato il codice:

– Extended ASCII: 8 bit per carattere

– È stato basato dal codice ASCII: 7 bit per carattere• Il codice ASCII non include à, è, é, ì, ò, ù, per esempio

• Un altro codice:

– UNICODE, 16 bit per carattere (Extended ASCII + caratteri etnici)

– 216 = 65.536 simboli

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica dell’informazione

• Quanti bit si devono utilizzare per rappresentare 300 informazioni distinte?

• Dati 7 bit per la codifica, quante informazioni distinte si possono rappresentare?

• Quanti byte occupa la parola “psicologia” se la si codifica utilizzando il codice Extended ASCII?

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica delle immagini

• Sistemi di supporto alla progettazione CAD/CAM

• Campo medico (per esempio, i sistemi di TAC o di ecografia)

• Telecamere e videoregistratori professionali

• Effetti speciali i film, televisione

• Telefoni cellulari

• Ecc.

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Campionamento spaziale

Suddividiamo l’immagine mediante una griglia formata

da righe orizzontali e verticali a distanza costante

• Esempio: un’immagine in bianco e nero

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Quantizzazione cromatica

• Ogni quadratino derivante da tale suddivisione prende il nome di pixel (picture element) e può essere codificato in binario secondo la seguente convenzione:– Il simbolo “0” viene utilizzato per la codifica di un pixel

corrispondente ad un quadratino in cui il bianco èpredominante

– Il simbolo “1” viene utilizzato per la codifica di un pixel corrispondente ad un quadratino in cui il nero èpredominante

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica delle immagini

0 0 0 1 0 0 0 0 0 0

0 0 1 1 1 0 0 0 0 0

0 0 1 1 1 1 1 0 0 0

0 0 0 0 0 0 0 0 0 0

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica delle immagini

0 0 0 1 0 0 0 0 0 0

0 0 1 1 1 0 0 0 0 0

0 0 1 1 1 1 1 0 0 0

0 0 0 0 0 0 0 0 0 0

Poiché una sequenza di bit è lineare, è necessario definire

convenzioni per ordinare la griglia dei pixel in una

sequenza. Assumiamo che i pixel siano ordinati dal basso

verso l’alto e da sinistra verso destra

0000000000 0011111000 0011100000 0001000000

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica delle immagini

Non sempre il contorno della figura coincide con le

linee della griglia. Quella che si ottiene nella codifica

è un’approssimazione della figura originaria

Se riconvertiamo la sequenza di stringhe

0000000000 0011111000 0011100000 0001000000

in immagine otteniamo

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica delle immagini

La rappresentazione sarà più fedele all’aumentare

del numero di pixel, ossia al diminuire delle

dimensioni dei quadratini della griglia in cui è

suddivisa l’immagine

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica delle immagini

• Assegnando un bit ad ogni pixel è possibile codificare solo immagini in bianco e nero

• Per codificare le immagini con diversi livelli di grigiooppure a colori si usa la stessa tecnica: per ogni pixel viene assegnata una sequenza di bit– Per esempio, se utilizziamo quattro bit possiamo rappresentare 24

= 16 livelli di grigio o 16 colori diversi

– Mentre con otto bit ne possiamo distinguere 28 = 256, ecc.

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

L’uso del colore

• Il colore può essere generato componendo 3 colori: red (rosso), green (verde), blue (blu)

• Ad ogni colore si associa una possibile sfumatura

• Usando 2 bit per ogni colore si possono ottenere 4 sfumature per il rosso, 4 per il blue e 4 per il verde che, combinate insieme, danno origine a 64 colori diversi

– Ogni pixel per essere memorizzato richiede 6 bit

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Modello RGB

• Usando 8 bit per ogni colore si possono ottenere:– 256 sfumature per il rosso …

– … 256 per il verde e …

– … 256 per il blu …

che, combinate insieme, danno origine a circa 16,8 milioni di colori diversi (precisamente 16.777.216 colori)

• Ogni pixel per essere memorizzato richiede 3 byte

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

L’uso del colore

1bit 3 bit

1 byte 3 byte

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

L’uso del colore

• Esempi:

– 00000000 00000000 00000000 nero

– 11111111 11111111 11111111 bianco

– 11111111 00000000 00000000 rosso

– 11111111 11111111 00000000 giallo

– 00000000 11111111 00000000 verde

– 00000000 11111111 11111111 cyan

– 00000000 00000000 11111111 blu

– 11111111 00000000 11111111 viola

– 10000000 10000000 10000000 grigio (un certo tonalità di …)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica delle immagini

• Esempio: – Per rappresentare 256 colori sono necessari otto bit per la codifica

di ciascun pixel

– La codifica di un’immagine di 256 colori, formata da 640 x 480 pixel, richiederà 640 x 480 = 307.200 byte (2.457.600 bit)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Risoluzione

• Il numero di pixel presenti sullo schermo (colonne x righe) prende il nome di risoluzione

4:3 16:9

640 480 640 360 nHD

800 600 720 405

1024 768 848 480

1280 1024 960 540 qHD

1600 1200 1024 576

1280 720 HD

1366 768

1600 900 HD+

1920 1080 Full HD

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica delle immagini

• Le immagini codificate pixel per pixel sono dette immagini in grafica bitmap– Le immagini bitmap occupano parecchio spazio

• Esistono delle tecniche di compressione che permettono di ridurre le dimensioni– Ad esempio, se più punti vicini di un’immagine assumono lo

stesso colore, si può memorizzare la codifica del colore una sola volta e poi ricordare per quante volte deve essere ripetuta

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica delle immagini

• Un esempio concreto - codifica Run-Length Encoding (RLE) nel contesto delle immagini in bianco e nero:

• Usa numeri binari per specificare la lunghezza della prima sequenza di 0 (bianco)

• … poi quella della sequenza di 1 (nero)

• … poi quella della successiva sequenza di 0

• … e così via

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica delle immagini

• I formati come GIF, JPEG e PNG sono formati compressi– Per esempio: rispetto al bitmap, il formato JPEG dedica

meno bit alla descrizione delle sfumatura cromatiche di un’immagine

– Un'immagine in JPEG può arrivare ad occupare 1/10 della corrispondente immagine bitmap

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica delle immagini

• Distinzione tra compressione lossless e compressione lossy– Lossless: compressione senza perdita di informazioni

• Dalla versione compressa, si può ricostruire perfettamente la versione non-compressa

• Per esempio, GIF, PNG

– Lossy: compressione con perdita di informazioni• Dalla versione compressa, non è possibile recuperare la

versione originale

• Per esempio, JPEG: nostri occhi distinguono bene variazioni di luminosità ma non tonalità – JPEG dedica meno bit alla tonalità

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica delle immagini

• JPEG: livelli di compressione

30,2 KB 6,8 KB

3,2 KB

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica di immagini in movimento

• Un filmato è una sequenza di immagini statiche (dette fotogrammi o frame)

• Per codificare un filmato si “digitalizzano” i suoi fotogrammi

• Esempio:– 30 immagini ad alta risoluzione al secondo

– 30 imm./sec x 2.457.600 bit/imm. = 73.728.000 bit/sec

– Un minuto richiederebbe 60 sec x 73.728.000 = 4.423.680.000 bit (5.529.600 byte, circa 5.400 KB)

• Esempi di formati per il video: AVI, MOV

• Compressione: MPEG (Moving Picture Expert Group), memorizza solo la differenza tra fotogrammi consecutivi

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica delle immagini

• Quanti byte occupa un’immagine di 20 x 40 pixel in bianco e nero?

• Quanti byte occupa un’immagine di 100 x 100 pixel a 256 colori?

• Se un’immagine a 16.777.216 di colori occupa 2400 byte, da quanti pixel sarà composta?

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica dei suoni

• Fisicamente un suono è rappresentato come un’onda che descrive la variazione della pressione dell’aria nel tempo (onda sonora)

• Sull’asse delle ascisse viene rappresentato il tempo e

sull’asse delle ordinate viene rappresentata la

variazione di pressione corrispondente al suono

stesso

Tempo

Pre

ssio

ne

de

l su

on

o

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica dei suoni

• Un’idea chiave: il suono è continuo (la pressione varia senza salti)

• È possibile ottenere una registrazione analogica continua dell’onda– Una registrazione analogica memorizza ogni variazione dell’onda

originale (almeno in linea di principio)

• La rappresentazione digitale di un suono funziona in un modo diverso

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Campionamento

• Si effettuano dei campionamenti sull’onda (cioè si misura il valore dell’onda a intervalli di tempo costanti) e si codificano in forma digitale le informazione estratte da tali campionamenti

• Quanto più frequentemente il valore di intensità dell’onda viene

campionato, tanto più precisa sarà la sua rappresentazione

• Il numero di campioni raccolti per ogni secondo definisce la

frequenza di campionamento che si misura in Hertz (Hz,

numero di campionamento ogni secondo – di solito 44.100 Hz)

Tempo

Pre

ssio

ne

de

l su

on

o

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Quantizzazione

• La sequenza dei valori numerici ottenuti dai campioni può essere facilmente codificata con sequenze di bit

Un’approssimazione!

Tempo

Pre

ssio

ne

de

l su

on

o

• La rappresentazione è tanto più precisa quanto

maggiore è il numero di bit utilizzati per codificare

l’informazione estratta in fase di campionamento

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Quantizzazione

• Per esempio: con 1 bit

Tempo

Pre

ssio

ne

de

l su

on

o

• Per esempio: con 2 bit

Tempo

Pre

ssio

ne

de

l su

on

o

1

0

11

10

00

01

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Esempio

• Se volessimo codificare la musica di qualità CDdovremmo:– Usare due registrazioni corrispondenti a due microfoni

distinti

– Campionare il segnale musicale producendo 44.100 campioni al secondo

– Per ogni campione (che è un numero) si usano 16 bit (qualità CD)

– Per cui, il numero di bit che sarebbero necessari per codificare ogni secondo è pari a

2 x 44.100 campioni x 16 bit/campione = 1.414.200 bit

(circa 176.775 byte, o 173 KB)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica dei suoni

ADC:

da

analogico a

digitale

DAC:

da digitale

ad

analogico

01011010

11110000

10100000

10000010

Convertitore

analogico-digitale

Convertitore

digitale-analogico

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica dei suoni

• Codifiche standard– MP3 , WAV (MS-Windows), AIFF (Audio Interchange File Format,

Apple), MIDI

• MP3– Variante MPEG per suoni

– Lossy

– Grande diffusione, molto efficiente (fattore di compressione circa 5:1 - 10:1, circa 1-2 MB ogni minuto)

• MIDI: codifica le note e gli strumenti che devono eseguirle– Efficiente, ma solo musica, non voce

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica dei suoni

• Quanto spazio occupa un suono (non in stereo) della durata di 10 secondi campionato a 100 Hz (100 campioni al secondo), in cui ogni campione occupa 4 byte?

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica dei numeri (il sistema decimale)

• La numerazione decimale quindi utilizza una notazione posizionale basata sul numero 10

• La notazione posizionale può essere utilizzata in qualunque altro sistema di numerazione con base diversa di 10

– Base: il numero di cifre disponibile nel sistema

– In base 10, usiamo le dieci cifre 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica dei numeri (il sistema binario)

• Nel sistema di numerazione binario (base 2) i numeri vengono codificati utilizzando le due cifre 0 e 1

• Nel sistema di numerazione ottale (base 8) i numeri vengono codificati utilizzando le otto cifre 0, 1, 2, 3, 4, 5, 6, 7

• Nel sistema di numerazione esadecimale (base 16) i numeri vengono codificati utilizzando le sedici cifre 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica dei numeri (il sistema binario)

• In analogia con il caso decimale la sequenza cn cn-

1cn-2 … c1c0 (ogni “ci” è la cifra “0” o la cifra “1”) rappresenterà il numero

La cifra meno

significativa

La cifra più

significativa

c0 x 20 +

c1 x 21 +

c2 x 22 +

… +

cn-1 x 2n-1 +

cn x 2n

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica dei numeri

• Caso generale: considerare un sistema con base b

• La sequenza cn cn-1cn-2 … c1c0 (ogni “ci” è una cifra del sistema) rappresenterà il numero

La cifra meno

significativa

La cifra più

significativa

c0 x b0 +

c1 x b1 +

c2 x b2 +

… +

cn-1 x bn-1 +

cn x bn

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica dei numeri (il sistema binario)

• Esempio: la sequenza “1011” in base 2 denota il numero

1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 11 (in base 10)

• Esempio: la sequenza “10011” in base 2 denota il numero

1 x 24 + 0 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 19 (in base 10)

• Per evitare ambiguità si usa la notazione

10112 = 1110, 100112 = 1910

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Altri basi: ottale, esadecimale

• Sistema ottale

– Utilizza una notazione posizionale basata su otto cifre (0,1,…,7) e sulle potenze di 8

– Esempio: 1038 = 1 x 82 + 0 x 81 + 3 x 80 = 6710

• Sistema esadecimale

– Utilizza una notazione posizionale basata su sedici cifre (0,1,…,9,A,B,C,D,E,F) e sulle potenze di 16

– Esempio: 10316 = 1 x 162 + 0 x 161 + 3 x 160 = 25910

– Esempio: AC416 = 10 x 162 + 12 x 161 + 4 x 160 = 275610

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Conversione dalla base 10 alla base 2

• Dato un numero N rappresentato in base dieci, la sua rappresentazione in base due sarà del tipo cm cm-1cm-2 …c1c0 (le “ci” sono cifre binarie)

• Per convertire un numero in base dieci nel corrispondente in base due si devono:– Trovare i resti delle divisioni successive del numero N per due

– Leggere i resti in ordine inverso per ottenere la rappresentazione binaria di N (dalla cifra più significativa alla cifra meno significativa)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

• Esempio: il numero 610:

6/2 = 3 resto 0

3/2 = 1 resto 1

1/2 = 0 resto 1

• Leggendo i resti dal basso verso l’alto, si ha che la rappresentazione binaria del numero 610 è 1102

• Per una corretta verifica basta riconvertire il risultato alla base 10– Cioè, calcolare 1 x 22 + 1 x 21 + 0 x 20

Conversione dalla base 10 alla base 2

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

• Perché 1102 = 610 ?

Conversione dalla base 10 alla base 2

6/2 = 3 resto 0

3/2 = 1 resto 1

1/2 = 0 resto 1

0 x 20 +

1 x 21 +

1 x 22

= 6

1 x 22 + 1 x 21 + 0 x 20 = 1 x 21 + 1 x 20 con resto 0

2

1 x 21 + 1 x 20 = 1 x 20 con resto 1

2

1 x 20 = 0 con resto 1

2

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

• Esempio: il numero 34510:345/2 = 172 resto 1

172/2 = 86 resto 0

86/2 = 43 resto 0

43/2 = 21 resto 1

21/2 = 10 resto 1

10/2 = 5 resto 0

5/2 = 2 resto 1

2/2 = 1 resto 0

1/2 = 0 resto 1

• Leggendo i resti dal basso verso l’alto (in quanto si ottengono a partire dalla cifra meno significativa, l’unità), si ha che rappresentazione binaria del numero 34510 è 1010110012

Conversione dalla base 10 alla base 2

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Conversione dalla base 2 alla base 10

• Sia cm cm-1cm-2 … c1c0 un numero rappresentato in base 2, usiamo:

cm x 2m + cm-1 x 2m-1 + cm-2 x 2m-2 + … + c1 x 21 + c0 x 20 = N10

• Esempio: 1010110012

1 x 28 + 0 x 27 + 1 x 26 + 0 x 25 + 1 x 24 + 1 x 23 +

0 x 22 + 0 x 21 + 1 x 20

=

256 + 64 + 16 + 8 + 1

=

34510

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Operazioni su numeri binari

• Vediamo solo il caso della addizione nella codifica binaria:– Si mettono in colonna i numeri da sommare

– Si calcola il riporto ogni volta che la somma parziale supera il valore 1

• Addizione:0 + 0 = 0 con riporto 0

0 + 1 = 1 con riporto 0

1 + 0 = 1 con riporto 0

1 + 1 = 0 con riporto 1

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Operazioni su numeri binari

• Addizione:

0 + 0 = 0 con riporto 0

0 + 1 = 1 con riporto 0

1 + 0 = 1 con riporto 0

1 + 1 = 0 con riporto 1

• Esempi:

1 +

1 =

1 0

1 0 1 +

1 1 =

1 0 0 0

1 0 1 1 0 1 0 1 +

1 0 0 0 1 1 0 =

1 1 1 1 1 0 1 1

1 1 1 +

1 1 =

1 0 1 0

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codici a lunghezza fissa

• Se si usa un numero prestabilito di cifre si ha un codice a lunghezza fissa– Normalmente i computer usano 32 o 64 bit per rappresentare i

numeri

• In questo modo si pone anche un limite al numero massimo rappresentabile

• Esempio: qual è il numero più grande rappresentabile con 4 cifre?– In base 10: 9999

– In base 2: 1111 (=1510)

– In base 16: FFFF (=6553510)

– In base 8: 7777 (=409510)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codici a lunghezza fissa

• Numeri maggiori di quello massimorappresentabile causano problemi di overflow– Ovvero per essere rappresentati richiedono più cifre di

quelle a disposizione

• Esempio: 4 cifre– In base 10: 9999 + 1 = 1000010

– In base 2: 1111 + 1 = 100002 (=1610)

– In base 16: FFFF + 1 = 1000016 (=6553610)

– In base 8: 7777 + 1 = 100008 (=409610)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codici a lunghezza fissa

• In generale, con N cifre a disposizione e base b il più grande numero (intero positivo) rappresentabile si può esprimere come

bN – 1

• Esempio: N=4

– In base 10: 9999 = 104 - 1

– In base 2: 1111 = 24 - 1

– In base 16: FFFF = 164 - 1

– In base 8: 7777 = 84 - 1

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codici a lunghezza fissa

• Esempio di overflow nel sistema binario dovuto a operazioni aritmetiche:

– 5 + 4 = 9 (in sistema decimale)

– Abbiamo usato solo un cifre decimale per il risulto

• Ricordiamo: 510 = 1012 , 410 = 1002

1 0 1 +

1 0 0 =

1 0 0 1

(in sistema binario)

Errore: overflow

(non può essere codificato

910 = 10012 con tre bit)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Codifica dei numeri

• Codificare il numero 13210 nella corrispondente rappresentazione binaria

• Ordinare in modo crescente i seguenti numeri:

– 10410

– 128

– 100112

– 1000100002

– 1001110

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Rappresentazione dei numeri

• In realtà, una semplice codifica binaria come quella discussa fino ad ora non è sufficiente, per due motivi:

– Numeri negativi

– Numeri con la virgola

• Per questi numeri vengono utilizzate delle rappresentazioni differenti

– Per esempio “complemento a due” per rappresentare i numeri negativi

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Componenti principali di un computer

Unità centraleProcessore

Dispositivi di

input/output

Memoria secondaria

Memoria

principale

Periferiche

del calcolatore

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Esempio

RAM

CPU

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

CPU (processore)

Unità centraleProcessore

Dispositivi di

input/output

Memoria secondaria

Memoria

principale

Periferiche

del calcolatore

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Esempio: Motorola 6502

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Esempio: Motorola 6502

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Esempio: Motorola 6502

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Componenti della CPU

• La CPU non è un unico componente ma è costituita da componenti diversi che svolgono compiti diversi

Unità di

controllo

Unità

aritmetico

logica

Program CounterREGISTRI

Registro di Stato

Bus Interno

Registro Istruzioni

Registri Generali 8 o 16…

Registro Indirizzi Memoria

Registro Dati Memoria

Registro di Controllo

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Esempio

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Unità di controllo

Unità di

controllo

Unità

aritmetico

logica

Program CounterREGISTRI

Registro di Stato

Bus Interno

Registro Istruzioni

Registri Generali 8 o 16…

Registro Indirizzi Memoria

Registro Dati Memoria

Registro di Controllo

L’unità di controllo è la parte più importante del processore• Esegue le istruzioni dei programmi

• Coordina le attività del processore

• Controlla il flusso delle istruzioni tra il processore e la memoria

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Unità di controllo

• Svolge la sua attività in modo ciclico (implementa il ciclo macchina)

• Fetch istruzione (preleva dalla memoria principale la

“prossima” istruzione da eseguire)

• Decodifica istruzione

• Fetch dati (preleva gli operandi specificati

nell’istruzione)

• Esecuzione istruzione

• Restituzione risultato

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Unità di controllo

• L’esecuzione comporta l’invio di comandi opportuni all’unità relativa

– Calcoli Unità aritmetico logica

– Lettura/scrittura dati memoria

– Acquisizione/stampa dispositivi di I/O

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Bus interno

Unità di

controllo

Unità

aritmetico

logica

Program CounterREGISTRI

Registro di Stato

Bus Interno

Registro Istruzioni

Registri Generali 8 o 16…

Registro Indirizzi Memoria

Registro Dati Memoria

Registro di Controllo

Bus interno: permette la comunicazione tra i

componenti del processore

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Bus interno

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Registri

Unità di

controllo

Unità

aritmetico

logica

Program CounterREGISTRI

Registro di Stato

Bus Interno

Registro Istruzioni

Registri Generali 8 o 16…

Registro Indirizzi Memoria

Registro Dati Memoria

Registro di Controllo

• I registri sono delle unità di memoria estremamente veloci

• Sono usate per mantenere le informazioni di necessità immediata per il processore

• Le dimensioni dei registri variano da 16, 32, 64 bit

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Unità aritmetico logica

Unità di

controllo

Unità

aritmetico

logica

Program CounterREGISTRI

Registro di Stato

Bus Interno

Registro Istruzioni

Registri Generali 8 o 16…

Registro Indirizzi Memoria

Registro Dati Memoria

Registro di Controllo

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Unità aritmetico logica

• L’Unità aritmetico logica (ALU) si occupa di eseguire le operazioni di tipo aritmetico/logico– Somme, sottrazioni, …, confronti, …

• Preleva gli operandi delle operazioni dai Registri Generali

• Deposita il risultato delle operazioni nei Registri Generali

• Insieme all’unità di controllo collabora al completamento di un ciclo macchina

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Clock

• Abbiamo visto che il processore svolga la sua attività in modo ciclico

– Ad ogni ciclo corrisponde l’esecuzione di un’operazione elementare (un’istruzione macchina)

• Il clock fornisce una cadenza temporale per l’esecuzione delle operazioni elementari

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

• Consideriamo una ipotesi semplificata: ogni battito di clock corrisponde esattamente l’esecuzione di una sola istruzione macchina– Per esempio: il clock che ha circa 66 milioni di battiti per secondo il computer può eseguire circa 66 milioni di operazioni per secondo

• In realtà, questa ipotesi non è sempre vero– L’esecuzione di una istruzione può richiedere più battiti di clock

– Oppure nello stesso ciclo di clock si possono eseguire (parti) di istruzioni diverse

– Dipende dal tipo di processore - per esempio:• Il processore Intel Core duo richiede 3 battiti del clock per calcolare

la moltiplicazione di due numeri

Clock

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

• La frequenza del clock si misura in:– MHz (1 MHz corrisponde circa a un milione di istruzioni

elementari/battiti al secondo)

– GHz (1 GHz corrisponde circa a un miliardo di istruzioni elementari/battiti al secondo)

• Per esempio: se acquistate un computer e vi dicono che ha un processore a 4 GHz– Vuol dire che il processore è in grado di eseguire (circa) 3 miliardi

di istruzioni al secondo

• Esempi: – Intel® Core™ i7-6700K Processor 4.2 GHz

– AMD ATHLON™ X4 QUAD-CORE 870K 4.1GHz

Clock

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Memoria principale

Unità centraleProcessore

Memoria secondaria

Memoria

principale

Periferiche

del calcolatore

Dispositivi di

input/output

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Memoria principale

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Memoria principale (RAM)

Unità centraleProcessore

Memoria

principale

012345

N

Sequenza di celle:

– ad ogni cella è

associato un indirizzo

(un numero progressivo

a partire da 0)

Insieme al processore

forma l’Unità Centrale

di un elaboratore

Contiene i programmi

e i dati usati dal

processore

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Memoria principale (RAM)

• Random Access Memory– 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 (il computer può accedere in qualsiasi momento a qualsiasi locazione)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Memoria principale (RAM)

• Alcune proprietà della memoria principale

– Volatile: è fatta di componenti elettronici, togliendo l’alimentazione si perde tutto

– (Relativamente) costosa (costo per bit)• Dalla lezione 1: i costi sono in diminuzione

– …

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Memoria principale (RAM)

• Alcune proprietà della memoria principale– …

– Veloce: per leggere/scrivere una cella ci vuole un tempo di accesso dell’ordine di poche decine di nanosecondi (millesimi di milionesimi di secondo = 10-9

sec.)• Tempo di accesso: il tempo tra

– Il momento in cui il processore specifica l’indirizzo della cella sui cui vuole operare e dà il comando di lettura/scrittura

– Il momento in cui l’operazione è terminata (il dato letto e disponibile oppure il dato scritto è in memoria)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Memoria principale (RAM)

• Tutte le celle hanno la stessa dimensione: 8, 16, 32, o 64 bit

• Le operazioni che si eseguono sulla memoria sono operazioni di lettura e scrittura

• Una cella può contenere (parte di) un dato o un’istruzione

0

1

2

3

4

5

N

Indirizzi

Contenuto (in questo

esempio, 8 bit)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Memoria principale (RAM)

• Ogni calcolatore usa un numero di bit costante per rappresentare gli indirizzi

• Maggiore è il numero di bit usati, maggiore sarà il numero di celle indirizzabili: spazio di indirizzamento– Se si usano 16 bit per codificare gli indirizzi, si potranno

indirizzare fino a 65.536 celle (circa 64 KB di memoria, nell’ipotesi di celle di memoria di 1 byte)

– Con 32 bit si potranno indirizzare fino a 4.294.967.296 celle (circa 4 GB di memoria)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Memoria principale (RAM)

• Le unità di misura della memoria RAM variano a seconda del tipo di calcolatore e vengono espresse in GB

• Nei PC generalmente si va dai 4GB ai 32 GB

• La RAM, fino ad un certo limite, è espandibile (slot di espansione)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Memoria ROM

• Memoria di sola lettura (ROM)

– fa parte della memoria principale

– non può essere modificata

– a differenza della RAM non è volatile

– veloce quasi come la RAM

– contiene le informazioni di inizializzazione usate ogni volta che si accende l’elaboratore (bootstrap)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Memoria cache

• Memoria cache– Livello di memoria intermedio tra i registri e la RAM

• Memorizza i dati usati più spesso senza doverli recuperare tutte le volte dalla RAM (che è più lenta)

• Influisce moltissimo sulle prestazioni e sul costo della CPU (e quindi del computer)

– È molto più costosa della RAM

– In genere è interna al processore (cache L1), ma esiste anche una cache secondaria (L2) esterna al processore

– Le sue dimensione tipiche vanno dai 1MB a 8MB

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Buffer

• Buffer– Piccole parti di RAM con funzioni di memoria temporanea

– Usati per il passaggio delle informazioni da un programma o dispositivo ad un altro

– In Windows si parla di Clipboard, memoria temporanea usata per esempio per le operazioni di Copia e Incolla

1

2

3

4

5

Foglio elettronicoProgramma di videoscrittura

Clipboard

(buffer)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Tecnologie costruttive

• SRAM (RAM statiche): – Costi elevati

– Tempi di accesso ridotti

– Normalmente usate per la memoria cache

• DRAM (RAM dinamiche):– Tempi di accesso più della SRAM (40-60 nanosecondi)

– Normalmente usate per la memoria principale

– SDRAM: DRAM sincrono, un clock (che ha una frequenza misurata in MHz) sincronizza l’accesso alla memoria

– DDR: Double Data Rate, raddoppia la velocità di trasferimento di dati tra la memoria e il processore

• VRAM (RAM video): usate per la gestione delle immagini

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Bus esterno

• Bus esterno: permette la comunicazione tra il processore e gli altri componenti del computer

CPU RAM Interfaccia

dati

indirizzi

controllo

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Bus esterno

Unità di

controllo

Unità

aritmetico

logica

REGISTRIBus Interno

1000 LOAD 4809 R2

1001 LOAD 3568 R1

1002 ADD R1 R2

1003 STORE R1 3568

1004 GOTO 1001

3568 25

4809 30

… Interfaccia

CPU RAM

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Componenti principali di un computer

Unità centraleProcessore

Memoria secondaria

Memoria

principale

Periferiche

del calcolatore

Dispositivi di

input/output

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Memoria secondaria

• La memoria principale non basta (è volatile, costosa)

• In grado di memorizzare i programmi e i dati in modo permanente

• È meno costosa che la memoria principale: le dimensioni della memoria secondaria sono di solito molto maggiori di quelle della memoria principale

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Memoria secondaria

• I supporti di memoria secondaria sono più lentirispetto alla memoria principale (presenza di dispositivi meccanici)

• Non tutti i supporti di memoria secondaria permettono l’accesso diretto ai dati

– Alcuni permettono solo un accesso sequenziale (per esempio, nastri magnetici)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Ricordiamo: caricamento del programma

• All’aumentare della capacità di memoria di massa, aumenterà il numero di programmi e documenti che potete conservare nel vostro computer

• Quando si “lancia” un programma questo viene copiato dalla memoria secondaria (di solito un hard disk) nella memoria principale

• Questa operazione si chiama caricamento del programma e viene eseguita dal sistema operativo

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Caricamento di un programma

• I programmi e i dati risiedono nel memoria secondaria

• Per essere eseguiti (i programmi) e usati (i dati) vengono copiati nella memoria principale

• Il processore è in grado di eseguire le istruzioni di cui sono composti i programmi

Processore

Memoria

secondaria

Memoria

principale

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Memoria secondaria

• La memoria secondaria deve avere capacità di memorizzazione permanente e quindi per la sua si utilizzano principalmente tecnologie basate:– sul magnetismo (tecnologia magnetica)

• dischi magnetici (hard disk e floppy disk)

• nastri magnetici

– sull’uso dei raggi laser (tecnologia ottica)

• dischi ottici (CD-ROM, DVD)

– sulla memoria flash (memoria elettronica allo stato solido)

• Solid State Drive (SSD)

• USB memory card

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

I dischi magnetici

• I dischi magnetici: sono i supporti di memoria più diffusi

• Nel corso delle operazioni:

– I dischi vengono mantenuti in rotazione a velocità costante

– Le informazioni vengono lette escritte da testine magnetiche

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

I dischi magnetici

• I dischi sono suddivisi in tracce concentriche e settori, ogni settore è una fetta di disco

– I settori suddividono ogni traccia in porzioni dette blocchi

Testina

TracciaBlocco

Settore

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

I dischi magnetici

piattotestina

briaccio

piattitestine

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

I dischi magnetici

• Hard disk (disco rigido/fisso):sono dei dischi che vengonoutilizzati come supporto dimemoria secondaria fissoall’interno del computer

– da alcuni GB di memoria(500 GB) ad alcuni TB (4 TB)e più

– Circa 5000 – 10.000giri al minuto

• Floppy disk (dischetti flessibili): sono supporti rimovibili

– Un solo disco, da 3,5 pollici di diametro, capacità 1,44 MB

– Circa 300 giri al minuto

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

La memoria ottica

• Usa il raggio laser e sfrutta la riflessione della luce– Il raggio laser viene riflesso in modo diverso da superfici diverse, e

si può pensare di utilizzare delle superfici con dei piccolissimi forellini

• Ogni unità di superficie può essere forata o non forata

• L’informazione viene letta guardando la riflessione del raggio laser

0 101

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

La memoria ottica

0 1 0 0 10101

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

I dischi ottici

• CD:– CD-ROM (CD-ROM ovvero Compact Disc Read Only

Memory): consentono solamente operazioni di lettura• Poiché la scrittura è un’operazione che richiede delle

modifiche fisiche del disco

• Vengono usati solitamente per la distribuzione dei programmi e come archivi di informazioni che non devono essere modificate

– CD-R: possono essere scrivibile una sola volta

– CD-RW: riscrivibili; basati su più strati di materiale

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

I dischi ottici

• DVD (Digital Versatile Disc): più capace e veloce del normali CD

– Sviluppati per le immagini di “standard” TV (a 768 ×576 pixel)

– DVD a doppio strato: un strato sotto l’altro; il primo strato è realizzato in materiale semi-trasparenti

• Blu-Ray e HD-DVD: sviluppati per le immagini digitali di alta risoluzione (a 1920 x 1080 pixel)

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Solid State Drive

• SSD: supporti di dimensioni simili aglihard disk (da 64 GB a 1 TB e più) mabasati su circuiti di memoria riscrivibilenon volatile (flash memory)

• sullo stesso principio sono basatichiavi USB, memory card, compact flash,memory pen, memory stick, USB flash drive,USB stick, … (2 GB - 64 GB)

• USB flash drive, USB stick:– utilizzabile sulle porte USB di un personal computer

– più veloce dei floppy disk, e facilmente trasportabili

– anche usati negli eBook readers e lettori MP3

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Unità di misura

• Chiavi USB/USB flash drive: 2 GB - 64 GB

• Hard disk: 500 GB - 4 TB

• SSD: 64 GB - 1 TB

• DVD: da 4.7 fino a 17 GB di memoria

• Nastri magnetici, usati solo per funzioni di backup

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

Componenti principali di un computer

Unità centraleProcessore

Memoria secondaria

Memoria

principale

Periferiche

del calcolatore

Dispositivi di

input/output

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

I dispositivi di input/output

• Interazione Uomo-Macchina

• Basata sui dispositivi di I/O

• La loro funzione primaria è quella di consentire …– l’immissione dei dati all’interno

del computer (input) o

– l’uscita dei dati dal computer (output)

• Interfaccia uomo/macchina– permette la comunicazione tra

l'essere umano e il computer

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

I dispositivi di input/output

• Si collegano alle porte del computer

– Ad alto livello le porte sono le “prese” cui si connettono i dispositivi

– Ne esistono di tipi diversi a seconda del tipo di collegamento e della velocità di trasmissione (esempio: porta USB,porta 1394)

USB

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

I dispositivi di input/output

• Le porte fanno parte di schede, che sono dispositivi interno al case (invulcro) del computer, e che sono connesse direttamente al bus

• Insieme, le porte e le schede di input/output realizzano l’interfaccia tra il bus e l’esterno (in questo caso l'interfaccia non è tra essere umano e computer!)

CPU RAM scheda

dati

indirizzi

controllo

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

I dispositivi di input/output

• Input:– Tastiera

– Mouse (e altri strumenti di puntamento)

– Scanner

– Microfono

– Macchine fotografia e telecamera digitale

– Lettori di codici a barre

• Output:– Monitor

– Stampante

– Casse acustiche

• Input/output:

– Touchscreen

– Modem

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

I dispositivi di input

• La tastiera: il principale strumento di input– Ogni volta che l’utente digita un tasto, la tastiera

“avverte” il processore che un carattere è disponibile

– Non ha capacità di elaborazione

– Un dispositivo di input cieco, nel senso che l’utente non può vedere i dati immessi

• La tastiera è utilizzata insieme ad un dispositivo di output su cui vengono visualizzate le informazioni fornite tramite tastiera

• La tastiera e il dispositivo di output non sono direttamente collegati tra loro

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

I dispositivi di input

• Il mouse: un dispositivo di puntamento– Una freccia (o un altro simbolo) indica la posizione del

mouse sul video e lo spostamento del mouse sul tavolo viene comunicato al processore, che produce lo spostamento corrispondente della freccia(/simbolo) sul video

– Una volta raggiunta la posizione desiderata, premendo uno dei pulsanti del mouse si genera un segnale in input che può corrispondere a diverse funzioni

– Come la tastiera: è “cieco”, non ha capacita di elaborazione

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

I dispositivi di output

• Il monitor: visualizza i dati che l’utente inserisce in input e i risultati delle elaborazioni del calcolatore

– Un monitor può essere visto come una matrice di punti (pixel) illuminati con diversa intensità

– La dimensione del monitor viene misurata in pollici (lunghezza della diagonale del video)

• Portatile: 12 ai 15 pollici

• Desktop: 15 ai 17 pollici

• Professionali: 17 ai 21 pollici

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

I dispositivi di output

• Scheda video:– Scheda che converte le informazioni di output del processore in

un segnale video che viene inviato tramite un cavo al monitor

– L’immagine che vediamo sul monitor(opportunamente codificata) viene memorizzata in una memoria specializzata detta memoria video (VRAM) (risiede sulla scheda video)

– Esistono schede video con accelerazione 2D oppure 3D: hanno la capacità di elaborazione

queste slide sono state scritte da J. Sproton: http://www.di.unito.it/~sproston/

I dispositivi di input/output

• Scheda audio:– Scheda che converte una segnale audio digitale in un segnale

audio analogico, riprodotti dai altoparlanti del computer

– Equipaggiato con un convertitore digitale-analogico

– Normalmente, le schede audio anche possono ricevere input (per esempio, da un microfono), che viene trasformato in un segnale digitale (la scheda è equipaggiato con un convertitore analogico-digitale)

• Touchscreen:– L’utente interagisce con il computer toccando lo schermo

(smartphone, tablet)