440 likes | 1.07k Views
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.
E N D
SistemiDistribuiti CorsodiLaureaMagistrale in Informatica IndirizzoReti FacoltàdiScienzeMatematicheFisiche e Natuali Docente: Prof. Alberto Negro
ObiettiviFormativi In questo corso tratteremo alcuni dei concetti fondamentali alla base dei moderni sistemi distribuiti. Ci occuperemo dei fondamenti: problemi, protocolli, algoritmi e limiti insormontabili. Vedremo, anche nei dettagli, le idee usate nella costruzione dei sistemi Peer-to-Peer (P2P). Infine descriveremo una piattaforma per applicazioni P2P: JXTA. 3 e 4 sono mutuati dal corso di Sistemi P2P (3CFU).
Contenuti • Parte A) Sistemi distribuiti: Fondamenti. • IntroduzioneaiSistemiDistribuiti
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 • RetiUniformi e RetiRandomizzate • Strategiedi Routing • Reti non Uniformi: Koorde
Contenuti • Parte C) JXTA • Introduzione a JXTA • Architettura di JXTA • Le componenti e i protocolli di JXTA • Comunicazione in JXTA: Pipe, BidiPipe e Socket • Esempidiutilizzo e Applicazioni
Testi R.Steinmetz, K. Wehrle, Peer to Peer Systems and Applications, LNCS. 3485, Springer Verlag, 2005 F. Thompson Leighton, Introduction to Parallel Algorithms and Architectures: Array Trees Hypercubes. Ajay D. Kshemkalyani and MukeshSinghal. Distributed Computing: Principles, Algorithms, and Systems, Cambridge University Press, 2008. ISBN-13 978-0-521-87634-6. JXTA Programmers guide.
ModalitàdiEsame • Scritto + Orale (progetto JXTA facoltativo)
Introduzione ai Sistemi Distribuiti GennaroCordasco Dipartimento di Informatica - UniversitàdegliStudi di Salerno cordasco[@]dia.unisa.it cordasco+sd[@]gmail.com http://www.dia.unisa.it/~cordasco Laboratorio ISISLAB2
Sistema Distribuito Una collezione di dispositivi autonomi che comunicano attraverso una rete di interconnessione
Caratteristiche dei SD I dispositivi non hanno un clock comune Non c’è una sharedmemory I dispositivilavorano in manieraautonoma e sonotipicamenteeterogenei … sonoseparatigeograficamente
I Sistemi distribuiti (SD) sono: Incredibilmente flessibili Incredibilmente efficienti Difficili da mettere a punto…... Hardware eterogeneo Asincronia Conoscenza locale limitata Fallimenti
Gli AlgoritmiDistribuiti: Algoritmo Distribuito: - Algoritmo per un Sistema Distribuito Sono difficili da progettare: Non c’è un modello accettato Message passing vs shared memory Timing Failure E’ difficile dimostrarne la correttezza
Ma cosa significa tempo per un sistema distribuito Gli AlgoritmiDistribuiti: Usano il numero totale dei messaggi spediti come misura di complessità Usano anche il tempo come misura di complessità
Perchè computazione distribuita? • L’alternativa è un’architetturacentralizzata – un singolo mainframe con terminali stupidi • Alcuniproblemi: – se il mainframe non è disponibile, nessuna computazioneè possibile – consumo di banda sulla rete per dati (anche per i datilocaliaiterminali) – costo e mantenimento alto del mainframe – terminali stupidi con capacità di calcolo notevoli
Motivazioni per il Calcolo Distribuito • Utilizzo parallelo di risorse distribuite – CPU – Memoria • Data Set difficilmente rilocabili vengono processatilocalmente • Fault-tolerance • Scalabilità • Modularità • RapportoPrestazioni/Prezzo – attenzioneallamanutenzione
Le prestazioni di un Sistema Distribuito • La capacità di un sistema distribuito può facilmente eccedere quella di un calcolatore a singoloprocessore: • 5000 Pentium a 200 MIPS=1.000.000 MIPS • Una singola CPU così veloce dovrebbe eseguire una operazioneogni 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 di surriscaldamento
Differenza con i Sistemi Paralleli • Array processors (processori strettamente accoppiati) • Multiprocessori (con accesso diretto alla sharedmemory UMA) • Diversi tipi di interconnessione (bus, multistageswitch, come ad esempio butterfly oppure shuffleexchange network) • Multicomputerparallelsystems (processori omogenei con una propria memoria NUMA) • Non c’è una memoria condivisa • Utilizzano una specifica rete di interconnessione (ring, mesh, ipercubo)
Tassonomia di Flynn • SISD: Single Instruction Stream Single Data Stream • Modellotradizionale • SIMD: Single Instruction Stream Multiple Data Stream • Applicazioniscientifichesudati di grandedimensione • vector processors, systolic arrays, Pentium/SSE, DSP chips • MISD: Multiple Instruciton Stream Single Data Stream • Menousato • MIMD: Multiple Instruction Stream Multiple Data Stream • Il modellopiùpotente, ma ancheilpiùcomplesso • La maggior parte deisistemiparalleli e distribuiti
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
Message Passing vs Sharedmemory • Shared Memory: La comunicazione fra i processori si basa su una zona di memoria condivisa • Tightlycoupledmultiprocessor • Problema: gestione dei conflitti di accesso concorrente alla memoria • Message Passing: I computer comunicano attraverso lo scambio di messaggi asincrono • Looselycoupledsystems
SD Obiettivi (Sistema) • Diverse problematiche devono essere affrontate nella realizzazione di un SD: • Comunicazione • Gestione dei processi • Naming • Synchronizzazione • Data Storage • Consistency and Replication
SD Obiettivi (Sistema) • Fault-tolerance(nodi/link) • Security • Scalability • API • Trasparenza
SD Obiettivi (Algoritmi) • Modello di esecuzione • Interleaving • Partialorder • Algoritmi distribuiti su grafi dinamici • Topologia del sistema • Algoritmi su grafi (permettono la comunicazione, la sincronizzazione ecc.) • Topologia dinamica • Efficienza • Timing
SD Obiettivi (Algoritmi) • Sincronizzazione • Logical time • Leader Election • Mutualexclusion • Distributed deadlockdetection and resolution • Distributed terminationdetection • Distributed garbagecollection
SD Obiettivi (Algoritmi) • Group communication, multicast, and ordered message delivery • Group: processichecondividono un contesto e/o checollaborano • joins, leaves, fails • Invioconcorrentedeimessaggi: gestionedellasemanticadell’ordine di arrrivo • Monitoring distributed events and predicates • Predicate: condition on global system state • Debugging • Progettazionedeiprogrammidistribuiti e dei tool di verifica • Debugging di programmidistribuiti
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
SD Obiettivi (Algoritmi) • Load Balancing • Computationmigration • Data migration • Distributed scheduling • Come comparare gli algoritmi • Metriche
SD Applicazioni • Mobile systems • Sensor networks • Ubiquitous and pervasive computing (domotica) • Peer to Peer computing • Publish and Subscribecontentdistribution • Distributed agents • Distributed data mining • Grid Computing • Security