[[File:Distribfaultredudance.PNG|vignette|Illustration de la redondance matérielle. On voit sur ce schéma que le processeur, la mémoire et les contrôleurs d’entrée-sortie sont dupliqués.]]
Dans des milieux comme l'aéronautique, les satellites, ou dans tout système dit critique, on nedoit peutlimiter pasà sepresque permettrerien quel'impact de tellesdes pannes aientet desde leurs conséquences : des vies peuvent être en jeu. Dans une telle situation, on doit limiter l'impact des pannes. Pour cela, il existe des '''systèmes tolérants aux pannes''', qui peuvent continuer de fonctionner, même en ayantavec un ou plusieurs composants en panne. Cette tolérance aux pannes se base sur la redondance : on duplique du matériel, des données, ou des logiciels en plusieurs exemplaires. Ainsi, si un exemplaire tombe en panne, les autres pourront prendre la relève. Ces solutions matérielles pour tolérer les pannes sont relativement couteuses, dupliquer du matériel n'étant pas sans cout. Aussi, les méthodes vues dans ce cours ne s'utilisent que pour des cas bien précis, où le besoin de fiabilité est fort, typiquement dans les grosses industries (aéronautique, spatiale, ferroviaire, automobile et autres). Il est peu probable qu'un développeur lambda ait affaire à ce genre d'architecture, alors que la redondance de données peut très bien faire partie de son quotidien. Dans nos ordinateurs, cette redondance peut prendre plusieurs formes :
* une redondance des données, qui est à la base des codes correcteurs d'erreur et des systèmes RAID ;
* une redondance matérielle : on duplique des serveurs, des unités de calcul, des processeurs ou de la mémoire, des disques durs (RAID), et ainsi de suite ;
* une redondance logicielle, où plusieurs exemplaires d'un même programme font leurs calculs dans leur coin.
De manière générale, lesLes architectures tolérantes aux pannes dupliquent du matériel, que ce soit des ordinateurs, des composants (processeurs, mémoires, disques durs), voire des portions de composants (cœurs de processeurs, unités de calcul) : si un composant tombe en panne, les autres permettent au systèmecontinuent de fonctionner. Par exemple, on peut utiliser plusieurs ordinateurs identiques, qui font la même chose en parallèle. : siSi un ordinateur tombe en panne, les autres prendront le relais. Comme autre exemple, on peut utiliser plusieurs processeurs ou dupliquer les unités de calcul dans un processeur. On peut classer les techniques de redondances matérielles en deux :
* les méthodes actives, où l'on doit détecter les erreurs et reconfigurer le circuit pour corriger la panne ;
* les méthodes passives, qui masquent les erreurs sans pour autant faire quoique ce soit sur le composant fautif ;
|