210 likes | 331 Views
Informatica Industriale. Monica Bianchini Dipartimento di Ingegneria dell’Informazione Università degli Studi di Siena. Scopi del corso. Il corso di Informatica Industriale si rivolge al trattamento delle situazioni di guasto di un sistema computerizzato.
E N D
Informatica Industriale Monica Bianchini Dipartimento di Ingegneria dell’Informazione Università degli Studi di Siena
Scopi del corso • Il corso di Informatica Industriale si rivolge al trattamento delle situazioni di guasto di un sistema computerizzato. • Le situazioni di guasto possono essere sperimentate nella pratica quotidiana di utilizzo di un PC, ma in generale producono danni molto limitati. • I computer stanno progressivamente soppiantando l'uomo in molte funzioni, alcune delle quali rivestono enorme importanza economica o sono fondamentali per la sicurezza fisica delle persone. • In questi casi, i danni provocati da una situazione di guasto possono essere notevoli, sia in termini economici che di vite umane Importanza di un corretto approccio al trattamento ed alla prevenzione di situazioni di guasto.
Errore in un procedimento di calcolo • Tecniche di rilevamento dell’errore — error detection • Tecniche di correzione dell'errore — error correction • Il fattore temporale
Tecniche di rilevamento dell’errore – 1 Metodi per il rilevamento degli errori nei procedimenti di calcolo aritmetici: • Verifica con rifacimento dell'operazioneL'operazione viene eseguita due volte; se i risultati concordano, si conclude che non si è verificato nessun errore, altrimenti si deduce che una delle due esecuzioni è errata. • Vantaggi: Si rilevano tutti gli errori (singoli); • Svantaggi: Duplicazione del costo computazionale.
Tecniche di rilevamento dell’errore – 2 • Data una funzione f (x1,...,xn ), si esegue la verifica f(x1,...,xn) = f(x1,...,xn), ovvia tautologia, il cui fallimento rileva il malfunzionamento di un’applicazione (o di entrambe le applicazioni!) della funzione f. Chiameremo questo meccanismo duplicazione e confronto. • Il meccanismo di duplicazione e confronto rappresenta un esempio di ridondanza (nelle risorse di calcolo, in termini fisici o temporali) ai fini del rilevamento dell'errore. • L'errore non può essere rilevato quando entrambe le applicazioni della funzione f falliscono producendo lo stesso valore errato: fallimento di modo comune — common mode failure. D'altra parte la natura della funzione f e della procedura di calcolo potrebbero far ritenere il fallimento di modo comune molto raro.
Tecniche di rilevamento dell’errore – 3 • Prova del noveDati x1, x2, x1+x2, si verifica che (x1mod9 + x2mod9)mod9 = (x1 + x2)mod9. • Vantaggi: Veloce, semplice; in particolare, in base 10, l'operazione di modulo 9 si esegue molto facilmente; • Svantaggi: Non tutti gli errori possono essere rilevati. • ESERCIZIO: data una rappresentazione posizionale in base B, si dimostri che l'operazione xmod(B-1) si esegue sommando tra loro, modulo B-1, tutte le cifre della rappresentazione di x.
8 8 8 6 6 6 OK 35 + 24 = 59 35 + 24 = 50 35 + 24 = 58 5 5 5 5 5 4 NO OK ?!? Esempio
Tecniche di rilevamento dell’errore – 4 • Data una funzione f (x1,...,xn), viene utilizzata una funzione omomorfa f’, definita su un dominio D’ omomorfo a D su cui è definita la f Esiste una corrispondenza R che associa ad ogni elemento di D’ un elemento di D, in modo tale che f’(R(x1),...,R(xn)) = R(f(x1,...,xn)). • È la verifica di questa uguaglianza che si effettua per rilevare l'errore, contando sull fatto che l'esecuzione di f’ è più semplice e meno costosa dell'esecuzione di f. • In caso di mancata uguaglianza dei risultati si è verificato un errore nell'applicazione di f, o di f’, o di R.
Tecniche di rilevamento dell’errore – 5 • Viceversa, non si può garantire che non ci siano errori perché l'applicazione di f potrebbe ritornare un valore y’ y=f(x1,...,xn), ma tale che R(y’) = R(y) Esistono situazioni di errore non coperte dal meccanismo di rilevamento. • Conoscendo la natura della funzione e della corrispondenza R è possibile valutare la probabilità con cui questo accade e stabilire quando è trascurabile. • Il caso di duplicazione e confronto è un caso particolare, in cui f’ = f, e R è l'identità.
Tecniche di rilevamento dell’errore – 6 • Formulazione generale del meccanismo di rilevamento dell'errore: • Data una funzione f (x1,...,xn), si costruisca un predicato P che, dati x1,...,xn e un valore y, ritorni vero se y è il risultato del calcolo della funzione f (x1,...,xn ), e altrimenti ritorni vero(casi di errore non rilevati) oppure falso (casi di errore rilevati). • Per essere un meccanismo soddisfacente di rilevamento dell'errore, il predicato P dovrà produrre un insieme minimo di situazioni di errore non rilevate, e dovrà essere valutabile con un costo minimo (in tempo e/o risorse di calcolo).
Tecniche di rilevamento dell’errore – 7 • Finora sono stati considerati errori nel dominio dei valori, ma spesso devono essere rilevati anche errori nel dominio del tempo. • Riassumendo... • Esiste un insieme di possibili malfunzionamenti o manifestazioni di guasto (failure modes); • Si possono fare assunzioni sui tipi di guasto (fault assumptions) per non considerare situazioni impossibili o estremamente improbabili; • Ad un meccanismo di rilevamento dell'errore può essere associato un attributo di copertura rispetto ad un insieme di guasti — che può essere qualitativo, o binario, o formulato in termini percentuali o probabilistici (“copre il 90% dei guasti di un dato insieme”, “copre un insieme di guasti con una probabilità pari a 0.99”).
Tecniche di rilevamento dell’errore – 8 • Se si considerano i meccanismi di base per il rilevamento dell'errore, si può notare l'importanza che assume, per i numeri binari, l'operatore XOR. • Un “comparatore ” che segnali un errore con un valore pari a 1 quando vi sia discordanza tra due bit, è un XOR. • Un comparatore fra numeri binari è una batteria di XOR le cui uscite vengono messe in OR tra loro. • L'operazione corrispondente alla prova del 9, non è possibile in base 2, perché non ha senso parlare di un sistema di numerazione modulo 1.
Tecniche di rilevamento dell’errore – 9 • Per l'aritmetica binaria, si definisce un meccanismo in base 4, analogo alla prova del 9, ottenuto raggruppando i bit a coppie, e lavorando nel sistema di numerazione modulo 3. • Nel caso dell'aritmetica binaria, può essere effettuato un controllo di parità, cioè una somma dei bit modulo 2: se il numero dei bit posti ad 1 è dispari, la somma vale 1, 0 altrimenti. • Se un bit venisse mutato, anche la somma dei bit modulo 2 cambierebbe valore Il confronto fra la parità effettiva e quella attesa permette di rilevare errori nella trasmissione o nella memorizzazione di dati.
Tecniche di rilevamento dell’errore – 10 • Il calcolo della somma dei bit modulo 2 si ottiene con una concatenazione ad albero binario di XOR; l'ulteriore confronto è anch'esso ottenibile con un XOR. • Non deve stupire l'importanza dell'operatore XOR, come pure quella dei sistemi di numerazione in modulo, nel trattamento degli errori. • I gruppi ciclici sono insiemi finiti muniti dell'operazione di somma in cui, a partire da un elemento, si possono generare mediante somme tutti gli altri elementi. • La teoria dei gruppi ciclici, di cui i sistemi di numerazione in modulo sono gli esempi più semplici, è fondamentale nello studio dei codici di rilevamento e correzione degli errori, quali quelli usati per la memorizzazione dei dati nei CD e nei DVD.
Tecniche di correzione dell'errore – 1 • Metodi per la correzione degli errori nei procedimenti di calcolo aritmetici: • Votazione a maggioranza L'operazione viene eseguita per tre volte: se i valori dei tre risultati non coincidono, nell’ipotesi che si sia verificato un solo errore, si considera corretto il valore relativo ai due risultati coincidenti. Più in generale, l'operazione viene ripetuta n volte con relativa verifica sulla maggioranza dei valori uguali, che si ipotizzano essere quelli corretti. • Rilevamento intelligente Supponiamo di avere un meccanismo di rilevamento dell'errore che abbia capacità di diagnosi, cioè che sappia indicare il punto in cui si è verificato un errore Si può intervenire correggendo opportunamente il risultato.
Tecniche di correzione dell'errore – 2 • ESEMPIO • Supponiamo di avere un numero di n bit come risultato di un'operazione. Un adeguato meccanismo di diagnosi potrebbe rilevare che il bit i–esimo è guasto Si corregge l'errore negando il bit in questione. • Se la diagnosi viene fornita sotto forma di numero binario dove tutti i bit sono a zero e solo il bit i–esimo (corrispondente al guasto) vale 1, sarà sufficiente operare un XOR (o somma modulo 2) bit a bit del numero con errori con il numero di diagnosi.
Il fattore temporale – 1 • A complicare la situazione rispetto alle semplici schematizzazioni descritte subentra il fattore temporale. • La ridondanza nel calcolo può essere temporale invece che strutturale: le operazioni ripetute possono essere effettuate in sequenza, utilizzando la stessa risorsa di calcolo; • si può duplicare temporalmente lo svolgimento di una operazione e confrontarne i risultati successivi; • si può svolgere tre volte la stessa operazione e votarne a maggioranza i risultati: si effettuano normalmente due operazioni e, solo se i risultati discordano (rilevamento dell'errore), si esegue la terza; • in questo caso, la ridondanza temporale è pari a 2, tranne nei casi in cui si verifica un errore.
Il fattore temporale – 2 • Obiezione: se una unità di calcolo si guasta, è inutile farle ripetere il calcolo perché sbaglierà di nuovo, introducendo errori di modo comune. • Questa affermazione è valida solo se si assumono guasti permanenti, non temporanei (transienti) Il fattore tempo rientra nella definizione stessa delle assunzioni di guasto. • La ridondanza temporale è il meccanismo più utilizzato per la correzione degli errori di comunicazione: in questo caso il meccanismo di rilevamento dell'errore è di natura temporale, ed è rappresentato dal time–out.
Il fattore temporale – 3 • Se un messaggio di acknowledge ad una spedizione non è arrivato in tempo massimo, si suppone l'esistenza di un guasto e si usa la ritrasmissione (ridondanza temporale) per correggere l'errore; in questo caso si assumono guasti temporanei. • Si associa a questo meccanismo un meccanismo di rilevamento di guasti permanenti ancora basato sulla ridondanza temporale: dopo un certo numero di ritrasmissioni si dichiara defunto il collegamento. • Un meccanismo di time-out è anche quello che si usa nel monitoraggio dell'attività di un processore: quando si dice che un computer si è “piantato” si esprime il fatto che esso non presenta segni di attività per un tempo inaccettabilmente lungo.
Il fattore temporale – 4 • A questo proposito notiamo che: • ...normalmente un processore non si “pianta”, ma continua ad eseguire (all'infinito) un ciclo di operazioni che non danno risultati osservabili; • … “inaccettabilmente lungo” è una locuzione soggettiva: ci si può imbattere in un computer apparentemente “piantato” ed effettuare inopinatamente uno shutdown pochi secondi prima che riprenda il suo normale funzionamento (ovvero, l'osservabilità esterna del suo normale funzionamento). • Il tempo può rientrare anche nella definizione di corretto servizio fornito dal sistema: nei sistemi real–time, i guasti si manifestano non soltanto come errori nel dominio dei valori, ma anche come errori nel dominio del tempo.
La teminologia della Dependability • Lo Working Group WG 10.4 (Dependable Computing and Fault-Tolerance) dell'IFIP (International Foundation for Information Processing) ha definito la terminologia, relativa alle situazioni di guasto ed alle specifiche dei sistemi di elaborazione connesse alla salvagurdia da guasti, in un documento intitolato “Dependability: Basic Concepts and Terminology”,cheintroduce il concettodidependability. • Dependability: proprietà di un sistema di essere adeguato alla dipendenza da parte di un essere umano, o di una collettività, senza il pericolo di rischi inaccettabili.