Teoria completa del corso di "Sistemi distribuiti" di Ingegneria informatica presso l'Università degli Studi della Campania Luigi Vanvitelli. Il corso è tenuto dal professore Rocco Aversa. Questo pdf contiene un personale riassunto dettagliato del corso, il tutto ben commentato e munito degli opportuni schemi. gli appunti sono autosufficienti al completamento dell'esame con risultati ottimali.
A breve sulla piattaforma sarà possibile trovare anche un pdf contenente una raccolta completa di esercizi d'esame (esercizi in MPI e in Java RMI), tutti ben commentati e corredati dei risultati attesi dall'elaborazione del programma.
L'indice degli argomenti è mostrato di seguito:
•Introduzione ai Sistemi Distribuiti: Definizione, Dai Sistemi centralizzati ai Sistemi distribuiti, Motivazioni dei sistemi distribuiti, Requisiti di un sistema distribuito, Tipologie di sistemi distribuiti.
•Architetture Hardware e Software: Modello di Flynn, Multiprocessore e Multicomputer, organizzazione della memoria nei Multiprocessore, GPGPU, Multicomputer, Architetture Software: Distibuted Operating System (DOS), Networking Operating Systems (NOS), NOS + Middleware, Virtualizzazione.
•Modelli di Interazione Interprocesso: Paradigmi di interazione, Il modello client-server, Remote Procedure Call, Oggetti distribuiti, Paradigma peer-to-peer (P2P), Paradigmi di interazione di basso livello per applicazioni di calcolo scientifico: MPI e OpenMP. Java RMI, esempio programma Java RMI “Scrivi File”, esempio passaggio per riferimento, esempio trasferimento di codice. OpenMP. Message Passing: Comunicazione orientata ai messaggi, Modello IPC, Definizioni di comunicazione, Tipologie di comunicazione, Comunicazione persistente: modello a code di messaggi, Comunicazione transiente basata su primitive per lo scambio messaggi del tipo one-to-one: send e receive, Group Communication. MESSAGE PASSING - PVM e MPI: Datatype in MPI, operazioni collettive, topologie. Mobilità del Codice, Agenti Software, Strong mobility e Weak mobility, Programmazione ad agenti mobili con Jade, piattaforme FIPA Compliant, Modello computazionale di Jade e Behaviours di Jade.
•Problema del Naming: Sistema di Naming, Modello di Naming, Naming semplice, strutturato e basato su attributi.
•Tempo nei Sistemi Distribuiti: Metodi di sincronizzazione tra processi, Problemi dovuti alla mancata sincronizzazione degli orologi, Orologi Virtuali, Network Time Protocol, The Berkeley Algorithm, Osservazioni di Lamport, Sincronizzazione basata su Lamport, Esempio di utilizzo dell’algoritmo di Lamport: Totally-Ordered Multicasting. Vector timestamp, Esempio di utilizzo dei vector timestamps: Comunicazione causale.
•Mutua Esclusione ed Elezione: Algoritmo centralizzato per la mutua esclusione, Algoritmi distribuiti per la mutua esclusione, Algoritmo Token Ring, Problema dell’elezione: Bully Algorithm, Ring Algorithm, Elezioni in ambienti senza fili 15.8 Elezioni in sistemi di ampia scala.
•Transazioni Distribuite: Transazioni, proprietà ACID, Transazioni ben formate, Il modello transazionale, Anomalie, Control System: View-Serializability, Conflict-serializability, Two-phase locking, Strict two-phase-locking, Concurrency control based on timestamps. Problema del Deadlocks: algoritmo dello Struzzo, Detection e Recovery, Dynamic Avoidance, Deadlock Prevention.
•Replicazione e Consistenza: Misurazione dell’inconsistenza, Modelli di consistenza, Protocolli di Consistenza, Client-centric Consistency, Eventual Consistency, Contents distribution to replicas, Cache-Coherence Protocols.
•Reti di Petri: definizioni, esempi, proprietà delle reti di Petri.
•BlockChain e Bitcoin: tecnologie distribuited ledger, proprietà no stealing, no double spending e minting, proof of work.
...continua