Dependability — I mezzi per la garanzia di funzionamento

Slides:



Advertisements
Presentazioni simili
La Comunicazione Bisogno insopprimibile nella vita di ognuno di noi.
Advertisements

Le tecnologie informatiche per l'azienda
Nel ventesimo secolo ci fu la nascita dellinformatica il termine telematica nasce dalla fusione di due termini telecomunicazione e informatica una rete.
Presupposti alla lezione
Sicurezza II Prof. Dario Catalano Errori di Implementazione.
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
RSA Monica Bianchini Dipartimento di Ingegneria dellInformazione Università di Siena.
La Modifica dei Dati in una Base Dati La modifica dei dati contenuti allinterno di una base dati è unoperazione delicata Infatti, ogni potenziale problema.
Sistemi e Tecnologie della Comunicazione
Per crittografia si intende la protezione
DIFFICOLTA’ DEL LINGUAGGIO
CRITTOGRAFIA La crittografia, ovvero la scienza dei messaggi segreti sicuri, nasce come raccolta di tecniche e sistemi per nascondere messaggi tra regnanti,
Gestione dei dati e della conoscenza (agenti intelligenti) M.T. PAZIENZA a.a
Iterazione enumerativa (for)
Politecnico di Milano Algoritmi e Architetture per la Protezione dellInformazione Multichannel Adaptive Information Systems Paolo Maistri Dipartimento.
Strategie per la sicurezza degli host e la sorveglianza delle reti Danilo Bruschi Mattia Monga Dipartimento di Informatica e Comunicazione Università degli.
Testo consigliato Crittografia, P. Ferragina e F. Luccio, Ed. Bollati Boringhieri, € 16.
Processi Aleatori : Introduzione – Parte I
Corso di Informatica (Programmazione)
Struttura dei sistemi operativi (panoramica)
Progettazione di una base di dati
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Limiti al trasferimento di informazione u Il tempo necessario per trasmettere dellinformazione dipende da: –la velocita di segnalazione (cioe quanto velocemente.
Ecdl modulo 7.
Univ. Studi di Roma FORO ITALICO Prof. Stefano Razzicchia 1 UNIVERSITA STUDI DI ROMA FORO ITALICO Corso di Laurea Triennale INFORMATICA Lez. 6.
Scritture Segrete Lezione n. 2
Modulo 7 – reti informatiche u.d. 2 (syllabus – )
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Implementare un modello di dati
CORSO DI CRITTOGRAFIA Terzo incontro PROGETTO LAUREE SCIENTIFICHE
LA CRITTOGRAFIA QUANTISTICA
“ Firma Digitale “ Informatica e Teleradiologia
CORSO DI CRITTOGRAFIA Quinto incontro PROGETTO LAUREE SCIENTIFICHE
Lo sviluppo del progetto informatico
Alla fine degli anni quaranta nasceva il mito del cervello elettronico, e tutte le attività connesse allutilizzo del computer venivano indicate tramite.
Programma di Informatica Classi Prime
L’architettura a strati
I Numeri primi Eratostene e la crittografia.
La sicurezza dei sistemi informatici. Il sistema deve soddisfare i seguenti requisiti di sicurezza (CIANA)  Confidenzialità (Riservatezza)  Integrità.
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
Laurea Ing EO/IN/BIO;TLC D.U. Ing EO 6 PULSE CODE MODULATION (PCM)
Tassonomia dei Sistemi Distribuiti Antonio D'Angelo.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
UNIVERSITÀ DEGLI STUDI DI PAVIA Anno accademico 2009/2010 Sicurezza e frodi informatiche in Internet: la Firma Digitale come garanzia di autenticità e.
Sicurezza informatica
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
STUDIO SULLA REPLICAZIONE DEGLI AGENTI NEL SISTEMA SOMA Andrea Sambi.
Sicurezza delle comunicazioni1 Introduzione Consistente sviluppo delle applicazioni telematiche dovuto a: –Evoluzione tecnologica delle trasmissioni –potenze.
Modelli della Fisica.
Prof. ing. Paolo Bidello AA 2005/2006 Laboratorio Informatico Promemoria degli argomenti: Reti locali (LAN)
Universita` degli studi di Perugia Corso di Laurea in Matematica Attribute Certificate Valentina Hamam Rosa Leccisotti.
Progettazione di basi di dati: metodologie e modelli
CRITTOGRAFIA QUANTISTICA di Davide D’Arenzo e Riccardo Minciarelli.
Comunicazioni. 5.1 POSTA ELETTRONICA 5.1 POSTA ELETTRONICA.
Crittografia/ Steganografia
Informatica Lezione 10 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Cloud SIA V anno.
La firma digitale. Che cosa é la firma digitale? La firma digitale è una informazione aggiunta ad un documento informatico al fine di garantirne integrità.
Politecnico di Milano © 2001 William Fornaciari La tolleranza ai guasti Concetti generali Docente: William Fornaciari Politecnico di Milano
Le basi di dati.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Dispositivi di comando e controllo Dispositivi a logica programmabile.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
Cenni di Crittografia Luigi Vetrano TechnoLabs S.p.A. L’Aquila, Aprile 2011.
4. Controllo Giulio Vidotto Raffaele Cioffi. Indice: 4.1 Strategie generali 4.2 Strategie specifiche 4.3 Ripetizione 4.4 Metodi per aumentare la validità.
Un sistema di sicurezza dei dati.  La crittografia, il cui termine indica "nascosto", è la branca della crittologia che tratta delle "scritture nascoste",
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Sicurezza dei Sistemi Informatici L.S. in Ingegneria Informatica Docente: Prof. Giuseppe Mastronardi CRITTOGRAFIA E CRITTOANALISI ATTACCHI AI SISTEMI DI.
Transcript della presentazione:

Dependability — I mezzi per la garanzia di funzionamento Monica Bianchini Dipartimento di Ingegneria dell’Informazione Università degli Studi di Siena

Dipendenza fra i mezzi per la dependability — 1 …guasto  errore  fallimento … Nonostante la prevenzione del guasto, per mezzo di metodologie di progetto e regole di costruzione, i guasti si verificano  Per garantire la dependability, i guasti devono essere eliminati. Anche le tecniche di eliminazione dei guasti sono imperfette, così come sono imperfetti i componenti commerciali, hardware e software, del sistema, e pertanto è importante la previsione del guasto. La nostra crescente dipendenza dai sistemi di elaborazione porta al requisito della tolleranza al guasto, che a sua volta si basa su regole di costruzione; pertanto nuovamente eliminazione del guasto, previsione del guasto, etc. Si noti che il processo è anche più ricorsivo: gli attuali sistemi di elaborazione sono così complessi che il loro progetto richiede strumenti computerizzati. Anche questi strumenti devono essere a funzionamento garantito, etc.

Dipendenza fra i mezzi per la dependability — 2 L’eliminazione del guasto è strettamente associata con la prevenzione del guasto, a formare le tecniche per evitare i guasti (fault avoidance ). Considerare l’eliminazione del guasto e la previsione del guasto come costituenti la validazione, permette la comprensione della nozione di copertura e del problema della ricorsione: la validazione della validazione, ovvero come raggiungere la confidenza nei metodi e negli strumenti usati per avere confidenza nel sistema. La copertura è una misura della rappresentatività delle situazioni a cui è sottoposto il sistema durante la validazione, in confronto alle reali condizioni operative. Il concetto di copertura imperfetta rafforza la relazione fra eliminazione del guasto e previsione del guasto, perché la necessità di prevedere guasti deriva dalla copertura imperfetta dell’eliminazione del guasto.

Tolleranza al guasto — 1 La tolleranza al guasto (fault tolerance ) è ottenuta per mezzo del trattamento dell’errore e del trattamento del guasto. Il trattamento dell’errore ha lo scopo di rimuovere gli errori dallo stato della computazione, preferibilmente prima del verificarsi di un fallimento. Il trattamento dell’errore può essere eseguito per… Recupero dell’errore, con cui uno stato esente da errore viene sostituito allo stato erroneo; la sostituzione può avvenire con: Recupero indietro, in cui la trasformazione dello stato erroneo consiste nel riportare il sistema in uno stato precedente al verificarsi dell’errore  occorre determinare un punto di recupero; Recupero in avanti, in cui la trasformazione dello stato erroneo consiste nell’evolvere in un nuovo stato dal quale il sistema possa operare, eventualmente in modo degradato. Compensazione dell’errore, in cui lo stato erroneo contiene sufficiente informazione (ridondanza) per permettere la fornitura di un servizio esente da errore a partire dallo stato (interno) erroneo.

Tolleranza al guasto — 2 Quando si usa il recupero dall’errore, occorre che lo stato erroneo venga identificato prima di essere trasformato: questo è lo scopo del rilevamento dell’errore, da cui il termine comunemente utilizzato di rilevamento dell’errore e recupero. Componenti con incorporati meccanismi di rilevamento dell’errore sono componenti autocontrollati. Quando si esegue una compensazione dell’errore in un sistema realizzato con componenti che si autocontrollano suddivisi in classi che eseguono gli stessi compiti (aree di confinamento dell’errore ), la trasformazione di stato è una commutazione da un componente fallito ad uno operativo  approccio alla tolleranza al guasto noto come rilevamento dell’errore e compensazione. La compensazione può essere applicata sistematicamente, anche in assenza di errori, ottenendo il mascheramento del guasto, ad esempio nella votazione a maggioranza.

Tolleranza al guasto — 3 Le tecniche di recupero dall’errore indietro e in avanti non sono mutuamente esclusive: può essere prima tentato un recupero indietro; se l’errore persiste, può essere tentato il recupero in avanti. Nel recupero in avanti, è necessario valutare il danno, causato dall’errore rilevato, o dagli errori propagati prima del rilevamento. Il tempo aggiuntivo necessario per il trattamento dell’errore dipende fortemente dal metodo adottato: Nel recupero dell’errore all’indietro, per esempio, è relativo alla determinazione dei punti di recupero; Nella compensazione dell’errore, il tempo aggiuntivo è lo stesso, o quasi, sia in caso di presenza che di assenza di errore.

Tolleranza al guasto — 4 La durata della compensazione dell’errore è molto più breve della durata del recupero dell’errore, a causa della maggiore quantità di ridondanza strutturale. Questa osservazione… …condiziona la scelta della strategia di trattamento dell’errore; …ha introdotto una relazione fra il tempo aggiuntivo e la ridondanza strutturale; un sistema ridondante ha sempre un comportamento ridondante, caratterizzato da un tempo aggiuntivo di operazione; Il tempo aggiuntivo può essere tanto breve da non essere percepibile dall’utente (che ha granularità temporale meno fine); Con una certa approssimazione, maggiore è la ridondanza strutturale minore è il tempo aggiuntivo necessario.

Tolleranza al guasto — 5 Il trattamento del guasto ha lo scopo di prevenire l’attivazione di guasti ulteriori. Il primo passo nel trattamento del guasto è la diagnosi del guasto che consiste nel determinare le cause degli errori, sia in termini di locazione che di natura. Seguono poi le azioni tese a prevenire che il guasto sia nuovamente attivato, tendendo a renderlo passivo: disattivazione del guasto. Ciò è ottenuto… …rimuovendo i componenti identificati come guasti da ulteriori esecuzioni. Se il sistema non è più capace di fornire lo stesso servizio di prima, allora può aver luogo una riconfigurazione.

Tolleranza al guasto — 6 Se si valuta che il trattamento dell’errore può rimuovere direttamente il guasto, o se la probabilità che si ripresenti è ragionevolmente bassa, la disattivazione del guasto può non essere eseguita. Finché il guasto non viene disattivato, viene considerato come guasto debole (soft ); eseguire la disattivazione del guasto implica considerarlo forte o solido (hard/solid ). Un guasto è debole quando la diagnosi del guasto non ha successo. Le nozioni di guasto debole/forte possono apparire sinonimi delle nozioni di guasto temporaneo/permanente: La tolleranza ai guasti temporanei non necessita del trattamento del guasto, poiché il recupero dell’errore dovrebbe rimuovere direttamente gli effetti del guasto, purché un guasto permanente non sia stato creato nel processo di propagazione.

Tolleranza al guasto — 7 Nel trattare sistemi tolleranti al guasto, si incontrano frequentemente situazioni che coinvolgono guasti e/o fallimenti multipli. Considerando le loro cause si possono distinguere: Guasti indipendenti, che sono attribuiti a cause differenti; Guasti correlati, che sono attribuiti ad una causa comune; i guasti correlati causano in fallimenti a modo comune. La relazione temporale fra fallimenti multipli porta a distinguere: Fallimenti simultanei, che si verificano entro una certa finestra temporale predefinita; Fallimenti sequenziali, che non si verificano entro la stessa finestra temporale.

Tolleranza al guasto — 8 In un sistema tollerante al guasto, che è stato progettato per tollerare un guasto singolo alla volta, è necessario recuperare dagli effetti di un guasto prima che il sistema possa tollerare il guasto successivo. La finestra temporale che separa i guasti simultanei da quelli sequenziali è l’intervallo di tempo necessario per il trattamento dell’errore e possibilmente il trattamento del guasto, durante il quale il sistema è vulnerabile. Un aspetto importante della coordinazione delle attività di componenti multipli consiste nell’evitare che la propagazione degli errori influenzi le operazioni di componenti non falliti.

Tolleranza al guasto — 9 Evitare effetti collaterali su componenti non falliti è particolarmente importante quando un dato componente deve comunicare qualche informazione, che lui solo possiede, ad altri componenti: i componenti operativi devono raggiungere un accordo sul come usare l’informazione ottenuta in modo mutuamente consistente. Attenzione specifica a questo problema è stata dedicata nel campo dei sistemi distribuiti. Sistemi tolleranti al guasto, geograficamente localizzati, possono usare soluzioni al problema dell’accordo che sarebbero giudicate troppo costose in un sistema distribuito classico, composto da componenti che comunicano tramite messaggi.

Tolleranza al guasto — 10 La conoscenza di alcune proprietà del sistema può limitare la quantità di ridondanza necessaria — tolleranza al guasto a basso costo. Esempi di queste proprietà sono le regolarità di natura strutturale: Codici rilevatori e correttori di errore; Strutture dati robuste; Multiprocessori e reti di calcolatori. I guasti tollerati sono dipendenti dalle proprietà che si tengono in conto, in quanto esse intervengono direttamente nelle ipotesi di guasto. È importante la segnalazione del fallimento di un componente ai suoi utenti  gestione dell’eccezione. Presente in alcuni linguaggi, costituisce un modo per implementare il recupero in avanti dell’errore di un componente software.

Tolleranza al guasto — 11 La tolleranza al guasto è un concetto ricorsivo: è essenziale che i meccanismi tendenti ad implementare la tolleranza al guasto siano protetti nei confronti dei guasti che li possono influenzare. Esempi: Replicazione dei votatori; Controllori che si autocontrallano; Memoria “stabile” per il recupero di dati e programmi. La tolleranza al guasto non è limitata ai guasti accidentali. La protezione contro le intrusioni coinvolge tradizionalmente la crittografia. Esistono meccanismi di rilevazione di errore orientati sia ai guasti intenzionali, che accidentali (ad es., tecniche di protezione sugli accessi in memoria) e sono stati proposti schemi per la tolleranza sia alle intrusioni che ai guasti fisici, che alla logica maliziosa.

Crittografia Negli attuali sistemi informativi distribuiti, e più in generale nel settore delle telecomunicazioni, la crittografia ha assunto un rilievo ed un interesse crescenti nelle infrastrutture di sicurezza. La ragione è evidente: un numero considerevole di messaggi viaggia sui canali più disparati, dalla posta al telefono, alle comunicazioni via etere, al telex, fino alle linee di trasmissione dati. Altrettanto enorme è l’nformazione immagazzinata nelle memorie di massa dei calcolatori e nelle banche dati. Se da un lato il progresso tecnologico agevola la manipolazione (e l'intercettazione) dei dati, dall'altro facilita anche l'applicazione della crittografia per proteggere l'informazione stessa.

Crittografia: Terminologia — 1 In un sistema crittografico, il testo in chiaro viene trasformato, secondo regole, nel testo in cifra o crittogramma; tale operazione si chiama cifratura. Il testo cifrato viene quindi trasmesso al destinatario attraverso un opportuno canale di comunicazione. Il canale non sarà completamente affidabile: lungo il percorso può trovarsi una spia che può intercettare il crittogramma e tentare di decifrarlo. Il destinatario legittimo decifra il crittogramma e riottiene il testo in chiaro: se il sistema di cifra, o cifrario, è ben congegnato, l'operazione di decifrazione o  decifratura deve risultare semplice al destinatario legittimo, ma di complessità proibitiva alla spia  possibile in quanto gli interlocutori legittimi possiedono un'informazione che deve rimanere inaccessibile alla spia, la chiave del cifrario.

Crittografia: Terminologia — 2 Il modello delineato è schematizzato in figura: Occorre notare la distinzione tra decifrazione e decrittazione: quest'ultima è l'operazione illegittima in cui non ci si può avvalere della chiave. Cifratura (C), decifrazione (D1) e decrittazione (D2)

Crittografia: Terminologia — 3 Il problema della distribuzione delle chiavi è un punto di importanza cruciale in qualsiasi cifrario: si dice che la chiave è comunicata al destinatario tramite un corriere. Per rendere nota la chiave segreta ci si può affidare ad un canale speciale assolutamente fidato, ma se così è, esso potrebbe essere usato per trasmettere il crittogramma o il messaggio in chiaro.      In realtà, l'uso di un canale speciale è costoso inoltre esso potrebbe essere disponibile solo per brevi intervalli di tempo e/o in determinati momenti. I metodi di costruzione di un cifrario non possono essere disgiunti dallo studio degli eventuali metodi per demolirlo, ovvero non ci si può occupare di crittografia (la parte costruttiva) senza occuparsi di crittanalisi (la parte distruttiva): insieme esse costituiscono una disciplina unitaria detta crittologia. Nell'uso corrente si usa "crittografia" là dove si dovrebbe dire "crittologia".

Crittografia: Algoritmi — 1 Alcuni sistemi crittografici si affidano esclusivamente alla segretezza degli algoritmi utilizzati  solo di interesse storico, inadeguati per le applicazioni reali. Tutti i moderni algoritmi utilizzano una chiave per controllare sia cifratura che decifratura; un messaggio può cioè essere letto solo se la chiave di decifrazione corrisponde in qualche modo a quella di cifratura. Esistono due classi di algoritmi: simmetrici (o a chiave segreta): utilizzano la stessa chiave per cifrare e decifrare (o la chiave di decifrazione è facilmente ottenibile a partire da quella di cifratura); asimmetrici (o a chiave pubblica): utilizzano due chiavi diverse e la chiave di decifrazione non può essere ricavata a partire dalle informazioni contenute nella chiave di cifratura.     

Crittografia: Algoritmi — 2 Gli algoritmi simmetrici possono essere suddivisi in cifrari di flusso e cifrari di blocco. I cifrari di flusso possono crittare un singolo bit del messaggio in chiaro alla volta, mentre i cifrari di blocco trasformano l'informazione a blocchi di bit (tipicamente 64 bit ). I cifrari asimmetrici permettono che la chiave di cifratura sia resa pubblica, consentendo a chiunque di cifrare messaggi con tale chiave, mentre solo il legittimo destinatario (colui che conosce la chiave di decifrazione) può decifrare il messaggio. La chiave di cifratura è anche detta chiave pubblica e la chiave di decifrazione chiave privata o chiave segreta. In generale gli algoritmi simmetrici sono più rapidi di quelli asimmetrici; in pratica vengono utilizzati insieme.

Crittografia: Algoritmi — 3 Il funzionamento di molti dei meccanismi di sicurezza per le transazioni in rete (commercio elettronico e applicazioni affini) infatti utilizzano un algoritmo a chiave pubblica per crittare una chiave di cifratura generata casualmente (detta chiave di sessione); quest'ultima è utilizzata per cifrare il vero messaggio usando un algoritmo simmetrico. Questa soluzione offre buone garanzie di prestazioni e di sicurezza, visto che normalmente gli algoritmi simmetrici sono più rapidi e che la chiave di cifratura viene cambiata ad ogni sessione. Esempio di trasmissione sicura

Esempio: l’algoritmo RSA L'algoritmo RSA (così detto dai nomi degli ideatori R. Rivest, A. Shamir, e L. Adleman) è un algoritmo a chiave pubblica e basa i meccanismi di cifratura e di generazione delle chiavi sulla aritmetica modulare. In particolare, l‘algoritmo RSA sfrutta l'elevamento a potenza in modulo per cifrare e decifrare messaggi costituiti dall'equivalente numerico di un qualsiasi messaggio testuale. Vengono scelti due numeri primi R, S molto grandi; Viene calcolato N=RS e la funzione di Eulero J(N) = (R-1)(S-1) dopo di che i due primi R, S vengono eliminati; Si sceglie un intero P<J(N) e primo con esso; Viene calcolato l'intero K così da avere PK = 1 mod J(N); Vengono resi pubblici i valori P, N che costituiscono la chiave pubblica e mantenuto segreto K che, utilizzato con N rappresenta la chiave privata.

Eliminazione del guasto — 1 L’eliminazione del guasto è composta da tre fasi: verifica, diagnosi e correzione. La verifica è il processo di controllo di aderenza del sistema alle proprietà, dette condizioni di verifica. Se il sistema non rispetta le condizioni di verifica occorre quindi diagnosticare i guasti che ne hanno impedito il rispetto ed eseguire le correzioni necessarie. Dopo la correzione, il processo deve riprendere per poter controllare che l’eliminazione del guasto non abbia conseguenze indesiderate: verifica di non regressione. Le condizioni di verifica possono essere… …condizioni generali, che si applicano ad una data classe di sistemi e sono relativamente indipendenti dalla specifica (ad es., assenza di deadlock, conformità alle regole di progetto e di realizzazione); …condizioni particolari per il sistema considerato, dedotte direttamente dalle sue specifiche.

Eliminazione del guasto — 2 Le tecniche di verifica possono essere classificate a seconda che esse comportino o no la messa in esercizio del sistema. La verifica di un sistema senza effettiva esecuzione è statica, e può essere effettuata: Sul sistema stesso, nella forma di Analisi statica (analisi del flusso di dati, analisi di complessità, controlli a tempo di compilazione); Prova di correttezza; Su un modello di comportamento del sistema (ad es., reti di Petri, automi a stati finiti), per ottenere un’analisi di comportamento.

Eliminazione del guasto — 3 Verificare un sistema tramite la sua messa in esercizio, costituisce la verifica dinamica; gli ingressi forniti al sistema possono essere sia simbolici, nel caso di esecuzione simbolica, che con valori, come nel caso del test di verifica. Il test esaustivo di un sistema rispetto a tutti i suoi possibili ingressi è, in genere, troppo costoso. Le configurazioni di test devono essere opportunamente selezionate, utilizzando criteri… …per la scelta degli ingressi di test, …per la generazione degli ingressi di test.

Eliminazione del guasto — 4 I criteri per la scelta degli ingressi di test possono essere considerati in base a: Lo scopo del test: il controllo se il sistema soddisfa le sue specifiche funzionali prende il nome di test di conformità, mentre il test teso al rilevamento dei guasti si chiama test di individuazione; Il modello del sistema: a seconda se i criteri sono relativi alla funzione o alla struttura del sistema, essi portano rispettivamente al test funzionale e al test strutturale; L’esistenza di un modello di guasto: viene condotto il test basato sul guasto, teso a rilevare particolari classi di guasti (guasti nella produzione dell’hardware, guasti fisici che influenzano il set di istruzioni di un microprocessore, guasti di progetto nel software, etc.). La possibilità di definire un modello di guasto è strettamente correlata allo stadio del processo di sviluppo: più avanzato è lo stadio, più alta è la possibilità di definire un modello di guasto.

Eliminazione del guasto — 5 La generazione degli ingressi di test può essere deterministica o probabilistica: Nel test deterministico, le configurazioni di test sono predeterminate da una scelta selettiva secondo i criteri adottati; Nel test casuale o statistico, le configurazioni di test sono scelte in accordo con una distribuzione di probabilità definita rispetto al dominio degli ingressi. Osservare le uscite del test e decidere se soddisfano o no le condizioni di verifica è noto come problema dell’oracolo. Le condizioni di verifica si possono applicare all’intero insieme delle uscite o ad una funzione compatta che le rappresenti.

Eliminazione del guasto — 6 Poiché la verifica deve essere eseguita durante l’intero sviluppo del sistema, le tecniche precedenti si applicano naturalmente alle varie forme assunte dal sistema durante il suo sviluppo: prototipo, componente, etc. Verificare che il sistema non possa fare di più di ciò per cui è specificato è particolarmente importante rispetto ai guasti intenzionali. Progettare un sistema in modo da facilitare la sua verifica è ciò che si definisce progetto per la verificabilità. L’eliminazione del guasto durante la fase operativa della vita di un sistema è la manutenzione correttiva, tesa a preservare o migliorare la capacità del sistema a fornire un servizio in accordo con la specifica.

Eliminazione del guasto — 7 La manutenzione correttiva può assumere due forme: Manutenzione curativa, tesa a rimuovere guasti che abbiano prodotto uno o più errori e che siano stati registrati; Manutenzione preventiva, tesa a rimuovere guasti prima che producano errori; i guasti possono essere… Guasti fisici, che si siano verificati dalle ultime azioni di manutenzione preventiva, Guasti di progetto, che abbiano portato ad errori in altri sistemi similari. Queste definizioni si applicano sia a sistemi non tolleranti il guasto che a sistemi tolleranti il guasto, che possono essere manutenibili in linea (senza interrompere la fornitura del servizio) o fuori linea. La frontiera fra manutenzione correttiva e trattamento del guasto è relativamente arbitraria; la manutenzione curativa può essere considerata come un mezzo estremo per ottenere tolleranza al guasto.

Previsione del guasto — 1 La previsione del guasto si effettua eseguendo una valutazione del comportamento del sistema rispetto all’occorrenza o all’attivazione del guasto. La vita di un sistema è percepita dal suo utente come un’alternanza fra due stati del servizio fornito, rispetto alla specifica: Servizio corretto, quando il servizio fornito è in accordo con la specifica; Servizio non corretto, quando il servizio fornito non è in accordo con la specifica. Corretto può essere il servizio fornito dal sistema: difficilmente esistono sistemi non guasti, semplicemente possono non avere ancora fallito. Un fallimento è una transizione da un servizio corretto ad un servizio non corretto, e la transizione da un servizio non corretto ad uno corretto è un ripristino.

Previsione del guasto — 2 Quantificare l’alternanza fra servizio fornito corretto e non corretto permette di definire l’affidabilità e la disponibilità come misure della dependability: Affidabilità: una misura della fornitura continua di servizio corretto o, analogamente, del tempo al fallimento; Disponibilità: una misura della fornitura di servizio corretto rispetto all’alternanza fra servizio corretto e non corretto. Una terza misura, la manutenibilità, viene di solito considerata, ed è definita come una misura del tempo al ripristino dall’ultimo fallimento o, analogamente, della fornitura continua di servizio non corretto. Lo stato del servizio corretto e lo stato del servizio conseguente a fallimenti benigni costituiscono lo stato di funzionamento sicuro (esente da danni catastrofici, non dal pericolo).

Previsione del guasto — 3 La sicurezza (di funzionamento, safety ) è una misura della sicurezza di funzionamento continuo o, analogamente, del tempo al fallimento catastrofico  può considerarsi come l’affidabilità rispetto ai fallimenti catastrofici. Una estensione diretta della disponibilità, non fornirebbe una misura significativa: quando un fallimento catastrofico si è verificato, le conseguenze sono talmente importanti che il ripristino del servizio non è di primaria importanza, perché… …è secondario rispetto alla riparazione delle conseguenze catastrofiche; …il lungo periodo prima di permettere la ripresa delle operazioni condurrebbe a valori numerici insignificanti.

Previsione del guasto — 4 Una misura “ibrida” affidabilità–disponibilità può comunque essere definita: una misura della fornitura del servizio corretto rispetto all’alternanza del servizio corretto e del servizio non corretto dopo fallimenti benigni. Fornisce una quantificazione della disponibilità del sistema prima del verificarsi di un fallimento catastrofico, e permette di quantificare il compromesso affidabilità/ disponibilità e sicurezza di funzionamento. Nel caso di sistemi ad operazioni multiple, possono essere distinti diversi modi di fornitura del servizio, dalla piena operatività alla completa inoperatività: misure di dependability per tali sistemi sono misure di prestazione/ affidabilità congiunte (performability ).

Previsione del guasto — 5 Gli approcci principali alla previsione del guasto sono di natura probabilistica, tesi cioè a derivare stime quantitative della dependability, e sono il modellamento ed il test (di valutazione). I due approcci sono complementari, poiché il modellamento necessita di dati relativi ai processi base modellati (processo di fallimento, processo di manutenzione, processo di attivazione del sistema, etc.), che possono essere ottenuti per mezzo del test. Nel caso del modellamento, si distinguono: Affidabilità stabile: la capacità del sistema di fornire servizio corretto è preservata (identità stocastica dei tempi al fallimento successivi); Crescita di affidabilità: la capacità del sistema di fornire servizio corretto è aumentata (incremento stocastico dei tempi al fallimento successivi).

Previsione del guasto — 6 ESEMPI Affidabilità stabile: ad un dato ripristino il sistema è identico a quello precedente il ripristino. Corrisponde alle seguenti situazioni: Nel caso di un fallimento hardware, il componente fallito viene sostituito da un componente operativo identico; Nel caso di fallimento software, il sistema viene riavviato con una configurazione di ingresso differente da quella che ha portato al fallimento. Crescita di affidabilità: il guasto la cui attivazione ha portato al fallimento è diagnosticato come guasto di progetto (dell’hardware o del software) ed è rimosso.

Previsione del guasto — 7 La valutazione della dependability dei sistemi in affidabilità stabile è composta da due fasi principali: Costruzione del modello del sistema a partire dai processi stocastici elementari che modellano il comportamento dei componenti del sistema e le loro interazioni; Elaborazione del modello per poter ottenere le espressioni ed i valori delle misure di dependability del sistema. La dependability di un sistema è fortemente dipendente dal suo ambiente, nel senso più ampio del termine, o, più specificamente, dal suo carico. Quando si valutano sistemi dependable, la copertura dei meccanismi di trattamento dell’errore e del guasto ha una influenza molto significativa; la valutazione può essere effettuata o tramite modellamento o tramite test, chiamato allora iniezione del guasto.

Gli attributi della dependability — 1 Gli attributi della dependability sono stati definiti in accordo a proprietà differenti, che assumono diversi significati in dipendenza della particolare applicazione del sistema di elaborazione: La disponibilità è sempre richiesta, sebbene ad un livello che dipende dall’applicazione; L’affidabilità, la sicurezza e la protezione possono o no essere richieste a seconda dell’applicazione. Una proprietà addizionale, che è un prerequisito per l’ottenimento delle altre proprietà, è l’integrità, cioè la condizione del sistema di non essere deteriorato, sia per dati che programmi, rispetto a guasti accidentali o intenzionali.

Gli attributi della dependability — 2 Le variazioni sull’enfasi da porre sugli attributi della dependability hanno influenza diretta sul giusto bilanciamento delle tecniche da usare perché il sistema risultante sia dependable. Questo è un problema difficile: alcuni degli attributi sono antitetici (ad es., disponibilità e sicurezza, disponibilità e protezione), necessitando di compromessi per essere attuati. La manutenibilità, inoltre, può essere considerata come un ulteriore attributo della dependability, relativo alla facilità con cui possono essere eseguite le azioni di manutenzione.

Gli attributi della dependability — 3 La definizione di protezione — prevenzione dagli accessi non autorizzati e/o gestione non autorizzata della informazione — la caratterizza come la combinazione di… confidenzialità (prevenzione dalla divulgazione non autorizzata di informazione), integrità (prevenzione da cancellazione o variazione non autorizzata di informazione), disponibilità (prevenzione dalla allocazione non autorizzata di informazione). Si noti che: Un accesso o gestione di informazione non autorizzato può derivare sia da guasto accidentale che intenzionale e alcuni meccanismi per proteggere contro gli accessi non autorizzati sono comuni ad entrambi i tipi di guasto; Rispetto ai guasti intenzionali, la nozione di autorizzazione deve essere intesa in senso lato: una persona autorizzata che abusa della propria autorità, viola, eseguendo azioni illegittime, l’autorizzazione che le era stata concessa.

Gli attributi della dependability — 4 L’attendibilità (trustability ) è la capacità dei sistemi fault–tolerant (dovuta alla presenza di procedure di rilevamento dell’errore) di fornire agli utenti informazione di correttezza sul servizio fornito. La valutazione della dependability va oltre le tecniche di validazione descritte, per almeno tre motivi (limitazioni): Controllare con certezza la copertura del progetto o le ipotesi di validazione rispetto alla realtà, implicherebbe una conoscenza ed un dominio della tecnologia usata, dell’uso effettivo del sistema, etc., che vanno ben oltre ciò che è normalmente ottenibile. Eseguire la valutazione di un sistema secondo alcuni attributi di dependability rispetto a qualche classe di guasto è attualmente considerato non possibile o non significativo: le basi teoriche probabilistiche non esistono/non sono largamente accettate; Le specifiche “contro” le quali viene eseguita la validazione non sono esenti da guasti (come qualsiasi altro sistema).

Gli attributi della dependability — 5 Fra le conseguenze di questo stato di cose, si citano… L’enfasi posta sul processo di sviluppo e di produzione quando si valuti un sistema: metodi e tecniche utilizzati e modalità di utilizzo; in alcuni casi viene assegnato un voto al sistema secondo… …la natura dei metodi e delle tecniche usati, …una valutazione della loro utilizzazione. La presenza, in aggiunta ai requisiti probabilistici in termini di misura di dependability, del numero di guasti che devono essere tollerati; tale specifica non sarebbe necessaria se le limitazioni menzionate potessero essere superate. ESEMPI: Per la sicurezza in avionica: i sistemi sono classificati da A1 (“progetto verificato”) a D (“protezione minima”); i software per aerei per trasporto civile sono classificati come Livello 1, 2 o 3 in base alla criticità delle funzioni che devono essere espletate (critiche, essenziali, o non essenziali). Per le applicazioni aerospaziali: viene specificato il numero max di guasti tollerati, sotto la forma di requisiti di “fallimento operativo” o “fallimento non pericoloso”.

Modelli per valutare l’affidabilità di un sistema: Guasti indipendenti — 1 Nel caso in cui i guasti dei componenti di un sistema sono indipendenti, possono essere usati modelli combinatori. Tecniche di calcolo Questi modelli associano ad ogni componente i del sistema una funzione del tempo Ri (t). Lo scopo è quello di derivare la funzione Rsistema (t) che denota la distribuzione di affidabilità del sistema in funzione del tempo. I modelli possono essere applicati sotto le seguenti condizioni: I fallimenti dei moduli sono indipendenti; Una volta che il modulo è fallito, si assume che produca sempre risultati scorretti; Il sistema è considerato guasto se non soddisfa le condizioni di funzionamento di un numero minimo di moduli; Se il sistema è fallito, successivi fallimenti non riportano mai il sistema in uno stato corretto. I modelli combinatori più usati sono per sistemi serie/parallelo e sistemi k–of–n.

Modelli per valutare l’affidabilità di un sistema: Guasti indipendenti — 2 Modelli per descrivere sistemi Il sistema con componenti in serie funziona correttamente solo se tutti i componenti operano correttamente. Se Ri (t) è l’affidabilità di ogni singolo componente i, R1(t) Rn-1(t) Rn(t) Modello con componenti in serie Rserie (t) = i = 1,n Ri (t) dove  indica il prodotto. Inoltre la distribuzione di fallimento F, per un sistema in serie, è: Fserie (t) = 1-Rserie (t) = 1-i = 1,n Ri (t) = 1-i = 1,n [1-Fi (t)]

Modelli per valutare l’affidabilità di un sistema: Guasti indipendenti — 3 R2(t) Rn-1(t) Rn(t) R1(t) Il sistema con componenti in parallelo funziona correttamente se almeno uno dei componenti funziona correttamente. La distri- buzione di fallimento è: Fparallelo (t) = i = 1,n Fi (t) L’affidabilità del sistema è: Modello con componenti in parallelo Rparallelo (t) = 1-Fparallelo (t) = 1-i = 1,n Fi (t) = 1-i = 1,n [1-Ri (t)]

Modelli per valutare l’affidabilità di un sistema: Guasti indipendenti — 4 I modelli chiamati k–of–n servono per descrivere situazioni in cui il sistema è guasto se k degli n componenti si guastano, e dove i componenti sono indipendenti ed hanno la stessa distribuzione di fallimento. La figura: mostra una connessione di componenti sia in serie che in parallelo. a b t1 t2 c d

Modelli per valutare l’affidabilità di un sistema: Guasti indipendenti — 5 Supponiamo che la configurazione funzioni correttamente se almeno uno fra i componenti a e c e b e d, rispettivamente in parallelo, funziona correttamente  si ha una relazione 1–of–2, sia per il primo che per il secondo gruppo di componenti. Supponiamo tutti i componenti identici, indipendenti e con la stessa Ri (t). L’espressione per la distribuzione di fallimento è: i = k,n ( k n ) Fsys = Fi (1-Fi )n-k

Modelli per valutare l’affidabilità di un sistema: Guasti indipendenti — 6 Supponiamo di avere componenti indipendenti, ma diversi fra loro, ad esempio p processori e m memorie condivise. Se il sistema funziona correttamente, nel caso in cui almeno una memoria ed un processore sono funzionanti si ha: Nell’esempio precedente, se a e c sono processori e b e d sono memorie: Fsys = 1-Fm Fp = 1-(1-i = 1,p Ri (t)) (1-j = 1,m Rj (t)) dove Fm è la distribuzione di fallimento delle memorie e Fp è la distribuzione di fallimento dei processori. 2 2 2 2 2 2 Fsys = 1-(1-Rp ) (1-Rm ) = Rp + Rm – Rp Rm

Modelli per valutare l’affidabilità di un sistema: Guasti correlati — 1 Nel caso in cui esiste una relazione fra l’occorrenza dei guasti nei singoli componenti, occorre usare modelli basati sulle catene di Markov (Markov chains ). Tecniche di calcolo Una catena di Markov è un processo stocastico in cui il futuro dipende solo dal presente e non dal passato. Definizione Un processo stocastico X={ Xn: n  } è una catena di Markov, se P { Xn+1=j | X0,…,Xn}= P { Xn+1=j | Xn},  j,n.

Catene di Markov per il sistema con memorie condivise Modelli per valutare l’affidabilità di un sistema: Guasti correlati — 2 Reliability Block Diagram Modelli Marcoviani Ogni stato della catena è una coppia (i,j ), dove i indica il numero di memorie funzio-nanti e j indica il numero di processori funzionanti. Nello stato (3,2), tutti i compo-nenti sono funzionanti, mentre nello stato (2,2) una delle tre memorie si è guastata. La catena ha 10 stati. La condizione di fun-zionamento del sistema è che esista almeno una memoria ed un processore funzionan-te. Questo è modellato nella catena di Markov tramite gli stati (0,1), (0,2), (1,0), (2,0) e (3,0) che sono stati assorbenti, cioè corrispon-denti a fallimento. proc mem Catene di Markov per il sistema con memorie condivise 32 22 12 02 31 21 11 01 30 20 10

La dependability Sempre di più, individui ed organizzazioni stanno sviluppando o acquistando sofisticati sistemi di elaborazione, sui cui servizi devono riporre assoluta fiducia, per… …servire distributori automatici di denaro, …calcolare orbite di satelliti, …controllare un aereo o un impianto nucleare, …mantenere la confidenzialità di una base di dati riservata. In circostanze differenti, l’attenzione viene posta su proprietà diverse dei servizi forniti: il tempo medio di risposta, la probabilità di produrre i risultati richiesti, la capacità di evitare fallimenti catastrofici per l’ambiente del sistema, la capacità di prevenire intrusioni. La nozione di dependability fornisce un mezzo molto conveniente per circoscrivere le varie richieste in un quadro concettuale unico, includendo, quali casi particolari, proprietà come l’affidabilità, la disponibilità, la sicurezza e la protezione.