# Tolerància a fallades

La Tolerància a fallades és la característica que permet que un sistema (generalment un sistema informàtic) continuï treballant correctament (sense "caure") fins i tot després d'alguna fallada o algun error dins dels seus components.
La tolerància a fallades és una propietat imprescindible quan es tracta d'un sistema d'alta disponibilitat o aplicacions crítiques com ara les dedicades a la medicina.

## Caiguda del sistema

Dins l'entorn dels sistemes de computació les paraules fallada i error tenen connotacions diferents i molt específiques.
En el món físic del maquinari d'un sistema de computació hi poden tenir lloc tant una fallada com un error, en canvi en el món del programari hi pot haver per exemple un error en un algorisme. La caiguda del sistema n'és el resultat final
Suposem que un equip té un problema en la font d'alimentació i varia la tensió subministrada als circuits electrònics. Amb el que hem definit fins ara es tractaria d'una fallada. Però si aquest canvi en el voltatge fa que algun bit de la memòria, canviï el seu valor de 0 a 1 o a l'inrevés, la fallada es converteix en un error. Si a sobre l'error no és tractat correctament i no es pot corregir i bloqueja el sistema o passa la informació a una base de dades, (per exemple), l'error es va fent més gros. Si usuari es veu afectat pel problema, això ja no és fallada ni error és una "caiguda del sistema".
Quan la qualitat del servei disminueix, la fallada o l'error es poden convertir en una caiguda del sistema, la magnitud d'aquesta caiguda és proporcional a la gravetat de la fallada o l'error.

## Tolerància a fallades o errors en els ordinadors

Un cas per exemple seria el d'un disc dur que tingui un error en les dades (detectat però no corregit) i no les perdi per la sincronització dins d'una sèrie de discs RAID nivell 5 o 1.
Un altre cas seria el d'un servidor amb fonts d'alimentació redundants on una d'elles s'ha cremat i ha estat substituïda automàticament.
En ambdós casos hi ha hagut una fallada o error que s'ha corregit, però cap d'elles no s'ha convertit en una caiguda del sistema.

## Tolerància a fallades o errors en els programes

La tolerància a errors no és només una característica dels ordinadors a nivell individual, també cal tenir-la en compte en la manera d'interaccionar amb altres equips.
Per exemple, el protocol TCP va ser dissenyat per permetre la comunicació fiable entre dos punts d'una xarxa de commutació de paquets, fins i tot en presència de connexions imperfectes o sobrecàrrega de la xarxa. Per aconseguir-ho es va preveure una pèrdua o duplicació de paquets, o la seva reordenació incorrecta i fins i tot la corrupció dels paquets, de manera que aquestes condicions extremes no perjudiquessin la integritat de les dades.
El formats digitals també són dissenyades per tolerar dades incorrectes. El protocol HTML, va ser dissenyat de manera que el navegador ignori les etiquetes que no no entén sense perdre estabilitat en la presentació dels documents.

## Vegeu també

* Sistemes d'alta disponibilitat
* Ordinador
* Arquitectura Harvard
* Arquitectura Eckert-Mauchly
* Computació paral·lela
* Sistemes redundants
* Multiprocessador
* Multiprocés
* Arquitectura d'ordinadors