| | | corso | | | |
Sistemi Affidabili
Codice: | AA288 | Crediti: | 6 | Semestre: | 2 | Sigla: | SA | |
Docente
Felicita Di Giandomenico
Obiettivi di apprendimento
Questo corso si propone di introdurre le problematiche legate alla
Dependability (garanzia di funzionamento) dei sistemi di elaborazione
(hardware-software). Sistemi critici con elevati requisiti di affidabilità e
disponibilità sono sempre più diffusi. Questo corso mira a fornire le
conoscenze fondamentali per la progettazione e la validazione di sistemi con
adeguate caratteristiche di affidabilità, disponibilità e sicurezza.
Descrizione
Verranno introdotti i concetti di dependability (proprietà di un sistema di
elaborazione che permette di riporre fiducia in modo giustificato nel
servizio che questo fornisce) dei sistemi di elaborazione
(hardware-software) e alcune tecniche di prevenzione, tolleranza,
eliminazione e previsione dei guasti che devono essere usate in modo
combinato nella progettazione e validazione di sistemi dependable.
English Description
This course introduces the concept of Dependability of computer systems
(hardware and software). Dependability is that property of a computer system
such that reliance can justifiably be placed on the services it delivers.
The course will thus show (some of) the techniques for fault prevention,
tolerance, removal and forecasting, which must be combined together to
design and validate dependable systems.
Programma
Introduzione
Concetti di base di tolleranza ai guasti ed affidabilità: guasti, errori e
fallimenti. Prevenzione del guasto, tolleranza al guasto, eliminazione del
guasto e previsione del guasto.
Tecniche di progetto di sistemi hardware affidabili
Tecniche di prevenzione del guasto: variazioni ambientali, variazioni di
qualità, livello di integrazione dei componenti. Tecniche di rilevazione
del guasto: duplicazione, codici rilevatori di errore, logica self-checking
e fail safe. Tecniche di ridondanza per mascheramento - statica: ridondanza
N modulare con votazione, codici correttori di errore - dinamica:
riconfigurazione e recovery.
Software Dependability
Approccio 'Safety Net': asserzioni eseguibili con exception handling e
strutture dati robuste. Programmazione difensiva.
Principio di design diversity. 'Structured' software fault tolerance:
recovery blocks e loro evoluzione, programmazione ad n-versioni e relativa
metodologia. Tecniche intermedie e/o combinate: programmazione
n-self-checking, SCOP, recovery blocks distribuiti ecc. Problemi associati
alla applicazione di design diversity: Votatori inesatti, mascheramento
degli errori. Impatto architetturale della software fault tolerance.
Valutazione delle prestazioni ed affidabilità
Definizioni statistiche associate alla prestazione di un sistema e alle sue
caratteristiche di affidabilità. Modellazione della dependability ed
interazioni con le altre tecniche di fault forecasting quali testing e fault
injection. Packages automatizzati di calcolo di affidabilità: ULTRASAN e
DEEM.
Architettura di sistemi commerciali affidabili di medie e grandi dimensioni
Verrà esaminata l' architettura del sistema GUARDS, quale esempio di
architettura generica per sistemi affidabili in tempo reale.
Bibliografia
- Siewiorek, D.P, Swarz R."Reliable Computer Systems: Design and
Evaluation", Prentice Hall, 1992
- Anderson, T, Lee P.A., "Fault-Tolerance: Principles and Practice",
Springer-Verlag, 1991
- Lyu, M., ed., "Software Fault Tolerance", John Wiley & Sons, 1995
- J. C. Laprie, "Dependability - its Attributes, Impairments and Means," in
"Predictably Dependable Computing Systems", B. Randell, J. C. Laprie, H.
Kopetz and B. Littlewood Ed., Springer-Verlag, 1995, pp. 1-28.
Modalità di esame
Progettino e Prova Orale