Lucidi del Precorso - Teoria - Dipartimento di Scienze Ambientali

Precorso di
Informatica 2007/2008
A.A. 2007/2008
Precorso di Informatica - A.A. 2007/2008
Programma del corso
✔




8 ore di lezioni teoriche
Lunedì 10 e venerdì 14 settembre
Algoritmi e Programmazione
Architettura degli elaboratori
Sistemi Operativi
Networking
✔
8 ore di pratica in laboratorio
Da lunedì 17 settembre a giovedì 20 settembre
[email protected]
Precorso di Informatica - A.A. 2007/2008
Il corso di laurea in Informatica
«Computer science is no more about
computers than astronomy is about
telescopes.»
Edgser Dijkstra, Turing award in 1972
In questo corso di laurea non si insegna ad
utilizzare il computer o a programmare
(anche se sono inevitabili effetti collaterali)
Precorso di Informatica - A.A. 2007/2008
Una corretta alimentazione
Programmazione,
Ing. del Software,
Architettura,
Sistemi Operativi,
Basi di Dati....
Linguaggi e
Programmazione
Basi
Matematiche
Algoritmi
e strutture dati
Logica, Algebra,
Teoria dei grafi,
Matematica discreta,
Calcolo numerico,
Computabilità....
Algoritmi,
Complessità,
Correttezza,
Terminazione,
Strutture dati....
Precorso di Informatica - A.A. 2007/2008
Il mestiere dell'informatico
Il laureato in materie informatiche è flessibile:
Programmatore
Sistemista
Progettista
Docente
Call center operator
Altro....
Non tutti i compiti hanno lo stesso grado di
desiderabilità... (...e di difficoltà)
Precorso di Informatica - A.A. 2007/2008
Un po' di storia
• L'ingresso del calcolatore nel mondo del lavoro
risale all'inizio del 1900; la tecnologia delle
macchine di calcolo prodotte all'inizio del
secolo era meccanografica
• Con queste macchine si eseguivano calcoli ad
una discreta velocità (per quei tempi),
dell'ordine di 60 operazioni al minuto; la loro
gestione era tuttavia molto complessa
• I “programmi” venivano “scritti” su schede
perforate che venivano interpretate
meccanicamente dall’elaboratore.
Una scheda
perforata
Precorso di Informatica - A.A. 2007/2008
Alan Turing
• Nel 1936 il logico inglese Alan
Turing definisce il modello del
calcolatore moderno, la
cosiddetta 'macchina di Turing'
• Essa è in grado di eseguire
operazioni elementari secondo
uno schema di calcolo ricorsivo,
che consenta di risolvere ogni
tipo di problema di logica
simbolica in un numero finito di
passi
• Non ne verranno costruiti
esemplari reali, ma la sua idea
costituirà la base
dell'architettura dei futuri
computer.
Precorso di Informatica - A.A. 2007/2008
La guerra ed ENIAC
Con lo scoppio della Seconda Guerra Mondiale, il
progresso nell'area dei computer subirà degli
sconvolgimenti: le esigenze strategiche e militari
daranno impulso a nuovi tipi di ricerche e di
macchine, tra cui l’ENIAC (Electronic Numerical
Integrator and Calculator), che impiegò per la prima
volta valvole elettroniche, e venne utilizzato per
calcolare traiettorie balistiche.
ENIAC
Precorso di Informatica - A.A. 2007/2008
Enigma
• Enigma è una macchina
crittografica utilizzata
durante la guerra dalle armate
tedesche per cifrare le
comunicazioni
• La macchina era stata
inventata da un ingegnere
polacco e non è chiaro come
sia potuta finire nelle mani dei
tedeschi
• A causa di questo elaboratore,
gli inglesi ebbero grossi
problemi a decifrare i
messaggi intercettati.
Precorso di Informatica - A.A. 2007/2008
Gli anni '50
• Il 1955 vede la nascita di IBM 702: la prima
macchina commerciale completamente costruita
con transistor e messa sul mercato da IBM.
• Dal 1956 fu introdotto il FORTRAN, primo
linguaggio di programmazione ad alto livello,
a cui seguirono LISP, COBOL, ALGOL e BASIC
(Beginner's All-purpose Symbolic Instruction Code).
IBM 702
Precorso di Informatica - A.A. 2007/2008
Gli anni '60
• Nel 1962 nasce al MIT il primo video game,
sviluppato da Steve Russell; tuttavia non era
molto economico, visto che una partita di un'ora
costava circa 300$.
• Nel 1964 La Epson inventa la stampante a matrice
di punti (dot matrix printer).
Precorso di Informatica - A.A. 2007/2008
Il 1969
• I laboratori Bell sviluppano il sistema operativo
UNIX.
• Viene disegnata una semplice combinazione di un
processore e di una unità di calcolo (la prima CPU),
che sarà poi effettivamente realizzata dalla Intel.
Il processore Intel 4004 a 4 bit diede
inizio alla rivoluzione elettronica;
in un unico chip era contenuta tutta la
potenza di calcolo dell’ENIAC.
• Su commissione del Dipartimento della Difesa USA,
ARPANET studia la prima rete (ha solo 4 nodi), che
diverrà la più grande rete mondiale: Internet.
Precorso di Informatica - A.A. 2007/2008
Il Computer entra in casa
• Fino al 1977 gli elaboratori erano utilizzati soltanto
da aziende e organismi governativi, ed avevo prezzi
esorbitanti
• In quell’anno viene annunciato l'APPLE II, il primo
personal computer, con programmi di
videoscrittura, fogli di calcolo, giochi e tanto altro.
• Nel 1984 viene annunciato dalla Apple il personal
computer Macintosh; si tratta una macchina
interamente grafica, dal prezzo abbordabile.
PC APPLE II
Apple Macintosh
Precorso di Informatica - A.A. 2007/2008
Microsoft windows
Nel 1977 Bill Gates e Paul Allen fondano la Microsoft
• Otto anni dopo la Microsoft sviluppa Windows 1.0,
introducendo aspetti tipici del Macintosh nei
computer DOS.
• Si verificheranno continue dispute legali tra
Microsoft ed Apple a causa dell’eccessiva
somiglianza di Windows e Macintosh.
Precorso di Informatica - A.A. 2007/2008
File System
• Negli ultimi dieci anni la potenza di calcolo dei PC ha
avuto una crescita continua; tuttavia la loro
complessità è irrisoria rispetto a quella dei
supercomputer:
– elaboratori dedicati ad utilizzi in cui vi sia la
necessità di sostenere elevati volumi di
elaborazione, come in enti di difesa, centri di
ricerca, istituti di meteorologia, aziende
aerospaziali ecc.
Precorso di Informatica - A.A. 2007/2008
I concetti chiave dell'Informatica
In effetti l'informatica è una scienza piuttosto semplice,
in quanto si occupa unicamente di due cose:
Informazione (cosa)
Algoritmi
(come)
Precorso di Informatica - A.A. 2007/2008
Il concetto di informazione
Informazione è qualsiasi cosa che possa essere:
✔ Comunicata
✔ Capita
✔ Interpretata ed assimilata
A questa idea corrispondono tre livelli di definizione
dell'informazione:
✔ Livello sintattico
✔ Livello semantico
✔ Livello cognitivo
Precorso di Informatica - A.A. 2007/2008
Livello sintattico
L'informazione per essere comunicata ha bisogno di:
✔ Un linguaggio con cui esprimerla
✔
il linguaggio naturale
il linguaggio dei segni
il linguaggio matematico
✔ Un messaggio (espresso in tale linguaggio) che la
codifichi
✔
una frase in italiano
una sequenza di 13 simboli scelti in {1,2,X}
Precorso di Informatica - A.A. 2007/2008
Livello sintattico
Esempio: il numero dieci
✔ In italiano:
dieci
✔ In inglese:
ten
✔ In notazione decimale:
10
✔ In notazione binaria:
1010
✔ In notazione esadecimale:
A
✔ In numeri romani:
X
✔
Tutti questi messaggi esprimono il numero dieci,
ciascuno in un linguaggio diverso, ma nessuno è il
numero dieci
Precorso di Informatica - A.A. 2007/2008
Livello semantico
Definisce il significato di ciò che è rappresentato in
un messaggio:
✔ Nell'esempio precedente il numero “dieci” (dal punto
di vista concettuale)
Il livello semantico riguarda “concetti” e quindi
prevede un agente in grado di “capire” il significato
veicolato dal messaggio
✔
Tale comprensione necessità una definizione
rigorosa del livello sintattico comune a chi invia e a
chi riceve il messaggio:
✔ L'interpretazione del messaggio “X” cambia a
seconda che mi stia esprimendo secondo la sintassi
italiana, del totocalcio o dei numeri romani
✔
Precorso di Informatica - A.A. 2007/2008
Livello semantico
In prima approssimazione i computer sono macchine
completamente stupide
Non sono in grado di “capire” nessun concetto, ma
solo di manipolare simboli (di un determinato
linguaggio):
✔ Spostare simboli
✔ Confrontare simboli
✔ Combinare simboli
✔
In questo senso il computer opera sempre a livello
sintattico
Precorso di Informatica - A.A. 2007/2008
Livello semantico
I “programmi” (che sono scritti da umani per
svolgere compiti specifici) fanno sì che il computer
manipoli l’informazione a livello sintattico in modo
coerente con il livello semantico che a questa
informazione è associato (dagli umani, che lo
capiscono)
Il complesso computer/programma diventa un po’
meno stupido: se il programma è scritto
correttamente, è in grado di veicolare messaggi che
sono coerenti con la semantica ad essi attribuita
(sempre dagli umani)
Precorso di Informatica - A.A. 2007/2008
Livello semantico
Esempio:
Se uso un motore di ricerca su Internet e digito
“Università di Genova”, il programma che gestisce
il motore non ha idea di cosa sia l’università e del
fatto che Genova sia una città, ma mi restituirà
comunque i documenti che trova che contengono la
frase “Università di Genova”, che sono esattamente
quel che voglio ottenere.
Precorso di Informatica - A.A. 2007/2008
Livello cognitivo
Il livello cognitivo invece:
✔ Riguarda la conoscenza veicolata dal messaggio e
segue il livello semantico
✔ Prevede l'integrazione dell'informazione data dal
messaggio nel contesto della conoscenza propria di chi
lo riceve
✔ Implica l'idea di imparare (o dedurre) qualcosa di
nuovo dai messaggi ricevuti
✔
Precorso di Informatica - A.A. 2007/2008
Livello cognitivo
Il livello cognitivo è proprio degli esseri intelligenti
Il trattamento automatico dell’informazione a
questo livello viene studiato in alcune aree
interdisciplinari che coinvolgono l’informatica:
✔ Intelligenza artificiale
✔ Information retrieval
✔ Machine learning
✔
Con i prodotti di queste discipline i computer
possono effettuare un trattamento dell’informazione
a livello cognitivo (possono “imparare”) anche se
restano ancora lontani dall’essere “intelligenti”
Precorso di Informatica - A.A. 2007/2008
Il concetto di informazione
Riassumendo:
✔ Il computer è una macchina che sa manipolare
sintatticamente simboli in un linguaggio proprio e lo
sa fare in modo molto efficiente
✔ Ci occuperemo di rappresentazione e manipolazione
dell’informazione a livello sintattico (quel che fanno i
computer)
✔ Vedremo i programmi (algoritmi) come strumenti per
istruire il computer a manipolare l’informazione
sintatticamente in modo consistente con il livello
semantico
✔ Rendere i computer in grado di “capire” e “imparare”
è molto complicato e la scienza sta solo muovendo i
primi passi in questa direzione
Precorso di Informatica - A.A. 2007/2008
Definizione di algoritmo
“Sequenza non ambigua di istruzioni elementari che
permettono la soluzione di un problema in un numero
finito di passi”
Sequenza
= esiste un ordine ben definito
Non ambigua = esiste un'interpretazione certa
Passi finiti
= è definita una terminazione
Ciascun algoritmo risolve un problema specifico e deve
funzionare su qualunque istanza di tale problema.
Precorso di Informatica - A.A. 2007/2008
Definizione di algoritmo
Nel dettaglio
✔ Un algoritmo consta di una sequenza di istruzioni che
spiegano come affrontare il problema in dipendenza
dei dati
✔ I dati sono informazioni che definiscono l’istanza del
problema e che saranno manipolate dall’algoritmo
✔ Cambiando i dati possono cambiare le azioni che
l’algoritmo prevede, ma tutto resta consistente con
l’idea generale di risolvere quel problema specifico
✔ Per essere eseguito un algoritmo deve essere
codificato in un programma, che traduce le istruzioni
in un linguaggio comprensibile al computer
Precorso di Informatica - A.A. 2007/2008
Esempio di algoritmo
Scattare una foto con una macchina digitale
1) Se la macchina è spenta, accenderla
2) Inquadrare il soggetto
3) Finché il campo inquadrato non va bene
1) Se è troppo largo, aumentare lo zoom
2) Se è troppo stretto, diminuire lo zoom
4) Scattare
5) Controllare la foto sul visore
6) Se è venuta male
1) Cancellarla
2) Tornare al punto 2
Precorso di Informatica - A.A. 2007/2008
Struttura classica di algoritmo
Un algoritmo è costituito di una sequenza di passi
Ci sono tre tipi di successione temporale dei passi:
✔ Sequenziale
✔ Condizionale
✔ Iterativa
✔
Le istruzioni condizionali ed iterative consentono di
cambiare il flusso dell’algoritmo secondo quel che
succede (ossia secondo la situazione creata dai dati
su cui si sta lavorando)
Precorso di Informatica - A.A. 2007/2008
Rappresentazione in pseudocodice
Esempio: Una classe di dieci studenti partecipa a un
test. Dati i voti di ciascuno studente, determinare il
voto medio riportato dalla classe
Poni il totale a zero
Inizializza il contatore degli studenti a 1
while( il contatore è minore o uguale a 10){
Leggi il prossimo voto
Aggiungi il voto al totale
Aggiungi uno al contatore degli studenti
}
Il voto medio è il totale diviso 10
Stampa il voto medio
Precorso di Informatica - A.A. 2007/2008
Diagramma di flusso
Totale = 0
Studenti = 1
Studenti <= 10 ?
Si
No
Leggi il
prossimo voto
Media = Totale / 10
Totale = Totale + Voto
Studenti = Studenti + 1
Stampa Media
Precorso di Informatica - A.A. 2007/2008
Linguaggio macchina
• Rappresenta l’unico linguaggio
direttamente eseguibile dall’elaboratore
• Non necessita quindi di una “traduzione”
ulteriore
• La sua rappresentazione è la codifica binaria
• Risulta di difficile comprensione da parte
dell’utente, che solitamente programma in
linguaggi di alto livello.
Precorso di Informatica - A.A. 2007/2008
Linguaggio di alto livello
• Ogni istruzione di questi linguaggi esprime
una serie di azioni elementari
• L’esecuzione di un programma scritto in
linguaggio di alto livello necessita una
traduzione in linguaggio macchina
(compilazione)
• Questi linguaggi astraggono dai dettagli
legati all’architettura e sono di semplice
comprensione.
Precorso di Informatica - A.A. 2007/2008
Ricapitolando
I computer sanno solo eseguire un numero molto
ridotto di operazioni sintattiche su simboli di un
dato linguaggio (i numeri binari, che vedremo)
Per funzionare, un computer ha bisogno di:
✔ Un programma che lo istruisca su cosa fare
✔ Dati sui quali agire
Abbiamo quindi bisogno di tradurre sia gli algoritmi
che i dati in un linguaggio “comprensibile” al
computer
✔
Parleremo di rappresentazione e codifica
dell’informazione
Precorso di Informatica - A.A. 2007/2008
Codifica dell'informazione
Per rappresentare l’informazione in modo fruibile
dai computer abbiamo bisogno di codici che la
possano esprimere in modo semplice, sintetico e
non ambiguo.
Un codice (o un linguaggio) si basa su:
✔ Un alfabeto di simboli
✔ Una sintassi con sui comporre tali simboli in sequenze
✔
Una semantica da associare ai simboli o alle sequenze
Nella codifica dei dati, la semantica resterà per lo
più dominio degli umani che tali dati interpretano
Nella codifica dei programmi, la semantica sarà
interpretata dal computer in termini di operazioni
elementari che questo è in grado di eseguire
Precorso di Informatica - A.A. 2007/2008
Codifica dell'informazione
I computer hanno un grosso limite: possono gestire
solo rappresentazioni finite codificate attraverso un
insieme finito di simboli
Dato qualunque insieme finito di n simboli, questo
può essere messo in relazione con i primi n numeri
interi (partendo da zero)
Quindi basta trovare un modo efficiente e
opportuno (per il computer) di rappresentare i
numeri interi e si può in questo modo codificare
qualunque rappresentazione (finita)
Precorso di Informatica - A.A. 2007/2008
Codifica decimale
La codifica decimale la conosciamo bene:
✔ Alfabeto di dieci simboli (cifre): 0 1 2 3 4 5 6 7 8 9
✔ Assumiamo per il momento di rappresentare numeri di
non più di n cifre
✔ Ogni numero si rappresenta con una sequenza
(stringa) di n cifre
✔ A ogni cifra si assegna una semantica (quella solita)
✔ Ogni cifra ha una posizione nella sequenza e ad ogni
posizione di assegna una semantica: unità, decine,
centinaia, migliaia, ecc…
105
104
103
102
101
100
Precorso di Informatica - A.A. 2007/2008
Codifica decimale
La semantica di una stringa si ottiene moltiplicando
ciascuna cifra per la potenza di dieci corrispondente
al posto che occupa e sommando il tutto
0
0
0
1
2
7
105
104
103
102
101
100
✔ 0x100000+0x10000+0x1000+1x100+2x10+7x1 = 127
✔ Con questa regola il numero 127 si scriverà in effetti
000127 e il numero più grande che si riesce a
rappresentare è il 999999
✔ Normalmente non abbiamo questi limiti perché
assumiamo l’esistenza di un simbolo separatore (ad
esempio lo spazio) che ci indica dove inizia e dove
finisce un numero
Precorso di Informatica - A.A. 2007/2008
Codifica binaria
Stesso meccanismo, ma:
✔ l’alfabeto è di soli due simboli: 0 1
✔ La semantica assegnata alle posizioni in una stringa di
cifre binarie corrisponde (da destra a sinistra) potenze
successive di due: 1, 2, 4, 8, 16, …
✔ La semantica di una stringa si ottiene moltiplicando
ciascuna cifra per la potenza di due corrispondente al
posto che occupa e sommando il tutto
1
0
1
0
0
1
25
24
23
22
21
20
Precorso di Informatica - A.A. 2007/2008
Operazioni binarie
Sottrazione
Somma
+
0
1
­
0
1
0
0
1
0
0
(1)1
1
1
(1)0
1
1
0
In parentesi è indicato il riporto
1 1 0 0 1 + 1 1 0 1 =
___________
1 0 0 1 1 0
25 +
13 =
____
38
In parentesi è indicato il prestito
1 1 0 0 1 ­ 1 1 0 1 = ________
1 1 0 0
25 ­
13 =
____
12
Precorso di Informatica - A.A. 2007/2008
Esempio di sommatore
I
S
+
O
a
Ro
a
Ro
b
b
Ri
Σ
c
c
Ri
S
I
O
0
0
0
0
1
1
1
0
1
1
1
0
a
b
Ri
c
Ro
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
Precorso di Informatica - A.A. 2007/2008
Numeri binari e computer
Qualunque informazione rappresentata nel
computer (sia dati che programmi) viene codificata
in forma binaria
Ragioni pratiche:
✔ I simboli 0 e 1 si fanno corrispondere a due livelli di
tensione elettrica e l’elaborazione dell’informazione
avviene attraverso commutazioni tra questi due livelli
di tensione, operati da circuiti logici, fatti di un
numero elevatissimo di transistor miniaturizzati,
ciascuno molto semplice
✔ Conviene costruire molti circuiti molto semplici
piuttosto che meno circuiti più complessi
Precorso di Informatica - A.A. 2007/2008
Numeri binari e computer
Ragioni filosofiche:
✔ La numerazione binaria è adeguata a rappresentare il
ragionamento creativo (Leibnitz, XVII secolo): ogni
cifra può rappresentare una decisione (cfr istruzioni
condizionali)
✔ C’è corrispondenza tra la matematica in base 2 e la
logica (Boole, XIX secolo), quindi possiamo
formalizzare il ragionamento (logico) attraverso
procedure algoritmiche (matematiche)
✔ Si può ottenere un modello del cervello umano
rappresentando una rete di neuroni ciascuno dei quali
può assumere due stati attivo/inattivo (McCulloch &
Pitts, 1943)
Precorso di Informatica - A.A. 2007/2008
Numeri binari e computer
Una cifra binaria (rappresentata in un computer) si
chiama genericamente bit (contrazione di binary
digit = cifra binaria)
Un gruppo di 8 bit si chiama byte
Il byte è l’unità di misura usata per quantificare
l’informazione rappresentata in un computer (ad
esempio, la capacità della sua memoria)
I multipli del byte si ottengono moltiplicandolo per
potenze di 2 che si avvicinano a potenze di 10
Precorso di Informatica - A.A. 2007/2008
Numeri binari e computer
Precorso di Informatica - A.A. 2007/2008
la memoria del computer
Una memoria è un contenitore fatto di “scatolette”
(celle) ciascuna delle quali può contenere un
gruppetto di bit
La capacità di una cella di memoria di solito è di
qualche byte (8, 16, 32 o 64 bit)
✔ 8 bit = numeri da 0 a 255
✔ 16 bit = numeri da 0 a 65.535
✔ 32 bit = numeri da 0 a 4.294.967.295
✔ 64 bit = numeri da 0 a circa 18,5 miliardi di miliardi
Precorso di Informatica - A.A. 2007/2008
I dati
I dati sono informazioni rappresentate secondo una
certa codifica
In ultima analisi, qualunque dato viene codificato
attraverso numeri binari immagazzinati nelle celle
di memoria del computer
Per arrivare a questo possono essere però necessari
diversi passaggi, che aumentano con la complessità
strutturale dei dati da rappresentare
Precorso di Informatica - A.A. 2007/2008
I dati
Esempio: i numeri naturali
✔ Dobbiamo prima di tutto decidere quanti ne vogliamo
rappresentare e quindi quanti bit servono per
rappresentarne uno
✔ Quindi per esempio se abbiamo scelto n=4 possiamo
rappresentare solo numeri tra 0 e 15 e la sequenza
0010100011110001 rappresenta nell’ordine i numeri 2
8 15 1
✔ Se scegliessimo n=8 la stessa sequenza
rappresenterebbe nell’ordine i numeri 40 e 241
l’informazione codificata nei dati si può recuperare
solo se è nota la semantica del codice utilizzato per
rappresentarli !
Precorso di Informatica - A.A. 2007/2008
I dati
Esempio: il testo
Vogliamo rappresentare sequenze composte da:
✔ lettere dell’alfabeto maiuscole e minuscole
✔ cifre decimali
✔ segni di punteggiatura
✔ parentesi varie
✔ simboli speciali
✔ spazi
Servirebbero almeno 7bit per rappresentare ciascun
simbolo
Con questo metodo è stata ottenuta la tabella
ASCII, largamente usata
Precorso di Informatica - A.A. 2007/2008
Tabella ASCII
Precorso di Informatica - A.A. 2007/2008
I dati composti
I dati come numeri e caratteri di testi si dicono
elementari perché abbiamo una regola semplice per
definire come codificarli
A partire da questi, si possono definire tipi di dato
più complessi, ottenuto per composizione
Per esempio, la scheda di un cliente in un archivio
di contabilità potrà contenere diversi campi di
diverso tipo:
✔ codice cliente (numero intero)
✔ nome e cognome (stringhe di testo)
✔ partita iva (numero intero)
✔ ecc…
Precorso di Informatica - A.A. 2007/2008
Trasmissione dell'informazione
Sorgente
Messaggio
Sistema di trasmissione
Trasmettitore
Rumore
Canale di trasmissione
Segnale
Messaggio
Ricevitore
Destinazione
Precorso di Informatica - A.A. 2007/2008
Errore di trasmissione
• A causa del rumore, non è sempre possibile
garantire che i dati ricevuti da un canale di
trasmissione siano corretti.
• Si verifica un errore di trasmissione quando il
dato ricevuto in uscita dal canale è diverso dal
dato immesso.
– L’errore si definisce singolo, doppio, triplo
ecc. in base al numero di bit errati.
• Esistono appositi codici di rilevazione e
correzione degli errori di trasmissione.
Precorso di Informatica - A.A. 2007/2008
Rilevazione degli errori
• Codice di parità: al dato da trasmettere si
aggiunge un bit di parità, che indica se gli 1
del dato sono pari o dispari.
– parità pari: es. a 01001110 si aggiunge 0
per ottenere 01001110 0
– parità dispari: es. a 01101110 si aggiunge
1 per ottenere 01001110 1
• In questo modo i dati ricevuti devono avere
sempre un numero pari di 1, altrimenti sono
errati.
• Tuttavia questo codice permette di rilevare solo
gli errori singoli o dispari.
Precorso di Informatica - A.A. 2007/2008
Trasmissione dei segnali
Segnale Canale Canale analogico
digitale
Modulazione
Digitalizzazione
analogico
(AM,FM,PM)
Segnale Modulazione
digitale
(modem)
(campionamento e quantizzazione)
Codifica
Precorso di Informatica - A.A. 2007/2008
Modello concettuale di un calcolatore
Elaborazione
Interconnessione
Comunicazione
Memorizzazione
Precorso di Informatica - A.A. 2007/2008
Schema di riferimento
Schermo
Tastiera
Mouse
Altre
periferiche
Interfaccia
I/O
Interfaccia
I/O
Interfaccia
I/O
Interfacce
I/O
Bus Dati
Bus Indirizzi
Bus di Controllo
Memoria
centrale
CPU
Precorso di Informatica - A.A. 2007/2008
Caratteristiche del collegamento a bus
Vantaggi
• Semplicità: unica linea di connessione implica costi ridotti
• Estendibilità: aggiunta di nuovi dispositivi molto semplice
• Standardizzabilità: regole precise di comunicazione tra dispositivi diversi
Svantaggi
• Lentezza: il bus è utilizzabile solo in mutua esclusione
• Limitata capacità: al crescere del n. di dispositivi collegati
• Sovraccarico del processore: la CPU funge infatti da master sul controllo del bus
Precorso di Informatica - A.A. 2007/2008
Organizzazione “bus oriented”
Dispositivi di I/O
Unità di controllo
Terminale
Unità aritmetico
logica (ALU)
Registri
Memoria centrale
Stampante
Unità disco
BUS
Precorso di Informatica - A.A. 2007/2008
Tipologie di istruzioni
• Istruzioni aritmetico­logiche
– somma, sottrazione, divisione, …
– AND, OR, XOR, …
– maggiore, minore, uguale, minore o uguale, …
• Controllo del flusso delle istruzioni
– flusso sequenziale
– selezione semplice, a due vie, a n vie, ...
– ciclo a condizione finale, iniziale, …
• Trasferimento di informazione
– trasferimento dati e istruzioni tra CPU e memoria
– trasferimento dati e istruzioni tra CPU e dispositivi di I/O attraverso le relative interfacce
Precorso di Informatica - A.A. 2007/2008
Elementi della CPU
• Unità di controllo: legge le istruzioni dalla memoria e ne determina il tipo.
• Unità aritmetico­logica: esegue le operazioni necessarie per eseguire le istruzioni.
• Registri ­ caratteristiche:
– memoria ad alta velocità, usata per risultati temporanei e informazioni di controllo
– il valore massimo memorizzabile in un registro è determinato dalle dimensioni del registro
– registri specifici sono ad esempio: program counter (PC), che indica l’indirizzo dell’istruzione successiva, l’instruction register (IR), che indica l’istruzione che si sta eseguendo, lo stack pointer (SP) ecc. Precorso di Informatica - A.A. 2007/2008
Esecuzione delle istruzioni
• Prendi l’istruzione corrente (in linguaggio macchina) dalla memoria e mettila nel registro istruzioni IR (fetch);
• Incrementa il program counter PC in modo che contenga l’indirizzo dell’istruzione successiva;
• Determina di che tipo è l’istruzione corrente (decode);
• Se l’istruzione usa una parola in memoria, determina dove si trova;
• Se necessario carica la parola in un registro della CPU;
• Esegui l’istruzione (execute);
• Ripeti il ciclo.
Precorso di Informatica - A.A. 2007/2008
Evoluzione delle CPU
Frequenza Dimensione registri ­ bus dati
(MHz)
Numero
transistor
CPU
Anno
8086
1978
4.77 ­ 12
8 ­ 16
29 000
80286
1982
8 ­ 16
16 ­ 16
134 000
80386
1986
16 ­ 33
32 ­ 32
275 000
80386 SX
1988
16 ­ 33
32 ­ 16
275 000
80486 1989
33 ­ 50
32 ­ 32
1 200 000
Pentium
1993
60 ­ 200
32 ­ 64
3 100 000
Pentium II
1997
233 ­ 400
32 ­ 64
7 500 000
Pentium III
1999
450 ­ 1133
32 ­ 64
24 000 000
Pentium 4
2000
1600 ­ 2000
32 ­ 64
42 000 000
Precorso di Informatica - A.A. 2007/2008
Legge di Moore
“Il numero di transistor per cm2 raddoppia ogni 18 mesi”
Ovvero di circa il 60% ogni anno. Precorso di Informatica - A.A. 2007/2008
Incrementare le prestazioni: il parallelismo
• La frequenza di clock influenza direttamente il tempo di esecuzione delle istruzioni ed è limitata dalla tecnologia disponibile.
• Il parallelismo permette di migliorare le prestazioni senza modificare la frequenza di clock. Esistono due forme di parallelismo:
– parallelismo a livello delle istruzioni (architetture pipeline e superscalari)
– parallelismo a livello di processori (multiprocessori e multicomputer).
Precorso di Informatica - A.A. 2007/2008
Architettura pipeline
Consiste nell’organizzare la CPU come una “catena di montaggio”
• la CPU viene suddivisa in stadi, ognuno dedicato all’esecuzione di un compito specifico
• l’esecuzione di una istruzione richiede il passaggio attraverso tutti o alcuni degli stadi della pipeline
• in un certo istante, ogni stadio esegue la parte di istruzione di sua “competenza”
• in un certo istante esistono diverse istruzioni contemporaneamente in esecuzione, una per stadio.
Precorso di Informatica - A.A. 2007/2008
Esempio di pipeline a 5 stadi
• S1. lettura istruzioni dalla memoria e loro caricamento in un apposito buffer
• S2. decodifica dell’istruzione per determinarne il tipo e gli operandi richiesti
• S3. individuazione e recupero degli operandi dai registri o dalla memoria
• S4. esecuzione dell’istruzione
• S5. invio dei risultati all’apposito registro.
Precorso di Informatica - A.A. 2007/2008
Multiprocessori e multicalcolatori
• Nei Multiprocessori diverse CPU condividono una memoria comune:
– le CPU devono coordinarsi per accedere alla memoria
– esistono diversi schemi di collegamento tra CPU e memoria; quello più semplice prevede ci vi sia un bus condiviso.
• Nei Multicalcolatori si utilizzano più calcolatori, ognuno dei quali dotato di una memoria privata:
– la comunicazione tra CPU è basata su scambio di messaggi
– si è arrivati a costruire multicalcolatori con ~10000 CPU.
Precorso di Informatica - A.A. 2007/2008
La memoria
• Supporto alla CPU: deve fornire alla CPU dati ed istruzioni il più rapidamente possibile
• Archivio: deve consentire di archiviare dati e programmi garantendone la conservazione e la reperibilità anche dopo elevati periodi di tempo
• Esigenze:
– velocità per il supporto alla CPU
– non volatilità ed elevate dimensioni per l’archivio
• Tecnologie:
– elettronica: veloce ma costosa e volatile
– magnetica e ottica: economica e non volatile, ma molto lenta.
Precorso di Informatica - A.A. 2007/2008
Caratterizzazione di una memoria
• Velocità:
– tempo di accesso: quanto trascorre tra richiesta e relativa risposta
– velocità di trasferimento: quanti byte/sec si possono trasferire
• Volatilità:
– cosa succede quando la memoria non è alimentata?
– per quanto tempo i dati vi rimangono immagazzinati?
• Capacità: quanti byte può contenere?
• Costo per bit
• Modalità di accesso:
– diretta (o casuale): il tempo di accesso è indipendente dalla posizione
– sequenziale: il tempo di accesso dipende dalla posizione
– mista
– associativa: indicato il dato, la memoria risponde indicando l’eventuale posizione che il dato occupa.
Precorso di Informatica - A.A. 2007/2008
Memoria centrale
• Mantiene al proprio interno dati e istruzioni dei programmi in esecuzione.
• È una memoria ad accesso “casuale” (Random Access Memory)
• Tecnologia elettronica (veloce ma volatile e costosa)
• Due diversi tipi di memoria elettronica:
– R.O.M. (Read Only Memory): permanente e di sola lettura (serve ad esempio a memorizzare le istruzioni da effettuare all’accensione del calcolatore (bootstrap))
– Flash: permanente e riscrivibile (USB, memorie per piccoli apparecchi elettronici quali palmari, cellulari, fotocamere, ...).
Precorso di Informatica - A.A. 2007/2008
Il principio di località: la cache
• Località spaziale: “quando si accede all’indirizzo A, è molto probabile che gli accessi successivi richiedano celle vicine ad A.”
• Località temporale: “quando si accede all’indirizzo A, è molto probabile che gli accessi richiedano di nuovo la cella A.”
• Si utilizza quindi una memoria che consenta accessi estremamente veloci su blocchi utilizzati di recente. Questa memoria è la cache: veloce ma molto costosa, quindi piccola.
Precorso di Informatica - A.A. 2007/2008
Gerarchia di memorie
CPU
Dimensioni
Registri
Velocità
Costo/bit
min
max
max
max
min
min
Cache
Memoria centrale
Dischi magnetici / ottici
Nastri magnetici
Precorso di Informatica - A.A. 2007/2008
Dischi magnetici
• Sono piatti, generalmente di alluminio, ricoperti di materiale ferromagnetico • Fattore di forma (diametro)
– sempre più piccolo, consente velocità di rotazione maggiori
– 3.5 pollici per sistemi desktop e fino ad 1 pollice per i portatili.
• Testina (strumento di lettura/scrittura)
– è sospesa appena sopra la superficie magnetica
– scrittura: il passaggio di corrente positiva o negativa attraverso la testina magnetizza la superficie
– lettura: il passaggio sopra un’area magnetizzata induce una corrente positiva o negativa nella testina.
Precorso di Informatica - A.A. 2007/2008
Tracce e settori
• Traccia (track): sequenza circolare di bit scritta mentre il disco compie una rotazione completa. Tra una traccia e l’altra c’è un piccolo spazio separatore (gap).
• Settore (sector): parte di una traccia corrispondente ad un settore circolare del disco
– un settore contiene 512 byte di dati, preceduti da un preambolo e seguiti da un codice di correzione degli errori
• Altre sottostrutture sono i cluster e i blocchi.
• Formattazione: operazione che predispone tracce e settori per la lettura/scrittura
– circa il 15% dello spazio si perde in gap, preamboli e codici di correzione errori.
Precorso di Informatica - A.A. 2007/2008
Tracce e settori
Traccia
Settore
Precorso di Informatica - A.A. 2007/2008
Hard disk
L’Hard Disk è composto da più superfici (piatti) e da una testina di lettura per superficie.
Precorso di Informatica - A.A. 2007/2008
Floppy disk
• Funzioni: distribuzione del software su larga scala (con l’avvento dei PC) e archiviazione dati
• Struttura analoga a quella di un disco magnetico
– il disco si ferma quando non è operativo
– l’avvio della rotazione comporta un ritardo di ½ secondo
• Caratteristiche tipiche di un floppy da 3.5’’:
–
–
–
–
capacità: 1.44 MB
tracce × settori: 80 × 18
giri per minuto (RPM): 300
velocità di trasferimento: 500 Kbps.
Precorso di Informatica - A.A. 2007/2008
Dischi ottici
• Lettura ottica basata sulla riflessione (o sulla mancata riflessione) di un raggio laser sul supporto
• Densità di registrazione più alta che nei dischi magnetici
• Creati in origine per registrare programmi televisivi, successivamente applicati ai calcolatori.
• Tipologie: – CD­ROM, CD­R, CD­RW, DVD, DVD­RAM, ...
Precorso di Informatica - A.A. 2007/2008
Compact Disk (CD)
• Supporto proposto nel 1980 da Philips e Sony per sostituire i dischi musicali in vinile
• Standard di fabbricazione IS­10149:
– diametro: 12 cm; spessore: 1.2 mm e foro di 15 mm al centro
– produzione:
• laser ad alta potenza che brucia fori di 0.8 μm in un disco master (le depressioni sono dette pit e le aree tra i pit sono dette land)
• dal master si ricava uno stampo
• nello stampo viene iniettata una resina liquida di policarbonato che forma un CD con la stessa sequenza di pit del master
• sul policarbonato viene depositato uno strato molto sottile di alluminio riflettente
• copertura con strato protettivo e poi con una etichetta.
Precorso di Informatica - A.A. 2007/2008
Lettura dei CD
• Un laser a bassa potenza emette una luce infrarossa sul disco
• I pit appaiono come cunette su una superficie piatta
• I passaggi pit/land o land/pit indicano un 1, e la loro assenza indica uno 0
• Pit e land sono impressi in una spirale unica che compie 22.188 giri attorno al disco
• La lettura viene effettuata a velocità costante (120 cm/sec), molto meno della velocità di lettura degli hard disk.
Precorso di Informatica - A.A. 2007/2008
Pit e Land su CD
Passaggio da pit a land
Passaggio da land a pit
Precorso di Informatica - A.A. 2007/2008
CD-Rom
• Nel 1984 Philips e Sony definiscono uno standard per i CD­ROM (Compact Disk­Read Only Memory) in cui si definiva la struttura ed il formato da utilizzare per memorizzare dati digitali invece che “musica”
• Rispetto ai CD audio i CD­ROM hanno:
– stesse dimensioni
– compatibilità dell’ottica e della meccanica
– stesso processo produttivo
– migliore capacità di correggere gli errori
• Nel 1986 si definisce la possibilità di mischiare audio, video e dati nello stesso settore.
Precorso di Informatica - A.A. 2007/2008
Velocità e capacità dei CD-Rom
• Velocità base (1x):
– 75 settori/sec
– 153.6 KByte/sec
– velocità superiori (n x) crescono in proporzione
• Capacità
– 74 minuti di musica ~ 640 MB
– 80 minuti di musica ~ 700 MB
• Tempo di accesso
– alcune centinaia di millisecondi.
Precorso di Informatica - A.A. 2007/2008
CD Recordable (CD-R)
• Sono CD che vengono scritti una sola volta (WORM)
– si utilizzano per backup, produzioni in piccole serie, generazione di master, …
– hanno le stesse dimensioni dei CD­ROM
• La riflettività di pit e land è simulata
– c’è uno strato di colore tra il policarbonato e lo strato riflettente: nello stato iniziale questo strato è trasparente
– per scrivere, un laser ad alta potenza colpisce un punto nello strato della superficie colorata, rompe un legame chimico e crea una macchia scura.
Precorso di Informatica - A.A. 2007/2008
CD ReWritable (CD-RW)
• Dischi ottici riscrivibili
• Lo strato di registrazione utilizza una lega di argento, indio, ammonio e tellurio che ha due stati stabili:
– lo stato cristallino, con elevata capacità di riflessione (land)
– lo stato amorfo, con ridotta capacità di riflessione (pit)
• Si usa un laser con tre potenze diverse:
– alta potenza: il laser scioglie la lega e un raffreddamento rapido la porta dallo stato cristallino a quello amorfo
– media potenza: la lega si scioglie e si raffredda tornando nel suo stato cristallino
– bassa potenza: si rileva solo lo stato del materiale.
Precorso di Informatica - A.A. 2007/2008
Digital Versatile Disk (DVD)
• Pit più piccoli, spirale più serrata, utilizzo del laser rosso
• Caratteristiche dei DVD:
– capacità di 4.7 GB = 133 minuti di video ad alta risoluzione, con colonna sonora in 8 lingue e sottotitoli in 32 lingue
• Diversi formati di DVD:
– lato unico strato unico (4.7 GB)
– lato unico strato doppio (8.5 GB)
– due lati strato unico (9.4 GB)
– due lati strato doppio (17 GB)
Precorso di Informatica - A.A. 2007/2008
Nastri magnetici e unità DAT
Inter­record gap
Record
Traccia 1
Traccia 9
• Capacità di diversi GB
• Accesso sequenziale ai dati
• Molto lenti
• Utili solo per operazioni di backup
Precorso di Informatica - A.A. 2007/2008
Architettura della macchina di Von Neumann
Unità di ingresso
Memoria
ALU
Programmi e dati
Unità di controllo
CPU
Unità di uscita
Risultati
CPU: Central Processing Unit
Unità centrale
I microprocessori attuali sono dispositivi elettronici
in grado di implementare all'interno di un unico
circuito integrato le funzioni di un'intera CPU
Precorso di Informatica - A.A. 2007/2008
Unità centrale
A D D R E S S B U S
CPU
ALU
Unità di controllo
MBR
MAR
Memoria ROM
MBR
MAR
Memoria RAM
D
A T A
B U S
C O N T R O L B U S
Precorso di Informatica - A.A. 2007/2008
Microprocessori e bus
•
I microprocessori sono dispositivi elettronici che implementano in un unico circuito integrato le funzioni di una intera CPU. I microprocessori attuali hanno bus dati a 8, 16, 32, 64 bit.
•
Il bus dati (data bus) esprime la capacità di elaborazione del processore (quanti bit possono essere elaborati in parallelo)
•
Il bus indirizzi (address bus) esprime la capacità di memorizzazione del processore (2m celle di memoria, se m è il numero dei bit del bus)
•
La capacità di indirizzamento indica il numero di celle diverse cui si può accedere:
210 Byte = 1024 byte = 1 KByte
220 Byte = 1048576 byte = 1 Mbyte
230 Byte = 1073741824 byte = 1 GByte
Precorso di Informatica - A.A. 2007/2008
Un esempio
•
Variazione nella precisione di misura di 1 Kg. in un sistema di pesatura basato su microprocessori con diversa dimensione del bus dati
Numero di bit bus dati
4
8
16
Dati rappresentabili
24=16
28= 256
216= 65536
Precisione relativa
6.25%
~3.9 ‰ ~0.015‰
Precisione max.
62.5 gr
~3.9 gr
~0.015 gr
Precorso di Informatica - A.A. 2007/2008
Osservazioni
•
I microprocessori a 8 bit di dato hanno tipicamente bus indirizzi a 16 bit con capacità di indirizzamento di 64 KB
•
I microprocessori a 16 bit di dato hanno tipicamente bus indirizzi a 20­24 bit con capacità di indirizzamento di 1­16 MB
•
I microprocessori a 64 bit di dato hanno bus indirizzi a 64 bit con capacità di indirizzamento fino a circa 1019 byte
•
I microprocessori Single Chip riuniscono in un unico circuito integrato più di uno dei blocchi costituenti un microcalcolatore (eventualmente tutti).
Precorso di Informatica - A.A. 2007/2008
Architettura di una CPU
BUS DATI ESTERNO
BUS DATI INTERNO
ACC
SP
PC
R e g 0
….
R e g N
F
L
A
G
ALU
C
D
I
O
E
N
N
C
S
T
O
T.
R.
D.
R
E
BUS INDIRIZZI INTERNO
BUS IND. ESTERNO
G.
Precorso di Informatica - A.A. 2007/2008
Ciclo di esecuzione delle istruzioni
•FETCH (prelevamento dell’istruzione)
•DECODIFICA
•ESECUZIONE
La memoria (ROM e RAM) contiene il programma e i dati sui quali opera la CPU. Il Program Counter (PC) contiene l’indirizzo della cella di memoria con la prossima istruzione da eseguire.
Codice Operativo
Operando 1 Operando 2
FORMATO DELLE ISTRUZIONI
Campo che caratterizza le varie istruzioni
Gli operandi possono essere 0, 1, 2
Precorso di Informatica - A.A. 2007/2008
Sequenza delle operazioni elementari
•FETCH: vengono letti i campi che costituiscono l’istruzione:
1)
(PC)→MAR
2)
((MAR)) →MBR; (PC)+1 →PC
3)
(MBR) →IR
I passi 1, 2, 3 permettono di caricare in IR (instruction register) il codice operativo (OP Code) dell’istruzione corrente. Passi analoghi permettono di caricare in opportuni registri della CPU gli operandi presenti nell’istruzione. In tal caso, nel passo 3 la destinazione del dato proveniente dalla memoria non è più IR, ma opportuni registri.
•DECODE: viene identificata l’istruzione corrente sulla base dell’OP Code
•EXECUTE: è diversa a seconda del tipo di istruzione. In pratica consiste nell’inviare comandi e dati alle unità interessate.
•P.S. MAR= Memory Address Register; MBR: Memory Buffer Register
•Notazione: (X) →Y significa: “Il contenuto della cella puntata dal registro X viene trasferito nel registro Y
Precorso di Informatica - A.A. 2007/2008
Formato delle istruzioni
•
Le istruzioni sono codificate da stringhe di bit. •
Una volta caricata nell’IR, un’istruzione deve essere decodificata ed eseguita. A tal scopo l’unità di controllo deve conoscere:
•
codice operativo
•
sorgente: dati su cui operare
•
destinatario: dove porre il risultato e, se sorgente e destinazione sono in memoria, la modalità di indirizzamento
Codice Operativo
Sorgente
Destinazione Mod. indirizzamento
Esempio 1: Somma tra il contenuto del registro R2 e il contenuto dell’accumulatore. Il risultato va nell’accumulatore
FORMATO
codice operativo
FETCH
come in precedenza
ESECUZIONE
(R2)+(ACC)→ACC
Precorso di Informatica - A.A. 2007/2008
Esempio di esecuzione di istruzioni
Esempio 2: somma tra il contenuto della cella di memoria il cui indirizzo è specificato nell’istruzione ed il contenuto dell’accumulatore; il risultato va nell’accumulatore
•FORMATO: codice operativo+operando
•FETCH:
1) (PC)→MAR 4) (PC)→MAR
2) ((MAR)) →MBR; (PC)+1 →PC
5) ((MAR)) →MBR; (PC)+1 →PC
3) (MBR) →IR
6) (MBR) →Rn
•EXECUTE:
1) (Rn) →MAR
3) (MBR) →Rn
2) ((MAR)) →MBR
4) (Rn)+(ACC) →ACC
Precorso di Informatica - A.A. 2007/2008
Esempio di esecuzione di istruzioni
Esempio 3: saltare all’istruzione che è memorizzata nella cella il cui indirizzo è specificato all’interno dell’istruzione corrente:
•FORMATO: codice operativo+operando
•FETCH:
1) (PC)→MAR 4) (PC)→MAR
2) ((MAR)) →MBR; (PC)+1 →PC
5) ((MAR)) →MBR; (PC)+1 →PC
3) (MBR) →IR
6) (MBR) →Rn
•EXECUTE:
1) (Rn) →PC
Precorso di Informatica - A.A. 2007/2008
I sistemi operativi
• I sistemi operativi permettono di gestire le risorse efficientemente
– tengono traccia di chi accede alle risorse
– accettano e soddisfano le richieste di uso di risorse
– risolvono i conflitti tra più risorse
• Possono essere visti come una macchina di calcolo estesa
– rappresentano la base su cui è possibile scrivere programmi applicativi in modo più semplice che utilizzando direttamente l’HW.
Precorso di Informatica - A.A. 2007/2008
Vantaggi dei sistemi operativi
• I sistemi operativi permettono definire uno standard per interfacciare i dispositivi fisici, per cui:
– lo sviluppo dei programmi risulti più semplice ed indipendente dal calcolatore che si utilizza
– l’aggiornamento del SW di base e dell’HW sia trasparente all’utente ed alle applicazioni.
Precorso di Informatica - A.A. 2007/2008
Il SO come intermediario tra HW e SW
HW
HW
SW
SO
Software =
SO + applicazioni SW
SW (appl) Precorso di Informatica - A.A. 2007/2008
Composizione di un sistema operativo
Utente
Interprete
comandi
Gestione periferiche
Gestione SW
applicativo
memoria
Gestione
processore
HW
File system
Sistema Operativo
Precorso di Informatica - A.A. 2007/2008
Processi e programmi
• Un programma è una entità statica composta dal codice eseguibile del processore.
• Un processo è una entità dinamica relativa al programma in esecuzione, ed è composto da:
– codice del programma
– dati necessari all’esecuzione del programma
– stato dell’esecuzione
Precorso di Informatica - A.A. 2007/2008
Esecuzione di un processo
Operazione I/O completata
Processo
Processo
attivo
in attesa
Richiesta di operazione I/O
Ogni operazione di I/O consiste in una chiamata al SO e successiva sospensione del processo utente per attendere l’esecuzione dell’operazione di I/O
Precorso di Informatica - A.A. 2007/2008
La multiprogrammazione
Progr. 1
Progr. 2
Progr. 3
tempo
Attesa per operazioni di I/O
Elaborazione
Precorso di Informatica - A.A. 2007/2008
Time sharing
• È possibile condividere la CPU tra più processi interattivi, suddividendo il tempo di esecuzione del processore tra più utenti
• Ogni processo utilizza periodicamente un intervallo di tempo prestabilito (quanto) • Durante il quanto di esecuzione di un processo, tutti gli altri processi sono sospesi
• Al termine di ogni quanto (context switch), il processo in esecuzione viene sospeso e si assegna la CPU ad un altro processo.
Precorso di Informatica - A.A. 2007/2008
Processi pronti ed in attesa
• Quando un processo non è in esecuzione può assumere due diversi stati:
– attesa: il processo è sospeso finché un determinato evento esterno non si verifica (i.e., I/O)
– pronto: il processo è sospeso finché non gli viene concesso l’uso della CPU – in ogni instante di tempo vi è un solo processo attivo, e tutti gli altri sono o in attesa o pronti, e memorizzati in apposite code che ne indicano l’ordine di esecuzione. Precorso di Informatica - A.A. 2007/2008
Diagramma di esecuzione
Selezione primo processo pronto e sua esecuzione
Inizio esecuzione
(accodamento)
Coda
Processo processi Termine
elaborazione
attivo
pronti
Termine quanto di tempo
Completamento operazione I/O
Coda
processi in attesa
Richiesta
operazione I/O
Precorso di Informatica - A.A. 2007/2008
Round robin
Richiesta I/O
Fine utilizzo I/O
Proc. 1
E
P
P
E
A
A
A P
P
E
Proc. 2
P
E
P
P
E
P
E E
P
P
Proc. 3
P
P
E
P
P
E
P P
E
P
tempo
quanto
Context switch
Precorso di Informatica - A.A. 2007/2008
Macchina astratta del kernel
processo
1
CPU
virtuale
processo
n
Periferiche
Interfacce
I/O
CPU
virtuale
Bus Dati
Bus Indirizzi
Bus di Controllo
Memoria
di lavoro
Precorso di Informatica - A.A. 2007/2008
Gestione della memoria
• Ogni processo necessita di una certa quantità di memoria (ad esempio per immagazzinare il codice ed i dati utilizzati)
• Spesso l’effettiva memoria fisica non è sufficiente a contenere tutto lo spazio richiesto per n processi
• Il gestore della memoria risolve i conflitti garantendo uno spazio di memoria virtuale anche superiore alla capacità della memoria fisica.
Precorso di Informatica - A.A. 2007/2008
Swapping
• Nonostante le diverse politiche di gestione della memoria, spesso le memoria centrale non è sufficientemente estesa per contenere tutti i programmi concorrenti
• Una soluzione consiste nel trasferire il contenuto di un’area di memoria centrale in un’area della memoria di massa (area di swap).
• La memoria di massa è molto più lenta della memoria centrale, quindi lo swap è utile per processi in attesa ma non per processi pronti.
Precorso di Informatica - A.A. 2007/2008
Paginazione
• Un miglioramento nell’efficienza dell’uso della memoria si ha grazie alla paginazione, ovvero la suddivisione della memoria in sezioni di dimensioni fisse (pagine)
• Si basa sul principio di località spaziale e temporale: si possono utilizzare zone di memoria non fisicamente contigue e tenere in memoria centrale solo la porzione di codice che si sta eseguendo.
Precorso di Informatica - A.A. 2007/2008
Pagine logiche e pagine fisiche
Memoria centrale (spazio fisico)
pagina 0
Spazio logico
Spazio logico
pagina 1
processo 2
processo 1
pagina 2
pagina 0
pagina 0
pagina 3
pagina 1
pagina 1
pagina 4
pagina 2
pagina 5
pagina 6
pagina 7
pagina 3
Precorso di Informatica - A.A. 2007/2008
Macchina astratta della memoria
Processo 1
Processo n
Memoria logica
Memoria logica
Periferiche
Memoria
di
massa
CPU
virtuale
CPU
virtuale
Interfacce
I/O
Interfaccia
I/O
Bus Dati
Bus Indirizzi
Bus di Controllo
Precorso di Informatica - A.A. 2007/2008
Gestore delle periferiche
• Il gestore delle periferiche permette la comunicazione tra il calcolatore e tutti i dispositivi esterni ad esso collegati (video, tastiera, stampanti, mouse, ecc.); inoltre:
– garantisce un comportamento asincrono dell’ambiente rispetto al calcolatore e gestisce di accessi contemporanei da parte di più periferiche
– nasconde ai processi il numero (spesso limitato) di risorse HW disponibili (i.e. più stampe su un’unica stampante)
– non permette ai processi di distinguere tra differenti risorse dello stesso tipo.
Precorso di Informatica - A.A. 2007/2008
Sistemi Plug&Play
• Nelle versioni più recenti dei sistemi operativi, la necessità di configurare “manualmente” ogni periferica tramite appositi driver viene sostituita da funzioni Plug&Play:
– ad ogni accensione del calcolatore il SO scandisce tutte le risorse HW rilevando quelle non ancora configurate
– ogni periferica comunica al SO i driver di cui necessita ed il SO installa gli appositi driver senza l’intervento dell’utente.
Precorso di Informatica - A.A. 2007/2008
Lo spooling
• La tecnica di spooling è utilizzata dai driver per rendere virtuali più periferiche non condivisibili; ad esempio, nel caso di una stampante e più processi che intendono stampare:
– ogni processo invia il file da stampare al driver della stampante, che lo mette in coda nella directory di spooling
– i file in coda vengono stampati secondo l’ordine di arrivo
– a directory di spooling vuota il driver rimane in memoria in attesa di una nuova richiesta di stampa.
• In questo modo i processi evitano lunghe attese ed operano indipendentemente dalla periferica.
Precorso di Informatica - A.A. 2007/2008
Macchina astratta dell I/O
Memoria logica
I/O
virtuale
Memoria logica
I/O
virtuale
Memoria
di
massa
CPU
virtuale
I/O
virtuale
CPU
virtuale
I/O
virtuale
Interfaccia
I/O
Processo 1
Processo n
Bus Dati
Bus Indirizzi
Bus di Controllo
Precorso di Informatica - A.A. 2007/2008
Evoluzione dei sistemi operativi
• I primi calcolatori non prevedevano l’uso di sistemi operativi, ed erano direttamente programmati in linguaggio macchina.
• Con l’aumento della complessità degli elaboratori e del codice da implementare si è reso necessario introdurre un intermediario tra HW e SW che facilitasse la gestione del lavoro.
• Uno dei primi SO fu OS/360.
• Con l’introduzione della multiprogrammazione furono progettati sistemi come CTSS e MULTICS, che spianarono la strada alla nascita di UNIX uno dei più popolari ed efficienti sistemi operativi.
Precorso di Informatica - A.A. 2007/2008
Evoluzione dei sistemi operativi
• In seguito nacque l’MS­DOS, fin troppo “ispirato” a UNIX, ma particolarmente semplice ed adatto ai personal computer.
• Una nota particolare merita Linux, un discendente diretto di UNIX ed apparso per la prima volta nel 1991.
• Uno dei suoi pregi è di essere completamente gratuito ed “open source”, ovvero qualsiasi utente può modificarne il codice sorgente.
• Tuttavia i sistemi che hanno registrato il maggior successo negli ultimi anni sono Macintosh e Windows, grazie alla loro estrema semplicità e chiarezza dell’interfaccia grafica. Precorso di Informatica - A.A. 2007/2008
File System

È un meccanismo per memorizzare e accedere a
dati e programmi

Le informazioni (dati/programmi) sono codificate
in sequenze di byte, e sono raccolte in file.

I file possono avere varie semantiche, a seconda
del tipo di dati che contengono. La semantica si
capisce (nella maggior parte dei casi) guardando
l’estensione del file:
.txt
.jpg
.pdf
.exe
.c
.gif
.ps
.xls
.html
.mp3
.doc
Precorso di Informatica - A.A. 2007/2008
Interfaccia testuale al File System
Precorso di Informatica - A.A. 2007/2008
Interfaccia grafica al File System
Precorso di Informatica - A.A. 2007/2008
File System

I file sono raggruppati in directory, che
possono contenere file o altre directory.

Si forma così una struttura gerarchica ad
albero, le cui foglie sono i file e le directory
vuote
/
floppy
bin
usr
lib
games
home
mario
Prova.c
Precorso di Informatica - A.A. 2007/2008
Pathname


Ciascun file ha un pathname che lo identifica in
modo univoco all’interno del file system.
Un pathname e’ una sequenza di nomi di
directory che conducono da una directory di
partenza ad un certo file, attraverso l’albero
del file system.
/
usr
bin
games
lib
home
mario
Prova.c
Pathname assoluto: /home/mario/Prova.c
Pathname relativo: Prova.c
Precorso di Informatica - A.A. 2007/2008
Home Directory

Ogni utente del sistema Linux ha associata una
directory personale, dove può raccogliere e
organizzare i propri file.

La directory personale si chiama home
directory e si inserisce nel file system sotto la
directory /home/

Il nome della propria home directory
corrisponde alla propria login:
/
usr
lib
anna
home
luigi
mario
Precorso di Informatica - A.A. 2007/2008
Directory corrente
Quando un utente si collega al sistema, il s.o.
gli fa guardare il file system partendo dalla
sua home directory.
All’inizio la directory corrente è la vostra
home dir
/
home
lib
mario
Prova.c
con more Prova.c
Il file è cercato nella
directory corrente
Per leggere un file si
usano i comandi
more <pathname>
less <pathname>
Prova.c
altrimenti si deve
specificare il pathname
assoluto, cioè
more /lib/Prova.c
Precorso di Informatica - A.A. 2007/2008
Navigare nel File System
Per cambiare
la directory corrente
e navigare nel file system
cd <pathname>
I pathname possono contenere
dei simboli speciali:
denota la directory corrente
.
.. denota la directory soprastante
/
cd ../../usr
usr
bin
lib
games
more ../home/mario/Prova.c
cd ./bin corrisponde a cd bin
home
mario
Prova.c
Precorso di Informatica - A.A. 2007/2008
Navigare nel File System
Comandi per visitare il file system:
•
cd <pathname> sposta la directory corrente
•
pwd ritorna il path assoluto della directory corrente
•
ls [<pathname>] visualizza il contenuto della
directory. Prova le opzioni –l e –a
•
more <pathname> visualizza il contenuto del file
•
cp <path1><path2> copia il primo file nel secondo
(path2 viene sovrascritto)
Precorso di Informatica - A.A. 2007/2008
Shell

consente all’utente di interagire con il
sistema operativo (ne esegue i comandi)

è un processo eseguito automaticamente
ogni volta che l’utente apre una sessione
di lavoro
Esistono diversi tipi di shell:

shell grafica: basata su mouse, finestre,
menu. I comandi si lanciano cliccando
(e.g. Windows, KDE, …)

shell testuale: comandi inseriti da
tastiera in forma testuale.
Precorso di Informatica - A.A. 2007/2008
Comandi di base: ls
claudio@silver ~/prova
$ ls ­l
total 2
drwxr­xr­x+ 2 claudio Nessuno 0 Sep 9 12:34 programmi
­rw­r­­r­­ 1 claudio Nessuno 354 Sep 9 12:34 prova.txt
­rw­r­­r­­ 1 claudio Nessuno 112 Sep 9 12:34 prova2.txt
claudio@silver ~/prova
$ ls ­la
total 2
drwxr­xr­x+ 3 claudio Nessuno 0 Sep 9 12:34 .
drwxrwxrwx+ 12 claudio Nessuno 0 Sep 11 22:37 ..
drwxr­xr­x+ 2 claudio Nessuno 0 Sep 9 12:34 programmi
­rw­r­­r­­ 1 claudio Nessuno 354 Sep 9 12:34 prova.txt
­rw­r­­r­­ 1 claudio Nessuno 112 Sep 9 12:34 prova2.txt
Precorso di Informatica - A.A. 2007/2008
Comandi di base: pwd e cd
 pwd visualizza la directory corrente
$ pwd
/home/claudio/prova
 cd <pathname> cambia directory corrente
claudio@silver ~
$ cd prova
claudio@silver ~/prova
$
Precorso di Informatica - A.A. 2007/2008
Comandi di base: mkdir
 mkdir <pathname> crea directory claudio@silver ~
$ mkdir prova
claudio@silver ~
$ mkdir /home/claudio/prova/programmi
 mkdir –p <pathname>
crea tutte le directory del percorso specificato
claudio@silver ~/prova
$ mkdir –p /home/claudio/prova/programmi
Precorso di Informatica - A.A. 2007/2008
Comandi di base: rmdir

rmdir <pathname> elimina directory (se vuota)
claudio@silver ~
$ rmdir /home/claudio/prova/programmi
claudio@silver ~
$ rmdir prova

rmdir –p <pathname> elimina tutte le directory del percorso specificato
claudio@silver ~/prova
$ rmdir –p /home/claudio/prova/programmi
Precorso di Informatica - A.A. 2007/2008
Comandi di base: cat
●
cat <pathname>
visualizza contenuto di un file
claudio@silver ~/prova
$ cat prova.txt
EPSG:4123 ­ KKJ
EPSG:4131 ­ Indian 1960
EPSG:4201 ­ Adindan
EPSG:4202 ­ AGD66
EPSG:4203 ­ AGD84
EPSG:4204 ­ Ain el Abd
EPSG:4205 ­ Afgooye
EPSG:4209 ­ Arc 1950
EPSG:4210 ­ Arc 1960
EPSG:4216 ­ Bermuda 1957
Precorso di Informatica - A.A. 2007/2008
Comandi di base: less
 less <pathname> ●
●
●
●
visualizza contenuto di un file a tutto schermo
Tasto Q per uscire
Tasti freccia, PgUp, PgDn, Invio, Spazio per spostarsi
Tasto / per ricercare una parola
Tasto H per visualizzare l’elenco dei comandi
Precorso di Informatica - A.A. 2007/2008
Comandi di base: cp

cp <pathname1> <pathname2>
copia il contenuto del primo file nel secondo file
●
Se pathname2 è una directory, il file mantiene il
nome che aveva in pathname1. Es:
claudio@silver ~/prova/programmi
$ cp ­v ../prova.txt .
`../prova.txt' ­> `./prova.txt'
.
..
Rappresenta la directory corrente
Rappresenta la directory che contiene quella
corrente
Precorso di Informatica - A.A. 2007/2008
Comandi di base: echo
 echo <messaggio> visualizza messaggio
claudio@silver ~/prova/programmi
$ echo testo messaggio
testo messaggio
claudio@silver ~/prova/programmi
$ echo “testo & messaggio”
testo & messaggio
$ echo testo \& messaggio
testo messaggio
Precorso di Informatica - A.A. 2007/2008
Comandi di base: redirezione output
comando > filename scrive l’output del comando nel file specificato
(eliminandolo)
claudio@silver ~/prova/programmi
$ ls .. > lista.txt
claudio@silver ~/prova/programmi
$ cat lista.txt
Documenti
programmi
prova.txt
prova2.txt
Precorso di Informatica - A.A. 2007/2008
Comandi di base: redirezione output
comando >> filename scrive l’output del comando nel file specificato aggiungendolo alla fine
claudio@silver ~/prova/programmi
$ ls .. > lista.txt
claudio@silver ~/prova/programmi
$ ls .. >> lista.txt
claudio@silver ~/prova/programmi
$ cat lista.txt
prova.txt
prova2.txt
prova.txt
prova2.txt
Precorso di Informatica - A.A. 2007/2008
Comandi di base: rm
 rm <pathname> elimina un file
claudio@silver ~/prova/programmi
$ rm messaggio.txt
claudio@silver ~/prova/programmi
$ rm ­v messaggio.txt
removed `messaggio.txt'
Precorso di Informatica - A.A. 2007/2008
Comandi di base: grep
 grep “stringa” pathname visualizza le linee dei file che contengono la stringa specificata
claudio@silver ~/prova/programmi
$ grep main *c
prova.c: int main(void) {
 grep ­­help visualizza la lista delle opzioni
Precorso di Informatica - A.A. 2007/2008
Accesso ai file

Ogni file ha un proprietario: l’utente che lo ha creato. 
Ogni utente appartiene ad uno (o più) gruppi.

Per ogni file e directory è indicata una modalità di accesso, che specifica quali sono le operazioni che e’ consentito compiere su quel file/dir.
Precorso di Informatica - A.A. 2007/2008
Accesso ai file
Le modalità di accesso specificano quali sono le operazioni che e’ consentito compiere su quel file/dir.
Chi può accedere ad un file/directory?
•Il proprietario
•Un utente del gruppo a cui appartiene il file/dir
•Tutti gli altri utenti
Quali operazioni sono possibili su un file/dir?
•Lettura del file o del nome della directory
•Scrittura e cancellazione del file/directory
•Esecuzione del file o accesso alla directory
Precorso di Informatica - A.A. 2007/2008
Accesso ai file
ls ­l visualizza tutti gli accessi consentiti ai file
diritti
propr gruppo dim data creazione nome
d rwx rwx r­x 3 mario stud 4096 ago 18 19:44 Desktop/
d rwx r­x r­x 2 mario stud 4096 ago 18 17:09 Docs/
d rwx ­­­ ­­­ 8 mario stud 4096 giu 23 11:00 private/
d rwx r­x r­x 6 mario stud 4096 mag 13 11:10 lib/
d rwx ­­­ ­­­ 7 mario stud 4096 apr 29 11:24 Mail/
d rwx r­x r­x 2 mario stud 4096 ago 17 19:22 folder/
­ rwx r­x r­x 1 mario stud 11783 giu 18 22:16 prova
­ rw­ r­­ r­­ 1 mario stud 1064 giu 18 22:16 prova.c
Diritti di read-write-exec di utente generico
Diritti di read-write-exec di utente del gruppo
Diritti di read-write-exec del proprietario
Precorso di Informatica - A.A. 2007/2008
Comandi di base: chmod
 chmod cambia i permessi di accesso ad un file
 chmod ­­help
visualizza lista opzioni
 man chmod help completo
 Formato permessi:
u,g,o,a : utente, gruppo, altri, tutti
+,­ :
consenti, vieta
r,w,x :
lettura, scrittura, esecuzione
Precorso di Informatica - A.A. 2007/2008
Evoluzione dei sistemi informatici
Precorso di Informatica - A.A. 2007/2008
Tassonomia delle reti (per estensione)



Rete locale
Rete metropolitana
Rete geografica
Precorso di Informatica - A.A. 2007/2008
Tassonomia delle reti (per estensione)

Rete locale (LAN - Local Area Network)
●
●

collega due o piu’ computer in un area non piu’
grande di un palazzo.
Collega i computer di un laboratorio, gruppo di
lavoro, ufficio, ditta.
Rete metropolitana (Metropolitan Area
Network)
●
●
concettualmente simile ad una rete locale
collega computer di una singola organizzazione
nella stessa area urbana (es.: banca con filiali
cittadine).
Precorso di Informatica - A.A. 2007/2008
Tassonomia delle reti (per estensione)

Rete geografica (Wide Area Network)
●
●

Nodi distribuiti su medio-lunga distanza
(nazione, continente)
Trasmissione dati: attraverso messaggi
Reti di reti
●
●
●
Collega più reti differenti mediante opportuni
elementi di interfaccia (es.: Internet)
Può avere estensione mondiale
Esempio: Internet
Precorso di Informatica - A.A. 2007/2008
Tassonomia delle reti (per topologia)





Lineare
Anello
Stella
Punto-punto
Mista
Precorso di Informatica - A.A. 2007/2008
Reti lineari (a bus)
PC1

PC2
PC3
PC4
Ethernet e’ il tipo di rete locale piu’
diffuso
●
Qualsiasi computer di qualsiasi tipo prevede la
possibilità di usare una scheda Ethernet per
connettersi alla rete locale
Precorso di Informatica - A.A. 2007/2008
Reti ethernet

Quando un computer vuole
comunicare invia il segnale sul cavo
di collegamento
●
●

Se un computer si accorge che un altro sta
trasmettendo, aspetta
Se si verifica un conflitto (due computer hanno
tentato di comunicare contemporaneamente) i
due computer si fermano e aspettano per un
tempo T casuale, poi riprovano.
Velocita’: 10/100/1000 Megabit/s
Precorso di Informatica - A.A. 2007/2008
Reti ad anello
PC1
PC4

PC2
PC3
La tecnica token-ring viene usata per la
comunicazione tra gli elaboratori
●
●
●
Un token (un gruppo di byte) viene
continuamente passato da un computer all’altro
Un computer può trasmettere sulla rete solo
quando e’ in possesso del token.
Se un computer riceve un messaggio non
destinato a lui, lo rimette in circolo.
Precorso di Informatica - A.A. 2007/2008
Reti punto-punto


PC1
PC2
PC3
PC4
Ottima tolleranza ai guasti; ma
altissimi costi per i collegamenti
( O(n2) )
Utilizzabile solo per reti con
pochissimi nodi.
Precorso di Informatica - A.A. 2007/2008
Reti a stella
PC1
PC3

PC2
hub
HUB: dispositivo hardware
specializzato che smista le
comunicazioni dei computer
PC4
hub
Precorso di Informatica - A.A. 2007/2008
Reti a topologia mista
Precorso di Informatica - A.A. 2007/2008
I servizi di una rete

L’utente di un calcolatore in rete può:
●
●
●
Fruire di risorse informatiche condivise
●
stampanti, dischi, calcolatori più potenti, ...
Scambiare dati e messaggi con utenti di altri
calcolatori connessi in rete
●
documenti, e-mail, newsgroups, mailing-list,
web, ...
Eseguire applicazioni di uso individuale o di
gruppo
Precorso di Informatica - A.A. 2007/2008
I sistemi operativi di rete

In una LAN si vogliono condividere
risorse
●

di solito, almeno, stampanti e hard disk
Il S.O. deve permettere anche l’uso di
quelle risorse che non sono fisicamente
collegate al computer su cui si sta
lavorando
●
I S.O. dei computer in rete devono quindi
dialogare fra loro per permettere la
condivisione delle risorse.
Precorso di Informatica - A.A. 2007/2008
Scambio di informazioni
Affinché due calcolatori possano scambiarsi
dei dati sono necessari
–
–
–
–
un insieme di regole che regolano lo scambio
di dati
un canale fisico di comunicazione tra i due
calcolatori
la componente hardware della comunicazione
il software per la comunicazione
Precorso di Informatica - A.A. 2007/2008
Protocolli di comunicazione
●
●
●
Utilizzati dai calcolatori per dialogare
Come nel caso della codifica dei dati
occorre utilizzare degli standard
internazionali per problemi di
compatibilità!
Esempi
–
–
Modello ISO/OSI (Open System
Interconnection)
Modello TCP/IP (standard de facto)
Precorso di Informatica - A.A. 2007/2008
Protocolli di comunicazione
●
Il solo collegamento fisico non è sufficiente
per permettere la comunicazione fra
calcolatori
–
●
●
è necessario anche che ciascun calcolatore sia
dotato di una applicazione in grado di
effettuare il trasferimento delle informazioni
Nella comunicazione tra calcolatori, è
necessaria la presenza di uno strato
software che consenta lo scambio di dati
sulla base di un protocollo
un protocollo di comunicazione è un
insieme di regole e convenzioni che
controllano lo scambio di informazioni in
una comunicazione
–
messaggi consentiti e loro formato
Precorso di Informatica - A.A. 2007/2008
I mezzi di trasmissione
●
Qual è il mezzo fisico utilizzato per
realizzare il canale di trasmissione?
–
mezzi guidati
●
●
●
●
–
linee fisiche che portano il segnale fino al ricevitore,
supportano la trasmissione di segnali elettrici oppure
ottici,
segnali elettrici: doppino telefonico o cavo coassiale;
segnali ottici: fibre ottiche.
mezzi non guidati
●
●
irradiazione di segnali elettromagnetici nello spazio,
in modo più o meno diretto;
antenne, satelliti, infrarossi, …
Precorso di Informatica - A.A. 2007/2008
Mezzi guidati
Doppino telefonico
Cavo coassiale
Conduttore
di segnale
Isolante
Calza
Guaina
protettiva
Cladding
Fibra ottica
Fonte di
emissione
luminosa (laser)
Core
Guaina protettiva
opaca
Precorso di Informatica - A.A. 2007/2008
Mezzi non guidati

i segnali vengono trasmessi e ricevuti mediante antenne
●
●

l’antenna del trasmettitore irradia nello spazio onde
elettromagnetiche, che l’antenna ricevente capta
può essere direzionale (punto-a-punto) o non direzionale
(multipunto).
Lo spettro di frequenze utilizzato nelle trasmissioni non
guidate può essere suddiviso in tre intervalli:
●
[30 MHz, 1 GHz]
●
●
●
[2 GHz, 40 GHz] (microonde)
●
●
●
adatto alle trasmissioni non direzionali
le trasmissioni cellulari utilizzano 900 Mhz e 1800 Mhz;
trasmissioni direzionali, punto-a-punto,
utilizzato anche per le comunicazioni via satellite (multipunto);
[300 GHz, 200 THz] (infrarossi)
●
●
trasmettitore e ricevitore devono essere visibili l’uno all’altro;
molto importante in applicazioni locali punto-a-punto e multipunto in
aree limitate.
Precorso di Informatica - A.A. 2007/2008
Linea dedicata/commutata
●
linea dedicata
–
La comunicazione avviene lungo un canale
(linea fisica o “parte” di essa) dedicato
esclusivamente ad essa
●
●
Es: due PC connessi da un cavo di comunicazione
linea commutata
–
Il canale viene “costruito” per ogni nuova
sessione di comunicazione, collegando singoli
tratti di linee dedicate
●
Esempio: comunicazione tra due computer in Internet
–
–
–
altri computer fanno da tramite tra i due che devono
comunicare, ritrasmettendo i loro messaggi
Con le linee commutate si riducono i costi
2 modalità:
●
●
commutazione di circuito
commutazione di pacchetto
Precorso di Informatica - A.A. 2007/2008
Commutazione di circuito
●
●
●
I telefoni di un distretto telefonico fanno
capo ad una centrale di smistamento, che
comunica con le centrali degli altri
distretti.
Quando telefoniamo, la chiamata viene
fatta passare attraverso una o più
centrali, fino a raggiungere il numero
chiamato.
Comunicando fra loro, le centrali
costruiscono una connessione diretta fra i
due telefoni, che dura tutto (e solo) il
tempo della telefonata.
Precorso di Informatica - A.A. 2007/2008
Commutazione di circuito
●
●
●
Quando due telefoni comunicano, la linea e’
occupata: nessuno puo’ chiamare quei
telefoni.
Che succede se usiamo una comunicazione
a commutazione di circuito su internet?
DISASTRO: qualsiasi servizio offerto
sarebbe disponibile ad un solo utente per
volta.
–
Ad esempio, chi riesce a connettersi ad un sito
web lo puo’ usare in esclusiva per tutto il
tempo che vuole !!!
Precorso di Informatica - A.A. 2007/2008
Commutazione di pacchetto
●
●
●
Ogni messaggio e’ diviso in tanti pacchetti
numerati di dimensione fissa.
Ogni pacchetto contiene l’indirizzo del
computer destinatario e del mittente.
Ogni pacchetto e’ trasmesso separatamente
–
●
Una volta inviato, il mittente se ne disinteressa
Ogni pacchetto fa (virtualmente) una strada
diversa per arrivare al destinatario
Precorso di Informatica - A.A. 2007/2008
Commutazione di pacchetto
●
I pacchetti non arrivano necessariamente
nello stesso ordine con cui sono stati inviati
–
●
Il destinatario aspetta di aver ricevuto tutti i
pacchetti per ricomporli e ricostruire il
messaggio
Ogni pacchetto occupa il mezzo di
trasmissione e la scheda di rete per un
tempo molto breve
–
Si ha un effetto di parallelismo: ogni computer
puo’ essere coinvolto contemporaneamente in
piu’ comunicazioni
Precorso di Informatica - A.A. 2007/2008
Routing
●
●
●
Come far arrivare i pacchetti a
destinazione?
Ogni nodo della rete mantiene una tabella
che indica a quale/quali vicini ritrasmettere
un pacchetto non destinato a lui, in base
all’indirizzo di destinazione del pacchetto
La scelta del nodo a cui inoltrare il
pacchetto dipende anche da situazioni
temporanee di carico della rete, guasti, ecc.
Precorso di Informatica - A.A. 2007/2008
Internet
●
●
Nata dalla fusione di reti di agenzie
governative americane (ARPANET) e reti
di università
E’ una rete di reti, di scala planetaria,
pubblica, a commutazione di pacchetto
–
●
●
sistema di comunicazione tra reti e sistemi
eterogenei, oltre che geograficamente
distribuiti.
Utilizza protocolli di comunicazione di
dominio pubblico derivati dal modello
TCP/IP
Al giorno d’oggi è accessibile a tutti
tramite provider che sono fisicamente
collegati a internet
Precorso di Informatica - A.A. 2007/2008
Collegamento ad accesso diretto
Precorso di Informatica - A.A. 2007/2008
Collegamento ad accesso commutato
Precorso di Informatica - A.A. 2007/2008
Caratteristiche del protocollo TCP/IP
●
●
●
Internet usa un protocollo universale,
TCP/IP, per far dialogare tra loro
hardware e sistemi operativi diversi
indipendenza del protocollo dal modo in
cui la rete è fisicamente organizzata
il protocollo è di dominio pubblico
Precorso di Informatica - A.A. 2007/2008
Caratteristiche del protocollo TCP/IP
●
Suddivide i dati in uscita in pacchetti
recanti le informazioni circa la loro
destinazione (Internet è una rete a
commutazione di pacchetto)


●
●
I pacchetti (datagrammi) hanno piccole
dimensioni (1500 byte)
I pacchetti sono spediti separatamente e poi
riassemblati dal ricevente
Provvede all’instradamento dei messaggi
Controlla che la comunicazione vada a
buon fine

meccanismo di messaggi di conferma della
ricezione avvenuta o di segnalazione di errori,
onde la trasmissione venga ripetuta
Precorso di Informatica - A.A. 2007/2008
Caratteristiche del protocollo TCP/IP

Il protocollo
dell’indirizzo:



analizza
la
parte
rete
se la rete è quella locale, i dati sono inviati
direttamente all’host indicato nell’indirizzo;
altrimenti sono inviati al router.
Ogni router ha in memoria una tabella
(tabella di routing) degli indirizzi dei
router responsabili di altre sottoreti che
conosce direttamente, più uno per gli
indirizzi di rete che gli sono sconosciuti.
Precorso di Informatica - A.A. 2007/2008
La struttura di Internet
Posta elettronica
Login remoto
protocollo
applicativo:
NNTP
SMTP/POP
Copia di files
World Wide Web
TELNET
livello applicativo
protocolli di
trasmissione:
livello di trasmissione
infrastruttura
telematica:
livello di connessione
fisica
TCP/IP
FTP
HTTP
Precorso di Informatica - A.A. 2007/2008
Architettura a livelli
●
La trasmissione dell’informazione avviene simulando la
connessione tra i livelli corrispondenti (peer) dei due sistemi che
si scambiano blocchi formattati di dati, seguendo le regole stabilite
dal protocollo definito per quel livello. Gli elementi chiave di un
protocollo sono pertanto:
–
–
–
●
la sintassi da seguire per la formattazione dei blocchi dei dati;
la semantica, che riguarda, per esempio, le modalità di controllo della
trasmissione e di gestione degli errori;
la temporizzazione, ovvero l’adattamento della comunicazione alla
velocità di trasmissione e la sequenzializzazione delle attività.
Modello ISO-OSI:
–
–
–
International Standard Organization (ISO),
Open Systems Interconnect (OSI).
Nel modello ISO-OSI, la comunicazione è originata dal livello più alto
della stazione che invia il messaggio, passa ai livelli inferiori (sette in
tutto), in cui il messaggio viene elaborato e preparato per la
trasmissione, fino a giungere al livello fisico, che si occupa
dell’effettiva trasmissione verso la stazione di destinazione.
Precorso di Informatica - A.A. 2007/2008
I livelli ISO/OSI
Applicazione
Unità di trasmissione dati a livello applicazione
Applicazione
Presentazione
Unità di trasmissione dati a livello presentazione
Presentazione
Sessione
Unità di trasmissione dati a livello sessione
Sessione
Trasporto
Unità di trasmissione dati a livello trasporto
Trasporto
Limite della sottorete di interconnessione
Rete
Pacchetto
Rete
Pacchetto
Rete
Pacchetto
Rete
Data link
Frame
Data link
Frame
Data link
Frame
Data link
Fisico
Bit
Fisico
Bit
Fisico
Bit
Fisico
HOST A
Router
Router
HOST B
Precorso di Informatica - A.A. 2007/2008
Indirizzamento TCP/IP
●
Schema di indirizzamento generale su due livelli:
indirizzo IP + porta TCP
–
Indirizzo IP
●
●
–
indirizzo associato a ogni calcolatore collegato a una
sottorete;
si tratta di un indirizzo Internet globale unico, utilizzato
da IP per l’instradamento e la consegna dei pacchetti.
Porta TCP
●
●
●
indirizzo unico all’interno dell’host che individua un
processo attivo sull’host;
utilizzato da TCP per consegnare i dati al processo giusto;
TCP aggiunge altre informazioni di controllo/servizio:
–
–
–
il numero d’ordine nella sequenza (riordinare i messaggi
dopo il loro arrivo a destinazione);
codici di controllo della correttezza (checksum), che
permettono al destinatario di verificare l’assenza di errori;
…
Precorso di Informatica - A.A. 2007/2008
Indirizzi TCP/IP
Livello Applicazione
HOST A
HOST B
Livello Applicazione
App. Y
App. Y
App. X
App. X
Punti di accesso al
servizio (porte)
Livello TCP
Livello IP
Connessione logica (TCP)
Livello TCP
Livello IP
Indirizzo di rete
(globale)
Protocollo di accesso
alla rete 1
Livello Fisico
(collegato a rete 1)
Indirizzo del punto di
collegamento alla sottorete
Protocollo di accesso
alla rete 2
ROUTER
Livello Fisico
(collegato a rete 2)
Livello IP
Protocollo di accesso
alla rete
Rete 1
Livello Fisico
Rete 2
Precorso di Informatica - A.A. 2007/2008
Da un livello all'altro
●
Ogni livello attraversato aggiunge un’intestazione
(contiene informazioni utili alle funzioni proprie di quel
livello):
–
–
–
–
TCP (porta TCP, checksum, numero d’ordine, …)
IP (indirizzo host destinazione, indirizzo host mittente,
…)
rete (MAC address destinazione, MAC address mittente,
…)
Flusso dati proveniente
…
Dati utente
dall’applicazione
Intestazione
TCP
Intestazione
IP
Intestazione
di rete
Unità dati a livello TCP
Unità dati a livello I P
(datagramma)
Unità dati a livello rete
(frame)
Precorso di Informatica - A.A. 2007/2008
Indirizzo IP (versione 4)
●
●
32 bit (cioè 4 byte) per un totale di 232 possibili indirizzi
diversi;
rappresentato in forma “dotted decimal”
–
–
●
successione di quattro numeri (uno per byte), separati da un
punto
(e.g. 102.54.94.97)
ognuno dei quattro numeri della notazione dotted decimal è
compreso tra 0 e 255.
strutturato in due parti:
–
–
–
una parte che individua la rete fisica a cui la stazione è
collegata,
l’altra che identifica la singola stazione nell’ambito della rete
fisica;
esistono tre classi primarie, chiamate A, B e C, ognuna
caratterizzata da una diversa suddivisione dei 32 bit:
●
●
●
A - un byte (8 bit) per la rete + 3 byte (24 bit) per i calcolatori;
inizia per “0”;
B - 2 byte (16 bit) per la rete + 2 byte (16 bit) per le stazioni; inizia
per “10”;
C - 3 byte (24 bit) per la rete + 1 byte (8 bit) per i calcolatori;
inizia per “110”.
Precorso di Informatica - A.A. 2007/2008
Il paradigma client/server
1. L’utente usa il client per esprimere le sue richieste
2. Il client si collega al server e trasmette la richiesta
3. Il server risponde al client
4. Il client presenta la risposta all’utente
Internet


Client


Utente
Server
Precorso di Informatica - A.A. 2007/2008
Il client
●
●
●
●
Si preoccupa di dialogare con l’utente
Sfrutta tutte le possibilità fornite dal
calcolatore su cui viene eseguito (audio,
video, ...)
Fornisce all’utente un’interfaccia intuitiva
Elabora le richieste dell’utente e le risposte
dei server
–
la comunicazione avviene secondo un formato
standard (protocollo)
Precorso di Informatica - A.A. 2007/2008
Il server
●
●
Rende disponibili delle risorse
Accetta richieste e risponde
automaticamente
–
–
●
●
non bada alla provenienza della richiesta
il processo client può trovarsi in qualsiasi
punto della rete
Si può organizzare un insieme di server in
modo che siano collegati tra loro
Potrebbe essere eseguito dallo stesso
calcolatore che esegue il processo client!
Precorso di Informatica - A.A. 2007/2008
Indirizzi numerici e simbolici
●
●
●
Gli indirizzi IP sono machine-oriented, quindi
difficili da utilizzare per un utente “umano”;
è stato definito un sistema per passare da indirizzi
numerici (gli indirizzi IP) a nomi facilmente
memorizzabili, il Domain Name System;
Domain Name System (DNS)
–
–
●
associa a ogni indirizzo IP uno o più indirizzi simbolici,
gestisce la conversione tra indirizzi simbolici e indirizzi IP
organizzato in maniera gerarchica (domini, sottodomini, sotto-sotto-domini, …) per semplificarne
l’utilizzo.
193.205.101.6
DNS
server1.isec.liuc.it
Precorso di Informatica - A.A. 2007/2008
DNS
●
●
Il nome DNS di un calcolatore è costituito da una
successione di stringhe alfanumeriche separate da punti (per
esempio, server1.isttec.liuc.it)
ogni stringa identifica un “dominio”:
–
la stringa più a destra rappresenta il dominio di primo livello
(detto anche dominio generale)
●
●
–
la seconda stringa, sempre proseguendo da destra verso
sinistra, indica il dominio di secondo livello
●
●
–
identifica la nazione di appartenenza (it per Italia, uk per Gran
Bretagna, fr per Francia…)
identifica la categoria cui appartiene la società proprietaria del
calcolatore (com per commerciale, edu per università o istituzioni
che si occupano di formazione, org per organizzazioni non-profit di
vario genere…);
è un sottodominio del dominio di primo livello
di solito individua una singola organizzazione (università, azienda,
ente…)
Le stringhe successive indicano i domini di terzo livello
(sottodomini dei domini di secondo livello), quelli di quarto
livello, e così via finché non si arriva a individuare un dominio
che comprende il singolo host.
Precorso di Informatica - A.A. 2007/2008
Come si passa da DNS a IP
●
A ogni dominio è associato a un calcolatore responsabile del
dominio
–
si consideri, per esempio, l’indirizzo server1.isttec.liuc.it:
●
●
●
●
●
Il calcolatore responsabile di un dominio mantiene un elenco dei
calcolatori responsabili dei suoi sottodomini (e ne conosce i
relativi indirizzi IP),
–
–
●
c’è un computer responsabile per il dominio it;
un computer per il dominio liuc.it;
un terzo computer per il dominio isttec.liuc.it;
un ulteriore computer per server1.isttec.liuc.it.
il calcolatore responsabile del dominio it, per esempio, deve sapere chi
sono (cioè deve sapere qual è il loro indirizzo IP) i calcolatori
responsabili di tutti i suoi sottodomini, tra cui c’è liuc.it, ma anche
polimi.it, miur.it…
il calcolatore responsabile del dominio liuc.it, per esempio, deve
sapere chi sono i calcolatori responsabili di tutti i suoi sottodomini, tra
cui c’è isttec.liuc.it, ma anche cetic.liuc.it, …
Per tradurre l’indirizzo DNS di un calcolatore nel suo indirizzo IP
si deve interrogare il responsabile di ciascuno dei domini (di
I, II, … livello) cui quel calcolatore appartiene:
–
–
–
il calcolatore responsabile del dominio di I livello sa dove si trova il
calcolatore responsabile del dominio di II livello
il calcolatore responsabile del dominio di II livello sa dove si trova il
calcolatore responsabile del dominio di III livello
…
Precorso di Informatica - A.A. 2007/2008
World Wide Web
●
●
Architettura software per gestire dati
distribuiti geograficamente basata sulla
nozione di ipertesto
Pagine web: ipertesti che possono
contenere testo, immagini, suoni,
programmi eseguibili
–
●
un utente legge le pagine, se seleziona un link
la pagina viene sostituita con quella richiesta
(scaricata dal sito remoto)
Si appoggia a TCP/IP e quindi è
compatibile con ogni tipo di macchina
collegata ad Internet
Precorso di Informatica - A.A. 2007/2008
URL: indirizzi nel web
●
●
URL (Uniform Resource Location) è uno
standard per il formato degli indirizzi
delle risorse sul Web
Specifica:
–
–
–
●
Come si vuole accedere alla risorsa
(metodo)
Dove si trova la risorsa (indirizzo server)
Nome della risorsa (nome)
Formato:
–
Metodo://host/nome
Precorso di Informatica - A.A. 2007/2008
HTTP


Gestisce il trasferimento di file
ES: quando un browser deve aprire
la pagina
http://www.dsi.unive.it/index.html
1.
2.
3.
Si connette con il server
www.dsi.unive.it
Richiede il documento /index.html
Visualizza il documento e se contiene
altri elementi (es: immagini) ripete dal
punto 1 (dal punto 2 con HTTP/1.1)
Precorso di Informatica - A.A. 2007/2008
HTTP
RICHIESTA: GET / HTTP/1.0
RISPOSTA: HTTP/1.1 200 OK
Date: Wed, 13 Sep 2006 04:54:16 GMT
Server: Apache/2.0.58 Content­Length: 4668
Connection: close
Content­Type: text/html
<html>
Prova
</html>
Precorso di Informatica - A.A. 2007/2008
FTP
 Trasferimento file
 All’inizio del collegamento l’utente viene identificato tramite username/password (per i collegamenti anonimi, user: anonymous)
 E’ possibile elencare il contenuto della directory remota (ls) e locale (lls), cambiare directory (cd, lcd), richiedere un file (get, mget), inviare un file (put, mput)
 Può anche essere utilizzato per trasferire un solo file specificandolo in un url (ftp://server/file)
Precorso di Informatica - A.A. 2007/2008
Proxy





Riceve le richieste dai client (browser oppure altri proxy)
Inoltra le richieste al server (oppure ad un altro proxy)
Inoltra la risposta al client
Permette di oltrepassare (in modo controllato) i firewall
Se la stessa richiesta arriva da più client, viene inviata una volta sola al server (caching)
Precorso di Informatica - A.A. 2007/2008
Telnet
●
●
●
●
Accesso remoto
Shell testuale
I comandi vengono eseguiti sul
server remoto
Es: telnet squit.dsi.unive.it Precorso di Informatica - A.A. 2007/2008
HTTP, FTP e Telnet non sono sicuri !
●
Chiunque abbia accesso al canale
di comunicazione, oppure ad un
proxy, può intercettare i contenuti
–
–
FTP, Telnet
il nome utente e la password sono
leggibili
HTTP
altri dati sensibili possono essere
Precorso di Informatica - A.A. 2007/2008
Posta elettronica
●
●
●
SMTP: gestisce l’invio dei
messaggi di posta
POP3: permette di recuperare i
propri messaggi da un server
IMAP: permette di recuperare i
propri messaggi e di organizzarli
in cartelle sul server
Precorso di Informatica - A.A. 2007/2008
Crittografia
●
●
●
I dati scambiati vengono
modificati in modo da non essere
letti da chi non conosce la chiave
Esistono diversi tipi di algoritmi
crittografici
Alcuni richiedono che la stessa
chiave sia nota sia a chi codifica
che a chi decodifica. Questo li
Precorso di Informatica - A.A. 2007/2008
Crittografia a chiave asimmetrica
●
●
Gli algoritmi asimmetrici
utilizzano un paio di chiavi una
privata ed una pubblica
La chiave pubblica del
destinatario può essere utilizzata
per codificare un messaggio che
solo il destinatario può leggere
utilizzando la propria chiave
Precorso di Informatica - A.A. 2007/2008
Crittografia a chiave asimmetrica
●
●
Il mittente può utilizzare la
propria chiave privata del mittente
per provare la propria identità.
Chiunque possieda la chiave
pubblica del mittente può
verificarne l’identità, senza
accedere alla sua chiave privata
Precorso di Informatica - A.A. 2007/2008
HTTPS, SSH, SFTP
●
●
Analoghi a HTTP, telnet ed FTP
basati su canali sicuri.
Un indirizzo web sicuro inizia per
https://..........