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?