+ All Categories
Home > Documents > Sistemi Distribuiti

Sistemi Distribuiti

Date post: 23-Feb-2016
Category:
Upload: nairi
View: 198 times
Download: 1 times
Share this document with a friend
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 Presentation
32
Sistemi Distribuiti Corso di Laurea Magistrale in Informatica Indirizzo Reti Facoltà di Scienze Matematiche Fisiche e Natuali Docente: Prof. Alberto Negro 1
Transcript
Page 1: Sistemi Distribuiti

1

Sistemi DistribuitiCorso di Laurea Magistrale in InformaticaIndirizzo RetiFacoltà di Scienze Matematiche Fisiche e Natuali

Docente: Prof. Alberto Negro

Page 2: Sistemi Distribuiti

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

3

Page 4: Sistemi Distribuiti

4

Contenuti•Parte A) Sistemi distribuiti: Fondamenti.

▫Introduzione ai Sistemi Distribuiti

Page 5: Sistemi Distribuiti

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

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

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

8

Modalità di Esame•Scritto + Orale (progetto JXTA facoltativo)

Page 9: Sistemi Distribuiti

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

10

Sistema Distribuito•Una collezione di dispositivi

autonomi che comunicano attraverso una rete di interconnessione

Page 11: Sistemi Distribuiti

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

I Sistemi distribuiti (SD) sono:Incredibilmente flessibiliIncredibilmente efficienti

Difficili da mettere a punto…...

Hardware eterogeneo

AsincroniaConoscenza locale limitata

Fallimenti

12

Page 13: Sistemi Distribuiti

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

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

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

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

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

Modello dei SD

18

Page 19: Sistemi Distribuiti

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

20

UMA vs NUMA Models

Page 21: Sistemi Distribuiti

21

Butterfly and Hypercube networks

Page 22: Sistemi Distribuiti

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

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

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

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

26

SD Obiettivi (Sistema)▫Fault-tolerance (nodi/link)▫Security▫Scalability▫API▫Trasparenza

Page 27: Sistemi Distribuiti

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

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

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

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

31

SD Obiettivi (Algoritmi)•Load Balancing

▫Computation migration▫Data migration▫Distributed scheduling

•Come comparare gli algoritmi▫Metriche

Page 32: Sistemi Distribuiti

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


Recommended