1 / 32

Sistemi Distribuiti

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.

nairi
Télécharger la présentation

Sistemi Distribuiti

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SistemiDistribuiti CorsodiLaureaMagistrale in Informatica IndirizzoReti FacoltàdiScienzeMatematicheFisiche e Natuali Docente: Prof. Alberto Negro

  2. 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).

  3. Contenuti • Parte A) Sistemi distribuiti: Fondamenti. • IntroduzioneaiSistemiDistribuiti

  4. 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

  5. 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

  6. 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.

  7. ModalitàdiEsame • Scritto + Orale (progetto JXTA facoltativo)

  8. 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

  9. Sistema Distribuito Una collezione di dispositivi autonomi che comunicano attraverso una rete di interconnessione

  10. Caratteristiche dei SD I dispositivi non hanno un clock comune Non c’è una sharedmemory I dispositivilavorano in manieraautonoma e sonotipicamenteeterogenei … sonoseparatigeograficamente

  11. I Sistemi distribuiti (SD) sono: Incredibilmente flessibili Incredibilmente efficienti Difficili da mettere a punto…... Hardware eterogeneo Asincronia Conoscenza locale limitata Fallimenti

  12. 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

  13. 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à

  14. 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

  15. 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

  16. 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

  17. Modello dei SD

  18. 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)

  19. UMA vs NUMA Models

  20. Butterfly and Hypercube networks

  21. 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

  22. 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

  23. 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

  24. SD Obiettivi (Sistema) • Diverse problematiche devono essere affrontate nella realizzazione di un SD: • Comunicazione • Gestione dei processi • Naming • Synchronizzazione • Data Storage • Consistency and Replication

  25. SD Obiettivi (Sistema) • Fault-tolerance(nodi/link) • Security • Scalability • API • Trasparenza

  26. 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

  27. SD Obiettivi (Algoritmi) • Sincronizzazione • Logical time • Leader Election • Mutualexclusion • Distributed deadlockdetection and resolution • Distributed terminationdetection • Distributed garbagecollection

  28. 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

  29. 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

  30. SD Obiettivi (Algoritmi) • Load Balancing • Computationmigration • Data migration • Distributed scheduling • Come comparare gli algoritmi • Metriche

  31. 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

More Related