Sistemi operativi
Download
Report
Transcript Sistemi operativi
Sistemi operativi
Motivazione
Molte attivita’ in parallelo su un singolo
calcolatore
Esempio:
terminali che richiedono servizi ad un
calcolatore
Esempio: stampa di un documento e scrittura di un
altro
Il sistema operativo serve a coordinare queste
attivita’ e far comunicare le parti coinvolte
Coordinamento e comunicazione anche su reti
di calcolatori
Sistemi monoprocessore
Anni ’40 e ’50: un solo programma in
esecuzione (job) alla volta monotasking
Il computer a disposizione del programma
dall’inizio alla fine della sua esecuzione
Coda dei job, gestita FIFO (first in, first
out) e/o con proprita’
Coda dei job
Svantaggi dei sistemi
monoprocessore mono-tasking
Nessuna interazione utente-programma
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
Time sharing
Ripartizione del tempo di CPU tra tutti i processi che la
vogliono
Ogni job rimane in esecuzione solo per un quanto di
tempo, poi l’esecuzione passa al prossimo job e il primo
va in attesa Esecuzione globale piu’ veloce
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
Time –sharing in sistemi mono-processore: multi-tasking
(piu’ programmi inesecuzione con una sola CPU)
Sistemi multiprocessore
Reti di calcolatori: vari calcolatori che si
scambiano dati
Es.: Internet
Una rete e’ un sistema multiprocessore con una
CPU su ogni calcolatore
Anche singoli calcolatori con piu’ CPU
Non solo coordinamento delle attivita’ di ogni
processore, ma anche bilanciamento del carico
sui processori
Tipi di software
Software applicativo: programmi per
svolgere compiti particolare, non gli stessi
su diversi calcolatori
Fogli
elettronici
Editori d testi
Giochi ...
Software di sistema: compiti comuni a tutti
i calcolatori
Software di sistema
Sistema operativo
Software di utilita’: aumenta le funzionalita’
del SO
Es.:
sw
per comunicare via modem
sw per comprimere dati
Suddivisione del software
Sistema operativo: shell
Shell (guscio): interfaccia tra SO e utenti
Di solito grafica (GUI), ma anche testuale
Sistema operativo: kernel
Kernel (nocciolo, nucleo): programmi per le funzioni
base del calcolatore
Da 100 Kilobyte a 100 Megabyte
Kernel suddiviso in moduli
Ogni modulo ha una funzione diversa
Funzioni piu’ importanti:
gestione processori
gestione processi
gestione memoria (principale e secondaria)
gestione dispositivi di I/O
File manager
Gestisce la memoria secondaria
Associa
un nome di file ad una parte dello spazio di
memoria
Fornisce metodi per accedere ai file
Rende trasparente la struttura fisica della memoria
Ottimizza l’occupazione di memoria
Organizzazione dei file in cartelle (directory),
gerarchia di cartelle
File
Unica unita’ logica di informazione usata dal SO
Fisicamente:
sequenza di byte che contiene informazioni
omogenee
Es.: programma, testo, dati simili, …
Tutti i dati vengono suddivisi in file
I file vengono memorizzati nelle memorie di
massa
Organizzazione dei file in memoria
secondaria
Organizzazione
gerarchica
Solo logicamente, nessuna relazione
con la posizione fisica sulle memorie
di massa
Directory: gruppo di file e altre
directory, piu’ elenco
Gerarchia ad albero
Albero rovesciato (come genealogico)
Nodi e collegamenti padre-figlio tra nodi
Nodo: file o directory
directory
Nodi divisi per livelli
file
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
Per individuare un file:
Cammino (path) assoluto o relativo
lista di nomi di cartelle
Operazioni su file
Creazione
Apertura
Chiusura
Cancellazione
Copia
Rinomina
Visualizzazione
Lettura
Scrittura
Modifica
…
Gestione dell’I/O
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)
Gestione della memoria principale
Coordina l’uso della memoria principale
Un solo programma alla volta semplice: il
programma viene caricato in M, eseguito,
terminato prima del prossimo programma
Piu’ programmi contemporaneamente
piu’
programmi e dati in M
tenere traccia dello spazio libero o liberatosi
dinamicamente
Memoria virtuale
Quando lo spazio richiesto e’ maggiore di quello fisico
Sposta programmi e dati tra memoria principale e
memoria di massa per avere in ogni momento quello che
serve
Lo spazio richiesto’ e’ diviso in pagine (qualche Kbyte)
Solo le pagine necessari per iniziare sono caricate in M,
le altre sono in M di massa
Poi vengono scambite a seconda della necessita’
Svincola il codice di un programma dalla sua collocazione in
memoria
Funziona come se si avesse piu’ memoria di quella reale
Altri moduli del SO
Schedulatore (gestore processi): decide
quali attivita’ mandare in esecuzione
Dispatcher (gestore processori): decide
l’assegnazione dei quanti di tempo a tali
attivita’
nucleo
Struttura del SO
Servizi richiesti dagli utenti al SO
Interfaccia nucleo verso l’esterno
File system
Gestore I/O
Gestore
processi
hardware
Gestore
memoria
Gestore
processori
Bootstrap: avvio del SO
All’inizio, la CPU ha in indirizzo fissato nel
registro contatore di programma
Indirizzo nella ROM (Read Only Memory), con
programma di bootstrap che e’ sempre
memorizzato li’
Trasferisce una parte prestabilita della M di
massa in M principale (kernel del SO)
Salto all’area di M principale con SO
Bootstrap
Programmi e processi
Programma: insieme statico di istruzioni
Processo: entita’ che tiene traccia dello stato
dell’esecuzione di un programma
Posizione
nel programma
Valori dei registri della CPU
Valori delle celle di M assegnate al programma
Anche piu’ processi per lo stesso programma
Es.:
due utenti che usano Word per scrivere due
documenti diversi
Gestione dei processi
Scheduler: tiene traccia di tutti i processi
Tabella dei processi in M principale
Nuova richiesta di esecuzione di un programma
nuovo elemento nella tabella dei processi
Area
di M assegnata per quel processo
Priorita’
Pronto (per essere eseguito) o in attesa (di qualche
evento)
Dispatcher
Divide il tempo in quanti (< 50 millisec.)
Da’ un quanto ad ogni processo, uno alla volta
Alla fine del quanto, segnale che passa la CPU
ad un altro processo pronto
Prima di passare al prossimo processo, la CPU
esegue il programma di gestione delle
interruzioni
Aggiorna la tabella dei
Salva lo stato (registri,
processi
celle di M, ...)
Sceglie un altro processo dalla tabella
Time-sharing (condivisione di
tempo)
Attesa
Se il processo richiede operazioni ad altri
dispositivi (es. Operazioni di I/O), la CPU
rimarrebbe inutilizzata lo scheduler mette il
processo in stato di attesa, e il dispatcher
sceglie un nuovo processo tra i pronti dalla
tabella
Quando l’operazione sara’ finita, lo scheduler
dichiarera’ di nuovo pronto il processo
Riassumendo ...
I processi sono messi in una coda dei pronti
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 in
attesa, quando l’operazione finisce viene rimesso in coda per la
CPU
La CPU va al primo in coda (o altre strategie)
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)
Transizioni tra stati di un processo
In esecuzione
richiesta di I/O
schedulazione
pronti
fine tempo,
evento esterno
In attesa
conclusione I/O
Coda ordinata in
attesa della CPU
Insieme in attesa
di eventi
Modello client-server
Ogni processo puo’ avere due ruoli
Client: fa richiesta ad altri processi e aspetta le
risposte
Server: esegue i servizi richiesti e da’ le risposte
al client
Su un singolo calcolatore o su rete
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
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)
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
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]
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
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
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
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
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
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
Word
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
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
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
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)
Excel
Foglio elettronico di Microsoft per
Windows
Tabella = foglio di lavoro
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 serve la fase di bootstrap?
Quali sono i moduli principali di un
sistema operativo?
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?
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?
Cose da sapere – processori e
memoria
Quali sono i modi piu’ usati per gestire
la coda dei processi pronti?
Cosa si intende per memoria reale e
memoria virtuale?
A cosa serve la gestione della memoria
secondaria?
Cose da sapere – file system
Cos’e’ un file?
Cos’e’ una directory?
Descrivi l’organizzazione gerarchica dei file
sulla memoria secondaria.
Quali sono le differenze fondamentali tra I
sistemi operativi DOS, Unix e Windows?
Cose da sapere – editori di
testi e fogli elettronici
Cos’e’ un editore 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?
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
Servizi di rete
Quando programmi su elaboratori
collegati in rete si scambiano comandi e
dati
Esempi:
Posta
elettronica
Telnet
FTP
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)
Telnet o ssh
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.: ssh galileo.math.unipd.it
Bisogna essere utenti autorizzati su quel
server (nome utente e password)
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
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)
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
Collegamenti tra reti
Bridge (ponte): se le reti sono compatibili
Diventa
una rete unica piu’ grande
Router (instradatore): se non sono
compatibili
Permette
di mandare dati dall’una all’altra
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
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
Topologia di Internet
Collezione di domini
Ogni dominio e’ una rete con la sua
topologia
ICANN (Internet Corporation for Assigned
Names and Numbers) assegna i domini
Router (gateway) per agganciare un
dominio al resto di Internet
Domini di Internet
Indirizzi su Internet
Ogni computer ha un indirizzo univoco:
indirizzo IP
32 bit: dominio (identificatore di rete) +
calcolatore nel dominio (indirizzo host)
Es.: 192.207.177.133
Indirizzo dell’host
Dominio di Addison-Wesley
Nomi per domini
Anche indirizzo mnemonico per ogni dominio
Es.:
aw.com
com e’ un top-level domain (dominio di alto
livello)
Altri esempi: edu (universita’ americane), gov,
org, it
Nomi anche per i calcolatori all’interno di un
dominio (scelti localmente)
Es.
: pippo.aw.com
Posta elettronica su Internet
Es.: unipd.it
Dominio
Dominio
di primo livello it (Italia)
di secondo livello unipd (Univ. Padova)
Oppure: math.unipd.it
Le persone in Internet sono individuate da un
nome utente che e’ unico nel loro dominio. Es.:
frossi e’ unico nel dominio math.unipd.it
Posta elettronica verso una prsona di un
dominio: server di posta elettronica
Indirizzo: utente@server-di-postaelettronica
Di solito non si scrive
Es.:
[email protected]
Non solo posta elettronica
Anche scambio di documenti multimediali (testo,
immagini, suoni, ...) e ipertestuali (collegati ad
altri documenti)
WWW= 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
WWW (World Wide Web)
Architettura del WWW
Software client (su ogni PC che vuole
accedere ai documenti del WWW) e server
(sui calcolatori dove sono i documenti
richiesti)
Programma client: browser, per visualizzare le
pagine (testo, grafica, …) provenienti dal
server con cui si comunica
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
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: indirizzo 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
Esempio di URL
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
riaccedervi velocemente
HTML (Hyper Text Markup
Language)
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
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>
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>
Altro esempio di HTML
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
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
Protocolli di rete -- 1
Come collegare in rete elaboratori
diversi?
Anni ’70:
Elaboratori
Stesso
Un
tutti uguali
sistema operativo
solo mezzo trasmissivo
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
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
Esempio: spedizione di un pacco
Alla partenza:
Noi: Scriviamo l’indirizzo e diamo il pacco ad una
ditta di spedizioni
Ditta di spedizioni 1: mette il pacco insieme ad
altri in un container e lo da’ ad una compagnia
aerea
Compagnia aerea: carica il container sull’aereo,
fa il viaggio aereo
All’arrivo:
Compagnia aerea: scarica il container e lo mette
negli spazi della ditta di consegne 2
Ditta di consegne 2: estrae il pacco dal container
e lo consegna all’indirizzo
Destinatario: riceve il pacco
Schema a tre livelli per l’esempio
Comunicazione su Internet
Quattro livelli di software:
Applicazione
(application)
Trasporto (transport)
Rete (network)
Connessione dati (data link)
Livello applicazione
Software di utilita’ per richiedere la
comunicazione via Internet
Es.: FTP (software per trasferire file tra
calcolatori)
Es.: telnet o ssh (software per accedere ad un
calcolatore in rete come se fossimo utenti locali)
Analogo di noi che facciamo il pacco e scriviamo
l’indirizzo giusto: deve specificare l’indirizzo IP
del calcolatore con cui comunicare
Aggiunge anche il numero di porta
dell’applicazione
Livello trasporto
Accetta messaggi dal livello applicazione
Li divide in pacchetti e spedisce i pacchetti
Nei punti di smistamento di Internet, un
messaggio lungo costringerebbe tutti gli altri
messaggi ad aspettare la sua trasmissione
completa
Ad ogni pacchetto aggiunge:
dei bit per riconoscerli e riassemblare il
messaggio alla destinazione
l’indirizzo IP della destinazione
Passa i pacchetti cosi’ trasformati al livello di
rete
Livello di rete
Manda ogni pacchetto come un messaggio a se’
stante
Anche
percorsi diversi per pacchetti dello stesso
messaggio
Controlla che i pacchetti arrivino a destinazione
Ad ogni nodo intermedio, decide l’instradamento
del pacchetto, cioe’ l’indirizzo di destinazione
intermedia
Aggiunge questo indirizzo al pacchetto e lo
passa al livello di connessione
Livello connessione
Traduce gli indirizzi di Internet associati ai
pacchetti nel sistema di indirizzamento
della rete di destinazione
Reti diverse, esistenti anche prima di
Internet
All’arrivo ...
Ogni pacchetto viene ricevuto dal livello
connessione
Lo passa al livello di rete
Se destinazione finale = indirizzo locale
Lo passa al livello trasporto
Quando tutti i pacchetti arrivano al livello
trasporto, ricostruisce il messaggio e lo passa
al livello applicazione (col numero di porta
giusto)
Altrimenti, aggiunge un nuovo indirizzo
intermedio e lo ripassa al livello connessione
Solo livello connessione e rete nelle fermate
intermedie
Riassumendo
Livello applicazione: messaggi e indirizzi per un
software di utilita’
Livello trasporto: da messaggi a pacchetti e
viceversa
Livello di rete: instradamento pacchetti
attraverso Internet
Livello connessione: trasmissione pacchetti tra
computer all’interno di una rete
Tempo totale: millisecondi
Livelli di Internet
TCP/IP
Famiglia di protocolli a quattro livelli per Internet
TCP e IP sono due protocolli a quattro livelli
TCP e’ una versione del livello trasporto
Annuncia il messaggio al livello trasporto del
calcolatore ricevente, e aspetta conferma
della ricezione
IP e’ lo standard per il livello di rete
Ogni volta che passa un pacchetto al livello
connssione, aggiunge il tempo di vita (numero
massimo di passaggi su rete), cosi’ si buttano
i pacchetti persi
Es.: 64 e’ sufficiente
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
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
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
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
Protocollo ISO/OSI -- 5
Dati da trasferire
Protocollo ISO/OSI -- 5
Dati da trasferire
Livello 7
Protocollo ISO/OSI -- 5
Dati da trasferire
Livello 7
Livello 6
Protocollo ISO/OSI -- 5
Dati da trasferire
Livello 7
Livello 6
Livello 5
Protocollo ISO/OSI -- 5
Dati da trasferire
Livello 7
Livello 6
Livello 5
Livello 4
Protocollo ISO/OSI -- 5
Dati da trasferire
Livello 7
Livello 6
Livello 5
Livello 4
Livello 3
Protocollo ISO/OSI -- 5
Dati da trasferire
Livello 7
Livello 6
Livello 5
Livello 4
Livello 3
Livello 2
Protocollo ISO/OSI -- 5
Dati da trasferire
Livello 7
Livello 6
Livello 5
Livello 4
Livello 3
Livello 2
Livello 1
Protocollo ISO/OSI -- 5
Dati da trasferire
Livello 7
Livello 6
Livello 5
Livello 4
Livello 3
Livello 2
Livello 1
Al nodo destinazione
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?
Come sono fatti i protocolli a quattro livelli, e che
ruolo ha ciascun livello?
Cose da sapere – reti e
Internet
Quali sono le principali topologie di
collegamento per le reti?
Cos’e’ Internet?
Come vengono individuati i nodi di Internet?
Cos’e’ un dominio?
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?