Wiederherstellungsblocksystem
The recovery block scheme is a Software 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.
Das von Brian Randell eingeführte Recovery-Block-Konzept ist ein strukturierter Ansatz zur Erreichung von Software-Fehlertoleranz. Es basiert auf dem Prinzip, redundante Softwaremodule, sogenannte Alternativen, für eine gegebene Operation bereitzustellen, gekoppelt mit einem Mechanismus zur Überprüfung der Korrektheit des Operationsergebnisses. Die Schlüsselkomponenten sind: der Akzeptanztest (AT), die primäre Alternative (P) und eine Sequenz sekundärer Alternativen (Q1, Q2, …). Vor der Ausführung der primären Alternative speichert das System einen Prüfpunkt seines aktuellen Zustands. Nach Abschluss von P wird der Akzeptanztest auf die Ausgabe angewendet. Der AT ist ein entscheidender Logikbaustein, der die Akzeptanz des Ergebnisses überprüft; er muss keine absolute Korrektheit beweisen, sondern lediglich, dass das Ergebnis plausibel und konsistent ist.
If the result passes the AT, the checkpoint is discarded, and the program proceeds. However, if the AT fails, or if the primary alternate itself fails to execute (e.g., due to a runtime error), the system performs a rollback. It restores the state from the saved checkpoint and then executes the next alternate in the sequence (Q1). The output of Q1 is then subjected to the same acceptance test. This process continues until an alternate produces a result that passes the test, or all alternates have been exhausted, at which point a system-level failure is declared.
The effectiveness of recovery blocks hinges on the diversity of the alternates. The primary and secondary modules should be designed and implemented independently, ideally by different teams using different algorithms or programming languages. This minimizes the chance of a common design flaw (a bug) existing in all alternates, which would cause them all to fail the acceptance test in the same way. The acceptance test itself is a single point of failure and must be simpler and more reliable than the modules it is testing. Compared to N-version programming, another software fault tolerance technique, recovery blocks can be more efficient as they only execute one module at a time, but they introduce latency due to the potential for rollback and re-execution.
UNESCO Nomenclature: 1203
- Computerwissenschaften
Verwendung
Nische/Spezialisiert
Vorläufer
- Concepts of exception handling in programming languages
- Database transaction and rollback mechanisms
- Early work on program verification and correctness
- General principles of redundancy from hardware engineering
Anwendungen
- safety-critical software in railway signaling systems
- nuclear reactor protection systems
- aerospace applications where software failure is catastrophic
- experimental fault-tolerant operating systems
Potenzielle Innovationsideen
Aufgrund des hohen Datenverkehrs durch Web-Scraping-Bots, der derzeit mehr als 40.000 Anfragen pro Tag umfasst, ist dieser Inhalt ausschließlich Community-Mitgliedern vorbehalten.
> Anmelden < oder > Registrieren < (100% kostenlos) Zugriff darauf sowie auf alle anderen eingeschränkten Inhalte und Tools.
Verwandte Themen: Wiederherstellungsblöcke, Software-Fehlertoleranz, Designdiversität, Abnahmetest, Rückwärtsfehlerbehebung, Checkpointing, Brian Randell, sicherheitskritische Software, redundante Module, N-Versionen-Programmierung.