Università degli Studi di Napoli "Parthenope"

Scheda dell'insegnamento

Anno accademico: 
2016/2017
Tipologia di insegnamento: 
Caratterizzante
Tipo di attività: 
Obbligatorio
Corso di afferenza: 
Corso di Corso di Laurea Magistrale in INFORMATICA APPLICATA
Settore disciplinare: 
INFORMATICA (INF/01)
Crediti: 
6
Anno di corso: 
2
Docenti: 
Ciclo: 
Secondo Semestre
Ore di attivita' frontale: 
48

Obiettivi

Obiettivo del corso di SISTEMI OPERATIVI DISTRIBUITI E LAB. S.O.D. è fornire le conoscenze di base necessarie per la progettazione, installazione, configurazione, gestione ed uso di “Sistemi Operativi Distribuiti”. A tal fine, dopo brevi cenni ai principi fondamentali reti di calcolatori e delle problematiche relative alla comunicazione tra processi, il corso prevede una dettagliata trattazione delle tecniche di progettazione dei moduli di un sistema operativo distribuito. Per una migliore comprensione delle problematiche trattate, il corso prevede anche una adeguata attività di laboratorio tesa da un lato ad esemplificare, tramite importanti casi di studio, le soluzioni tecnologiche per esse adottate; dall'altro a fornire conoscenze riguardo i sistemi, le tecniche e gli strumenti attualmente impiegati nell’utilizzo di sistemi distribuiti.
Conoscenza e capacità di comprensione: Lo studente deve dimostrare di conoscere e saper comprendere gli aspetti teorico-pratici dei sistemi operativi distribuiti, i possibili limiti che tali aspetti inducono sui servizi che essi offrono, con particolare riguardo ai moderni paradigmi di programmazione, ambienti di sviluppo e strumenti SW, necessari per lo sviluppo di efficienti applicazioni distribuite.
Capacità di applicare conoscenza e comprensione: Lo studente deve dimostrare di saper utilizzare la propria conoscenza acquisita per individuare correttamente e produrre le soluzioni per i problemi reali che la gestione/uso di sistemi operativi distribuiti presenta.
Autonomia di giudizio: Lo studente oltre ad essere in grado di progettare ed implementare autonomamente soluzioni basate sull’utilizzo di sistemi distribuiti, deve anche essere in grado di valutare e validarne l’effettiva efficacia.
Abilità comunicative: Lo studente deve essere in grado di partecipare attivamente a gruppi di lavoro sia in attività di progettazione/gestione che in quelle di implementazione/collaudo/documentazione di sistemi distribuiti. In particolare, con riferimento alla capacità di redigere un’appropriata documentazione, risulta fondamentale la conoscenza della corretta terminologia tecnica usata nell’ambito dei sistemi operativi distribuiti.
Capacità di apprendimento: Lo studente deve essere in grado di aggiornarsi ed approfondire le proprie conoscenze accedendo a fonti d’informazione, documentazione e software anche presenti in Internet, nonché aggiornarsi circa le novità tecnologiche dei sistemi distribuiti.

Prerequisiti

L’allievo deve avere un’adeguata conoscenza degli argomenti trattati nei corsi di Architettura dei Calcolatori e Laboratorio di Architettura dei Calcolatori, Programmazione I, II e III e Laboratorio di Programmazione I, II e III e Sistemi Operativi e Laboratorio.

Contenuti

Introduzione ai sistemi distribuiti: Modelli architetturali distribuiti e loro programmazione. Principi, caratteristiche chiave, vantaggi e svantaggi. Scelte di progetto e problematiche connesse. Topologie, tipi di rete di interconnessione. Mezzi trasmissivi. Protocollo e servizi. Prestazioni.
Comunicazione: Paradigmi client-server e IPC. Group communication. Multicast. Meccanismi di invocazione e chiamata remota: Remote Method Invocation (RMI). Remote Procedure Call (RPC). Tipi e semantiche. Esempi.
Tempo e stato di un sistema distribuito: Tempo. Stato. Clock. Sincronizzazione dei clock. Precedenze tra eventi. Registrazione dello stato globale.
Algoritmi di controllo distribuiti: Algoritmi di sincronizzazione e coordinamento. Deadlock. Schedulazione. Elezioni di un leader. Allocazione dei processi nei sistemi distribuiti. Rilevazione della terminazione.
Processi: allocazione, migrazione e bilanciamento del carico.
File system distribuiti: Modello di file service e problematiche di progetto. Casi di studio: NFS, AFS e CODA.
Dsitributed Shared Memory
Sicurezza: Consistenza, modelli di consistenza. Modelli architetturali di replicazione. Transazioni e controllo della concorrenza in sistemi distribuiti.
Apache Hadoop. Hadoop ecosystem: Zookeeper, Spark, Storm.

Metodi didattici

Didattica tradizionale in presenza, tenuta in un laboratorio informatico per analizzare e fare pratica con gli algoritmi e le architetture.

Verifica dell'apprendimento

La verifica dell’apprendimento prevede una prova finale che quantifica il livello di raggiungimento degli obiettivi formativi precedentemente indicati.
La procedura di verifica, come indicato sulla piattaforma di e-learning del Dipartimento di Scienze e Tecnologie, prevede due distinte parti. L’allievo prima presenta/discute un progetto, sviluppato autonomamente, utilizzando un sistema distribuito. Nella seconda parte, sostiene un esame orale volto ad accertare la capacità di individuare, analizzare e proporre soluzioni per le problematiche tipiche dei sistemi distribuiti.

Testi

[1] D. Dhamdhere, “Operating Systems: A Concept-Based Approach”, McGraw-Hill Companies, 2008.
[2] A. S. Tanenbaum, M. Van Steen, “Distributed Systems: Principles and Paradigms”, Prentice Hall, 2002.
[3] G. Coulouris, J. Dollimore, T. Kindberg, G. Blair, "Distributed Systems: Concepts and Design", 2009.
[4] P. K. Sinha, " Distributed Operating Systems: Concepts and Design ", 1997.
[5] A. S. Tanenbaum, "Distributed Operating Systems", 1997.
[6] T. White, "Hadoop: The Definitive Guide, 4th Edition", O’Reilly, 2015.
[7] B. Reed, F. Junqueira, "ZooKeeper. Distributed Process Coordination", O’Reilly, 2013.
[8] M. Zaharia, H. Karau, A. Konwinski, P. Wendell, "Learning Spark Lightning-Fast Big Data Analysis", O’Reilly, 2015.
[9] G. Eisbruch, J. Leibiusky, D. Simonassi, "Getting Started with Storm", O’Reilly, 2015.

Il materiale didattico è disponibile attraverso il Servizio di eLearning del Dipartimento di Scienze e Tecnologie.

Altre informazioni