Concetti di Dependability. Guasti, errori e fallimenti. Tecniche di rilevazione e di ridondanza. Software Dependability. Introduzione al tempo reale. Tempo ed ordinamento degli eventi. Modelli di sistema sincrono, asincrono e modelli intermedi.
Esempi di architetture per sistemi affidabili.
Libri/articoli di consultazione:
Siewiorek, D.P, Swarz R."Reliable Computer Systems: Design and Evaluation", 3rd edition, A. K. Petres, Ltd., 1998
Avizienis, A.; Laprie, J.-C.; Randell, B.; Landwehr, C. “Basic concepts and taxonomy of dependable and secure computing”
IEEE TDSC, Vol. 1 Page(s): 11- 33, 2004
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. 3-24.
Lyu, M., ed., "Software Fault Tolerance", John Wiley & Sons, 1995
B. Randell, "System Structure for Software Fault Tolerance," IEEE TSE, Vol. SE-1, pp. 220-232, 1975.
J.C. Laprie, J. Arlat, C. Beounes and K. Kanoun, "Definition and Analysis of Hardware-and-Software Fault-Tolerant Architectures," IEEE Computer, Vol. 23, pp. 39-51, 1990.
Bondavalli,A. Di Giandomenico, F. and Xu, J. ,"A Cost-Effective and Flexible Scheme for Software Fault Tolerance," Journal of Computer Systems Science and Engineering, Vol. 8, pp. 234-244, 1993.
P.G. Bishop, F.D. Pullen, "Failure Masking: a Source of Failure Dependency in Multiversion Programs", in Dependable Computing for Critical Applications, Santa Barbara, 1989, pp. 25-32
U. Voges, editor, Software Diversity in Computerized Control Systems, Springer Verlag, 1988
Powell, D. "Failure mode assumptions and assumption coverage", 22 International Symposium on Fault-Tolerant Computing, 8-10 Jul 1992
D. Powell Ed., "A Generic Fault-Tolerant Architecture for Real-Time Dependable Systems", Kluwer Academic Publishers, 2001.
Paulo Verissimo, Luis Rodrigues, “ Distributed Systems For System Architects”, Kluwer Academic Publishers, 2004
Obiettivi Formativi
Conoscenze:
Il corso si propone di introdurre le problematiche relativa alla progettazione e validazione di sistemi con requisiti di criticita' e di tempo. Fornisce la conoscenza dei concetti alla base della disciplina e delle principali tecniche sia al livello di architettura di sistema sia a quello sempre piu' importante del software.
Competenze acquisite
Competenze riguardo alla progettazione e validazione di sistemi di elaborazione con requisiti di criticita' e vincoli temporali. Acquisizione di tecniche e paradigmi architetturali sviluppati in letteratura per rispondere a requisiti di criticita' imposti da molti campi applicativi. Apprendimento anche attraverso casi di studio nell’ ambito di architetture per sistemi affidabili.
Capacità acquisite al termine del corso.
Capacita' di: i) ragionare sulle implicazioni di requisiti non funzionali riguardanti soprattutto dependability e real time sulle scelte architetturali per il sistema in sviluppo; ii) orientarsi nelle soluzioni fault tolerant secondo principali schemi e tecniche gia' consolidati; iii) orientarsi nell’ambito dei principali meccanismi e tecniche proposti per rispondere a requisiti di tempo reale.
Altre Informazioni
Numero di ore totali del corso: 150
Numero di ore per studio personale e altre attività formative di tipo individuale: 102
Numero di ore relative alle attività in aula: 48
Modalità di verifica apprendimento
Modalità:
Elaborazione di un progetto e prova orale. Condizione per l’ammissione alla prova orale e' l’accettazione della relazione sul progetto.
Programma del corso
Introduzione: Concetti di base di Dependability. Attributi di dependability: affidabilita', disponibilita', safety. La catena guasti, errori e fallimenti. Prevenzione del guasto,tolleranza al guasto, eliminazione del guasto e previsione del guasto.
System Dependability: Tecniche di rilevazione del guasto: duplicazione, codici rilevatori di errore, logica self-checking e fail safe. Tecniche di ridondanza per mascheramento
Software Dependability: Approccio Safety Net. Principio di design diversity. Structured software fault tolerance: recovery blocks, programmazione ad n-versioni. Problemi associati alla applicazione di design diversity: Votatori inesatti, mascheramento degli errori.
Aspetti di tempo reale: introduzione, Tempo ed ordinamento degli eventi, Time base, Rs&A Clock, Cenni alla schedulazione, Modelli di sistema: modello sincrono ed asincrono, Il consenso ed il Teorema FLP, Modelli intermedi: Failure detectors, Timed Asynchronous, Wormholes.
Esempi di architetture per sistemi affidabili: SIFT, GUARDS Hidenets e Crutial.