Sistemi Operativi

e Reti

Moreno Marzolla

moreno.marzolla@pd.infn.it

Copyright © 2006 Moreno Marzolla

This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.5 Italy License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.5/it/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

Sistemi Operativi e Software Applicativo

Sistemi operativi

Insieme di programmi che gestiscono l’hardware

L'hardware è composto da: Processori, Memorie, Dispositivi di I/O

Un sistema operativo è anche detto software di base

Software applicativo

Insieme dei programmi scritti dall’utente (o dagli sviluppatori)

Esempio: Word, Excel, Autocad, Mozilla...

A che serve un Sistema Operativo?

All'alba dei tempi, non esistevano sistemi operativi

Le applicazioni (programmi degli utenti) dovevano interagire direttamente con l'hardware

Per leggere un file su disco

Per inviare documenti in stampa

...

Se l'hardware cambiava, era necessario modificare l'applicazione per adattarla al nuovo hardware

Il Sistema Operativo come interfaccia verso l'hardware

Il SO nasconde alle applicazioni i dettagli dei dispositivi hardware sottostanti

Il SO deve sapere come pilotare direttamente tali dispositivi

Le applicazioni accedono ai dispositivi utilizzando servizi del sistema operativo

Floppy

Disk Drive

Scheda

Video

Hard Disk

...

Sistema Operativo

Applicaz.

Utente

Applicaz.

Utente

...

Il Sistema Operativo come fornitore di servizi di alto livello

Principalmente, gestione di processi e memoria

Hardware

File System

Gestore

Processi

Gestore

Input/Output

Gestore

Memoria

Gestore

Processori

Interfaccia del SO verso l'esterno

Servizi richiesti dagli utenti del SO

Sistema

Operativo

Evoluzione dei sistemi operativi

I primi sistemi operativi erano sostanzialmente dei programmi “monolitici”

Un unico grosso blocco di codice

I SO moderni sono strutturati “a livelli” (struttura a cipolla)

Ogni livello si appoggia a
funzioni fornite dai livelli sottostanti

Al livello più basso (Kernel)
ci sono funzioni di base

Kernel

CPU

SO

Applicazioni

Sistemi Operativi Monoprogrammati
(Monotasking)

Il processore può gestire un solo programma alla volta

Terminato il programma, il controllo può passare ad un altro programma

Esempio: MS-DOS

Non si può fare nulla mentre si formatta un dischetto, o si copia un file da una parte all'altra

Svantaggi del Monotasking

Lentezza: quando il computer è impegnato in operazioni di Input/Output (che solitamente sono molto più lente degli accessi alla memoria centrale) la CPU rimane bloccata senza poter fare nulla

Sistemi Operativi Multiprogrammati
(Multitasking)

Sistemi Operativi che permettono l'esecuzione “contemporanea” di più programmi

Minimizzano il tempo di inattività della CPU durante le operazioni di Input/Output

La CPU spende un “quanto” di tempo (tipicamente 100-200 millisecondi) ad eseguire un processo utente; scaduto il “quanto”, il controllo passa ad un nuovo processo

Gestione dei processi

Il SO consente a diversi processi (processo = programma in esecuzione) di essere eseguiti “contemporaneamente”

Visto però che esiste generalmente un solo processore, che fa una sola cosa per volta, questo viene realizzato con un piccolo trucco

In pratica il processore (CPU) esegue alcune istruzioni del processo P1, alcune del processo P2, ecc.

Tempo

P1

P2

Transizioni tra stati

In esecuzione

Pronti

Bloccati

Scade

quanto d

tempo

La CPU

diviene

disponibile

Il processo

in esecuzione

effettua una

operazione di I/O

L'operazione di

I/O Termina

Insieme dei processi (normalmente un solo processo) in esecuzione sulla CPU

Insieme di processi in attesa del completamento di una operazione di I/O

Reti a commutazione di circuito

Le prime reti di comunicazione sono state le reti telefoniche

Una chiamata telefonica stabilisce una connessione diretta tra chiamante e ricevente

Una volta che la linea è stata creata, i dati (voce) vengono trasmessi

I sistemi telefonici (commutatori meccanici o elettronici) selezionano specifiche linee telefoniche, o circuiti, connessi in modo da creare un unico collegamento tra chiamante e ricevente

Reti a commutazione di circuito

Commutatore

Chiamante

Ricevente

Problemi

La commutazione di circuito funziona egregiamente per chiamate telefoniche

Però non funziona altrettanto bene per trasferire dati

Stabilire tante connessioni punto-punto per ogni coppia trasmittente-ricevente su dati su reti di grandi dimensioni è difficile e costoso

Internet utilizza un sistema più semplice, detto commutazione di pacchetto

Commutazione di pacchetto

I messaggi vengono inizialmente divisi in “pacchetti” di informazioni, ciascuno etichettato singolarmente

Ogni pacchetto viene instradato su un percorso (anche diverso) dal mittente al destinatario

Il destinatario riceve i pacchetti, li riordina e li riunisce per ricostruire il messaggio

Commutazione di pacchetto / 1

C

i

a

o

Mittente

Destinatario

Nodo di

instradamento

(router)

Commutazione di pacchetto / 2

C

i

a

o

Commutazione di pacchetto / 3

C

i

a

o

Commutazione di pacchetto / 4

C

i

a

o

Commutazione di pacchetto / 5

C

i

a

o

Vantaggi della commutazione di pacchetto

Grossi flussi di dati vengono suddivisi in piccoli blocchi facilmente gestibili

I diversi pacchetti possono viaggiare su percorsi differenti, bilanciando il traffico sulla rete

La ritrasmissione di un singolo pacchetto perso o danneggiato è senz'altro preferibile alla ritrasmissione dell'intero file

Il protocollo TCP/IP

Questi protocolli sono alla base del funzionamento di Internet

Stabiliscono le regole fondamentali relative alle modalità di trasmissione dei dati tra le reti e tra singoli host

Si tratta di due protocolli:

TCP: Transmission Control Protocol

IP: Internet Protocol

TCP

Il protocollo TCP definisce delle regole per stabilire una comunicazione affidabile ed efficiente tra due processi in esecuzione su due macchine diverse collegate a Internet

Affidabile: pacchetti persi o danneggiati vengono ripristinati

Efficiente: Si cerca di ottimizzare la comunicazione il più possibile

TCP fornisce l'illusione di un canale di comunicazione (un “tubo”) che collega direttamente mittente e destinatario

IP

Il protocollo IP definisce le regole di base per la comunicazione tra due macchine connesse alla rete

Comunicazione orientata a pacchetti

Comunicazione non affidabile

IP definisce le regole per l'instradamento dei pacchetti nella rete

Si occupa anche della gestione degli indirizzi di ciascun pacchetto, assicurando che vengano etichettati correttamente

Gli indirizzi IPv4

Gli indirizzi Internet sono rappresentati, a livello più basso, come numeri di 32 bit, suddivisi in una serie di 4 numeri di 8 bit

Es. 157.138.20.15

Quando il protocollo IP invia un pacchetto, lo etichetta con l'indirizzo del mittente e del destinatario

Tutti i nodi connessi alla rete devono avere indirizzo univoco

Gli indirizzi IPv6

Stiamo rimanendo a corto di indirizzi IP

Per tale ragione è stato sviluppato un nuovo protocollo (IPv6) con un nuovo schema di numerazione

Indirizzi IPv6 di 16 byte

Notazione esadecimale, 8 blocchi da 4 cifre

0012:FF87:10A0:016B:3572:0000:AA7B:F07C

Ci sono in tutto circa 3*1038 possibili indirizzi IPv6

Vuol dire 7*1023 indirizzi IP per metro quadro terrestre, oceani inclusi

I nomi di dominio / 1

Lavorare con i numeri può andare bene per i calcolatori, meno per gli utenti umani

Per questa ragione, al posto dei numeri si usano i nomi di dominio

ganimede.dsi.unive.it

Un nome di dominio è costituito da un numero arbitrario di parole separate da punti

I nomi vengono tradotti in numeri da server chiamati Domain Name Server (DNS)

I nomi di dominio / 2

Voglio accedere al sito www.dsi.unive.it

Il computer contatta il DNS

Domanda: “A chi corrisponde l'indirizzo www.dsi.unive.it?”

Il DNS risponde: “Appartiene a 157.138.20.3”

Ora è possibile contattare il nodo internet di indirizzo 157.138.20.3

I nomi di dominio / 3

La parte finale (più a destra) dei nomi rappresenta i domini di primo livello

.it	Italia

.fr	Francia

.uk	Regno Unito

.edu	Università e scuole

.com	Aziende

.gov	Governo Stati Uniti

.net	Servizi di rete

.org	Organizzazioni no profit

...

DNS

Il DNS funziona con una struttura ad albero

Alle radici dell'albero ci sono i DNS “autorevoli”

Questi passano le query ai DNS di livello più basso

Il DNS che “risolve” i domini che terminano con .it contiene la lista di tutti i DNS relativi a domini X.it

Quindi conosce l'indirizzo del DNS che serve unive.it

Il DNS di unive.it conosce l'indirizzo del DNS di dsi.unive.it

Il DNS di dsi.unive.it conosce l'indirizzo di www.dsi.unive.it

Posta Elettronica
(EMail)

Consente di trasferire messaggi da un host ad un altro

I messaggi possono includere testo, ma anche allegati di qualsiasi tipo (suoni, immagini, filmati...)

La posta elettronica gioca un ruolo fondamentale nel Commercio Elettronico

Invio di cataloghi, listini, ordini di acquisto...

Spesso i codici di attivazione dei prodotti possono essere ricevuti comodamente via email, dopo aver acquistato la licenza d'uso del software

Spam

Problema che affligge gli utenti della posta elettronica: ricevere una grossa quantità di messaggi pubblicitari indesiderati

“Guadagna un fiume di $$$ dal tuo pc”

“Acquista medicinali senza ricetta”

Anche cose oscene che è meglio non ripetere...

Lo spamming consuma tempo degli utenti e risorse di Internet

I messaggi di spam consumano parte della larghezza di banda disponibile, che potrebbe essere usata per altri scopi più utili

Email

HTML

HyperText Markup Language

Linguaggio utilizzato per la definizione delle pagine WEB

E' composto da una serie di tag utilizzati per definire la struttura e lo stile del documento

Esistono dei tag che consentono di definire collegamenti ad altre pagine WEB (hyperlinks)

Strutture di link

Struttura

lineare

Struttura

Gerarchica

Nome File

Percorso

Server

Protocollo

Gli indirizzi WEB

http://www.abc.com/public/web/index.html

Moreno Mazolla

2005-09-25T15:46:34