Presentazione

Organizzazione della Didattica

DM270
INFORMATICA ORD. 2014

Sistemi concorrenti e distribuiti

6

Corsi comuni

 

Frontali Esercizi Laboratorio Studio Individuale
ORE: 48 0 0 136

Periodo

AnnoPeriodo
I anno1 semestre

Frequenza

Facoltativa

Erogazione

Convenzionale

Lingua

Italiano

Calendario Attività Didattiche

InizioFine
30/09/201918/01/2020

Tipologia

TipologiaAmbitoSSDCFU
caratterizzanteDiscipline informaticheINF/016


Responsabile Insegnamento

ResponsabileSSDStruttura
Prof. VARDANEGA TULLIOINF/01Dipartimento di Matematica

Altri Docenti

Non previsti

Attività di Supporto alla Didattica

Non previste

Bollettino

L’insegnamento assume familiarità con l’architettura degli elaboratori tradizionali, con la struttura e le attività dei loro sistemi operativi, particolarmente per quanto attiene a concorrenza, sincronizzazione e gestione dell’I/O, e dei fondamenti delle reti. Purtuttavia, l’insegnamento non prevede propedeuticità, perché le attività d'aula sono disegnate per aiutare lo studente con lacune a rinfrescare le proprie conoscenze di dominio.

Il corso si propone di: 1) illustrare problematiche e modelli di base e avanzati di concorrenza intesa come parallelismo potenziale, realizzata a software, illustrando e studiando, dal punto di vista del sistema a run-time, le soluzioni proposte da Ada, Java e altri linguaggio dotati di supporto diretto alla concorrenza, come strumenti di sperimentazione e di confronto; 2) analizzare i principi costruttivi e i paradigmi architetturali e realizzativi che stanno alla base dei sistemi distribuiti, nella loro evoluzione da sistemi multiprocessori omogenei a sistemi multicomputer eterogenei, su larga o larghissima scala fino al paradigma del Cloud Computing, anch'essi studiati dal punto di vista del run-time support.

Il corso si compone di due segmenti principali e di un terzo e ultimo tratto. - Nel primo segmento si prendono in esame modelli e paradigmi di programmazione concorrente, concentrandosi sulla concorrenza direttamente esprimibile a linguaggio (ossia senza ricorso a librerie esterne), utilizzando Java e Ada come linguaggi di sperimentazione, ma estendendo l'attenzione ad altri paradigmi linguistici. - Nel secondo segmento si affronta invece l'evoluzione architetturale tecnologica dei sistemi distribuiti, toccando CORBA come paradigma di interconnessione di sistemi eterogenei secondo il modello cliente-servente. - Nel terzo e ultimo tratto, l'insegnamento culmina con l'illustrazione di approcci particolarmente avanzati come virtualizzazione e cloud computing. Nell'ambito di ciascun segmento del corso, il docente propone allo studente esercizi da realizzare in proprio in laboratorio per sperimentare direttamente le problematiche progettuali e realizzative e i paradigmi di soluzione illustrati a lezione.

Problematiche di concorrenza - Introduzione storica e metodologica - Nozione di processo e modalità di sincronizzazione - Un modello concreto e sue progressive estensioni - La dimensione temporale - Cenni sulla virtualizzazione Problematiche di distribuzione - Definizioni fondamentali - Comunicazione e sincronizzazione in distribuito - Il sistema dei nomi e la nozione di statelessness - Soluzioni concrete: Java RMI, Ada DSA, CORBA La frontiera del Cloud Computing - Origini del paradigma - Caratteristiche di applicazioni cloud-native - Le dimensioni della scalabilità.

L'esame di profitto consiste nella redazione e nella discussione di una relazione scritta che illustri le problematiche affrontate nello svolgimento di un tema didattico (pratico o teorico) concordato con lo studente, e le soluzioni tecniche adottate per risolverle.

Il lavoro assegnato in sede d'esame viene accompagnato da intenso dialogo con il docente, che consente allo studente di approfondire le principali problematiche affrontate a lezione e associarle alla realizzazione del progetto assegnato. La stesura della relazione tecnica mette alla prova la capacità di sintesi e di astrazione dello studente; le argomentazioni tecniche sostenute nella relazione consentono di completare la valutazione il grado di apprendimento complessivo dello studente rispetto ai principali temi della materia.

Alan Burns and Andy Wellings, Concurrent and Real-Time Programming in Ada. : Cambridge University Press, 2007 Andrew S Tanenbaum, Maarten van Steen, Distributed Systems - Principles and paradigms. : Pearson Education International, 2006

Il docente pubblica regolarmente tutte le diapositive utilizzate a lezione e anche materiale supplementare utile per l'approfondimento dei temi trattati in aula.