Cours 10 Flashcards
Definir ce qui compose un systeme fiable.
• Disponibilite: etre pret a l’utilisation.
• Fiabilite: continuite de service.
• Surete: pas de consequences catastrophiques pour
l’environnement.
• Securite: prevention d’acces non autorises et/ou de la
manipulation de l’information (confidentialite, integrite,
disponibilite).
• Maintenabilite: refere a la facilite avec laquelle un systeme defaillant peut etre repare.
Definir une defaillance (panne).
Defaillance (panne): lorsque le comportement d’un systeme viole sa specification de service
• Les defaillances resultent de problemes inattendus internes au systeme qui se manifestent eventuellement dans le comportement externe du systeme.
• Ces problemes sont appeles erreurs et leurs causes mecaniques ou algorithmiques sont dites fautes
Quelles sont les 4 sources de fautes pouvant causer une defaillance?
- Specification inadequate.
- Erreurs de conception dans le logiciel.
- Defaillance materielle.
- Interference sur le sous-systeme de communication
Definir les classifications des fautes.
• Transitoire: se produit de maniere isolee (une fois et
disparaıt); rayonnement alpha qui perturbe un bit de memoire.
• Intermittente: se reproduit sporadiquement (transitoire et survient a plusieurs reprises); probleme de bruit, de mauvaise synchronisation, de couplage entre signaux, de chaleur…
• Permanente: persiste indefiniment (jusqu’`a reparation) apres son occurrence; disque brise, circuit brule…
Definir la classification des defaillances.
• detectee: le serveur repond avec un message d’erreur.
• plantage: serveur s’arrete, mais il fonctionnait correctement jusqu’alors.
• panne d’omission: serveur ne repond pas a une requete; bonne reponse ou pas de reponse (disque avec parite sur les blocs).
• panne de temporisation: la reponse survient en dehors de l’intervalle de temps reel specifie; delai excessif (commande de centrale nucleaire, commande de vol, transactions a haute frequence).
• panne de reponse: reponse est simplement incorrecte; capteur bruite, memoire corrompue.
• panne arbitraire (Byzantine): reponses arbitraires voire
malicieuses (testeur qui essaie de dejouer le systeme, attaque de securite).
Quelles sont les deux approches pour atteindre la fiabilite?
1) Eviter les fautes
• Prevention de fautes: comment prevenir l’occurrence ou l’introduction de fautes
• Elimination de fautes: comment reduire la presence (nombre et severite) de fautes
2) Accepter les fautes
• Tolerance aux fautes: comment fournir un service en depit des fautes
• Prevision de fautes: comment estimer la presence, la creation et les consequences des fautes
Definir le processus de prevention de fautes par evitement.
• Utilisation des composants les plus fiables en respectant les couts et contraintes de performance.
• Choix des meilleures techniques d’assemblage et
d’interconnexion des composants.
• Langages de programmation avec abstraction de donnee, modularite, securite.
• Environnement de developpement et methodologie structures aidant a gerer la complexite et ne rien oublier.
• Examiner les formes d’interferences.
• Specification rigoureuse des besoins, si pas formelle
Definir le processus d’elimination des fautes.
- La prevention ne peut eliminer la possibilite de fautes. Il faut detecter et eliminer les fautes. Prevoir un jeu de test le plus complet possible, dans des conditions de charge realistes.
- Un test peut seulement etre utilise pour demontrer la presence de fautes, pas leur absence complete.
- Il est parfois impossible de tester sous des conditions reelles.
- La plupart des tests sont faits dans un mode de simulation, et il est difficile de garantir que la simulation est exacte.
- Les erreurs introduites durant la specification des besoins peuvent ne pas se manifester jusqu’a ce que le systeme tombe en panne.
Definir la tolerance aux fautes.
• Recuperation de faute: si un delai de recuperation est
acceptable.
• Il suffit de pouvoir reprendre ou on avait laisse, apres avoir redemarre (et possiblement repare) le systeme.
• Requiert un stockage permanent fiable pour ne perdre aucune information. Copies de sauvegarde, cliche a intervalle regulier…
• Faire attention de bien tout sauver avant d’accepter une transaction.
• Masquer la presence de fautes en utilisant la redondance
• Redondance materielle: composants materiels ajoutes pour supporter la tolerance aux fautes a tous les niveaux
(alimentation electrique, processeurs, disques, reseau…).
• Redondance logicielle : inclut tous les programmes et
instructions utilises pour tolerer les fautes.
• Redondance temporelle: temps extra pour executer les taches (executer les instructions plusieurs fois) pour la tolerance aux fautes.
Quels sont les differents niveaux de tolerance aux fautes?
• Tolerance aux fautes complete: le systeme continue a
fonctionner en presence de fautes, sans perte significative de fonctionnalite ou de performance.
• Degradation graduelle: le systeme continue a fonctionner en presence de fautes, acceptant une degradation partielle des fonctionnalites ou de performance durant le recouvrement ou
la reparation.
• Arret securitaire: le systeme maintient son integrite tout en acceptant un arret temporaire de son fonctionnement.
• Niveau de tolerance aux fautes necessaire depend de
l’application.
• (La plupart des systemes critiques necessitent une tolerance complete, mais plusieurs se contentent d’une degradation graduelle.)
Quelles sont les phases de la tolerance aux fautes?
- Detection d’erreurs: la presence des fautes est deduite en detectant une erreur.
- Recouvrement d’erreurs: elimine les erreurs de telle facon qu’elles ne se propagent pas par des actions futures.
- Recouvrement d’erreurs en aval: continuer a partir de l’etat errone en faisant des corrections selectives a l’´etat du systeme. (Remplacer un disque d´efectueux dans une unit´e RAID)
- Recouvrement d’erreurs en amont: consiste a restaurer le systeme a un etat precedent sur et en executant une section alternative du programme. (Remplacer un disque defectueux et l’initialiser avec une copie de sauvegarde)
- Point de recouvrement: point auquel un processus est restaure
- Point de controle (checkpoint): etablissement d’un point de recouvrement (en sauvegardant l’etat approprie du systeme)
Definir un scenario de masquage hierarchique des fautes.
Un niveau detecte, reprend et masque les erreurs au niveau plus bas:
• Le client demande l’adresse IP d’un ordinateur.
• Le serveur de nom fait une requˆete r´ecursive `a d’autres serveurs et prend les serveurs alternatifs lorsqu’un serveur ne repond pas.
• Un serveur interroge decouvre une erreur sur un disque et lit plutot de son second disque en miroir.
• Le client a la reponse et ne sait rien des defaillances.
Definir les differentes tolerances aux fautes materielles.
Statique : composants redondants utilises pour cacher les effets des fautes
• Exemple : Triple Modular Redundancy (TMR): 3 composants identiques et un circuit de vote majoritaire; les resultats sont compares et si un differe des deux autres il sera masque.
• Assume que la faute n’est pas commune (telle qu’une erreur de conception) mais elle peut etre transitoire ou causee par la deterioration du composant.
• Pour masquer les fautes de plus d’un composant il faut NMR (N-tuple Modular Redundancy).
Dynamique : redondance utilisee a l’interieur d’un composant indiquant si le resultat est errone.
• Fournit une technique de detection d’erreurs; le recouvrement doit etre fait par un autre composant
Qu’est-ce qu’un groupe synchronise et un groupe non-synchronise?
- Groupe synchronise: tous les serveurs doivent recevoir les memes mises a jour dans le meme ordre.
- Groupe non synchronise: les serveurs de secours enregistrent les mises a jour dans un journal mais sans les traiter. Au besoin, ils utilisent ce journal pour se mettre a jour et prendre le relais avec un certain delai.
Definir la tolerance aux fautes logicielle.
- Utilisee pour detecter les erreurs de conception
- Statique: programmation N-Versions
- Dynamique:
- Detection et recouvrement
- Blocs de recouvrement : recouvrement d’erreurs en amont
- Exceptions : recouvrement d’erreurs en aval