Reti di Calcolatori
INFOS
COMMS
..
-
2003-20042003-2004
Reti di Calcolatori
1
Il modello
I Sistemi
di Client/Server
Rete
• Dal punto di vista del programmatore o dell’utente la rete è il servizio di
interconnessione tre due o più unità computazionali
• Per Unità computazionale si intende un sistema in grado di eseguire delle
istruzioni ed in generale del codice.
• Un Computer monoprocessore è una unità computazionale
• In un sistema multi-processore ogni CPU è una singola unità computazionale
• Un sistema di rete è quindi un sistema parallelo, in grado di eseguire più
processi contemporaneamente
• Il legame e l’interazione tra questi processi avviene attraverso i servizi di
interconnessione
• La sincronizzazione tra i processi e, in generale il Coordinamento tra i processi è
critico per il buon funzionamento del sistema
• Un sistema di rete ha una quantità di risorse a disposizione superiore ad un sistema
isolato con una singola unità computazionale
• Le interazioni a basso livello sul servizio di rete si basano sul concetto di
messaggio: le sequenze sincrone o a sincrone di messaggi per il
coordinamento di due processi sono regolati dai protocolli
• I protocolli possono avere diverse caratteristiche, possono essere definiti ad
hoc dall’utente oppure regolati da uno standard
2003-20042003-2004
Reti di Calcolatori
2
modello
Client/Server
Dai Sistemi di IlRete
ai Sistemi
Distribuiti
• Come un Sistema Operativo astrae la macchina digitale sottostante per
ottenere una più potente gestione dello strumento hardware, allo stesso modo
vengono creati (nel sistema operativo e non solo) astrazioni del supporto di
rete per permettere un miglior uso delle risorse distribuite nelle diverse unità
computazionali
• Definizione di Sistema Distribuito: Insieme di sistemi distinti per
località che cooperano per ottenere risultati coordinati
• Distinti per Località: le diverse unità computazionali hanno una loro
autonomia di computazione; per località si intende il contesto di
esecuzione locale ad una specifica unità computazionale
• Cooperano: si coordinano per ottenere un risultato comune
• La complessità di un sistema distribuito è maggiore rispetto ad un sistema
isolato
• Un sistema isolato è un sistema deterministico e chiuso
• Un sistema distribuito è invece aperto e quindi potenzialmente non
deterministico
• Esempio: i Generali Bizantini:
• Lo scambio di messaggi tra gli eserciti può non essere corretto
2003-20042003-2004
Reti di Calcolatori
3
Il modello
Client/Server
Sistemi
Distribuiti
Valore della Soluzione
Avere un sistema distribuito mi permette di:
• accedere a risorse remote
• condividere localmente risorse remote
• Ottenere Sistemi di grandi dimensioni con moltissime risorse
In più
•
•
•
•
•
offre diverse nuove possibilità:
replicazione delle risorse
bilanciare uso delle risorse
tollerare fallimenti di risorse
garantire qualità delle operazioni
DINAMICITÀ del SISTEMA
•aggiungere risorse al sistema aperto
•QUALITÀ dei SERVIZI (QoS)
• TRASPARENZA della ALLOCAZIONE
Legge di Grosh
• Il migliore bilancio costo/performance si ottiene sempre con un
monoprocessore mainframe (senza problemi di memoria e I/O)
• ovviamente con i limiti alla potenza di calcolo
•velocità della luce
•costi elevati aumentando l'integrazione
2003-20042003-2004
Reti di Calcolatori
4
Il modello
Client/Server
Sistemi
Distribuiti
Complessità
Il sistema ha però seri problemi teorici e pratici
• TERMINAZIONE DEI PROGRAMMI
• COMPLESSITÀ DEI PROGRAMMI
• CORRETTEZZA
• EFFICIENZA
• Concorrenza: moltissime attività (processi) possono essere in esecuzione
• Nessun tempo globale: nessuna sincronicità degli orologi di un sistema
distribuito
• Fallimenti indipendenti: molte cause di fallimento, crash di macchine e
possibili problemi di rete.
2003-20042003-2004
Reti di Calcolatori
5
Il modello Client/Server
Le Architetture
di Rete
Local Area Network LAN - Wide Area
Network WAN …
INFOS
• Sistemi Eterogenei di reti fisse e mobili
• Strutture topologiche e configurazioni
dinamiche
• Diversi modalità di accesso ed estrema
varietà di dispositivi
REQUISITI tecnologici ed economici
•
•
•
•
•
COMMS
..
-
affidabilità
tolleranza ai guasti
condivisione delle risorse
eterogeneità degli accessi
uniformità in crescita e scalabilità
• indipendenza dal numero dei nodi del sistema
•apertura del sistema
• capacità di evoluzione secondo necessità
• adeguamento alle richieste distribuite
• domande distribuite (prenotazioni aeree)
2003-20042003-2004
Reti di Calcolatori
6
Progetto di un programma
(Applicazione)
Il modello Client/Server
Distribuita
Applicazione
Problema
Sistema Operativo
Architettura
Algoritmo
codifica
mapping
binding
Tecnologia
Linguaggio
di Alto Livello
2003-20042003-2004
Reti di Calcolatori
7
Progetto di un programma
(Applicazione)
Il modello Client/Server
Distribuita
• Algoritmo: Risoluzione astratta
• codifica in un opportuno linguaggio di alto livello
• SVILUPPO in uno o più linguaggi
• MAPPING
• Configurazione: come divido il lavoro
• Decisioni di allocazione per l'architettura scelta: chi fa cosa
• DEPLOYMENT
• decisioni specifiche per la esecuzione sulla architettura
• BINDING
• aggancio delle entità di programma sulle risorse di sistema
• Si possono prendere molte decisioni prima della esecuzoine:
•politiche prefissate e non variabili o adattabili  Gestione Statica
• il binding può essere differito alla esecuzione  Gestione Dinamica del
binding delle risorse
2003-20042003-2004
Reti di Calcolatori
8
Il Computazionali
modello Client/Server
Modelli
La quasi totalità dei sistemi general purpouse si basano sul modello Von
Neumann
• modello sequenziale con una sola capacità di esecuzione
In un sistema di rete mi trovo ad avere quindi una molteplicità di macchine di
von Neumann che lavorano su flussi di esecuzioni parallele. Devo quindi
costruire dei modelli di esecuzione considerando la molteplicità dei flussi di
dati e di esecuzione
•
Single
Instruction Multiple Data (SIMD)
•
Multiple
Instruction Multiple Data (MIMD)
• Classificazione di Flynn:
Data stream/
Instruction Stream
Unico flusso dati
Flussi di dati multipli
Unico flusso di
istruzioni
SISD
(von Neuman)
SIMD
(sistemi vettoriali)
Flussi Multipli di
istruzioni
MISD
(pipeline)
MIMD
(macchine multiple)
2003-20042003-2004
Reti di Calcolatori
9
Il modello
Sistemi
MIMD Client/Server
e SIMD
Processori
e Controllo
Pe
MIMD
Pe
Pe
Processori
Rete di
Interconnessione
e Controllo
SIMD
Pe
Unica
Unità di
Controllo
Pe
Rete di
Interconnessione
Pe
2003-20042003-2004
Reti di Calcolatori
10
Il modello
Client/Server
Sistemi MIMD
Multicomputer
Nodo
Processore
Processore
Nodo
PP
PP
MM
MM
Cache
Processore
Memoria
Processore
Rete
Rete didi
Interconnessione
Interconnessione
Nodo
Nodo
PP
MM
PP
MM
Nodo
PP
MM
2003-20042003-2004
Reti di Calcolatori
11
Il modello Client/Server
Interconnessione
Memorie
Processori
Rete di
Interconnessione
tra processori
e memorie
2003-20042003-2004
Reti di Calcolatori
12
Il modello
Client/Server
Accesso
alla memoria
Memorie
Processori
Pe
M
Pe
Memorie
Processori
M
M
Pe
Rete di
Interconnessione
tra processori
e memorie
Pe
M
M
Rete di
Interconnessione
tra processori
e memorie
M
Pe
Pe
M
M
M
Uniform Memory Access
2003-20042003-2004
NON Uniform Memory Access
Reti di Calcolatori
13
Il modello
Client/Server
Modelli a Memoria
condivisa
o non condivisa
• La memoria condivisa costa:
• Se la architettura non permette una veloce interconnessione tra i nodi
diventa molto costoso accedere alla memoria di un altro nodo.
• Due o più entità computazionali che accedono alla stessa risorsa di
memoria devono sincronizzarsi, con il conseguente hoverhead di
coordinamento.
• Si sono quindi affermati nel tempo due modelli principali basati sulla
presenza o meno della astrazione di memoria condivisa:
• In assenza di memoria condivisa, i nodi non possono utilizzare la memoria
per il coordinamento; lo scambio di messaggi diventa quindi lo strumento
primario di comunicazione
• È compito del sistema operativo creare astrazioni più potenti e flessibili al di
sopra del semplice modello a scambio di messaggi
2003-20042003-2004
Reti di Calcolatori
14
Il modello Client/Server
Riassumendo
• Qualsiasi sistema interconnesso è un sistema di rete, al di sopra dei sistemi
di rete vengono costruite astrazioni che permettono di usare in modo più
efficiente le risorse a disposizione
• La seguente tabella riassume le caratteristiche delle diverse architetture:
Architettura
Modello di
Coordinamento
Applicazioni
Architetture parallele (decine di
Memoria condivisa
Grosse necessità di
calcolo
Architetture a parallelismo
massiccio (centinaia o migliaia)
Scambio di messaggi
Esigenze specifiche
Architetture di rete LAN (local
area network)
Scambio di messaggi
Condivisione di risorse
Architetture di rete WAN (wide
area network)
Scambio di messaggi
Internet-like
processori)
2003-20042003-2004
Reti di Calcolatori
15
Il modello
Il Modello
ClienteClient/Server
Servitore
• Servitore: entità computazionale in grado di eseguire una specifica
prestazione per altre entità (in grado cioè di offrire un servizio)
• Cliente: entità computazionale che richiede ad un servitore l’esecuzione di
una specifica presatazione
• Il rapporto cliente servitore è il principio su cui è possibile costruire
applicazioni distribuite:
• Banalmente, se un cliente risiede in un nodo e la risorsa è disponibile
in un altro, deve per forza appoggiarsi ad una servitore locale alla
risorsa per utilizzarla
• Qualsiasi tipo di interazione è assimilabile ad un rapporto C/S
• Una relazione C/S è ottenibile con diversi meccanismi di comunicazione
• Sul modello C/S vengono costruiti gli standard sia di comunicazione sia
di servizi per la costruizione di sistemi aperti
2003-20042003-2004
Reti di Calcolatori
16
modello Client/Server
I meccanismi diIl comunicazione
tra entità
Scambio di messaggi (message passing): due entità possono dialogare
attraverso uno scambio di messaggi.
• È il meccanismo di più basso livello. Qualsiasi sistema di interconnessione è in
grado di supportarlo.
• Il principio di comunicazione basato su messaggi è il principio del
request/response:
• messaggi sincroni: il cliente si ferma in attesa della risposta
• messaggi asincroni: il cliente prosegue nella sua esecuzione e periodicamente (polling) o
mediante un meccanismo di wake up (eventi) verifica le risposte ricevute
• Chiamata a Procedura Remota (RPC Remote Procedure Call):
possibilità di invocare una funzione di un servizio remoto come fosse una
libreria locale.
• È un meccanismo di alto livello che sintetizza il rapporto cliente servitore
attraverso un set di procedure messe a disposizione in remoto dal servitore
• RMI: è la estensione in un contesto Object Oriented della RPC : Remote Method
Invocation
• Memoria Condivisa (Shared Memory – Monitor): due entità
comunicano attraverso un’area di memoria condivisa. Il monitor è l’oggetto
che si occupa di gestire la memoria in modo sincronizzato. Il cliente
deposità nel monitor la sua richiesta ed il servitore legge e risponde
attraverso lo stetto monitor
2003-20042003-2004
Reti di Calcolatori
17
Scarica

Reti I parte