Système de blocage de la récupération
The recovery block scheme is a logiciel fault-tolerance technique based on design diversity and backward error recovery. It structures a program as a series of blocks, each with a primary module, an acceptance test, and one or more alternate modules. If the primary module’s output fails the acceptance test, the system state is restored, and an alternate module is executed.
Le concept de bloc de récupération, introduit par Brian Randell, est une approche structurée pour garantir la tolérance aux pannes logicielles. Il repose sur le principe de fournir des modules logiciels redondants, appelés alternatives, pour une opération donnée, associés à un mécanisme de vérification de la validité du résultat de cette opération. Les composants clés sont : le test d’acceptation (TA), l’alternative principale (P) et une séquence d’alternatives secondaires (Q1, Q2, …). Avant l’exécution de l’alternative principale, le système sauvegarde un point de contrôle de son état actuel. Une fois P exécuté, le test d’acceptation est lancé sur le résultat. Le TA est un élément logique crucial qui vérifie que le résultat est acceptable ; il n’a pas à prouver une exactitude absolue, mais plutôt que le résultat est raisonnable et cohérent.
Si le résultat réussit le test d'acceptation, le point de contrôle est ignoré et le programme poursuit son exécution. En revanche, si le test échoue ou si l'alternative principale ne s'exécute pas (par exemple, en raison d'une erreur d'exécution), le système effectue une restauration. Il restaure l'état à partir du point de contrôle enregistré, puis exécute l'alternative suivante dans la séquence (Q1). Le résultat de Q1 est alors soumis au même test d'acceptation. Ce processus se poursuit jusqu'à ce qu'une alternative produise un résultat satisfaisant ou que toutes les alternatives aient été testées, auquel cas une défaillance système est constatée.
L'efficacité des blocs de récupération repose sur la diversité des alternatives. Les modules principal et secondaire doivent être conçus et implémentés indépendamment, idéalement par des équipes différentes utilisant des algorithmes ou des langages de programmation différents. Ceci minimise le risque qu'un défaut de conception commun (un bogue) soit présent dans toutes les alternatives, ce qui entraînerait leur échec identique au test d'acceptation. Le test d'acceptation lui-même constitue un point de défaillance unique et doit être plus simple et plus fiable que les modules qu'il teste. Comparés à la programmation N-versions, une autre technique de tolérance aux pannes logicielles, les blocs de récupération peuvent être plus efficaces car ils n'exécutent qu'un seul module à la fois, mais ils introduisent une latence due à la possibilité de restauration et de réexécution.
UNESCO Nomenclature: 1203
- Informatique
Taper
Logiciel/Algorithme
Perturbation
Incrémentale
Précurseurs
- Concepts de gestion des exceptions dans les langages de programmation
- Mécanismes de transaction et de restauration des bases de données
- Premiers travaux sur la vérification et l'exactitude des programmes
- Principes généraux de redondance en ingénierie matérielle
Applications
- logiciels critiques pour la sécurité dans les systèmes de signalisation ferroviaire
- systèmes de protection des réacteurs nucléaires
- applications aérospatiales où une défaillance logicielle est catastrophique
- systèmes d'exploitation tolérants aux pannes expérimentaux
Idées d'innovations potentielles
En raison du trafic généré par les robots de scraping, actuellement supérieur à 40 000 par jour, ce contenu est réservé aux membres de la communauté.
> Connexion < ou > Registre < (100% gratuit) pour y accéder, ainsi qu'à tous les autres contenus et outils à accès restreint.
Lié à : blocs de récupération, tolérance aux pannes logicielles, diversité de conception, test d'acceptation, récupération d'erreurs en arrière, point de contrôle, Brian Randell, logiciel critique pour la sécurité, modules redondants, programmation N-version.