The interaction model - an example

annuncio pubblicitario
Informatica di base – 2a parte
A.A. 2002/2003
Sistemi operativi ed applicativi
Sommario degli argomenti
Sistemi operativi: DOS, Unix/Linux,Windows
Word processors: Word
Fogli elettronici: Excel
Sistemi per la gestione di basi di dati: Access
Reti: TCP/IP, Internet, ftp, telnet, posta
elettronica
WWW: http, Netscape, HTML, motori di ricerca
2
Sistemi Operativi
Insieme di programmi che gestiscono l’hardware
Hardware:
Processori
Memorie
Dispositivi di I/O
Detto software di base
Software applicativo: insieme dei programmi
scritti dall’utente
3
Bootstrap
Fase iniziale che carica il SO in memoria
principale (RAM)
Prima una parte, che poi ne carica un’altra,
..., fino a che tutto il SO e’ in memoria e in
esecuzione
4
Comandi al SO
Attivano l’esecuzione di un programma del
SO
Il program counter viene modificato per
contenere l’indirizzo d’inizio del programma
Alla fine si puo’ dare un nuovo comando
5
Shutdown
Memorizza su memoria di massa (non
volatile) tutte le informazioni
temporaneamente in RAM
Se non viene effettuata (es.: guasto) 
queste informazioni vengono perse
6
SO di oggi
Possono gestire:
Piu’ utenti anche con un solo processore
Piu’ programmi per ogni utente
Senza che gli utenti se ne rendano conto
Macchina virtuale: tanti processori virtuali,
uno per ogni programma
7
Virtualizzazione
Molti programmi in esecuzione
 simultanea presenza in memoria centrale
possibili conflitti  memoria virtuale (come si
si avesse piu’ memoria di quella reale)
Anche dispositivi di I/O virtuali
gestione simultanea di piu’ richieste (es.,
stampe)
8
Indipendenza dall’hardware
SO sempre piu’ indipendenti dall’hardware
Riduce la porzione di codice da modificare per
poter usare un SO su un altro calcolatore
Programmi applicativi piu’ portabili
9
Vari SO
Negli anni ’80, molti SO
Poi, convergenza su pochi SO:
DOS (Microsoft)
Unix e Linux
Windows (Microsoft)
10
Modalita’ utente/supervisore
Nei primi SO, ogni programma poteva
attivare ogni altro programma
Per dare una struttura, solo
Modalita’ utente: permesso di attivare solo
alcune procedure
Modalita’ supervisore: tutto permesso
11
SO strutturati
In seguito, struttura in livelli
Ogni livello si appoggia a quello inferiore
Livello piu’ basso: nucleo (kernel)
Il nucleo gestisce le funzioni di base
12
Modello client/server
Macchine con caratteristiche diverse
collegate in rete
Su ogni macchina, vengono eseguiti i
programmi che piu’ si adattano alle sue
caratteristiche
Interfaccia utente e grafica su PC (cliente)
Gestione risorse condivise e programmi
pesanti su macchine piu’ potenti (server)
Un server e molti client
13
Vantaggi e svantaggi
Riduzione del carico sui sistemi centrali
Maggiori garanzie di sicurezza e integrita’
Maggiore modularita’ e uniformita’
Maggiore flessibilita’
Necessita’ di rete veloce
Maggior oneri di gestione dell’intero
sistema
14
Funzioni del SO
Da 100 Kilobyte a 100 megabyte
Programmi suddivisi in moduli
Ogni modulo ha una funzione diversa
Funzioni piu’ importanti:
gestione
gestione
gestione
gestione
processori
processi
memoria (principale e secondaria)
dispositivi di I/O
15
nucleo
Struttura di un SO
Servizi richiesti dagli utenti al SO
Interfaccia nucleo verso l’esterno
File system
Gestore I/O
Gestore
processi
Gestore
memoria
Gestore
processori
hardware
16
Gestione dei processi
Controlla la sincronizzazione, interruzione e
riattivazione dei programmi in esecuzione
Piu’ programmi si alternano nell’uso della CPU
Ogni programma puo’ essere:
Eseguito
Sospeso
Fatto ripartire
Struttura che mantiene lo stato di
avanzamento di ogni programma: processo.
17
Esempio: esecuzione di una ricetta
Ricetta = programma
Noi = processore
Ingredienti = dati in input
Attivita’ di leggere la ricetta, usare gli
ingredienti, mescolare, cuocere = processo
Telefonata durante l’esecuzione della ricetta =
interrupt
Il processo interrompre l’esecuzione, prende
nota del punto (riga della ricetta, ...) e gestisce
l’evento
Alla fine della telefonata, l’esecuzione riprende
e viene conclusa
18
Dolce = output
Vari processi in esecuzione
Bisogna gestire anche
Condivisione risorse fisiche (CPU, memoria)
Condivisione risorse logiche (dati)
Modularita’: piu’ processi per una singola
operazione
Maggiore velocita’ per parallelismo tra
processi
Anche piu’ processi per un programma
Es.: piu’ programmatori usano lo stesso
19
editore di testi
Ambiente monotasking
Viene gestita l’esecuzione di un solo
programma per volta
L’esecuzione non puo’ essere sospesa (per
assegnare la CPU ad un altro programma) 
prima bisogna terminare l’esecuzione in corso
Alla terminazione di un programma, si puo’
attivare un altro programma
Piu’ programmi attivati con un solo comando:
job
20
Svantaggi del monotasking
Lentezza:
la CPU non puo’ essere usata da nessun
processo mentre il programma in
esecuzione svolge operazioni di I/O (molto
piu’ lente di letture/scritture in Memoria)
DOS e’ un SO monotasking: non si puo’
fare niente altro mentre si formatta un
floppy o si memorizzano dati su disco
21
Ambiente multitasking
SO che permettono l’esecuzione
contemporanea di piu’ programmi
Se una sola CPU  esecuzione contemporanea
virtuale (una sola istruzione alla volta)
Minimizzano il tempo di inattivita’ ella CPU
durante le operazioni di I/O, che possono
anche occupare l’80% del tempo
22
Time sharing
Ripartizione del tempo di CPU tra tutti i
processi che la vogliono
Durata del quanto di tempo: tra 100 e 200
millisecondi  granularita’ molto fine
A ciascun utente sembra di avere la CPU tutta
per lui, solo piu’ lenta
23
Coda dei processi pronti
I processi sono messi in una coda
Il processo in cima alla coda ha a disposizione
la CPU per un quanto di tempo, fissato e
uguale per tutti
Quando il tempo finisce, viene interrotto e
messo in fondo alla coda
Se richiede un’operazione di I/O, va nel
gruppo dei processi sospesi, quando
l’operazione finisce viene rimesso in coda per
la CPU
La CPU va al primo in coda
24
Stati dei processi
Durante la vita di un processo, vari stati:
In esecuzione: quando usa la CPU (solo un
processo alla volta)
Pronto: quando aspetta la CPU
Bloccato: in attesa di un evento (es.: fine
di op. di I/O)
Passaggio da uno stato ad un altro: context
switching
25
Transizioni tra stati
In esecuzione
richiesta di I/O
schedulazione
pronti
fine tempo,
evento esterno
bloccati
conclusione I/O
Coda ordinata in
attesa della CPU
Insieme in attesa
di eventi
26
Interrupt
Segnali hardware
Collegati al verificarsi di un evento
Provocano l’esecuzione immediata di un
programma del SO (vettore di
interrupt) che serve a gestire l’evento
Una CPU puo’ gestire piu’ interrupt
Interrupt anche per fine di quanto di
tempo (generato dal timer)
27
Tipi di interrupt
Rilevazione malfunzionamento hardware
Fine del quanto di tempo
Arrivo di dati in input
Rilevazione di segnali da sensori
Rilevazione di errori software
Ogni interruzione ha la sua priorita’, cosi’ il
processo che la gestisce puo’ interrompere
solo processi con priorita’ inferiore
28
Tabelle dei processi
 Ogni processo ha una sua tabella che lo
descrive, che contiene:
Identificativo
Indirizzo prossima istruzione
Contenuto registri CPU
Stato corrente (pronto, bloccato,
esecuzione)
Collocazione programma e dati in memoria
Priorita’
Ammontare CPU time gia’ speso
…
29
Operazioni sui processi
La tabella e’ sempre in memoria centrale (per
accedervi velocemente)
Usando le informazioni contenute nella
tabella, si possono fare varie operazioni:
Creazione di nuovi processi
Cambio di priorita’
Blocco
Assegnamento della CPU
Terminazione
30
Gestione dei processori
Criteri in base ai quali i processori vengono
assegnati ai processi
Programma schedulatore:
Distribuisce il tempo di CPU tra i processi
Decide l’avvicendamento dei processi
36
Criteri per lo schedulatore
Massimo tasso di uso della CPU
Massimo numero di processi completati per
unita’ di tempo (throughput)
Minimo tempo tra la sottomissione di un
processo e il suo completamento
Minimo tempo passato in attesa nella coda dei
processi pronti
37
Gestione della coda dei pronti:FIFO
FIFO (first in, first out):
Secondo l’ordine di arrivo, senza
interruzione
Implementazione banale
Tempo di attesa non minimizzato
38
Gestione della coda dei pronti:
altri metodi
SJF (Shortest Job First): prima i processi
piu’ corti
Round-robin: con quanti di tempo associati a
FIFO
Scadenza: prima i processi con la scadenza
piu’ vicina
SRT (Shortest Remaining Time): prima i
processi a cui manca meno tempo per finire
39
Gestione della memoria principale
Criteri per allocare la memoria
principale tra piu’ entita’ che la
richiedono:
SO
Processi
Buffer di I/O
…
40
Vari tipi di memoria
Memoria principale:
Veloce da accedere
Volatile
Piccola
Programmi da eseguire devono risiedere
qui
Granularita’ fine (bit o byte)
Memoria di massa (o secondaria):
Molto piu’ grande e meno costosa
Non volatile
Lunghi tempi di accesso
Granularita’ non fine (blocchi di byte)
41
Gestione della memoria reale
Alloco una prima parte di M per il SO
SO
Poi una parte contigua successiva al
programma in esecuzione e ai suoi dati
programma
 Limiti alla grandezza del programma
dati
Overlay:
carico il M solo la sezione del programma
che serve ora
Il programmatore deve suddividere il
programma in sezioni
42
Partizioni della memoria reale
Piu’ task  partizioni della memoria
Partizioni fisse:un pezzo fisso di memoria per
ciascun processo
Partizioni variabili: minimo spazio per
l’esecuzione di un processo
Frammentazione:
Dopo vari caricamenti e scaricamenti,
nessuna porzione libera e’ grande
abbastanza per il prossimo programma
 ricompattamento delle parti libere
(garbage collection)
43
Memoria virtuale
Tecnica per
Svincolare il codice di un programma dalla
sua collocazione in memoria
Funzionare come se si avesse piu’ memoria
di quella reale
Da indirizzi virtuali (usati dai programmi) a
indirizzi reali (per l’accesso alla RAM)
44
Indirizzi virtuali e reali -- esempio
Processore a 32 bit  232 indirizzi, da 0 a 232
(4 gigabyte)
RAM di solito con alcun centinaia di megabyte
Il programma puo’ usare tutti gli indirizzi,
anche se non ci sono cosi’ tante celle di
memoria
Gli indirizzi sono virtuali e vengono poi
tradotti in indirizzi fisici
Basta che non tutti gli indirizzi virtuali siano
usati assieme
45
Gestione della memoria secondaria
Fatta dal modulo del SO detto file
system, che si occupa di:
Associare un nome di file ad una parte
dello spazio di memoria
Fornire metodi per accedere ai file
Rendere trasparente la struttura fisica
della memoria
Ottimizzare l’occupazione di memoria
46
File
Unica unita’ logica di informazione usata dal
SO
Fisicamente:
sequenza di byte che contiene informazioni
omogenee
Es.: programma, testo, dati simili, …
Byte = 8 bit
Tutti i dati vengono suddivisi in file
I file vengono memorizzati nelle memorie di
massa
47
Modi di accesso a un file -- 1
Byte-stream:
File = sequenza di byte
Soprattutto per file di testo
Sequenziale:
File = sequenza di record di lunghezza
fissa o variabile
Record = sequenza di byte
Accesso sequenziale ai record
48
Modi di accesso a un file -- 2
Diretto:
File = sequenza di record di lunghezza
fissa
Accesso immediato ai record
A indice:
File = sequenza di record ordinati secondo
un indice
Record = valore dell’indice + informazione
Due file: uno per i record, e uno per indici
+ indirizzo fisico del record con qull’indice
49
Accesso veloce, ma piu’ spazio
Organizzazione dei file
Organizzazione gerarchica
Solo logicamente, nessuna relazione
con la posizione fisica sulle memorie
di massa
Directory: gruppo di file e altre
directory, piu’ elenco
50
Organizzazione ad albero
Albero rovesciato (come genealogico)
Nodi e collegamenti padre-figlio tra nodi
Nodo: file o directory
directory
file
Nodi divisi per livelli
Collegamenti tra nodi di livelli vicini: nodo
sopra = padre, nodo sotto = figlio
Ogni nodo ha un solo padre
Padre piu’ in alto = radice
I nodi file non hanno figli
Cammino assoluto o relativo (per file)
51
Operazioni su file
Creazione
Apertura
Chiusura
Cancellazione
Copia
Rinomina
Visualizzazione
Lettura
Scrittura
Modifica
…
52
Gestione dell’input/output
Gestione delle periferiche
Rende trasparenti le caratteristiche
fisiche delle periferiche
Gestisce la comunicazione di segnali
verso di loro
Coordina l’accesso di piu’ utenti
(processi)
Driver delle periferiche (uno per ogni
periferica)
53
Spooling
Processo che svincola la stampa di un file dal
resto dell’elaborazione: il sistema continua la
sua attivita’ mentre la stampa e’ in corso
Stampante piu’ lenta della CPU  un file non
puo’ essere trasferito troppo velocemente
dalla CPU alla stampante
Invece di inviare il file:
Il file viene messo su disco
Il SO crea il processo di spooling che fa
procedere la stampa
Il processo che ha richiesto la stampa e’
svincolato da essa
Lo spooling puo’ andare in esecuzione anche su
un elaboratore remoto collegato in rete (print
54
server)  lo eseguira’ un’altra CPU
MS - DOS
Sviluppato dalla Microsoft nel 1981 per
il PC IBM
Adottato da altri con PC IBMcompatibili
Molto limitato: mono-utente, monotasking
Circa 50 comandi per il SO
55
Comandi piu’ usati in MS - DOS
DIR per vedere il contenuto di una directory
COPY per copiare file
DEL per cancellare un file
REN per cambiare il nome a un file
CD per muoversi in un altra directory
MD per creare nuove directory
RD per cancellare directory
Nome file: per eseguire il file (se eseguibile)
56
File in MS - DOS
Per individuare un file: cammino assoluto
Un file system per ogni disco  anche nome
del disco
Esempio: C:\Dir1\Dir2\Dir3\file.txt
Estensioni per file:
.exe per programma eseguibile
.sys per driver di sistema
.txt per file di testo
.c per programma in C
.doc per documento Word
57
Unix
SO multi-utente, multi-tasking, con timesharing
Concepito per poter funzionare su diverse
piattaforme hardware
Interprete dei comandi: shell
Piu’ di 300 comandi, con opzioni
Comando man per aiuto
Forma di un comando:
nome-comando [[-opzioni] argomenti]
58
Comandi Unix
Ls per vedere il contenuto di una directory
Cp per copiare file
Rm per cancellare file
Mv per spostare file
Cd per spostarsi in un’altra directory
Mkdir per creare una nuova directory
Ps per vedere tutti i processi attivi
Lp per stampare file
Who per vedere tutti gli utenti collegati
59
File in Unix
Unico albero anche se ci sono piu’ dischi 
non serve indicare il disco per denotare un
file
Radice: simbolo /
Esempio: /dir1/dir2/dir3/file.txt
60
Windows
Nato nel 1987, ispirato al Macintosh
All’inizio era un’interfaccia grafica per DOS
Windows ’95: SO mono-utente, multi-tasking,
time-sharing
DOS emulato in speciali finestre (per seguire
vecchi applicativi per DOS)
Pensato per una stazione di lavoro (il PC) che
puo’ essere un client in una rete
61
Filosofia Windows -- 1
Interfaccia grafica
Mouse che sposta un cursore
Cut & paste (copia e incolla)
Drag & drop (trascina e lascia)
Icone associate a file, directory, dischi, …
Directory come cartelle
Pulsanti
Finestre: cornici con strumenti
Menu di comandi
62
Filosofia Windows -- 2
L’utente non deve ricordarsi i nomi dei
comandi, basta che selezioni col mouse:
un oggetto e
il comando da applicare all’oggetto
File system (cioe’ l’albero): visualizzato come
cartelle che contengono icone di file o di altre
cartelle
Cliccando su una cartella, si apre quella
directory
Icona del file: diversa a seconda del tipo di
file
63
Word processor (editori di testi)
Si sono diffusi assieme ai PC negli anni ’70
All’inizio, aspetto non importante: stampanti
con pochi opzioni di caratteri
Con l’avvento degli schermi grafici, ora su
tutti i PC, tantissimi tipi e grandezze di
caratteri
Documento appare come sara’ stampato:
WYSIWYG (what you see is what you get)
Testo e grafici nello stesso documento
64
Word -- 1
Il piu’ usato tra i word processor wysiwyg
Microsoft
Finestra in cui viene visualizzato il documento
Cursore (barra verticale) indica il punto in cui
si sta scrivendo
Mouse per spostare il cursore
Barra degli strumenti (parte alta della
finestra) offre delle operazioni su porzioni di
testo
Menu che contengono operazioni correlate
65
Word -- 2
Per selezionare una porzione di testo:
Mouse all’inizio
Spostarsi alla fine tenendo preemuto il tasto
sinistro
Per copiare una porzione di testo:
Selezionarla
Copia dal menu Modifica
Spostarsi nella nuova locazione
Incolla dal menu Modifica
Per spostare: taglia invece che copia
66
Word -- 3
Operazioni sui singoli caratteri:
Cambio del tipo di carattere (font)
Cambio della dimensione
Cambio dell’aspetto (corsivo, grassetto,
sottolineato, …)
Cancellazione
Anche sui paragrafi:
Allineamento margine destro o sinistro, centratura
Spaziatura tra linee
Numero di colonne
67
Word -- 4
La barra degli strumenti contiene
pulsanti (bottoni) per:
Creare un nuovo documento
Stampa e controllo ortografico
Annullamento ultima operazione
Inserimento grafici e tabelle
Visione caratteri nascosti di formattazione
Definizione stile di paragrafi e caratteri
68
Word -- 5
Per trovare una parola o frase:
Voce trova nel menu Modifica
Anche per sostituirla con un’altra
Per dare un aspetto uniforme: stili
Serie di operazioni di formattazione con un nome
Ogni paragrafo ha un suo stile
Stili predefiniti: normal, titolo1, titolo2, …
Per cambiare la def. di uno stile: selezionare il
paragrafo, il nome dello stile, e la voce ridefinire lo
stile
Per cambiare lo stile di un paragrafo: selezionare il
paragrafo e il nome del nuovo stile
Per creare un nuovo stile: formattare manualmente
un paragrafo, e poi dare un nome nella casella stile
69
Intestazione e pie’ di pagina
Specificate una volta per tutte, e vengono
messe su ogni pagina
Pie’ di pagina: numero pagina, data, …
Selezionare la voce ‘intestazione e pie’ di
pagina’ dal menu visualizza
Nota a pie’ di pagina (footnote):
Commento relativo ad un punto del documento
Scritto in fondo alla pagina
Collegato con un numero
Cursore accanto alla parola da commentare, e voce
pie’ di pagina dal menu Inserisci
70
Fogli elettronici (spreadsheet)
Dati in forma tabellare (righe e colonne)
Grafici basati su questi dati
Visualizza una tabella organizzata in righe (1,
2, 3, …) e colonne (A, B, C, …)  ogni casella
ha coordinate del tipo A3
Una casella puo’ contenere: numeri, testo,
espressioni matematiche o logiche
Cosa viene visualizzato in una cella? Numero o
risultato dell’espressione
71
Collegamenti tra celle
Tramite le espressioni
Esempio:
La cella A1 contiene 5
La cella A2 contiene A1+1  nella cella A2
viene visualizzato 6
La modifica di A1 causa l’aggiornamento
automatico di A2
72
Espressioni
Somma, differenza, media,…, costanti
numeriche, coordinate di altre celle
Range: lista di celle adiacenti
Esempio:
A2:A5
Media(A2:A5) o somma(A2:A5)
73
Excel
Foglio elettronico di Microsoft per
Windows
Tabella = foglio di lavoro
74
Sistemi per la gestione di basi di
dati
Base di dati = insieme di dati elementari
omogenei, che formano un archivio
Esempio: descrizione dei libri in una
biblioteca, o del personale di un’azienda
Deve essere semplice e veloce:
l’inserzione di dati, il reperimento,
l’aggiornamento
75
Transazioni
Ogni operazione su una base di dati
deve essere:
Atomica: o tutto o niente
Consistente: la nuova base di dati deve
essere corretta
Isolata: e’ visibile solo quando e’ finita
Cioe’ una transazione
76
Piu’ utenti in una base di dati
Coordinare le transazioni ordinate dai
vari utenti, in modo che non entrino in
conflitto
Esempio: sistema di prenotazione degli
aerei
Metodo piu’ usato: blocco (lock) dei dati
comuni
77
Dal punto di vista fisico
Base di dati = insieme di record
Ogni record ha vari campi
Es.: scheda per un libro
Titolo, autore, anno, …
I record sono memorizzati in file (ad
accesso con indice)
78
Dal punto di vista logico
Tre modelli per una base di dati:
Gerarchico: albero dove ogni record e’ il
padre di un altro
Reticolare: albero piu’ altri collegamenti
tra record
Relazionale: tabelle (insiemi di record)
piu’ relazioni tra tabelle
79
Basi di dati relazionali
Tabelle (insiemi di record) piu’ relazioni
tra tabelle
Es.: tabella per corsi, tabella per
studenti
Sistemi piu’ usati: Access per Windows,
Oracle
80
Query
Query = domande la cui risposta e’ un insieme
di record con certe caratteristiche
Es.: voglio l’insieme dei libri scritti nel 1999
da Camilleri
Linguaggio piu’ usato: SQL
Es.: SELECT titolo, autore FROM libri
WHERE libri.autore = Camilleri and Libri.anno
= 1999
81
Reti di calcolatori
Rete = sistema di collegamento tra vari
calcolatori che consente lo scambio di dati e
la cooperazione
Ogni calcolatore e’ un nodo, con un suo
indirizzo di rete
Storia:
Prime reti, anni ’70: un calcolatore potente e tanti
terminali
Anni ’80: reti locali (un edificio). Es.: Ethernet
Anni ’90: reti metropolitane (una citta’) e
geografiche. Es (rete geo): Internet
82
Servizi di rete
Quando programmi su elaboratori
collegati in rete si scambiano comandi e
dati
Esempi:
Posta elettronica
Telnet
FTP
83
Posta elettronica
Consente lo scambio di corrispondenza tra
utenti di sistemi collegati in rete
Il ricevente viene individuato dal suo
indirizzo:
nome utente + indirizzo di rete della macchina su
cui lavora
Es.: [email protected]
Vantaggi:
Ricevere messaggi anche se assenti
Spedire messaggi a piu’ utenti
Scrittura messaggio: sul client
Invio e ricezione: mail server (uno per una
rete)
84
Telnet
Consente la connessione ad un server remoto
Viene creato un ’’terminale virtuale’’ per
lavorare su un elaboratore remoto
Permette di accedere al proprio elaboratore,
se collegato in rete, da qualunque altro punto
della rete
Basta specificare l’indirizzo del server
Es.: telnet galileo.math.unipd.it
Bisogna essere utenti autorizzati su quel
server (nome utente e password)
85
FTP (File Transfer Protocol)
Trasferire file da un elaboratore ad un altro
(copia di un file tra due elaboratori in rete)
Utenti riconosciuti sul server dove si vuole
copiare
Comandi in ambiente FTP:
Open per attivare la connessione con un server
remoto (es.: open galileo.math.unipd.it)
Ls, cd per posizionarsi su un certo directory
Get, put per mettere o prendere un file
Close, bye per chiudere la sessione
86
Protocolli di rete -- 1
Come collegare in rete elaboratori
diversi?
Anni ’70:
Elaboratori tutti uguali
Stesso sistema operativo
Un solo mezzo trasmissivo
87
Protocolli di rete -- 2
In seguito, elaboratori diversi ma
stesso software di base
Ma se si collegano sistemi diversi?
Necessita’ di uno standard che regoli la
realizzazione del software di comunicazione
88
Protocolli di rete -- 3
Nel 1978 l’ISO (International Standard
Organization) propose il modello ISO/OSI
(Open System Interconnection) per
specificare il modo in cui elaboratori diversi
comunicano tramite la rete
Architettura di rete strutturata in sette
livelli
89
Protocollo ISO/OSI -- 1
Livello 7 – applicazione:
Fornisce i servizi che eseguono le
applicazioni utente
Definisce le specifiche dei programmi che
permettono di usare la rete (trasferimento
file, condivisione risorse, …)
Livello 6 – presentazione:
traduce i dati trasmessi sulla rete nel
formato adatto al sistema di destinazione
90
Protocollo ISO/OSI -- 2
Livello 5 – sessione:
Gestisce il dialogo tra due programmi
applicativi sulla rete, e il loro scambio di
dati
Esempio: gestisce la ripresa di un
trasferimento di file dopo un’interruzione
per malfunzionamento su una linea
Livello 4 – trasporto:
Controlla il trasferimento dei dati verso il
nodo destinazione
Decomposizione in pacchetti
Controllo e correzione degli errori
Ricomposizione di pacchetti nel corretto
ordine
91
Protocollo ISO/OSI -- 3
Livello 3 – rete:
Sceglie il percorso di rete piu’ adatto per
giungere al nodo destinazione
Trova percorsi alternativi in caso di guasti
Livello 2 – data link:
Gestisce la trasmissione affidabile dei dati
tra due nodi adiacenti
Aggiunge codici per il controllo degli errori
Definisce le procedure di accesso ai mezzi
trasmissivi condivisi
Livello 1 – livello fisico:
Definisce gli aspetti elettrici e meccanici
del collegamento tra due nodi
Caratteristiche cavi e connettori
Codifica dei bit per la trasmissione
92
Protocollo ISO/OSI -- 4
La trasmissione dei dati avviene solo al livello
piu’ basso (livello 1)
Ogni livello N comunica, tramite i livelli
sottostanti, con il livello N dell’altro nodo
Ogni livello aggiunge, ai dati che vengono dal
livello superiore, delle informazioni di
controllo, e passa il risultato (dati + info di
controllo) al livello sotto
I dati prodotto dal livello 1 vengono trasmessi
93
Protocollo ISO/OSI -- 5
Dati da trasferire
94
Protocollo ISO/OSI -- 5
Dati da trasferire
Livello 7
95
Protocollo ISO/OSI -- 5
Dati da trasferire
Livello 7
Livello 6
96
Protocollo ISO/OSI -- 5
Dati da trasferire
Livello 7
Livello 6
Livello 5
97
Protocollo ISO/OSI -- 5
Dati da trasferire
Livello 7
Livello 6
Livello 5
Livello 4
98
Protocollo ISO/OSI -- 5
Dati da trasferire
Livello 7
Livello 6
Livello 5
Livello 4
Livello 3
99
Protocollo ISO/OSI -- 5
Dati da trasferire
Livello 7
Livello 6
Livello 5
Livello 4
Livello 3
Livello 2
100
Protocollo ISO/OSI -- 5
Dati da trasferire
Livello 7
Livello 6
Livello 5
Livello 4
Livello 3
Livello 2
Livello 1
101
Protocollo ISO/OSI -- 5
Dati da trasferire
Livello 7
Livello 6
Livello 5
Livello 4
Livello 3
Livello 2
Livello 1
Al nodo destinazione102
ProtocolloTCP/IP
ISO/OSI e’ soprattutto un modello teorico di
riferimento
TCP/IP e’ il modello standard di fatto,
adottato da Internet
TCP/IP non comprende i livelli 1 e 2 (li prende
da ISO/OSI)
Livelli 5,6,7 collassati in un unico livello
TCP = livello 4
IP = livello 3
103
Mezzi trasmissivi -- elettrici
Sfruttano le proprieta’ dei metalli di
condurre energia elettrica
Ai bit si associano dei particolari valori
di tensione o corrente
104
Mezzi trasmissivi – onde radio
Onda elettromagnetica: combinazione di
campo magnetico e elettrico variabili
Si propaga nello spazio e riproduce a
distanza una corrente elettrica in un
dispositivo ricevente (un’antenna)
105
Mezzi trasmissivi – mezzi ottici
Mezzi che usano la luce o i raggi laser
I raggi di luce possono essere trasmessi sia
attraverso l’aria che attraverso fibre di vetro
(fibre ottiche)
Fibre ottiche = filamenti di silicio (vetro)
molto sottili (decine di micron)
Duttile e flessibile
Purezza del silicio (altrimento il raggio di luce
verrebbe attenuato dopo poco)
Immune a disturbi elettromagnetici, elevata
banda, piccolo, costo maggiore
106
Il modem
Frequenze tra 300 e 3400 Mhz quando si
parla al telefono
Frequenze molto diverse per segnali che
codificano dati digitali  I canali telefonici
non sono adatti a trasportare i bit cosi’ come
sono codificati
Pero’, cavi telefonici molto diffusi  tecniche
di modulazione (modem), che modificano un
segnale elettrico sinusoidale (che puo’ passare
sul filo del telefono) in modo che possa
codificare gli zeri e uni
107
Modulazione
Modulazione di frequenza: frequenze
diverse codificano zero e uno,
l’ampiezza rimane la stessa
Modulazione di ampiezza: ampiezze
diverse codificano zero e uno, la
frequenza rimane la stessa
Modulazione di fase: viene modificata la
fase
108
Topologie di collegamento -- 1
Punto a punto: collega direttamente due
nodi della rete
109
Topologie di collegamento -- 1
Punto a punto: collega direttamente due
nodi della rete
Bus: unico canale trasmissivo per vari
nodi (era usata per reti locali, ma poco
tollerante ai guasti)
110
Topologie di collegamento -- 1
Punto a punto: collega direttamente due
nodi della rete
Bus: unico canale trasmissivo per vari
nodi (era usata per reti locali, ma poco
tollerante ai guasti)
Stella: un singolo elaboratore collegato
punto a punto con tutti gli altri (molto
usata per reti locali)
111
Topologie di collegamento -- 2
Anello: collegamenti punto a punto che
formano un anello (molto usata per reti
locali e metropolitane)
112
Topologie di collegamento -- 2
Anello: collegamenti punto a punto che
formano un anello (molto usata per reti
locali e metropolitane)
Maglia: collegamenti punto a punto
Maglia incompleta (ma tutti i nodi sono
raggiungibili)
113
Topologie di collegamento -- 2
Anello: collegamenti punto a punto che
formano un anello (molto usata per reti
locali e metropolitane)
Maglia: collegamenti punto a punto
Maglia incompleta (ma tutti i nodi sono
raggiungibili)
Maglia completa
114
Internet – storia 1
Nata negli anni ’60 col nome di Arpanet
Obbiettivo: collegare in un unica rete
tutti i calcolatori di vari siti militari
Motivi:
condividere le ricerche
comunicare anche in caso di attacco
nucleare (tanti cammini alternativi tra due
calcolatori)
All’inizio: 4 calcolatori negli USA
115
Internet – storia 2
Nel 1973: connessioni all’Inghilterra e
alla Norvegia
Anni ’80: anche altre grandi reti
accademiche e scientifiche
1982: TCP/IP come protocollo standard
Ora: Internet collega decine di migliaia
di reti in tutto il mondo
116
Indirizzi su Internet
Sistema di indirizzamento dei nodi
gerarchico, con struttura ad albero
IP address univoco per ogni nodo
Nodo   nome   indirizzo
numerico (da un organismo
internazionale: Domain Name System)
Gerarchia di nomi, che sono raggruppati
in domini
117
Domini
Dominio: struttura per cui esiste un unico
ente che decide i nomi
Gerarchia: sotto ogni dominio ci sono altri
sottodomini
Es.: www.unipd.it
Dominio di primo livello it (Italia)
Dominio di secondo livello unipd (Univ. Padova)
Altri domini di primo livello: de (germania), uk
(Regno Unito), com (siti commerciali), edu
(universita’ USA), gov (enti governativi), …
Le persone in Internet sono individuate da un
nome utente che e’ unico nel loro dominio. Es.:
frossi e’ unico nel dominio www.math.unipd.it118
WWW (World Wide Web)
Nato al CERN di Ginevra
Sistema client/server che organizza le
informazioni memorizzate sulla rete e rende
semplice l’accesso
Ipertesto distribuito
Ipertesto: documento testuale in formato
elettronico dove la lettura non e’ sequenziale
come nei normali libri, ma va da pagina a
pagina collegata
Collegamenti attraverso le hot word (parole
sottolineate), su cui si puo’ cliccare per
visualizzare un’altra pagina
Collegamenti a pagine sullo stesso server o
anche su un altro server
119
Architettura del WWW
Una parte client e una server
Programma client: browser, per visualizzare le
pagine (testo, grafica, …) provenienti dal
server con cui si comunica
Selezionando una hot word, il browser chiede
al server una nuova pagina
Il server la invia in formato HTML
(Hypertext Markup Language): file di
caratteri ASCII piu’ comandi per
l’impaginazione e I collegamenti
Browser piu’ usati: Netscape e Explorer
120
URL
Ogni risorsa su Internet (pagina, file,
immagine, …) e’ identificata dal suo URL
(Uniform Resource Locator)
Formato degli URL:
protocollo://host.dominio/cammino/nome
Protocollo: tipo della risorsa e protocollo da
usare. Es.: file, ftp, http, telnet
Host.dominio: inirizzo del server dove trovare
la risorsa. Es.: www.math.unipd.it
cammino/nome individua il file nel file system
del server.
Es.:
http://www.math.unipd.it/~frossi/frossi.html
121
Netscape
Uno dei browser piu’ usati (assieme ad
Explorer)
Attivando Netscape, viene aperta una
finestra dove vengono visualizzate le pagine
ipertestuali di WWW
Barra degli strumenti per controllare la
navigazione in Internet
Spostarsi avanti e indietro fra le pagine
gia’ caricate
Aprire una nuova pagina
Salvare una pagina sul proprio file system
Creare una lista di URL preferiti, per
122
riaccedervi velocemente
HTML
Linguaggio per descrivere una pagina di
ipertesto
Specifica come dovra’ apparire quando sara’
visualizzata, quali collegamenti contiene e
dove portano
Comando in HTML: riguarda una porzione di
testo, tag all’inizio e alla fine
Es.: <b> testo </b> per il grassetto
123
Struttura di un documento HTML
<HTML>
<HEAD>
<TITLE>
Titolo della pagina (viene usato dai motori di
ricerca)
</TITLE>
</HEAD>
<BODY>
Quello che sara’ visualizzato dal brower
</BODY>
</HTML>
124
Comandi di HTML
Per definire un paragrafo (P)
Per far apparire un testo in grassetto (B) o
corsivo (EM)
Per centrare un pezzo di testo (CENTER)
Per realizzare una lista: <UL> <LI> primo
elemento <LI> secondo elemento </UL>
Per definire il colore dello sfondo: <BODY
COLOR = “\#xxyyzz”> (codice RGB)
Per inserire un collegamento: <A
HREF=http://www.math.unipd.it/~frossi/file.
html>hotword</a>
125
Motori di ricerca -- 1
 Per poter accedere ad un sito Internet,
dobbiamo sapere il suo URL
 Troppi siti, e nuovi siti ogni giorno  non ci
sono indici di tutti i siti
 I motori di ricerca permettono di specificare
alcune parole chiave, e trovano i siti piu’
rilevanti per queste parole
 Alcuni motori di ricerca:





www.google.com
www.yahoo.com
www.lycos.com
www.virgilio.it
www.arianna.it
126
Motori di ricerca -- 2
 Per usare un motore di ricerca:
 Andare al suo sito con un browser
 Specificare le parole chiave in una
mascherina
 In pochi secondi si hanno le pagine rilevanti
 Le pagine non vengono cercate in quel
momento:
 I motori di ricerca navigano continuamente
su Internet, e a mano a mano che trovano
nuove pagine le associano a certe parole
chiave (es. quelle nel titolo)
 Quando arriva una parola chiave, hanno gia’
le pagine relative a questa parola 
risposta in breve tempo
127
Cose da sapere – sistemi operativi
 A cosa serve il sistema operativo?
 Che differenza c’e’ tra il software di base e il
software applicativo?
 A cosa servono le fasi di bootstrap e
shutdown?
 Cos’e’ il modello client-server in un sistema
distribuito?
 Quali sono i moduli principali di un sistema
operativo?
128
Cose da sapere -- processi
 Cos’e’ un processo? Che differenza c’e’ tra un
processo e un programma?
 Cosa si intende per ambiente mono-utente?
 Cosa si intende per ambiente mono-tasking?
 Qual’e’ il principale svantaggio di un ambiente
mono-tasking?
 Cosa si intende per ambiente multi-tasking?
 Cosa si intende per time-sharing?
 A che serve la coda dei processi pronti?
129
Cose da sapere -- processi
 In quali stati puo’ essere un processo durante
la sua vita?
 Quando passa da uno stato ad un altro?
 Cosa sono le interruzioni? A che servono?
 Come vengono gestite le interruzioni?
 Quali sono i meccanismi piu’ usati per la
sincronizzazione e comunicazione di processi
concorrenti?
130
Cose da sapere – processori e
memoria
 A cosa servono gli algoritmi di schedulazione?
 Quali sono i modi piu’ usati poer gestire la
coda dei processi pronti?
 Quali sono i criteri piu’ importanti per
valutare un algoritmo di schedulazione?
 Cosa si intende per memoria reale e memoria
virtuale?
 A cosa serve la gestione della memoria
secondaria?
131
Cose da sapere – file system
 Cos’e’ un file?
 Cos’e’ una directory?
 Quali sono I modi principali di organizzare un
file?
 Descrivi l’organizzazione gerarchica dei file
sulla memoria secondaria.
 Quali sono le differenze fondamentali tra I
sistemi operativi DOS, Unix e Windows?
132
Cose da sapere – editori di testi e
fogli elettronici
 Cos’e’ un elaboratore di testi?
 Cosa si intende per elaboratore di testi
wysiwyg?
 Cos’e’ un foglio elettronico?
 Come vengono collegate varie celle tra loro in
un foglio elettronico, e a cosa serve questo
collegamento?
133
Cose da sapere – basi di dati
 Cos’e’ una base di dati?
 Quali sono le operazioni principali su una base
di dati?
 Che caratteristiche devono avere queste
operazioni?
 Descrivi una base di dati a livello fisico
 Come puo’ essere vista una base di dati a
livello logico?
 Come si interagisce con una base di dati
relazionale?
 Cos’e’ una tabella? E una query?
134
Cose da sapere -- reti
 Cos’e’ una rete di calcolatori?
 Che differenza c’e’ tra reti locali, reti
metropolitane, e reti geografiche?
 Cosa si intende per servizi di rete?
 Fai degli esempi di servizi di rete
 A cosa servono i servizi telnet e FTP?
 Come si fa a collegare in rete calcolatori
diversi e con SO differenti?
 Cos’e’ il protocollo ISO/OSI?
135
Cose da sapere – reti e Internet
 Che tipi di mezzi trasmissivi vengono usati
nelle reti?
 A che serve un modem? Come funziona?
 Quali sono le principali topologie di
collegamento per le reti?
 Cos’e’ Internet?
 Come vengono individuati i nodi di Internet?
 Cos’e’ un dominio?
136
Cose da sapere – WWW
Cos’e’ il WWW?
Cos’e’ un ipertesto?
Come sono collegate le pagine di WWW?
Cos’e’ un browser? A che serve?
Descrivi il sistema client-server di WWW
Cos’’e un URL? Come e’ fatto? A che serve?
In che formato sono scritte le pagine del
WWW?
 A che servono i motori di ricerca?







137
Scarica