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:
Cifratura (C), decifrazione (D1) e decrittazione (D2)

Occorre notare la distinzione tra decifrazione e
decrittazione: quest'ultima è l'operazione illegittima in cui
non ci si può avvalere della chiave.
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.
1.
2.
3.
4.
5.
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
deterministica o probabilistica:
di test
può essere
– 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
affidabilità stabile è composta da due fasi principali:
in
– 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
serie/parallelo e sistemi k–of–n.
sono per sistemi
Modelli per valutare l’affidabilità di un sistema:
Guasti indipendenti — 2

Modelli per descrivere sistemi
R1(t)
Rn-1(t)
Rn(t)
Modello con componenti in serie

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,
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

Il sistema con componenti in
parallelo funziona correttamente
se almeno uno dei componenti
funziona correttamente. La distribuzione di fallimento è:
Fparallelo (t) = i = 1,n Fi (t)
L’affidabilità del sistema è:
R1(t)
R2(t)
Rn-1(t)
Rn(t)
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:
a
b
t1
t2
c
d
mostra una connessione di componenti sia in serie che in
parallelo.
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 è:
Fsys =
i = k,n (
n
k
) F (1-F )
k
i
i
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:
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.

Nell’esempio precedente, se a e c sono processori e b e d
sono memorie:
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.
Modelli per valutare l’affidabilità di un sistema:
Guasti correlati — 2

Modelli Marcoviani
Ogni stato della catena è una
coppia (i,j ), dove i indica il
numero di memorie funzionanti e j indica il numero di
processori funzionanti. Nello
stato (3,2), tutti i componenti
sono
funzionanti,
mentre nello stato (2,2) una
delle tre memorie si è
guastata. La catena ha 10
stati. La condizione di funzionamento del sistema è che
esista almeno una memoria
ed un processore funzionante. 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è corrispondenti a fallimento.
Reliability Block Diagram
mem
proc
mem
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.
Scarica

Dependability: i Mezzi per la Garanzia di Funzionamento