Ci si può fidare dei computer?
Ad oggi i sistemi informatici sono utilizzati in molteplici scenari critici sia dal punto di vista economico (business critical) sia in termini di affidabilità e sicurezza (mission critical):
Un SISTEMA è una qualsiasi entità in grado di interagire con altre entità (sistemi o utenti umani);
Un SERVIZIO è il comportamento del sistema percepito dall’utente. Un servizio è corretto (proper service) se è conforme alle specifiche. Qualora il servizio fornito non sia corretto si parla di failure;
L’INTERFACCIA è il confine tra il sistema e l’utente. L’interfaccia su cui viene fornito il servizio è detta service interface.
“…the ability to deliver service that can
justifiably be trusted” (Laprie, 2001)
“…ability to avoid service failures that
are more frequent and more severe than acceptable” (Laprie, 2004)
L’Availability è la disponibilità di un sistema
A=P(!Failure at t)
Un sistema è available in un certo istante se in quell’istante è in grado di fornire un servizio corretto.
L’Availability è interpretata come un valore medio, ossia come la probabilità che in un dato istante il sistema sia UP o DOWN.
Un sistema indisponibile due secondi al minuto ed uno indisponibile per un intero giorno ogni anno hanno lo stesso valore di availability!!
La Reliability è la misura della durata dell’intervallo di tempo per cui il sistema fornisce, in maniera continuativa, un servizio corretto
R(t)=P(!Failure in (0,t))
Detta F(t) la CDF del tempo di fallimento
R(t)=1-F(t)
Un sistema che fallisce in media una volta all’ora ma che si ripristina automaticamente in 10 ms è
La Safety è l’assenza di condizioni di funzionamento del sistema che possano provocare danni a persone/cose
S(t)=P(!CatastrophicFailure in (0,t))
Un fallimento è dichiarato catastrophic in base ad una valutazione soggettiva dei rischi.
La Performability è una metrica introdotta per valutare le prestazioni del sistema anche in caso di guasto.
La Mantainability è la capacità di un sistema di essere facilmente sottoposto a modifiche e riparazioni.
Per una stima quantitativa del grado di dependability di un sistema è necessario valutare parametri specifici...
Un sistema che fallisce in media una volta all’ora ma che si ripristina automaticamente in 10 ms. è
Un sistema può fallire in ogni fase del suo ciclo di vita e per via di differenti cause:
e tante altre … SORGENTI DI FALLIMENTO
Un guasto (fault) è uno stato improprio dell’hardware e/o del software del sistema derivante dal guasto di un componente, da fenomeni di interferenza o da errori di progettazione.
I guasti possono essere classificati in diversi modi a seconda della loro natura, origine, persistenza ed intenzionalità (Avizienis, 1985).
Classificazione dei guasti
FAULTS
FAULTS
FAULTS
FAULTS
Un errore è la parte dello stato di un sistema che può indurre lo stesso al fallimento ovvero a fornire un servizio non conforme alle specifiche (unproper service).
La causa di un errore è un fault.
FAULT → ERROR
È possibile che un fault generi più di un errore all’interno del sistema, in tal caso si parla di multiple related errors.
1. Caratterizzazione dei sistemi distribuiti
2. Modelli di sistemi distribuiti
3. Tempo e sincronizzazione nei Sistemi Distribuiti
4. Stato globale nei Sistemi Distribuiti
5. Problemi di consenso nei sistemi distribuiti
7. Algoritmi di mutua esclusione nei sistemi distribuiti
8. Algoritmi di elezione nei sistemi distribuiti
10. Il Network File System di SUN Microsystems
11. AFS (Andrew File System) e GFS (Google File System)
12. Transazioni e controllo di concorrenza
13. Transazioni
15. Affidabilità (dependability) dei sistemi software distribuiti
16. Affidabilità dei sistemi software distribuiti
17. Software Faults
18. Classificazione e analisi dei difetti software