Nicola Gatti

Informatica Industriale - A.A. 2008/2009
nel Corso di Laurea Triennale in Ingegneria Automatica


Docente: Nicola Gatti (ngatti@elet.polimi.it)
Esercitatore: Manuel Roveri (roveri@elet.polimi.it)

Il corso di Informatica Industriale é focalizzato sullo studio delle problematiche e delle tecniche alla base dell'utilizzo del calcolatore e delle reti di calcolatori per applicazioni di controllo. Gli argomenti trattati riguardano l'architettura del calcolatore e il suo funzionamento con particolare attenzione al meccanismo degli interrupt, l'interfacciamento del calcolatore per l'acquisizione e l'emissione di dati dal/al mondo esterno, la gestione dei processi e il problema della schedulazione real-time di questi, la gestione dell'overload, le reti dei calcolatori e la loro organizzazione e, infine, la gestione del real-time su reti di calcolatori e la loro sincronizzazione.

Organizzazione del corso

Il corso si struttura in 32 ore di lezione tenute dall'Ing. Nicola Gatti e 20 ore di esercitazione tenute dall'Ing. Manuel Roveri. Le ore del mercoledí saranno prevalentemente di lezione, mentre le ore del giovedí saranno prevalentemente di esercitazione. Nelle ore di esercitazione vengono svolti esercizi su problematiche e tecniche spiegate a lezione. L'esatta distribuzione delle ore di lezione ed esercitazione verrá comunicata durante il corso.

Conoscenze propedeutiche

Il corso richiede le conoscenze basilari di informatica fornite dai corsi di informatica precedenti (Fondamenti di Informatica e Sistemi Informatici). Non richiede peró alcuna conoscenza approfondita di programmazione, in quanto durante il corso non si affrontano problemi di programmazione. Conoscenze di programmazione possono essere utili per lo sviluppo di possibili lavori di tesi.

Programma dettagliato del corso

  1. Introduzione ai sistemi di controllo distribuiti. Evoluzione dei sistemi di controllo: dal singolo regolatore ai moderni sistemi di controllo distribuito. Caso di studio: sistema di automazione basato su DCS per la produzione di energia elettrica da rifiuti non pericolosi realizzato dalla SDI Automazione Industriale nella provincia di Bergamo. Introduzione all'uso del calcolatore all'interno dei sistemi controllo: potenzialità e problematiche.

    1. G. Ferretti, G.A. Magnani, P. Rocco, Tecnologie dei sistemi di controllo, McGraw Hill, 2007. (Capitolo 10: Sistemi elettronici per il controllo.)

    2. SDI Automazione Industriale, Sistema di controllo distribuito dell'impianto di produzione di energia elettrica da rifiuti non pericolosi, documento dispobinile su: http://www.sdiautomazione.it/pdf/mkta_bas.pdf

  2. Introduzione alle problematiche del controllo mediante singolo calcolatore (1): architettura del calcolatore. Introduzione alla progettazione di un controllore che opera su di un singolo calcolatore: ingressi, uscite, e attività del processo di controllo. Architettura del calcolatore e funzionamento del calcolatore: architettura di von Neumann ed esecuzione delle istruzioni. Interruzioni e loro gestione. Direct Memory Access (DMA). Tecniche di interfacciamento.

    1. S. Ceri, D. Mandrioli, L. Sbattella, Informatica arte e mestiere, McGraw Hill, 2004. (Capitolo 2: Architettura di un calcolatore.)

    2. A. Silbershatz, P.B. Galvin, G. Gagne, Sistemi operativi. Concetti ed esempi, Person Education Italia, 2002. (Capitoli 13.2.2 e 13.2.3.)

  3. Introduzione alle problematiche del controllo mediante singolo calcolatore (2): sistema operativo. Introduzione al sistema operativo. Gestione dei processi: stati dei processi, transizione, tabella dei processi. Problemi legati alla concorrenza: mutua esclusione e sincronizzazione. Introduzione alle deadlock. Uso dei monitor. Comunicazione tra processi. Gestion I/O. Esempio di architettura di controllo basata su calcolatore: Milan Robocup Team (MRT).

    1. A. Silbershatz, P.B. Galvin, G. Gagne, Sistemi operativi. Concetti ed esempi, Person Education Italia, 2002. (Capitoli 1, 3, 6, 13.3.)

  4. Introduzione alle problematiche del controllo mediante singolo calcolatore (3): schedulazione real-time. Introduzione al problema del real-time e alla schedulazione di processi. Algoritmi per la schedulazione di processi aperiodici: Late Deadline First (LDF) e dimostrazione di ottimalità, Erliest Deadline First (EDF) e dimostrazione di ottimalità, EDF con processi con precedenze (EDF*), Bretley e Spring. Algoritmi per la schedulazione di processi periodici: Rate Monotonic (RM) e dimostrazioni di ottimalità e schedulabilità, Earliest Deadline First (EDF) e dimostrazione di schedulabilità, Deadline Monotonic (DM) e Response Time Analysis (RTA). Algoritmi per la schedulazione di processi misti a priorità statica: Deferrable Server (DS) e dimostrazione di schedulabilità, Slack Stealing (SS), teorema di Tia-Liu-Shankar. Algoritmi per la shedulazione di processi misti a priorità dinamica: EDF e Total Bandwith Server (TBA). Gestione delle condizioni di overload: problematiche, fattore competitivo, limiti teorici sul fattore competitivo, algoritmo Dover.

    1. G. Buttazzo, Hard-Real Time Computing Systems: Predictable Scheduling ALgorithms and Applications, Springer, 2004. (Capitoli 1-6, 8.)

  5. Introduzione alle problematiche del controllo mediante reti di calcolatori (1): architettura di rete. Introduzione alle reti di calcolatori. Topologia e commutazione. Pila protocollare TCP/IP: escrizione dei livelli protocollari. Standard per il livello fisico. Standard per il livello di collegamento dati: Ethernet. Standard per il livello di rete: IP. Standard per il livello di trasporto: TCP e UDP.

    1. A. Silbershatz, P.B. Galvin, G. Gagne, Sistemi operativi. Concetti ed esempi, Person Education Italia, 2002. (Capitolo 16: Strutture dei sistemi distribuiti.)

  6. Introduzione alle problematiche del controllo mediante reti di calcolatori (2): real-time. Introduzione alla problematica del real-time su reti di calcolatori. Elementi aggiuntivi di rete: hub, switch. Ethernet real-time e studio della schedulazione real-time della comunicazione dei pacchetti. Sincronizzazione interna ed esterna dei calcolatori sulla rete.

    1. H. Hoang, M. Jonsson, Switched Real-Time Ethernet in Industrial Application - Deadline Partitioning, negli atti del congresso Asia-Pacific Conference on Communications, 2003, vol. 1, pag 76-81.

    2. A.C. Shaw, Real-Time Systems and Software, Wiley, 2001. (Capitolo 8: Keeping Time on Computers.)

  7. Esercizi su Statecharts. Introduzione al formalismo degli Statecharts. Formalizzazione di problemi basati su concorrenza e su gerarchia.

    1. D. Harel, Statecharts: a Visual Formalism for Complex Systems, Science of Computer Programming, vol. 8, 1987, pag. 231-274.

  8. Incontri con aziende operanti nel settore. Verranno programmati durante il corso alcuni seminari con aziende che operano nel settore.

    1. Ing. Massimiliano Veronesi della Yokogawa Italia srl. (Slides)

Modalità d'esame

L'esame è costituito da un compito scritto. Il compito è diviso in due esercizi e due domande teoriche. Il primo esercizio riguarda la specifica mediante Statecharts di un problema dato, il secondo esercizio verte su problemi di schedulazione real-time. Le domande teoriche possono riguardare un qualunque argomento trattato durante il corso. Non sono previste prove in itinere ne orali a complemento del compito scritto.

Materiale aggiuntivo

Sono dispobili le slides utilizzate per il corso tenuto nell'anno accademico 2006/2007 (Slides). Si tenga presente che le slides non coprono tutti gli argomenti facenti parte del programma di quest'anno, e, allo stesso tempo, nelle slides sono presenti argomenti fuori dal programma di quest'anno.


Competizione su algoritmi di schedulazione real-time

Durante il corso verranno proposte tre competizioni sullo sviluppo di algoritmi di schedulazione real-time efficienti. Ogni competizione richiede lo sviluppo di uno specifico algoritmo. Il software dovra' essere sviluppato in linguaggio C e dovranno essere consegnati i sorgenti. Le classifiche terranno in conto il tempo impiegato per schedulare un dato caso di studio. I punti ricevuti nella competizione si sommeranno al punteggio d'esame. Il regolamento generale delle competizioni si trova in (PDF). Dettagli sulle tre specifiche competizioni seguiranno.

Le tre competizioni sono su: (competizione 1) RM+DS, (competizione 2) EDF+TBS*, (competizione 3) EDF*+D_over. E' possibile scaricare le istruzioni di ogni competizione e un caso di studio di test su cui provare i propri algoritmi. Ogni studente o coppia di studenti che voglia partecipare alle competizioni deve inviare una email a Gatti e Roveri specificando i nomi degli studenti e la competizione a cui si vuole partecipare (è possibile partecipare a più competizioni). E necessario iscriversi alle competizioni entro il 31/12/2008. La competizione ha termine alla mezzanotte del 17/01/2009. Entro questo termine tutti i partecipanti dovranno aver mandato il proprio software (file in C) a Gatti e Roveri.