sistemi distribuiti
DESCRIPTION
Sistemi Distribuiti. Corso di Laurea Magistrale in Informatica Indirizzo Reti Facoltà di Scienze Matematiche Fisiche e Natuali Docente : Prof. Alberto Negro. Obiettivi Formativi. In questo corso tratteremo alcuni dei concetti fondamentali alla base dei moderni sistemi distribuiti. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/1.jpg)
1
Sistemi DistribuitiCorso di Laurea Magistrale in InformaticaIndirizzo RetiFacoltà di Scienze Matematiche Fisiche e Natuali
Docente: Prof. Alberto Negro
![Page 2: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/2.jpg)
2
Obiettivi Formativi1. In questo corso tratteremo alcuni dei concetti
fondamentali alla base dei moderni sistemi distribuiti. 2. Ci occuperemo dei fondamenti: problemi, protocolli,
algoritmi e limiti insormontabili. 3. Vedremo, anche nei dettagli, le idee usate nella
costruzione dei sistemi Peer-to-Peer (P2P). 4. Infine descriveremo una piattaforma per applicazioni P2P:
JXTA.
3 e 4 sono mutuati dal corso di Sistemi P2P (3CFU).
![Page 3: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/3.jpg)
3
![Page 4: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/4.jpg)
4
Contenuti•Parte A) Sistemi distribuiti: Fondamenti.
▫Introduzione ai Sistemi Distribuiti
![Page 5: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/5.jpg)
5
Contenuti•Parte B) Sistemi P2P
▫ Introduzione alle Architetture Parallele L’Ipercubo, la Butterfly (CCC e Benes), i grafi di de Bruijn.
▫ Introduzione ai sistemi P2P▫ Reti P2P non strutturate: Random Graphs, Small-
Worlds and Scale-Free Networks▫ Reti P2P strutturate▫ Reti Uniformi e Reti Randomizzate▫ Strategie di Routing ▫ Reti non Uniformi: Koorde
![Page 6: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/6.jpg)
6
Contenuti•Parte C) JXTA
▫Introduzione a JXTA▫Architettura di JXTA▫Le componenti e i protocolli di JXTA▫Comunicazione in JXTA: Pipe, BidiPipe e Socket▫Esempi di utilizzo e Applicazioni
![Page 7: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/7.jpg)
7
Testi1. R.Steinmetz, K. Wehrle, Peer to Peer Systems
and Applications, LNCS. 3485, Springer Verlag, 2005
2. F. Thompson Leighton, Introduction to Parallel Algorithms and Architectures: Array Trees Hypercubes.
3. Ajay D. Kshemkalyani and Mukesh Singhal. Distributed Computing: Principles, Algorithms, and Systems, Cambridge University Press, 2008. ISBN-13 978-0-521-87634-6.
4. JXTA Programmers guide.
![Page 8: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/8.jpg)
8
Modalità di Esame•Scritto + Orale (progetto JXTA facoltativo)
![Page 9: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/9.jpg)
9
Introduzione ai Sistemi Distribuiti
Gennaro CordascoDipartimento di Informatica - Università degli Studi di Salernocordasco[@]dia.unisa.it cordasco+sd[@]gmail.comhttp://www.dia.unisa.it/~cordascoLaboratorio ISISLAB2
![Page 10: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/10.jpg)
10
Sistema Distribuito•Una collezione di dispositivi
autonomi che comunicano attraverso una rete di interconnessione
![Page 11: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/11.jpg)
11
Caratteristiche dei SD•I dispositivi non hanno un clock comune•Non c’è una shared memory•I dispositivi lavorano in maniera
autonoma e sono tipicamente eterogenei•… sono separati geograficamente
![Page 12: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/12.jpg)
I Sistemi distribuiti (SD) sono:Incredibilmente flessibiliIncredibilmente efficienti
Difficili da mettere a punto…...
Hardware eterogeneo
AsincroniaConoscenza locale limitata
Fallimenti
12
![Page 13: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/13.jpg)
13
Gli Algoritmi Distribuiti:
Sono difficili da progettare:Non c’è un modello accettato
Message passing vs shared memoryTimingFailure
E’ difficile dimostrarne la correttezza
Algoritmo Distribuito:
- Algoritmo per un Sistema Distribuito
![Page 14: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/14.jpg)
14
Gli Algoritmi Distribuiti:
Usano il numero totale dei messaggi spediti comemisura di complessità
Usano anche il tempo come misura di complessità
![Page 15: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/15.jpg)
15
• L’alternativa è un’architettura centralizzata– un singolo mainframe con terminali stupidi• Alcuni problemi:– se il mainframe non è disponibile, nessuna computazione è possibile– consumo di banda sulla rete per dati (anche per i dati locali ai terminali)– costo e mantenimento alto del mainframe– terminali stupidi con capacità di calcolo notevoli
Perchè computazione distribuita?
![Page 16: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/16.jpg)
16
Motivazioni per il Calcolo Distribuito• Utilizzo parallelo di risorse distribuite– CPU– Memoria• Data Set difficilmente rilocabili vengono processati localmente• Fault-tolerance• Scalabilità• Modularità• Rapporto Prestazioni/Prezzo– attenzione alla manutenzione
![Page 17: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/17.jpg)
17
Le prestazioni di un Sistema Distribuito• La capacità di un sistema distribuito può facilmente eccedere quella di un calcolatore a singolo processore:• 5000 Pentium a 200 MIPS=1.000.000 MIPS• Una singola CPU così veloce dovrebbe eseguire una operazione ogni 10-12 secondi• In 10-12 secondi alla velocità della luce si coprono solo 0.3 millimetri• Una CPU in 0.3 millimetri crea problemi disurriscaldamento
![Page 18: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/18.jpg)
Modello dei SD
18
![Page 19: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/19.jpg)
19
Differenza con i Sistemi Paralleli• Array processors (processori strettamente
accoppiati)• Multiprocessori (con accesso diretto alla shared
memory UMA)▫ Diversi tipi di interconnessione (bus, multistage switch,
come ad esempio butterfly oppure shuffle exchange network)
• Multicomputer parallel systems (processori omogenei con una propria memoria NUMA)▫ Non c’è una memoria condivisa▫ Utilizzano una specifica rete di interconnessione (ring,
mesh, ipercubo)
![Page 20: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/20.jpg)
20
UMA vs NUMA Models
![Page 21: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/21.jpg)
21
Butterfly and Hypercube networks
![Page 22: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/22.jpg)
22
Tassonomia di Flynn• SISD: Single Instruction Stream Single Data Stream
▫ Modello tradizionale• SIMD: Single Instruction Stream Multiple Data Stream
▫ Applicazioni scientifiche su dati di grande dimensione▫ vector processors, systolic arrays, Pentium/SSE, DSP chips
• MISD: Multiple Instruciton Stream Single Data Stream▫ Meno usato
• MIMD: Multiple Instruction Stream Multiple Data Stream▫ Il modello più potente, ma anche il più complesso ▫ La maggior parte dei sistemi paralleli e distribuiti
![Page 23: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/23.jpg)
23
Terminologia• Accoppiamento (Coupling): livello di
interdipendenza fra i moduli di un SD (tightly/loosely)
• Parallelismo o SpeedUp, T(1)/T(n): misura l’accelerazione ottenuta usando n moduli invece di 1.
• Concorrenza: rapporto fra il tempo speso a fare computazione ed il tempo totale speso (include tempo di comunicazione, sincronizzazione)
• Granularità di un programma
![Page 24: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/24.jpg)
24
Message Passing vs Shared memory•Shared Memory: La comunicazione fra i
processori si basa su una zona di memoria condivisa▫Tightly coupled multiprocessor▫Problema: gestione dei conflitti di accesso
concorrente alla memoria •Message Passing: I computer comunicano
attraverso lo scambio di messaggi asincrono▫Loosely coupled systems
![Page 25: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/25.jpg)
25
SD Obiettivi (Sistema)•Diverse problematiche devono essere
affrontate nella realizzazione di un SD:▫Comunicazione▫Gestione dei processi▫Naming▫Synchronizzazione▫Data Storage▫Consistency and Replication
![Page 26: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/26.jpg)
26
SD Obiettivi (Sistema)▫Fault-tolerance (nodi/link)▫Security▫Scalability▫API▫Trasparenza
![Page 27: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/27.jpg)
27
SD Obiettivi (Algoritmi)▫Modello di esecuzione
Interleaving Partial order
▫Algoritmi distribuiti su grafi dinamici Topologia del sistema Algoritmi su grafi (permettono la
comunicazione, la sincronizzazione ecc.) Topologia dinamica Efficienza
▫Timing
![Page 28: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/28.jpg)
28
SD Obiettivi (Algoritmi)▫Sincronizzazione
Logical time Leader Election Mutual exclusion Distributed deadlock detection and resolution Distributed termination detection Distributed garbage collection
![Page 29: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/29.jpg)
29
SD Obiettivi (Algoritmi)• Group communication, multicast, and ordered message
delivery▫ Group: processi che condividono un contesto e/o che
collaborano▫ joins, leaves, fails▫ Invio concorrente dei messaggi: gestione della semantica
dell’ordine di arrrivo• Monitoring distributed events and predicates
▫ Predicate: condition on global system state▫ Debugging
• Progettazione dei programmi distribuiti e dei tool di verifica
• Debugging di programmi distribuiti
![Page 30: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/30.jpg)
30
SD Obiettivi (Algoritmi)• Data replication, consistency models, and caching
▫Fast, scalable access▫coordinate replica updates▫optimize replica placement
• Reliable and fault-tolerant distributed systems▫Failure detectors:
Difficult to distinguish a "slow" process/message from a failed process/ never sent message
algorithms that "suspect" a process as having failed and converge on a determination of its up/down status
![Page 31: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/31.jpg)
31
SD Obiettivi (Algoritmi)•Load Balancing
▫Computation migration▫Data migration▫Distributed scheduling
•Come comparare gli algoritmi▫Metriche
![Page 32: Sistemi Distribuiti](https://reader033.vdocuments.pub/reader033/viewer/2022061516/56816386550346895dd470ad/html5/thumbnails/32.jpg)
32
SD Applicazioni•Mobile systems•Sensor networks•Ubiquitous and pervasive computing
(domotica)•Peer to Peer computing•Publish and Subscribe content distribution•Distributed agents•Distributed data mining •Grid Computing•Security