logo-polimi
Loading...
Risorse bibliografiche
Risorsa bibliografica obbligatoria
Risorsa bibliografica facoltativa
Scheda Riassuntiva
Anno Accademico 2019/2020
Scuola Scuola di Ingegneria Industriale e dell'Informazione
Insegnamento 085743 - SISTEMI INFORMATICI
Docente Gatti Nicola
Cfu 8.00 Tipo insegnamento Monodisciplinare

Corso di Studi Codice Piano di Studio preventivamente approvato Da (compreso) A (escluso) Insegnamento
Ing Ind - Inf (1 liv.)(ord. 270) - MI (355) INGEGNERIA DELL'AUTOMAZIONE*AZZZZ085743 - SISTEMI INFORMATICI

Obiettivi dell'insegnamento

L'obiettivo dell'insegnamento è di introdurre gli strumenti informatici necessari per lo sviluppo di una applicazione di automazione e controllo e le problematiche che si generano qualora questi strumenti vengono utilizzati. Il corso analizzerà aspetti che vanno dal livello hardware della macchina al livello di applicazione, esaminando le varie implicazioni che si generano. Molta enfasi viene data alle problematiche che si sollevano qualora un sistema di automatizione e controllo viene sviluppato utilizzando il computer e come queste possono essere risolte tramite tecniche standard.


Risultati di apprendimento attesi

Ci si aspetta che uno studente abbia consapevolezza di tutte le problematiche che si generano quando si sviluppa un sistema di automazione e controllo usando un computer. Lo studente saprà:

* come usare le tecniche di interfacciamento tra il computer e il mondo esterno;

* come modellare il problema di schedulazione dei processi del sistema di automazione e controllo;

* come scegliere i migliori algoritmi per la schedulazione dei processi;

* studiare le proprietà di un problema di schedulazione non standard;

* gestire le problematiche relative all'ingegneria del software;

* scrivere programmi nel paradigma objected oriented;

* specificare il funzionamento di un sistema mediate il linguaggio degli StateCharts.


Argomenti trattati
  1. Architettura del calcolatore: 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.
  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. Gestione I/O. 
  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à, 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.
  4. Real-time e reti di comunicazione. 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.
  5. Principi di Ingegneria del software. Sviluppo di applicazioni software. Ciclo di vita del software. Paradigmi di programmazione. Linguaggi di specifica semiformali. Programmazione in linguaggio Java (con laboratori).
  6. Statecharts. Introduzione al formalismo degli Statecharts. Formalizzazione di problemi basati su concorrenza e su gerarchia. 

Prerequisiti

Il corso di Fondamenti di Informatice è suggerito, ma non è necessario averlo sostenuto.


Modalità di valutazione

L'esame è costituito da un unico compito scritto della durata di 2.5 ore e costituito dalle seguenti domande:

* esercizio di statecharts;

* esercizio di schedulazione;

* domanda teorica su qualunque argomento presentato durante le ore di teoria.

*esercizio di Java.


Bibliografia
Risorsa bibliografica obbligatoriaGiorgio Buttazzo, Sistemi in Tempo Reale, Editore: Pitagora Editrice, Anno edizione: 2006
Risorsa bibliografica obbligatoriaAbraham Silberschatz, Greg Gagne, Galvin P. Baer, Sistemi operativi: concetti ed esempi, Editore: Pearson editore, Anno edizione: 2009

Forme didattiche
Tipo Forma Didattica Ore di attività svolte in aula
(hh:mm)
Ore di studio autonome
(hh:mm)
Lezione
52:00
78:00
Esercitazione
28:00
42:00
Laboratorio Informatico
0:00
0:00
Laboratorio Sperimentale
0:00
0:00
Laboratorio Di Progetto
0:00
0:00
Totale 80:00 120:00

Informazioni in lingua inglese a supporto dell'internazionalizzazione
Insegnamento erogato in lingua Italiano
schedaincarico v. 1.6.1 / 1.6.1
Area Servizi ICT
28/02/2020