Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
di Informatica
- FONDAMENTI -
Università di Firenze
Facoltà di Lettere e Filosofia
Corso di Laurea in Lettere Moderne
a.a. 2010-11
alessandro.panunzi@unifi.it
Testi di riferimento
L. Console, M. Ribaudo, U. Avalle, C. Carmagnola, F. Cena
Introduzione all'informatica (4ed)
UTET, Torino, 2010
F. Tomasi
Metodologie informatiche e discipline umanistiche
Carocci, Roma, 2008
1
1. Teoria dell’informazione
Informatica
Il computer è in grado di
raccoglierel’informazione
elaborare/modificare l’informazione
trasmettere l’informazione
permettere l’input/output dell’informazione
2
L’informazione
Gestire l’informazione
3
Codici
Discreto VS continuo
Una delle proprietà fondamentale dei codici
riguarda la modalità con cui l’informazione
viene codificata e trasmessa
4
Discreto VS continuo
Necessità di “quantificare”
l’informazione: rappresentazione digitale
en. digit = “cifra, numero”
Nell’accezione corrente, “digitale” si usa
spesso come sinonimo di “binario” (binary)
5
La “profezia” di Leibniz
Quali sono le ragioni della rappresentazione binaria
dell’informazione?
6
Informazione come scelta
A Mathematical Theory of
Communication (1)
The fundamental problem of communication is that of
reproducing at one point either exactly or approximately a
message selected at another point. Frequently the
messages have meaning; that is they refer to or are
correlated according to some system with certain
physical or conceptual entities.
These semantic aspects of communication are
irrelevant to the engineering problem. The significant
aspect is that the actual message is one selected
from a set of possible messages. […]
If the number of messages in the set is finite then this
number or any monotonic function of this number can be
regarded as a measure of the information produced when
one message is chosen from the set, all choices being
equally likely.
7
Il bit
Rappresentare l’informazione
relativa a una scelta binaria
Messaggio = stato di una lampadina:
acceso spento
1 0
8
E quando le alternative sono
più di due?
La scelta tra più alternative viene ridotta a
una serie di scelte tra due alternative
Più alternative,
più informazione
8 colori: 8 stati diversi
codifica a 3 bit: (8 = 23)
9
Aumento dell’informazione
Codifica
informazione
codifica decodifica
rappresentazione
binaria
10
Definizione formale della
quantità di informazione
A livello matematico, il calcolo della quantità di
informazione si basa quindi sul numero di scelte
binarie che devono esser fatte al fine di poter
rappresentare tutti i possibili stati. In generale
possiamo dire che con X bit possiamo codificare 2X
informazioni
Successione esponenziale,
successione logaritmica
21 =2 log2 2 = 1
22 =4 log2 4 = 2
23 = 8 log2 8 = 3
24 = 16 log2 16 = 4
25 = 32 log2 32 = 5
26 = 64 log2 64 = 6
27 = 128 log2 128 = 7
28 = 256 log2 256 = 8
11
A Mathematical Theory of
Communication (2)
As was pointed out by Hartley the most natural choice
is the logarithmic function. […]
The choice of a logarithmic base corresponds to
the choice of a unit for measuring information. If
the base 2 is used the resulting units may be
called binary digits, or more briefly bits, a word
suggested by J. W. Tukey.
A device with two stable positions, such as a relay or a
flip-flop circuit, can store one bit of information. N such
devices can store N bits, since the total number of
possible states is 2N and log2 2N =N.
La rappresentazione
dell’informazione sul computer
Occorre sviluppare dei codici che
permettano di
12
Rappresentazione su
supporto fisico
Un vantaggio pratico della codifica binaria è
quello di essere facilmente rappresentabile
da diversi fenomeni fisici:
Stati di carica elettrica di una sostanza (+/-)
Stati di polarizzazione di una sostanza
magnetizzabile (+/-)
Passaggio/non passaggio di corrente in un
cavo elettrico
Passaggio/assenza di passaggio di luce in
un cavo ottico
Rappresentazione
attraverso un codice discreto
In generale: la rappresentazione binaria è
basato sulla presenza o assenza di un
fenomeno fisico (in un certo luogo, a un certo
punto di tempo)
13
Unità di misura
14
Premessa
Numeri
10 simboli: 0, 1, 2, 3, 4, 5 , 6, 7 ,8, 9
15
Sistemi posizionali
16
Cambiare la base
Base = numero di cifre disponibili nel sistema
Generalizzazione
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 c0 x b0 +
significativa
c1 x b1 +
c2 x b2 +
… +
cn-1 x bn-1 +
La cifra più cn x bn
significativa
17
Convertire un numero
binario in numero decimale
È un’operazione piuttosto semplice: basta esplicitare
la conversione in base 10 di ogni singola cifra
101000112 =
1 x 20 + 1x1 + 1 +
1 x 21 + 1x2 + 2 +
0 x 22 + 0x4 + 0 +
0 x 23 + 0x8 + 0 +
0x2 +4 0 x 16 + 0 +
1 x 25 + 1 x 32 + 32 +
0 x 26 + 0 x 64 + 0 +
1x2 =7 1 x 128 = 128 =
16310
Convertire un numero
decimale in numero binario
Metodo delle divisioni successive: 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
18
Convertire un numero
decimale in numero binario
Metodo delle divisioni successive
5410 =
1101102
19
3. Operazioni logiche:
l’algebra di Boole
Logica binaria
20
Applicazioni
21
Altri operatori
XOR: nella sua versione a due elementi restituisce 1
(vero) se e solo se un unico dei due operandi è 1,
mentre restituisce 0 (falso) in tutti gli altri casi.
A XOR B = ((NOT A) AND B) OR (A AND (NOT B))
Tavole di verità e
rappresentazioni di controllo
22
Operazioni logiche e numeri
binari
Le operazioni logiche possono essere applicate anche ai
numeri binari
operazioni logiche bit a bit
NOT 01001011 =
10110100
01001011 OR
10001111 =
11001111
01001011 AND
10001111 =
00001011
23
Codifica
informazione
codifica decodifica
rappresentazione
binaria
24
La codifica di basso livello
Repertorio di caratteri
un insieme di caratteri (es. “A”, “a”, “!”, “à”,
“P”, ecc.)
i caratteri sono entità astratte, da non
confondersi con il modo in cui sono realizzati
graficamente (glyphs fonts)
• “a”, “a”, “a”, “a” rappresentano lo stesso carattere
• la stessa realizzazione grafica può corrispondere
a caratteri diversi (es. “P” latino e “P” cirillico)
• CCCP
Codifica di carattere
algoritmo che determina come i codici dei caratteri
sono rappresentati in sequenze di bits (bytes)
25
Il codice ASCII
American Standard Code for
Information Interchange
Primo standard per l’assegnazione di codici a caratteri
(dal 1963)
set di caratteri riconosciuto da tutti i computer
conosciuto come “ASCII Standard” o ISO-646
Codifica
ciascun punto di codice è rappresentato con il numero
binario corrispondente di 7 bits (+ 1 “bit di parità”)
7 bits = 27 punti di codice = 128 caratteri rappresentati
ASCII binario
26
ASCII decimale, esadecimale e ottale
Codifica di parole
Parole sono sequenze di caratteri
27
Extended ASCII
28
ISO 8859
29
ISO 8859-1 (Latin-1)
30
Problemi di ISO 8859
31
Codifica UNICODE
Unicode è un soprainsieme di ASCII
Codifica UNICODE
Diversi sistemi di codifica
UTF-8 (1 byte), UTF-16 (2 byte), UTF-32 (4 byte)
codici meno lunghi per i caratteri più frequenti
Distinzione tra:
Repertorio di caratteri rappresentati
Punto di codice unico del carattere (es. U+0041)
32
Problemi di “carattere”
33
5. La codifica del suono
Il suono
34
L’onda sonora
ampiezza
corrisponde all’intensità del suono (dB)
frequenza = 1/periodo
misura il numero delle oscillazioni al secondo (Hz);
corrisponde alla qualità dell’altezza del suono
Campionamento
35
Campionamento
Quantizzazione
36
Un esempio
Un esempio
Soluzione:
1 minuto = 60 secondi
44.100 campioni al secondo
16 bit per ogni campione
60 x 44.100 x 16 = 42.336.000 bit
= 5.292.000 byte ≈ 5 MB
37
Il peso dell’informazione
Aumentando la frequenza di
campionamento e/o la profondità di bit per
ogni campione, aumenta la dimensione del
file audio corrispondente
La compressione audio
38
6. La codifica dell’immagine
L’informazione relativa
all’immagine
Anche nel caso dell’immagine,
l’informazione che si vuole digitalizzare ha
carattere continuo
39
Digitalizzazione di immagini
in bianco e nero
Digitalizzazione di immagini
in bianco e nero
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
40
Digitalizzazione di immagini
in bianco e nero
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
Digitalizzazione di immagini
in bianco e nero
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
41
Digitalizzazione di immagini
in bianco e nero
Non sempre il contorno della figura coincide
con le linee della griglia. Quella che si
ottiene nella codifica è un’approssimazione
della figura originaria
Digitalizzazione di immagini
in bianco e nero
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: aumento della
risoluzione
42
Codifica del colore
es.
se utilizziamo quattro bit possiamo
rappresentare 24 = 16 livelli di grigio o
16 colori diversi
43
RGB
rosso (Red)
verde (Green)
blu (Blue)
44
Esempi di colore
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
100000001000000010000000+
010000000100000001000000=
110000001100000011000000
45
Codifica esadecimale
La dimensione delle
immagini
Esempio: quanti bytes ci vogliono per
codificare un’immagine Truecolor nello
standard SVGA con risoluzione 800 x 600?
Soluzione:
3 byte per pixel
800 x 600 = 480.000 pixel
480.000 x 3 = 1.440.000 byte ≈ 1,37 MB
46
La compressione delle
immagini
Ridurre le dimensioni di un’immagine bitmap:
es. 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
Formati di compressione:
Lossless: compressione senza perdita di informazioni
(GIF, PNG; dalla versione compressa, si può
ricostruire la versione non-compressa)
Lossy: compressione con perdita di informazioni
(JPEG; dalla versione compressa, non è possibile
recuperare la versione originale)
47
7. La macchina di Turing
L’elaboratore:
uno sguardo dall’esterno
Il computer è una macchina in grado di elaborare
informazione, ovvero di:
ricevere l’informazione in ingresso (input)
PROCESSARLA secondo determinate regole
restituire l’informazione in uscita (output)
48
Un modello astratto
Per dare conto del funzionamento di un elaboratore,
può essere utile analizzare un modello astratto
composto da:
un nastro di lunghezza potenzialmente infinita,
composto da singole celle di memoria in cui può
essere scritta l’informazione (in codifica binaria)
una testina in grado di scorrere liberamente sul nastro
e di leggere/scrivere l’informazione
un’unità centrale che contiene: (a) l’insieme finito
degli stati possibili che la macchina può assumere; (b)
l’insieme finito delle istruzioni che determinano il
comportamento della macchina
La Macchina di Turing
49
Funzionamento di una MdT
50
Funzionamento di una MdT
51
Una MdT per l’addizione:
configurazione iniziale
Stato iniziale
A
Contenuto iniziale del nastro
tutte le celle contengono il simbolo 0, tranne due
gruppi (non contigui) formati rispettivamente da due e
da tre celle che contengono il simbolo 1
Posizione iniziale della testina
prima cella occupata da un 1
A …0 0 1 1 0 1 1 1 0 0 …
52
Limiti di computabilità
53
8. L’architettura di von Neumann:
l’Unità Centrale dell’elaboratore
54
Primi elaboratori elettronici
Von Neumann prese parte alla progettazione e alla
realizzazione di due fra i primi computer
l’ENIAC (Electronic Numerical Integrator and
Computer, 1946), fino al 1973 ritenuto il primo
calcolatore elettronico programmabile
• 30 armadi alti quasi 3m, peso 30t, superficie 180mq
• 300 moltiplicazioni al secondo
l’EDVAC (Electronic Discrete Variable Automatic
Computer, 1951), primo computer con programmi in
memoria
• lo schema generale dell’architettura di von Neumann fu
pubblicata in un report tecnico relativo a questo
elaboratore (http://www.virtualtravelog.net/entries/
2003-08-TheFirstDraft.pdf)
L’architettura di
von Neumann
Cinque componenti fondamentali:
CPU (Central Processing Unit) o unità di
lavoro che si divide a sua volta in
• unità operativa, nella quale uno dei sottosistemi
più rilevanti è l'ALU (Arithmetic Logic Unit), che
esegue le operazioni aritmetiche e logiche
• unità di controllo, che controlla tutti i processi
Unità di memoria, intesa come memoria di
lavoro o memoria principale (RAM,
Random Access Memory)
• CPU + memoria principale = Unità Centrale
55
L’architettura di
von Neumann
Cinque componenti fondamentali:
Bus, un canale che permette ai dati, agli
indirizzi e ai risultati di viaggiare dentro la
CPU e fuori di essa verso la memoria
Unità di input, tramite la quale i dati
vengono inseriti nel calcolatore per essere
elaborati
Unità di output, necessaria affinché i dati
elaborati possano essere restituiti
all'operatore
56
CPU e memoria principale
La CPU è in grado di
eseguire una dopo l’altra (sequenzialmente) le
istruzioni di un programma
inviare e ricevere dati da e verso la memoria
principale
Generalità dell’architettura di
von Neumann
È importante sottolineare che tale
architettura, a differenza di altre, si distingue
per la caratteristica di immagazzinare
all'interno dell'unità di memoria, sia i dati dei
programmi in esecuzione che il codice di
questi ultimi
57
Architettura di un
elaboratore moderno
La scheda madre
58
9. La memoria
Le memoria principale
59
RAM
60
Struttura della RAM
Contenuto (in questo
Indirizzi esempio, 8 bit)
Tutte le celle hanno la
stessa dimensione: 8, 0
16, 32, o 64 bit 1
Le operazioni che si 2
3
eseguono sulla memoria
4
sono operazioni di 5
lettura e scrittura
Una cella può contenere
(parte di) un dato o
un’istruzione
N
Indirizzi
61
Dimensioni della RAM
ROM
62
Memoria cache
Buffer
63
Famiglie di memoria
DRAM (RAM dinamiche):
tempi di accesso di 40-60 nanosecondi
normalmente usate per la RAM
SDRAM: DRAM sincrono
DDR DRAM: Double Data Rate, raddoppia la velocità
di trasferimento di dati tra la memoria e il processore
La memoria secondaria
64
Caratteristiche della
memoria secondaria
La memoria principale permette di indirizzare
ogni singola cella (8, 16, 32 o 64 bit)
65
La memoria magnetica
Dischi magnetici
66
Struttura di un disco
magnetico
I dischi sono suddivisi in tracce
concentriche e settori (“fette” di disco)
i settori suddividono ogni traccia in porzioni
dette blocchi
Traccia Blocco
Testina
Settore
Formattazione
67
Accesso ai dischi magnetici
testina testine
piatto piatti
briaccio
68
La memoria ottica
1 0 0 1
1 0 1 0 0 1 0 0 1
69
I dischi ottici
70
Inside the memory
Programmi
sequenze di istruzioni per l’elaborazione
delle informazione
definiscono quale debba essere il
comportamento del processore
i computer eseguono deterministicamente
istruzioni
Dati
sequenze di bit, interpretabili in diversi modi
Programmi e dati
71
Istruzioni macchina
Istruzioni aritmetico-logiche:
addizione, sottrazione, confronto tra due numeri…
AND, OR, NOT, XOR…
Istruzioni di controllo:
permettono modificare il flusso di esecuzione delle
istruzione (per esempio, sulla base di eventi esterni o
di risultati ottenuti dalle istruzioni precedenti)
72
Caratteristiche delle
istruzioni
Le istruzioni possono avere formati diversi, e
contemplano degli “argomenti”
Formatodi un’istruzione:
CODICE istruzione | ARG1 | ARG2 | … ARGn
Esempi di istruzioni
(in assembly)
Istruzioni aritmetico-logiche
ADD R1 R2 R3: recupero dei valori nei registri
(memoria interna al processore) R2 e R3 e inserimento
del risultato della loro somma nel registro R1
Istruzioni di controllo
IF_EQ […]: se una condizione è vera, proseguire in un
certo modo, altrimenti proseguire in un altro modo
GOTO 1013: salta all’istruzione contenuta nella cella di
memoria con indirizzo 1013
73
Il linguaggio macchina
Il linguaggio in cui si scrivono le istruzioni macchina
prende il nome di linguaggio macchina
una sequenza di tali istruzioni prende il nome di
programma in linguaggio macchina
Il linguaggio macchina è in formato binario (l’unico
interpretabile da un processore)
I programmi e i processori
74
Programmi, elaboratori e
programmatori
Il computer esegue le istruzioni di un programma
codificato in formato binario, ma un programmatore
non scrive codice in linguaggio macchina
Linguaggio assembly: traduce le istruzioni del
linguaggio macchina in un formato non binario
I programmatori scrivono i programmi usando
linguaggi con un maggiore livello di “astrazione”
linguaggi di programmazione di alto livello (Java, C…)
un singolo commando di un linguaggio di
programmazione può corrispondere a più istruzioni
macchina
CPU
… Registri Generali 8 o 16
Unità
aritmetico
logica Registro Indirizzi Memoria
Registro Dati Memoria
Registro di Controllo
75
Unità di controllo
Unità di controllo
fetch istruzione
• preleva dalla memoria principale la “prossima”
istruzione da eseguire
decodifica istruzione
fetch dati
• preleva dalla memoria gli operandi specificati
nell’istruzione
esecuzione istruzione
restituzione risultato
76
Unità di controllo
Bus
Bus interno: permette la comunicazione tra i
componenti del processore
Bus esterno: permette la comunicazione tra il
processore e gli altri componenti dell’elaboratore
dati
indirizzi
controllo
77
Bus
CPU RAM
…
REGISTRI 1000
LOAD
4809
R2
Bus Interno
1001
LOAD
3568
R1
1002
ADD
R1
R2
Unità di
controllo 1003
STORE
R1
3568
1004
GOTO
1001
… …
Unità
aritmetico
3568
25
logica …
4809
30
…
Interfaccia
Registri
78
Registri
Program Counter
memorizza l’indirizzo della “prossima”
istruzione da eseguire
• normalmente le istruzioni di un programma sono
memorizzati in sequenza nella memoria principale
• il Program Counter è aumentato (di 1) ogni ciclo
(indirizzo della prossima istruzione da eseguire)
• eccezione: istruzione di controllo (es. GOTO)
Registri Generali
registri
utilizzati come memorie temporanee
per svolgere le operazioni matematiche
79
Clock
Abbiamo detto che il processore svolge la sua
attività in modo ciclico (ciclo macchina)
ad ogni ciclo corrisponde l’esecuzione di
un’operazione elementare (un’istruzione macchina)
Clock
Ipotesi semplificata: ogni battito di clock corrisponde
esattamente l’esecuzione di una sola istruzione
macchina
es. il clock ha ~66 milioni di battiti per secondo
il computer può eseguire ~66 milioni di operazioni al
secondo
80
Esecuzione di un
programma
I programmi e i dati risiedono nella memoria
secondaria
all’aumentare della capacità di memoria di massa,
aumenterà il numero di programmi e di dati che
potete conservare nel vostro computer
81
Il computer
Il software
Software di base
gestione del sistema (controlla l’hardware,
gestisce l’interfaccia con utente, coordina le
applicazioni; cfr. sistema operativo,
interfaccia di rete…)
Software applicativo
uso del sistema (programmi che permettono
di svolgere le varie funzioni richieste
all’elaboratore)
82
Programmazione
dell’elaboratore
Una programmazione diretta della macchina
hardware da parte degli utenti creerebbe
delle serie difficoltà
l’utente dovrebbe conoscere
l’organizzazione fisica dell’elaboratore e il
suo linguaggio macchina
ogni programma dovrebbe essere scritto
utilizzando delle sequenze di bit ed ogni
piccola differenza hardware comporterebbe
una riscrittura del programma stesso
L’utente deve:
poter usare nello stesso modo (o comunque
in un modo molto simile) macchine diverse
dal punto di vista hardware
avere un linguaggio di interazione semplice
con la macchina
avere un insieme di programmi applicativi
per svolgere compiti diversi
83
La “macchina virtuale”
Il linguaggio di comandi
84
Funzioni principali del
sistema operativo
Gestione del processore e dei programmi in
esecuzione (processi)
Interfaccia testuale
85
Interfaccia grafica
Schema del
sistema operativo
Utente
0111000101
Hardware
1101010100
0011110
Avvio
Interfaccia utente
86
Struttura “a cipolla”
Mono-programmati o multi-programmati
(mono/multi-tasking)
elaboratori
in grado di eseguire un solo
programma alla volta VS più programmi
“contemporaneamente”
87
Avvio dell’elaboratore
Avvio dell’elaboratore
0
Una parte del 1
2
sistema operativo 3 S.O.
deve essere 4
5
sempre mantenuta
in MEMORIA
PRINCIPALE e
deve essere spazio
sempre pronta per utente
l’esecuzione
N
88
Gestione del processore e
dei programmi in esecuzione
Sistemi MONO-tasking: l’utente può eseguire
un solo programma alla volta
forzato a “sequenzializzare” i programmi
il programma viene lanciato, eseguito e
quindi terminato
il processore non viene sfruttato al meglio: si
spreca molto tempo, in quanto
• il processore è molto più veloce dei supporti di
memoria secondaria e delle altre periferiche
• passa la maggior parte del suo tempo in attesa
(stato inattivo, idle)
Sistema mono-tasking:
esempio 1
Un processo è costituito da 1000=103
istruzioni
ogni istruzione richiede 10-6 secondi per
essere eseguita dal processore
tempo totale di esecuzione: 103 * 10-6 = 10-3
= 1 millisecondo
A metà esecuzione è richiesta la lettura di un
dato dal disco. Il tempo di lettura è 1
millisecondo
Tempo totale di esecuzione = 2 millisecondi
Idle time = 1 millisecondo: 50% del tempo
totale di esecuzione è tempo sprecato
89
Sistema mono-tasking:
esempio 2
Un processo è costituito da 1000=103
istruzioni
Ogni istruzione richiede 10-6 secondi per
essere eseguita dal processore
Tempo totale di esecuzione: 103 * 10-6 = 10-3
= 1 millisecondo
A metà esecuzione è richiesta un dato
al’utente. Il tempo di reazione è 1 secondo
Tempo totale dell’esecuzione = 1001
millisecondi
Idle time = 1 secondo: 99,9% del tempo totale
di esecuzione è tempo sprecato
Esecuzione sequenziale
Processo P1 Processo P2
inizio fine inizio fine
esecuzione in attesa
Processore
attivo idle
90
Gestione del processore e
dei programmi in esecuzione
Sistemi MULTI-tasking
quando il processore è nello stato di idle lo si
può sfruttare per eseguire (parte di) un altro
processo
quando un processo si ferma (per esempio
in attesa di un dato dall’utente) il processore
può passare ad eseguire le istruzioni di un
altro processo
il sistema operativo si occupa dell’alternanza
tra i processi in esecuzione
Sistemi multi-tasking
P2
esecuzione P1 esecuzione P2
91
Sistemi multi-tasking
92
Il file system
Organizzazione gerarchica
dei file
Un unico spazio (“contenitore”) di file è
scomodo
non è possibile avere due file con lo stesso nome
nella stessa contenitore
le operazioni di ricerca dei file diventano onerose
93
12. Reti di Computer
Condivisione risorse:
dati e programmi (es. base di dati a cui molti
utenti possono accedere da diversi computer)
risorse fisiche (es. stampante)
94
Il modello centralizzato
Il modello distribuito
95
Evoluzione dei modelli
96
Tipi di rete
tecnologia di trasmissione
scala
97
Topologia delle reti:
reti lineari (a bus)
Unico canale di comunicazione (dorsale)
condiviso da tutte le macchine della rete
Buona affidabilità
se si rompe un nodo, viene isolato ma la rete
funziona; se si rompe la dorsale, si creano due
sottoreti
Costo limitato
un nodo per ogni elaboratore collegato
98
Topologia delle reti:
reti ad anello
I nodi sono organizzati secondo una
configurazione ad anello e non sono tutti
direttamente collegati
Il segnale emesso da un nodo passa al nodo
successivo; se non è indirizzato a quel nodo,
viene ritrasmesso al nodo seguente, finché non
raggiunge il destinatario
Minore affidabilità
se un nodo non funziona, l’anello si interrompe
l’aggiunta di un nuovo nodo comporta l’apertura
dell’anello
Costo ridotto
simile a quello delle reti lineari (n nodi n archi)
99
Topologia delle reti:
reti a stella
Architettura tipica per reti locali (LAN)
I nodi sono tutti collegati a un nodo centrale,
tipicamente a un server
Le comunicazioni tra due nodi non sono dirette
ma passano attraverso il server che provvede a
smistarle verso il nodo destinazione
SERVER
Buona affidabilità
se si rompe un nodo esterno, la rete funziona;
tutto dipende dall’affidabilità del server
Costo ridotto
n nodi n archi (+ costo del server)
100
Tecnologia di trasmissione
Metodi di trasmissione:
digitale VS analogica
Reti locali
si possono usare connessioni specializzate
dedicate solo a trasmissione di segnali
DIGITALI
101
Metodi di trasmissione: linee
dedicate VS commutate
Linee dedicate: usate esclusivamente per la
comunicazione tra due calcolatori
Scala
Un criterio alternativo per classificare le reti è legato
alla loro scala, che si determina in base alla
dimensione dei processori e alla loro distanza
1 km Università LAN
102
LAN
(Local Area Network)
Reti private per la condivisione di risorse
all’interno di un edifico o in edifici vicini
risorse come computer, stampanti, dati
MAN
(Metropolitan Area Network)
Unarete metropolitana è sostanzialmente
una versione ingrandita di una LAN
103
WAN
(Wide Area Network)
Una rete WAN copre una grande area
geografica
es. rete GARR, che collega tutte le Università
italiane
13. Internet
104
Sviluppo di Internet
Nasce da ARPAnet (creato alla fine degli anni ’60,
una rete singola e chiusa) e altre reti (reti
proprietarie)
Rete delle reti: basata sull’interconnessione delle
reti (eterogenee) già esistenti (inter-networking)
l'idea di interconnessione tra le reti è dei primi anni
’70
Esplosione di Internet
primi anni ’90: creazione del World Wide Web
2002: accesso ad Internet per 457 milioni di persone
(di cui 174 milioni negli Stati Uniti)
2006: accesso ad Internet per 1 miliardo di persone
(37% in Asia, 28% in Europa, 22% in Nord America)
Tipi di comunicazione
Sincronizzazione tra mittente e destinatario
Sincrona: il mittente e il destinatario sono attivi nello
stesso momento; es. conversazione telefonica
Asincrona: l’invio e la ricezione hanno luogo in istanti
diversi; es. cartolina
Rapporto tra mittente e destinatari
Broadcast: un singolo mittente e molti destinatari; es.
radio, TV
Multicast: un singolo mittente e un numeri limitato di
destinatari; es. riviste
Point-to-point: un singolo mittente e un singolo
destinatario; es. telefono
105
Tipi di comunicazione
Componenti di Internet
106
Componenti di Internet
Client/Server
Gli host possono essere identificati come client e/o
server
client: il computer che richiede servizi da un altro
computer
server: il computer che fornisce un servizio a un client
107
Server
Server in una rete locale
Server gestore dei dati (file server): gestisce la
memorizzazione e la condivisione di dati
Server di stampa (printer server): gestisce le
stampanti disponibili nella rete
Server di comunicazione: permette l’accesso ad altre
reti locali o ad Internet
Server in Internet
Web server: risponde alle richieste per accedere a
una pagina web
Server di posta elettronica: riceve e memorizza email,
permette la lettura della casella di posta elettronica
108
I protocolli
I protocolli controllano l’invio e la ricezione di
informazione in Internet, e nelle reti in generale
usati dai sistemi terminali, i commutatori di pacchetto
e altre parti di Internet
“definiscono il formato e l’ordine dei messaggi
scambiati tra due o più entità in comunicazione”
“definiscono le azioni intraprese in fase di
trasmissione e/o di ricezione di un messaggio o di un
altro evento” (Kurose e Ross, Internet e Reti di
Calcolatori)
Principali protocolli in Internet: nome collettivo di
TCP/IP (Transmission Control Protocol / Internet
Protocol)
I protocolli
109
I protocolli
I protocolli
110
I protocolli Internet: TCP/IP
Applicazione Applicazione
Trasporto Trasporto
Rete Rete
Collegamento Collegamento
Fisico Fisico
IP Livello di rete
Livello di collegamento
Livello fisico
111
Livello di applicazione
Livello di trasporto
112
Livello di rete
Livello di collegamento
113
Livello fisico
Indirizzi IP e DNS
114
Indirizzi IP e DNS
Indirizzi IP e DNS
115
Indirizzi IP e DNS
Schema gerarchico di nomi basato sul concetto di
dominio
root
Indirizzi IP e DNS
Struttura degli indirizzi di posta elettronica
parte a destra della @: struttura basata sui domini
(interpretato dal computer che spedisce il messaggio)
parte a sinistra della @: identificativo dell’utente
(interpretato dal computer che riceve il messaggio)
116
Indirizzi IP e DNS
Quando un’applicazione deve collegarsi ad una risorsa
di cui conosce il nome logico (“www.unifi.it”), invia una
richiesta al suo name server locale per sapere l'IP a
cui devono essere indirizzati i pacchetti
Se il name server locale conosce la risposta, la invia
direttamente al richiedente; altrimenti interroga il name
server di livello più alto (root)
questo può conoscere l’indirizzo oppure inoltrare
l’interrogazione ai suoi figli nella gerarchia
Si continua con le interrogazioni fino a quando non si
ottiene l’indirizzo IP numerico della risorsa a cui ci si
vuole collegare
Quando l’applicazione riceve la risposta crea una
connessione TCP con la destinazione, usando
l’indirizzo IP appena ricevuto
Pacchetti IP
117
Trasferimento di pacchetti IP
Trasferimento di pacchetti IP
118
Trasferimento di pacchetti IP
Trasferimento di pacchetti IP
119
14. Il World Wide Web
WWW
120
WWW
URL
121
Page source
HTML
122
HTML
123
Servizi web
I documenti HTML vengono immagazzinati di solito
sui dischi rigidi di macchine costantemente collegate
ad Internet
su queste macchine vi è installato un software detto
web server, che si occupa di produrre e inviare i
documenti ai browser che ne fanno richiesta
Spesso il documento HTML viene generato da un
software residente sul server, che può così inviare al
browser una pagina adattata a particolari situazioni
è il caso di software scritti nei linguaggi come ASP,
PHP o Perl. Questi linguaggi permettono la
realizzazione delle cosiddette pagine “dinamiche”
124
Comportamento del browser
Il browser richiede le informazioni inviando una
richiesta a un certo indirizzo.
In caso di una tipica pagina web, il testo HTML di
una pagina è richiesto per primo ed
immediatamente interpretato dal browser
Successivamente, il browser richiede eventuali
immagini o file che saranno incorporate per formare
la pagina definitiva.
Una volta ricevuti i file richiesti, il browser formatta la
pagina sullo schermo seguendo le specifiche HTML,
CSS, o di altri linguaggi web.
125
Credits
WIKIPEDIA
• http://it.wikipedia.org
126