Sistemi Operativi e Reti
Capitolo 2
Gianluca Amato
Dipartimento di Economia
Università di Chieti-Pescara
Anno Accademico 2015-2016
Revisione del 17 settembre 2015
basate sulle slide ufficiali del libro
The Architecture of Computer Hardware, Systems Software & Networking:
an Information Technology Approach
5th Edition, Irv Englander
John Wiley and Sons ©2013
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
1 / 29
Sistemi
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
2 / 29
Sistema
La parola sistema è usata ovunque e non solo in informatica:
sistema solare
sistema idraulico
sistema di controllo dell’inventario
Ma cos’è un sistema?
Definizione
Un sistema è una collezione di componenti collegati assieme e organizzati
in maniera tale da essere riconoscibile come una singola unità.
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
3 / 29
Sistema
La parola sistema è usata ovunque e non solo in informatica:
sistema solare
sistema idraulico
sistema di controllo dell’inventario
Ma cos’è un sistema?
Definizione
Un sistema è una collezione di componenti collegati assieme e organizzati
in maniera tale da essere riconoscibile come una singola unità.
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
3 / 29
Sistema idraulico
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
4 / 29
Sistema solare
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
5 / 29
Sistema di rete
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
6 / 29
Sistema di controllo dell’inventario
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
7 / 29
Sistema, interfaccia e ambiente
Quando l’interfaccia con l’ambiente è ben definita, è possibile scambiare
un sistema con un altro che implementa la stessa interfaccia.
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
8 / 29
Architettura di un sistema
Definizione (Architettura di un sistema)
L’insieme delle proprietà fondamentali di un sistema e di relazioni,
collegamenti e vincoli che si instaurano tra i componenti del sistema o tra
il sistema e il suo ambiente.
Quando si studia l’architettura di un sistema
si astrae da dettagli che non ci interessano per un ottenere un modello
le slide viste prime sono solo modelli del sistema che rappresentano
a seconda di quello che si vuole ottenere, si possono avere modelli
molto diversi dello stesso sistema.
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
9 / 29
Architettura di un sistema
Definizione (Architettura di un sistema)
L’insieme delle proprietà fondamentali di un sistema e di relazioni,
collegamenti e vincoli che si instaurano tra i componenti del sistema o tra
il sistema e il suo ambiente.
Quando si studia l’architettura di un sistema
si astrae da dettagli che non ci interessano per un ottenere un modello
le slide viste prime sono solo modelli del sistema che rappresentano
a seconda di quello che si vuole ottenere, si possono avere modelli
molto diversi dello stesso sistema.
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
9 / 29
Architettura di un sistema
Esempio di modelli di una azienda
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
10 / 29
Sistemi e sotto-sistemi
Sottosistemi
I
I
Componenti riducibili ed irriducibili
Componenti riducibili danno origine a sotto-sistemi
Decomposizione
I
I
Divisione di un sistema o sotto-sistema nei suoi componenti e
collegamenti
Gerarchica
Raggruppare componenti in sistemi e decomporre i sistemi in
componenti consente di studiare un sistema al livello di dettaglio
desiderato.
I
I
Se studiamo la Via Lattea, il sistema solare si può considerare com un
unico sistema irriducibile
Se studiamo l’effetto delle maree, il sistema Terra dovrà essere
decomposto nei suoi componenti
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
11 / 29
Sistemi e sotto-sistemi
Sottosistemi
I
I
Componenti riducibili ed irriducibili
Componenti riducibili danno origine a sotto-sistemi
Decomposizione
I
I
Divisione di un sistema o sotto-sistema nei suoi componenti e
collegamenti
Gerarchica
Raggruppare componenti in sistemi e decomporre i sistemi in
componenti consente di studiare un sistema al livello di dettaglio
desiderato.
I
I
Se studiamo la Via Lattea, il sistema solare si può considerare com un
unico sistema irriducibile
Se studiamo l’effetto delle maree, il sistema Terra dovrà essere
decomposto nei suoi componenti
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
11 / 29
Sistemi e sotto-sistemi
Sottosistemi
I
I
Componenti riducibili ed irriducibili
Componenti riducibili danno origine a sotto-sistemi
Decomposizione
I
I
Divisione di un sistema o sotto-sistema nei suoi componenti e
collegamenti
Gerarchica
Raggruppare componenti in sistemi e decomporre i sistemi in
componenti consente di studiare un sistema al livello di dettaglio
desiderato.
I
I
Se studiamo la Via Lattea, il sistema solare si può considerare com un
unico sistema irriducibile
Se studiamo l’effetto delle maree, il sistema Terra dovrà essere
decomposto nei suoi componenti
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
11 / 29
Architetture dei sistemi di elaborazione
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
12 / 29
Sistemi distribuiti
La maggior parte delle aziende hanno bisogno di sistemi di elaborazione
che siano distribuiti.
un ordine può essere generato da un venditore ovunque nel mondo
l’ordine deve essere validato con la disponibilità di magazzino
successivamente l’ordine deve raggiungere il reparto contabilità per il
controllo del pagamento. . .
. . . e inviato ai magazzini per la spedizione
gli ordini per rimpinguare il magazzino sono generati
automaticamente e inviati al reparto acquisti
È questa è pur sempre azienda “convenzionale”, figurarsi una azienda di
vendite on-line come Amazon.
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
13 / 29
Architettura applicativa
La parte fondamentale nello sviluppo del sistema informatico di una
azienda è la architettura applicativa:
I
I
descrive il comportamento delle applicazioni
si focalizza sulle interazioni tra le applicazioni e con gli utenti
I singoli computer e le reti di comunicazioni sono considerati
irriducibili in questo contesto
Una volta stabilita l’architettura applicativa, essa porrà dei vincoli sui
sistemi sottostanti (hardware, reti, etc. . . )
A questo punto si passerà a studare l’architettura di questi sistemi,
tenendo conto dei vincoli posti dalla architettura applicativa (più altri,
come requisiti di spazio o di efficienza energetica)
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
14 / 29
Architettura applicativa
La parte fondamentale nello sviluppo del sistema informatico di una
azienda è la architettura applicativa:
I
I
descrive il comportamento delle applicazioni
si focalizza sulle interazioni tra le applicazioni e con gli utenti
I singoli computer e le reti di comunicazioni sono considerati
irriducibili in questo contesto
Una volta stabilita l’architettura applicativa, essa porrà dei vincoli sui
sistemi sottostanti (hardware, reti, etc. . . )
A questo punto si passerà a studare l’architettura di questi sistemi,
tenendo conto dei vincoli posti dalla architettura applicativa (più altri,
come requisiti di spazio o di efficienza energetica)
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
14 / 29
Architettura applicativa
La parte fondamentale nello sviluppo del sistema informatico di una
azienda è la architettura applicativa:
I
I
descrive il comportamento delle applicazioni
si focalizza sulle interazioni tra le applicazioni e con gli utenti
I singoli computer e le reti di comunicazioni sono considerati
irriducibili in questo contesto
Una volta stabilita l’architettura applicativa, essa porrà dei vincoli sui
sistemi sottostanti (hardware, reti, etc. . . )
A questo punto si passerà a studare l’architettura di questi sistemi,
tenendo conto dei vincoli posti dalla architettura applicativa (più altri,
come requisiti di spazio o di efficienza energetica)
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
14 / 29
Architettura applicativa
La parte fondamentale nello sviluppo del sistema informatico di una
azienda è la architettura applicativa:
I
I
descrive il comportamento delle applicazioni
si focalizza sulle interazioni tra le applicazioni e con gli utenti
I singoli computer e le reti di comunicazioni sono considerati
irriducibili in questo contesto
Una volta stabilita l’architettura applicativa, essa porrà dei vincoli sui
sistemi sottostanti (hardware, reti, etc. . . )
A questo punto si passerà a studare l’architettura di questi sistemi,
tenendo conto dei vincoli posti dalla architettura applicativa (più altri,
come requisiti di spazio o di efficienza energetica)
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
14 / 29
Modelli standard per l’architettura applicativa
Client-Server Computing
I
I
I
Two-tier
Three-tier
N-tier
Web-Based Computing
Cloud Computing
Peer-to-Peer Computing
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
15 / 29
Client-Server
Un programma sul computer client chiede servizi e risorse ad un
programma complementare su un computer server: web, posta elettronica,
etc. . .
Vantaggi:
Centralizzazione dei diritti di
accesso
Amministrazione semplificata
Servizi facili da localizzare
Più efficiente avere pochi
computer estremamente potenti
che molti mediamente potenti.
Simula un comportamento
umano
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
16 / 29
Client-Server
Esempio
In generale possiamo avere vari
server e vari client
Più servizi possono risiedere
sullo stesso server (shared server
o server condiviso)
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
17 / 29
Client-Server
Architetture multi-tier
Due strati (Two tier)
I
I
I
Solo due computer coinvolti nella erogazione di un servizio
Quello che abbiamo visto nelle slide precedenti
Esempio: web con pagine già pronte
Tre strati (Three tier)
I
I
Tre computer coinvolti per l’erogazione di un servizio
Esempio: web con pagine da creare dinamicamente con dati presi da un
database
Web
server
HTTP
Request
CGI*
Request
database
server
database
HTTP
response
Gianluca Amato (UniCH)
CGI
response
(HTML)
Sistemi Operativi e Reti
A.A. 2015/16
18 / 29
Client-Server
Soluzioni progettuali
Tradeoff tra lavoro fatto dal client e dal server
I
I
Più lavoro sul server: server molto potente, client poco potente
Più lavoro sul client: server meno potente, client più potente,
infrastruttura di rete più veloce
I vari server potrebbero non riuscire a parlare direttamente tra di loro
I
I
Uso di software middleware
Il middleware può migliorare anche le prestazioni e facilitare i
cambiamenti architetturali
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
19 / 29
Client-Server
Soluzioni progettuali
Tradeoff tra lavoro fatto dal client e dal server
I
I
Più lavoro sul server: server molto potente, client poco potente
Più lavoro sul client: server meno potente, client più potente,
infrastruttura di rete più veloce
I vari server potrebbero non riuscire a parlare direttamente tra di loro
I
I
Uso di software middleware
Il middleware può migliorare anche le prestazioni e facilitare i
cambiamenti architetturali
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
19 / 29
Web-based
Variante della architettura client-server in cui le tecnologie web
(HTTP, HTML, XML) sono usate per tutte le comunicazioni:
I
I
comunicazioni tra utenti e applicazioni tramite browser
comunicazioni tra applicazioni usando il formato XML e il protocollo
HTTP
Presenza web comunque necessaria per una azienda, tanto vale usarne
le tecnologie per altri scopi
Facilita la distribuzione delle applicazioni: tutto ciò di cui ha bisogno
un utente è il browser
Esempi: GMail, Facebook sono web based, Whataspp no!
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
20 / 29
Web-based
Variante della architettura client-server in cui le tecnologie web
(HTTP, HTML, XML) sono usate per tutte le comunicazioni:
I
I
comunicazioni tra utenti e applicazioni tramite browser
comunicazioni tra applicazioni usando il formato XML e il protocollo
HTTP
Presenza web comunque necessaria per una azienda, tanto vale usarne
le tecnologie per altri scopi
Facilita la distribuzione delle applicazioni: tutto ciò di cui ha bisogno
un utente è il browser
Esempi: GMail, Facebook sono web based, Whataspp no!
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
20 / 29
Web-based
Variante della architettura client-server in cui le tecnologie web
(HTTP, HTML, XML) sono usate per tutte le comunicazioni:
I
I
comunicazioni tra utenti e applicazioni tramite browser
comunicazioni tra applicazioni usando il formato XML e il protocollo
HTTP
Presenza web comunque necessaria per una azienda, tanto vale usarne
le tecnologie per altri scopi
Facilita la distribuzione delle applicazioni: tutto ciò di cui ha bisogno
un utente è il browser
Esempi: GMail, Facebook sono web based, Whataspp no!
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
20 / 29
Web-based
Variante della architettura client-server in cui le tecnologie web
(HTTP, HTML, XML) sono usate per tutte le comunicazioni:
I
I
comunicazioni tra utenti e applicazioni tramite browser
comunicazioni tra applicazioni usando il formato XML e il protocollo
HTTP
Presenza web comunque necessaria per una azienda, tanto vale usarne
le tecnologie per altri scopi
Facilita la distribuzione delle applicazioni: tutto ciò di cui ha bisogno
un utente è il browser
Esempi: GMail, Facebook sono web based, Whataspp no!
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
20 / 29
Cloud computing
Definizione (Cloud computing)
Metodologia di erogazione di risorse informatiche tramite hardware e
software di terze parti, accessibili tramite Internet.
Memorizzazione remota di dati (es. DropBox, Google Drive)
SaaS (Software as a Service): fornisce applicazioni che girano su un
server e con la quale l’utente interagisce direttamente (es. GMail,
Facebook)
PaaS (Platform as a Service): fornisce un ambiente per lo sviluppo di
applicazioni (sistema operativo, linguaggio di programmazione, server
web, server database) che gireranno su server remoti del provider
PaaS (Google App Engine)
IaaS (Infrastructure as a Service): fornisce computer (macchine
fisiche o più spesso virtuali), risorse di rete, etc. . . L’utente fa tutto il
resto, a cominciare dall’installazione del sistema operativo (es. Google
Compute Engine, Amazon EC2)
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
21 / 29
Cloud computing
Definizione (Cloud computing)
Metodologia di erogazione di risorse informatiche tramite hardware e
software di terze parti, accessibili tramite Internet.
Memorizzazione remota di dati (es. DropBox, Google Drive)
SaaS (Software as a Service): fornisce applicazioni che girano su un
server e con la quale l’utente interagisce direttamente (es. GMail,
Facebook)
PaaS (Platform as a Service): fornisce un ambiente per lo sviluppo di
applicazioni (sistema operativo, linguaggio di programmazione, server
web, server database) che gireranno su server remoti del provider
PaaS (Google App Engine)
IaaS (Infrastructure as a Service): fornisce computer (macchine
fisiche o più spesso virtuali), risorse di rete, etc. . . L’utente fa tutto il
resto, a cominciare dall’installazione del sistema operativo (es. Google
Compute Engine, Amazon EC2)
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
21 / 29
Cloud computing
Definizione (Cloud computing)
Metodologia di erogazione di risorse informatiche tramite hardware e
software di terze parti, accessibili tramite Internet.
Memorizzazione remota di dati (es. DropBox, Google Drive)
SaaS (Software as a Service): fornisce applicazioni che girano su un
server e con la quale l’utente interagisce direttamente (es. GMail,
Facebook)
PaaS (Platform as a Service): fornisce un ambiente per lo sviluppo di
applicazioni (sistema operativo, linguaggio di programmazione, server
web, server database) che gireranno su server remoti del provider
PaaS (Google App Engine)
IaaS (Infrastructure as a Service): fornisce computer (macchine
fisiche o più spesso virtuali), risorse di rete, etc. . . L’utente fa tutto il
resto, a cominciare dall’installazione del sistema operativo (es. Google
Compute Engine, Amazon EC2)
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
21 / 29
Cloud computing
Definizione (Cloud computing)
Metodologia di erogazione di risorse informatiche tramite hardware e
software di terze parti, accessibili tramite Internet.
Memorizzazione remota di dati (es. DropBox, Google Drive)
SaaS (Software as a Service): fornisce applicazioni che girano su un
server e con la quale l’utente interagisce direttamente (es. GMail,
Facebook)
PaaS (Platform as a Service): fornisce un ambiente per lo sviluppo di
applicazioni (sistema operativo, linguaggio di programmazione, server
web, server database) che gireranno su server remoti del provider
PaaS (Google App Engine)
IaaS (Infrastructure as a Service): fornisce computer (macchine
fisiche o più spesso virtuali), risorse di rete, etc. . . L’utente fa tutto il
resto, a cominciare dall’installazione del sistema operativo (es. Google
Compute Engine, Amazon EC2)
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
21 / 29
Cloud computing
Schema riassuntivo
Software
as a Service
Platform
as a Service
Infrastructure
as a Service
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
22 / 29
Cloud computing
Vantaggi e rischi
Vantaggi
I
I
I
I
I
Il centro dati di una azienda è semplificato e i costi ridotti
Supporta nativamente meccanismi di collaborazione tra utenti
Scalabile facilmente quando la necessità lo richiede, anche on-demand
Downtime ridotto
Investimenti più bassi per progetti a breve termine
Rischi
I
I
I
Probemi critici di sicurezza: un’azienda non possiede più i suoi dati
Potenziali problemi di prestazioni se rete non adeguata
Rischi nel caso il provider del servizio chiuda o cambi le sue politiche
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
23 / 29
Peer to Peer computing
I computer sulla rete sono trattati in maniera eguale
Ogni computer può condividere le sue risorse con gli altri
Svantaggi
I
I
I
I
Difficile controllare in maniera centralizzata le risorse condivise
Difficile localizzare le risorse cercate
Possibili versioni multiple non sincronizzate degli stessi dati o dei
software
Difficile difendersi da accessi non autorizzati o da virus
Utilizzi
I
I
Condivisione di file o stampanti tra computer in gruppi ristretti
Condivisione di file su Intenet (es. BitTorrent)
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
24 / 29
Modelli ibridi
Architettura client-server usata per localizzare i dati
Architettura peer-to-peer per scambiarsi i dati
Esempi: eMule, Skype
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
25 / 29
Architettura del sistema informatico di Google
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
26 / 29
Architettura del sistema informatico di Google
Consente di effettuare ricerche veloci e potenti su Internet
Trae profitto dalla pubblicità inviata all’utente con ogni ricerca
Requisiti dell’architettura del sistema informatico di Google
I
I
I
Rispondere a milioni di utenti simultaneamente
Alta affidabilità
Elevata scalabilità (ovvero, possibilità di crescere quando aumenta il
numero di richieste)
Due processi distinti
I
I
Risposte alla richieste degli utenti
Scaricamento e indicizzazione di tutte le pagine web di Internet (web
crawling)
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
27 / 29
Architettura applicativa di Google
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
28 / 29
Architettura harware di Google
Gianluca Amato (UniCH)
Sistemi Operativi e Reti
A.A. 2015/16
29 / 29