A. Fantechi - Informatica Industriale - Città Studi Edizioni
Obiettivi Formativi
Il corso intende approfondire una serie di tecniche di sviluppo tipiche dei sistemi computerizzati embedded, con particolare enfasi sugli attributi di dependability (affidabilità, disponibilità, safety):
- Conoscenza delle caratteristiche di base che distinguono un sistema “embedded” da un sistema “general-purpose”
- Conoscenza dei principi di base della progettazione di sistemi in tempo reale
- Conoscenza delle principali categorie di processori utilizzate nei sistemi embedded
- Conoscenza dei principi della programmazione host-target
- Conoscenza dei principi della dependability, della valutazione di affidabilità, disponibilità e safety di sistemi.
- Conoscenza dei meccanismi di tolleranza ai guasti: architetture ridondate, meccanismi di rilevazione dei guasti, codici rilevatori di errore.
- Conoscenza dei principi del testing del software, con particolare riferimento al testing strutturale
- Capacità di affrontare correttamente i problemi relativi alla progettazione di sistemi embedded, anche nei settori produttivi dove siano richiesti specifici obiettivi di affidabilità, disponibilità e safety.
- Capacità di applicare le tecniche di valutazione degli attributi di dependability a sistemi di piccola e media complessità
Prerequisiti
Fondamenti della programmazione, dell'architettura dei
calcolatori elettronici, dei sistemi operativi e dell'ingegneria del software
Metodi Didattici
Lezioni in aula alla lavagna o con ausilio di videoproiettore
Esercitazioni in laboratorio
Contatti con aziende attraverso visite e seminari.
Altre Informazioni
CALENDARIO ESAMI INFORMATICA INDUSTRIALE
prove scritte (plesso Morgagni):
10 Gennaio 2019 aula 013 9.00-11.30
31 Gennaio 2019 aula 013 9.00-11.30
21 Febbraio 2019 aula 204 14.30-16.30
13 Giugno 2019 aula 013 9.00-11.30
2 Luglio 2019 aula 004 15.30 - 17.30
18 Luglio 2019 aula 004 9.00-11.30
5 Settembre 2019 aula 013 9.00-11.30
Modalità di verifica apprendimento
La verifica finale consta di una prova scritta, suddivisa in 5 o 6 esercizi:
Due esercizi sono mirati a verificare la capacità di saper presentare correttamente i principi alla base di due tra le conoscenze erogate relativamente a: scheduling real-time, programmazione host-target, meccanismi di tolleranza ai guasti, codici rilevatori di errore, testing,
Gli altri esercizi sono mirati a verificare la capacità di:
- applicare le tecniche di scheduling real-time
- applicare le varie tecniche di valutazione degli attributi di dependability a semplici esempi ispirati a sistemi reali
- individuare casi di test nel testing strutturale di unità
- valutare le caratteristiche principali di codici rilevatori di errore
Lo studente ha la facoltà di chiedere un orale integrativo al fine di dimostrare di aver acquisito una competenza maggiore rispetto a quanto emerso dalla valutazione della prova scritta.
Programma del corso
1) Caratteristiche generali dei sistemi embedded
2) Richiami su macchine a stati finiti, automi a stati finiti riconoscitori di linguaggi - classificazione di chomsky
3) Implementazione di macchine a stati
4) Realizzazione sistemi event-driven con interruzioni
5) Tipici cicli di controllo - vincoli real-time - wcet - task periodici
6) Real time Scheduling
7) Fixed priority scheduling - rate monotonic priority assignment - Earliest deadline first
8) Priority inversion - Priority inheritance
9) Sistemi operativi real-time
10) Introduzione ai processori di utilizzo industriale - classificazione in MPU, MCU, DSP, PLC, PC industriali
11) Dependability - concetti e terminologia
12) Valutazione dell?Affidabilità - failure rate, MTTF
13) Modello MIL-HDBK 217 F per valutazione Affidabilità di componenti Hw
14) Modello combinatorio per la valutazione dell?affidabilità Modelli serie, parallelo, N su M
15) Modello markoviano per la valutazione degli attributi di dependability
16) Disponibilità, Manutenibilità, MTBF, MTTR
17) Safety
18) Tecniche di valutazione qualitativa affidabilità: FMEA / HAZOP / FTA
19) Meccanismi di rilevazione degli errori - duplicazione e confronto
20) Codici rilevatori di errore
21) Principi dei codici correttori di errore e loro applicazioni
22) Fault masking TMR NMR
23) Architetture a ridondanza ibrida
24) Riconfigurabilità - hot spare/cold spare
25) Ridondanza per diversità - Software fault tolerance
26) Esempi di sistemi dependable
27) Introduzione ai metodi formali per lo sviluppo, la specifica e la verifica del SW
28) Introduzione alla verifica formale - Model checking
29) La certificazione software e la Normativa CENELEC
30) Testing del software