DE102004046611A1 - Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem - Google Patents

Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem Download PDF

Info

Publication number
DE102004046611A1
DE102004046611A1 DE102004046611A DE102004046611A DE102004046611A1 DE 102004046611 A1 DE102004046611 A1 DE 102004046611A1 DE 102004046611 A DE102004046611 A DE 102004046611A DE 102004046611 A DE102004046611 A DE 102004046611A DE 102004046611 A1 DE102004046611 A1 DE 102004046611A1
Authority
DE
Germany
Prior art keywords
error
runtime object
computer system
computer program
runtime
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102004046611A
Other languages
English (en)
Inventor
Wolfgang Pfeiffer
Reinhard Weiberle
Bernd Mueller
Florian Hartwich
Werner Harter
Ralf Angerbauer
Eberhard Boehl
Thomas Kottke
Yorck Von Collani
Rainer Gmehlich
Karsten Graebitz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102004046611A priority Critical patent/DE102004046611A1/de
Priority to JP2007532882A priority patent/JP4903149B2/ja
Priority to US11/662,611 priority patent/US8316261B2/en
Priority to PCT/EP2005/054513 priority patent/WO2006032617A1/de
Priority to CN200580032522.9A priority patent/CN101027647B/zh
Priority to EP05784608A priority patent/EP1794680A1/de
Publication of DE102004046611A1 publication Critical patent/DE102004046611A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Bei der Ausführung eines mindestens ein Laufzeitobjekt umfassenden Computerprogramms, das auf einem Computersystem (1) ausgeführt wird, können Fehler auftreten, die durch eine Fehlererkennungseinheit (5) erkannt werden können. Um einen erkannten Fehler besonders flexibel zu behandeln und das Computersystem (1) möglichst verfügbar zu halten, wird vorgeschlagen, eine Fehlerbehandlungsroutine aus einer vorgebbaren Menge von Fehlerbehandlungsroutinen in Abhängigkeit von einer dem Laufzeitobjekt zugeordneten Kennung auszuwählen und die ausgewählte Fehlerbehandlungsroutine auszuführen.

Description

  • Die Erfindung betrifft ein Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem, das mindestens eine Recheneinheit umfasst. Das Computerprogramm umfasst mindestens ein Laufzeitobjekt. Ein während der Ausführung des Laufzeitobjekts auftretender Fehler wird durch eine Fehlererkennungseinheit erkannt. Bei einem erkannten Fehler erzeugt die Fehlererkennungseinheit ein Fehlererkennungssignal.
  • Die Erfindung betrifft auch ein Computersystem, auf dem ein Computerprogramm ausführbar ist. Das Computerprogramm umfasst mindestens ein Laufzeitobjekt. Ein während der Ausführung des Laufzeitobjekts auf dem Computersystem auftretender Fehler ist durch eine Fehlererkennungseinheit erkennbar.
  • Die Erfindung betrifft ferner ein Computerprogramm, das auf einem Computersystem ablauffähig ist, sowie einen maschinenlesbaren Datenträger, auf dem ein Computerprogramm abgespeichert ist.
  • Bei der Abarbeitung eines Computerprogramms auf einem Computer können Fehler auftreten. Fehler können danach unterschieden werden, ob sie durch die Hardware (Prozessor, Bussysteme, Peripheriegeräte, etc.) oder durch die Software (Anwendungsprogramme, Betriebssysteme, BIOS, etc.) bedingt sind.
  • Bei auftretenden Fehlern wird ferner zwischen permanenten Fehlern und transienten Fehlern unterschieden. Permanente Fehler sind stets vorhanden und beruhen beispielsweise auf einer fehlerhaften Hardware oder einer fehlerhaft programmierten Software. Transiente Fehler treten im Gegensatz hierzu nur temporär auf und sind damit auch deutlich schwieriger reproduzierbar und vorhersagbar. Bei binär abgespeicherten, binär übertragenen und/oder binär verarbeiteten Daten treten transiente Fehler beispielsweise dadurch auf, dass durch elektromagnetische Einflüsse oder Strahlung (Alpha-Strahlung, Neutronen-Strahlung) einzelne Bits verändert werden.
  • Üblicherweise wird ein Computerprogramm in mehrere Laufzeitobjekte unterteilt, die sequentiell oder parallel auf dem Computersystem ausgeführt werden. Laufzeitobjekte sind beispielsweise Prozesse, Tasks oder Threads. Während der Ausführung des Computerprogramms auftretende Fehler können damit prinzipiell dem ausgeführten Laufzeitobjekt zugeordnet werden.
  • Eine Behandlung von permanenten Fehlern basiert typischerweise auf der Abschaltung des Computersystems oder zumindest der Abschaltung von Teilsystemen. Dies hat jedoch den Nachteil, dass damit die Funktionalität des Computersystems oder des Teilsystems nicht mehr zur Verfügung steht. Um einen sicheren Betrieb insbesondere in einer sicherheitsrelevanten Umgebung dennoch gewährleisten zu können, sind die Teilsysteme eines Computersystems beispielsweise redundant ausgelegt.
  • Häufig werden auch transiente Fehler durch eine Abschaltung von Teilsystemen behandelt. Es ist außerdem bekannt, bei aufgetretenen transienten Fehlern ein oder mehrere Teilsysteme abzuschalten und erneut zu starten und beispielsweise durch einen Selbsttest auf eine nun fehlerfreie Abarbeitung des Computerprogramms zu schließen. Wird kein neuer Fehler erkannt, setzt das Teilsystem seine Arbeit fort. Hierbei ist es möglich, dass die durch den Fehler unterbrochene Aufgabe bzw. das zu dieser Zeit abgearbeitete Laufzeitobjekt nicht weiter ausgeführt wird (sogenanntes Forward-Recovery). Forward-Recovery wird beispielsweise bei echtzeitfähigen Systemen angewandt.
  • Insbesondere bei nicht-echtzeitfähigen Anwendungen ist es bekannt, an vorgebbaren Stellen eines Computerprogramms bzw. Laufzeitobjekts Checkpunkte zu setzen. Tritt ein transienter Fehler auf und wird infolgedessen das Teilsystem neu gestartet, wird die Aufgabe bei dem zuletzt bearbeiteten Checkpunkt wieder aufgenommen. Ein derartiges als Backward-Recovery bezeichnetes Verfahren wird beispielsweise auf Computersystemen verwendet, die zur Durchführung von Transaktionen an Finanzmärkten eingesetzt werden.
  • Die bekannten Verfahren zur Behandlung aufgetretener transienter Fehler haben den Nachteil, dass das gesamte Computersystem, zumindest jedoch Teilsysteme zeitweise nicht verfügbar sind, was zu einer Verzögerung der Abarbeitung des Computerprogramms und zu Datenverlust führen kann.
  • Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, einen bei der Abarbeitung eines Computerprogramms auf einem Computersystem auftretenden Fehler möglichst flexibel zu behandeln und dabei eine möglichst hohe Verfügbarkeit des Computersystems zu gewährleisten.
  • Zur Lösung dieser Aufgabe wird ausgehend von dem Verfahren der eingangs genannten Art vorgeschlagen, dass eine Fehlerbehandlungsroutine aus einer vorgebbaren Menge von Fehlerbehandlungsroutinen in Abhängigkeit von einer dem Laufzeitobjekt zugeordneten Kennung ausgewählt wird und die ausgewählte Behandlungsroutine ausgeführt wird.
  • Vorteile der Erfindung
  • Erfindungsgemäß ist einem oder mehreren Laufzeitobjekten, die auf dem Computersystem ausgeführt werden, eine Kennung zugeordnet, die wiederum mindestens eine Fehlerbehandlungsroutine bezeichnet. Tritt während der Ausführung des Laufzeitobjekts ein Fehler auf, so wird die der Kennung des Laufzeitobjekts entsprechende Fehlerbehandlungsroutine ausgewählt und durchgeführt. Diese Kennung kann beispielsweise bereits bei der Programmierung des Laufzeitobjekts beziehungsweise bei der Installation des Laufzeitobjekts auf dem Computersystem festgelegt werden. Damit kann bereits während der Programmierung des Computersystems bzw. bei der Installation des Computerprogramms auf dem Computersystem die im Falle eines auftretenden Fehlers durchzuführende Fehlerbehandlungsroutine bestimmt werden.
  • Beispielsweise kann einem Laufzeitobjekt, das eine sicherheitsrelevante und/oder zeitkritische Funktion betrifft, eine andere Kennung zugeordneten werden als einem Laufzeitobjekt, das eine nicht-echtzeitfähige Funktion betrifft. Dies ermöglicht eine sehr flexible Behandlung auftretender Fehler unterschiedlicher Laufzeitobjekte.
  • Insbesondere kann mit dem erfindungsgemäßen Verfahren erreicht werden, dass nicht stets ein Teilsystem oder gar das gesamte Computersystem neu gestartet werden muss, wenn bei der Abarbeitung eines Laufzeitobjekts ein Fehler auftritt. Vielmehr ist eine flexible Auswahl eines Fehlerbehandlungsmechanismus möglich. Damit kann die Verfügbarkeit des Gesamtsystems deutlich gesteigert werden.
  • Gemäß einer vorteilhaften Weiterbildung des erfindungsgemäßen Verfahrens wird die Fehlerbehandlungsroutine zusätzlich in Abhängigkeit von dem durch die Fehlererkennungseinheit erzeugten Fehlererkennungssignal ausgewählt. Die Fehlererkennungseinheit kann beispielsweise feststellen, ob es sich um einen Hardware-Fehler oder um einen Software-Fehler handelt, bzw. welche Hardwareeinheit (Prozessor, Bussystem, Speicher, etc.) den Fehler ausgelöst hat. Ferner ist es möglich, dass die Fehlererkennungseinheit feststellt, ob es sich bei dem aufgetretenen Fehler eher um einen permanenten Fehler oder um einen transienten Fehler handelt. Dazu kann die Fehlererkennungseinheit für jedes Laufzeitobjekt einen Zähler vorsehen, der die Anzahl aufgetretenen Fehler zählt. Treten besonders viele Fehler bei der Ausführung eines bestimmten Laufzeitobjekts auf, so kann die Fehlererkennungseinheit auf einen permanenten Fehler schließen und ein anderes Fehlererkennungssignal erzeugen, als wenn der Zähler nur einen sehr niedrigen Wert aufweist. Insbesondere ist es vorstellbar, dass das Fehlererkennungssignal eine Information über eine ermittelte Größe, beispielsweise den aktuellen Zählerstand der Anzahl der bei der Abarbeitung des Laufzeitobjekts bisher aufgetretenen Fehler, beinhaltet. Dies ermöglicht eine besonders flexible Auswahl einer Fehlerbehandlungsroutine.
  • Umfasst das Computersystem beispielsweise mehrere Recheneinheiten, kann vorgesehen sein, dass anhand des Fehlererkennungssignals diejenige Recheneinheit identifizierbar ist, auf der das Laufzeitobjekt ausgeführt wurde und der Fehler auftrat. Läuft ein und dasselbe Laufzeitobjekt beispielsweise auf mehreren unterschiedlichen Recheneinheiten ab und sind diese Recheneinheiten unterschiedlichen Umgebungen von unterschiedlicher Sicherheitsrelevanz zugeordnet, so können unterschiedliche Fehlerbehandlungsroutinen bei einem aufgetretenen Fehler während der Abarbeitung des Laufzeitobjekts ausgewählt werden, je nachdem, auf welcher Recheneinheit das Laufzeitobjekt ausgeführt wurde, obwohl dem Laufzeitobjekt stets dieselbe Kennung zugeordnet ist.
  • Sind mehrere Recheneinheiten redundant ausgelegt und wird das Laufzeitobjekt redundant auf diesen Recheneinheiten ausgeführt, kann eine Fehlerbehandlung beispielsweise vorsehen, das Ergebnis, das von derjenigen Recheneinheit zur Verfügung gestellt wird, auf der der Fehler auftrat, bei der Weiterbehandlung (beispielsweise bei einem anschließend durchzuführenden Voting) zu ignorieren. Damit wird eine noch flexiblere Behandlung von aufgetretenen Fehlern ermöglicht.
  • Vorteilhafterweise wird die Fehlerbehandlung in Abhängigkeit von mindestens einer das ausgeführte Laufzeitobjekt und/oder die Ausführung des Laufzeitobjekts charakterisierenden Größe durchgeführt. Eine derartige Größe kann beispielsweise eine dem Laufzeitobjekt zugeordnete Priorität sein. Damit ist es möglich, eine Fehlerbehandlung zusätzlich in Abhängigkeit zu der Priorität des ausgeführten Laufzeitobjekts durchzuführen.
  • Eine die Ausführung des Laufzeitobjekts charakterisierende Größe kann auch die bereits erfolgte oder die noch zur Verfügung stehende Abarbeitungsdauer bezeichnen. Tritt beispielsweise der Fehler kurz nach dem Laden des Laufzeitobjekts auf, kann vorgesehen sein, das gesamte Laufzeitobjekt nochmals zu laden und auszuführen. Steht das Laufzeitobjekt jedoch bereits kurz vor Ende der zur Verfügung stehenden Abarbeitungszeit, beziehungsweise soll ein anderes Laufzeitobjekt dringend abgearbeitet werden, kann vorgesehen sein, dass Laufzeitobjekt, während dessen Abarbeitung der Fehler auftrat, einfach zu beenden.
  • Die die Abarbeitung des Laufzeitobjekts charakterisierende Größe kann ferner beschreiben, ob bereits ein Datenaustausch mit anderen Laufzeitobjekten oder ein Speicherzugriff erfolgt ist. Die Auswahl der Fehlerbehandlungsroutine kann dies dann berücksichtigen.
  • In einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens umfasst das Computersystem mehrere Recheneinheiten. Das Laufzeitobjekt wird auf mindestens zwei der Recheneinheiten redundant ausgeführt. Ein Vergleich der redundant erzeugten Ergebnisse der mindestens zwei Recheneinheiten wird durchgeführt und ein Fehlererkennungssignal wird erzeugt, wenn die Ergebnisse nicht übereinstimmen.
  • Ein mehrere Recheneinheiten umfassendes Computersystem wird beispielsweise als Dual-Core-Architektur (zwei Recheneinheiten) oder als Multi-Prozessor-Architektur (mehrere Recheneinheiten) bezeichnet. Mittels des erfindungsgemäßen Verfahrens kann insbesondere bei der redundanten Abarbeitung von Laufzeitobjekten eine besonders flexible Fehlerbehandlung durchgeführt werden.
  • Vorzugsweise wird das Verfahren in einem Kraftfahrzeug, insbesondere in einem Kraftfahrzeugsteuergerät, oder in einem sicherheitsrelevanten System eingesetzt. Sicherheitsrelevante Systeme werden beispielsweise zur Steuerung von Flugzeugen eingesetzt. In diesen Bereichen ist es besonders wichtig, transiente Fehler systematisch und flexibel zu behandeln und damit eine möglichst hohe Verfügbarkeit des entsprechenden Systems zu erreichen.
  • Vorteilhafterweise läuft auf mindestens einer Recheneinheit des Computersystems ein Betriebssystem ab, wobei die Auswertung der Kennung und/oder die Auswertung des Fehlererkennungssignals und/oder die Auswahl der Fehlerbehandlungsroutine durch das Betriebssystem erfolgt. Dies ermöglicht eine besonders schnelle und sichere Bearbeitung von erkannten Fehlern, da Betriebssysteme üblicherweise auf die zur Behandlung von aufgetretenen Fehlern notwendigen Ressourcen Zugriff haben. Beispielsweise weisen Betriebssysteme einen sogenannten Scheduler auf, der entscheidet, welches Laufzeitobjekt zu welcher Zeit auf einem Prozessor ausgeführt wird. Dies ermöglicht es einem Betriebssystem, besonders schnell ein Laufzeitobjekt zu beenden, neu zu starten oder statt des Laufzeitobjekts eine Fehlerbehandlungsroutine zu starten.
  • Gemäß einer bevorzugten Ausführungsform des Verfahrens realisiert mindestens eine der Fehlerbehandlungsroutinen in der vorgebbaren Menge von Fehlerbehandlungsroutinen eine der folgenden Fehlerbehandlungsmöglichkeiten:
    • – Durchführen keiner Operation: Ein aufgetretener Fehler wird ignoriert.
    • – Abbruch der Ausführung des Laufzeitobjekts: Die Ausführung des Laufzeitobjekts wird abgebrochen und beispielsweise stattdessen ein anderes Laufzeitobjekt ausgeführt.
    • – Abbruch der Ausführung des Laufzeitobjekts und Verbot einer neuen Aktivierung des Laufzeitobjekts: Das Laufzeitobjekt, während dessen Ausführung der Fehler auftrat, wird folglich nicht wieder ausgeführt.
    • – Wiederholung der Ausführung des Laufzeitobjekts.
    • – Backward-Recovery: Während der Ausführung des Laufzeitobjekts werden Checkpunkte gesetzt und bei Auftreten eines Fehlers wird zu dem letzten Checkpunkt zurückgesprungen.
    • – Forward-Recovery: Die Ausführung des Laufzeitobjekts wird unterbrochen und an einem anderen, nachfolgenden Punkt wieder fortgesetzt bzw. das Laufzeitobjekt wird neu initialisiert und mit aktuellen Eingangsdaten gestartet.
    • – Reset: Das gesamte Computersystem oder ein Teilsystem werden neu gestartet.
  • Diese Fehlerbehandlungsroutinen ermöglichen eine besonders flexible Behandlung auftretender Fehler.
  • Vorzugsweise wird das erfindungsgemäße Verfahren zur Behandlung transienter Fehler eingesetzt. Vorteilhafterweise jedoch wird die Auswahl der Fehlerbehandlungsroutine in Abhängigkeit davon durchgeführt, ob der erkannte Fehler ein transienter Fehler oder ein permanenter Fehler ist.
  • Ein erkannter permanenter Fehler kann beispielsweise dadurch behandelt werden, dass das Laufzeitobjekt nicht mehr ausgeführt wird oder ein Teilsystem dauerhaft abgeschaltet wird. Ein erkannter transienter Fehler hingegen kann einfach ignoriert werden oder mittels eines Forward-Recovery behandelt werden.
  • Vorteilhafterweise wird mittels einer Testroutine ein Hardware-Test durchgeführt. Das Fehlererkennungssignal wird dann in Abhängigkeit des Ergebnisses der Abarbeitung der Testroutine erzeugt. Damit kann beispielsweise besonders zuverlässig ein Hardwaredefekt erkannt werden und somit auf einen permanenten Fehler geschlossen werden.
  • In einer bevorzugten Ausführungsform sind dem Laufzeitobjekt für verschiedene Fehlerarten unterschiedliche Kennungen zugeordnet. Wird beispielsweise ein permanenter Fehler während der Abarbeitung eines Laufzeitobjekts erkannt, kann eine andere Fehlerbehandlungsroutine ausgewählt werden als wenn während der Abarbeitung des Laufzeitobjekts ein transienter Fehler auftritt.
  • Ferner können dem Laufzeitobjekt unterschiedliche Kennungen für unterschiedliche Laufzeitumgebungen zugeordnet sein. Beispielsweise kann einem Laufzeitobjekt eine Kennung für eine Abarbeitung in einer sicherheitsrelevanten Umgebung, eine andere Kennung für eine redundante Abarbeitung auf einer redundant ausgelegten Recheneinheit, sowie noch eine andere Kennung für eine Abarbeitung in einer zeitkritischen Umgebung zugeordnet sein. Diese Ausführungsform ermöglicht eine nochmals flexiblere Behandlung eines bei der Abarbeitung eines Laufzeitobjekts aufgetretenen Fehlers und kann die Verfügbarkeit nochmals erhöhen.
  • Die Aufgabe wird auch durch ein Computersystem der eingangs genannten Art dadurch gelöst, dass dem Laufzeitobjekt eine Kennung zugeordnet ist und in Abhängigkeit von der Kennung eine ausführbare Fehlerbehandlungsroutine aus einer vorgebbaren Menge von Fehlerbehandlungsroutinen auswählbar ist.
  • Von besonderer Bedeutung ist die Realisierung des erfindungsgemäßen Verfahrens in der Form eines Computerprogramms. Dabei ist das Computerprogramm auf einem Computersystem, insbesondere auf einem Rechengerät, ablauffähig und zur Ausführung des erfindungsgemäßen Verfahrens programmiert. In diesem Fall wird die Erfindung durch das Computerprogramm realisiert, so dass das Computerprogramm in gleicher Weise die Erfindung darstellt wie das Verfahren, zu dessen Ausführung das Computerprogramm geeignet ist. Das Computerprogramm ist vorzugsweise auf einem maschinenlesbaren Datenträger abgespeichert. Als maschinenlesbarer Datenträger kann beispielsweise ein Random-Access-Memory, ein Read-Only-Memory, ein Flash-Memory, eine Digital-Versatile-Disc oder eine Compact-Disc zum Einsatz kommen.
  • Zeichnungen
  • Weitere Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen, die in der Zeichnung dargestellt sind. Es zeigen:
  • 1 eine schematische Darstellung von Komponenten eines Computersystems zur Durchführung des erfindungsgemäßen Verfahrens;
  • 2 ein Ablaufdiagramm zur schematischen Darstellung des erfindungsgemäßen Verfahrens in einer ersten Ausführungsform;
  • 3 ein Ablaufdiagramm zur schematischen Darstellung des erfindungsgemäßen Verfahrens in einer zweiten Ausführungsform.
  • Beschreibung der Ausführungsbeispiele
  • In 1 ist ein Computersystem 1 schematisch dargestellt, das zur Durchführung des erfindungsgemäßen Verfahrens geeignet ist. Das Computersystem 1 weist zwei Recheneinheiten 2, 3 auf. Die Recheneinheiten können beispielsweise vollständige Prozessoren (CPUs) sein (sogenannte Dual-Core-Architektur). Die Dual-Core-Architektur ermöglicht es, die beiden Recheneinheiten 2, 3 derart redundant zu betreiben, dass ein Prozess beziehungsweise ein Laufzeitobjekt auf beiden Recheneinheiten 2, 3 nahezu gleichzeitig ausgeführt wird. Die Recheneinheiten 2, 3 können auch arithmetisch-logische Einheiten, sogenannte arithmetic locial units (ALUs) sein (Dual-ALU-Architektur).
  • Den beiden Recheneinheiten 2, 3 sind ein gemeinsamer Programmspeicher 4 und eine Fehlererkennungseinheit 5 zugeordnet. In dem Programmspeicher 4 sind mehrere ausführbare Laufzeitobjekte abgespeichert. Die Fehlererkennungseinheit 5 ist beispielsweise als Vergleicher ausgebildet, der es ermöglicht, von den Prozessoren 2 und 3 berechnete Werte zu vergleichen.
  • Zur Durchführung der grundlegenden Steuerung des Computersystems 1 läuft auf dem Computersystem 1 ein Betriebssystem 6 ab. Das Betriebssystem 6 weist einen Scheduler 7 und ein Interface 8 auf. Der Scheduler 7 verwaltet die von den Recheneinheiten 2, 3 zur Verfügung gestellte Rechenzeit, indem er entscheidet, wann welcher Prozess beziehungsweise welches Laufzeitobjekt auf den Recheneinheiten 2 und 3 ausgeführt wird. Das Interface 8 ermöglicht es der Fehlererkennungseinheit 5, erkannte Fehler mittels eines Fehlererkennungssignals dem Betriebssystem 6 mitzuteilen.
  • Das Betriebssystem 6 hat Zugriff auf einen Speicherbereich 9. Der Speicherbereich 9 beinhaltet für jedes ausführbare Laufzeitobjekt die diesem Laufzeitobjekt zugeordnete Kennung bzw. die diesem Laufzeitobjekt zugeordneten Kennungen. Es ist sowohl möglich, den Speicherbereich 9 und den Programmspeicher 4 auf ein und demselben Speicherelement als auch auf unterschiedlichen Speicherelementen abzubilden. Das Speicherelement beziehungsweise die Speicherelemente können beispielsweise ein der Recheneinheit 2 beziehungsweise der Recheneinheit 3 zugeordneter Arbeitsspeicher oder ein Cache sein.
  • Es sind eine Vielzahl weiterer Ausgestaltungen des Computersystems 1 vorstellbar. Beispielsweise könnte das Computersystem 1 nur eine Recheneinheit aufweisen. Ein Fehler bei der Abarbeitung eines Laufzeitobjekts könnte dann beispielsweise durch die Fehlererkennungseinheit 5 mittels einer Plausibilitätsprüfungen erfolgen.
  • Insbesondere könnte ein und dasselbe Laufzeitobjekt auf der Recheneinheit 2, 3 mehrmals hintereinander ausgeführt werden. Die Fehlererkennungseinheit 5 könnte dann die jeweils erzeugten Ergebnisse vergleichen und bei einem Abweichen der Ergebnisse voneinander auf das Vorhandensein eines Fehlers schließen.
  • Ferner ist es vorstellbar, dass das Computersystem 1 mehr als zwei Recheneinheiten 2, 3 aufweist. Ein Laufzeitobjekt könnte dann beispielsweise auf drei der vorhandenen Recheneinheiten 2, 3 redundant ausgeführt werden. Durch einen Vergleich der so erhaltenen Ergebnisse könnte die Fehlererkennungseinheit 5 das Vorhandensein eines Fehlers erkennen.
  • In 2 ist ein Ablaufdiagramm des erfindungsgemäßen Verfahrens schematisch dargestellt. Das Verfahren beginnt in einem Schritt 100. In einem Schritt 101 veranlasst der Scheduler 7 die Recheneinheiten 2, 3, ein Laufzeitobjekt aus dem Programmspeicher 4 auszulesen und auszuführen.
  • In einem Schritt 102 wird überprüft, ob ein Fehler bei der Abarbeitung des Laufzeitobjekts vorliegt. Dies geschieht beispielsweise durch die Fehlererkennungseinheit 5, die die von den Recheneinheiten 2, 3 redundant berechneten Ergebnisse vergleicht. Liegt kein Fehler vor, so wird zu dem Schritt 101 zurückverzweigt und ein weiteres Laufzeitobjekt in den Recheneinheiten 2, 3 ausgeführt.
  • Wird in dem Schritt 102 jedoch ein Fehler erkannt, so wird in dem Schritt 103 von der Fehlererkennungseinheit ein Fehlererkennungssignal erzeugt und an das Betriebssystem 6 über das Interface 8 übermittelt.
  • In einem Schritt 104 ermittelt das Betriebssystem 6 das fehlerhafte Laufzeitobjekt. Diese Information kann beispielsweise von dem Scheduler 7 erhalten werden.
  • In einem Schritt 105 wird die dem in dem Schritt 104 ermittelten Laufzeitobjekt zugeordnete Kennung ermittelt. Dazu kann beispielsweise in dem Speicherbereich 9 eine Tabelle abgelegt sein, in der zu jedem ausführbaren Laufzeitobjekt die diesem zugeordnete Kennung abgespeichert ist.
  • Es ist ferner möglich, dass die dem Laufzeitobjekt zugeordnete Kennung zusammen mit dem Laufzeitobjekt selbst in dem Programmspeicher 4 abgespeichert ist. Wird ein Laufzeitobjekt zur Ausführung in dem Recheneinheit 2, 3 geladen, kann vorgesehen sein, dass die Kennung in einem dem jeweiligen Recheneinheit 2, 3 zugeordneten Speicherbereich, beispielsweise einem Register, abgelegt wird. In diesem Fall könnte das Betriebssystem 6 von der jeweiligen Recheneinheit 2, 3 die Kennung des Laufzeitobjekts anfordern.
  • Es ist auch vorstellbar, dass die Fehlererkennungseinheit die dem Laufzeitobjekt zugeordnete Kennung ermittelt und zusammen mit dem Fehlererkennungssignal, beispielsweise als Parameter, dem Betriebssystem über die Schnittstelle 8 zur Verfügung stellt.
  • In einem Schritt 106 wird in Abhängigkeit von dem Fehlererkennungssignal und der dem Laufzeitobjekt zugeordneten Kennung eine Fehlerbehandlungsroutine ausgewählt. Dabei kann die dem Laufzeitobjekt zugeordnete Kennung die auszuwählende Fehlerbehandlungsroutine eindeutig bestimmten. Beispielsweise kann die Kennung bestimmen, dass das fehlerhafte Laufzeitobjekt abgebrochen werden soll und nicht wieder aktiviert werden soll. Die Kennung kann ebenso bestimmen, dass zu einem vorgegebenen Check-Punkt zurückgesprungen werden soll und von dort das Laufzeitobjekt erneut ausgeführt werden soll (Backward-Recovery).
  • Die Kennung kann ferner bestimmen, dass ein Forward-Recovery durchgeführt wird, die Ausführung des Laufzeitobjekts wiederholt wird oder keine weitere Fehlerbehandlung durchgeführt werden soll.
  • Besonders vorteilhaft ist es, wenn dem von der Fehlererkennungseinheit 5 an das Betriebssystem 6 übermittelten Fehlererkennungssignal eine Information bezüglich der Art des aufgetretenen Fehlers zu entnehmen ist. Diese Art kann beispielsweise angeben, ob es sich um einen transienten oder um einen permanenten Fehler handelt. Das Fehlersignal kann ferner derart ausgestaltet sein, dass diesem eine Information darüber zu entnehmen ist, auf welchem der Recheneinheiten 2, 3 der Fehler aufgetreten ist. Dabei können dem Laufzeitobjekt beispielsweise mehrere Kennungen zugeordnet sein. Eine erste Kennung kann dabei die bei einem Auftreten des permanenten Fehlers auszuführende Fehlerbehandlungsroutine beschreiben. Eine zweite Kennung hingegen die bei einem Auftreten eines transienten Fehlers auszuführende Fehlerbehandlungsroutine bezeichnen. Dies ermöglicht folglich eine noch flexiblere Fehlerbehandlung.
  • Insbesondere wenn das Computersystem 1 als Mehr-Prozessor-System oder als Mehr-ALU-System ausgestaltet ist, kann es vorteilhaft sein, die Auswahl der Fehlerbehandlungsroutine davon abhängig zu machen, ob das Laufzeitobjekt auf einem oder mehreren der Prozessoren beziehungsweise der ALUs aufgetreten ist. Diese Information könnte beispielsweise dem Fehlererkennungssignal entnommen werden. Das Laufzeitobjekt könnte hierbei unterschiedliche Kennungen für die Fälle aufweisen, dass das Laufzeitobjekt auf nur eine Recheneinheit 2, 3 und dass das Laufzeitobjekt auf mehreren Recheneinheiten 2, 3 fehlerhaft ausgeführt wird.
  • In einem Schritt 107 wird die Fehlerbehandlung durchgeführt, in dem die durch das Betriebssystem 6 ausgewählte Fehlerbehandlungsroutine ausgeführt wird. In Abhängigkeit von der ausgewählten Fehlerbehandlungsroutine kann das Betriebssystem beispielsweise den Scheduler 7 veranlassen, die aktuell auf den Recheneinheiten 2, 3 ausgeführten Laufzeitobjekte abzubrechen, alle berechneten Wert zu verwerfen und die Laufzeitobjekte erneut zu starten. In einem Schritt 108 endet das erfindungsgemäße Verfahren zur Fehlerbehandlung. Allerdings ist die in 2 dargestellte Abarbeitung eines Programms mit sequentieller Ausführung von Laufzeitobjekten und anschließender Überprüfung auf Vorliegen eines Fehlers an dieser Stelle nicht zwangsläufig ebenfalls beendet. Falls die Abarbeitung des Programms beim Erreichen des Schritts 108 noch nicht beendet ist, kann zu Schritt 101 rückgesprungen werden (gestrichelte Linie).
  • In 3 ist eine weitere Ausführungsform des erfindungsgemäßen Verfahrens mittels eines Ablaufdiagramms schematisch dargestellt, bei dem weitere Größen bei der Auswahl der durchzuführenden Fehlerbehandlungsroutine berücksichtigt werden.
  • Das Verfahren beginnt in einem Schritt 200. Die Schritt 201 bis 205 können den in 2 dargestellten und beschriebenen Schritten 101 bis 105 entsprechen.
  • In einem Schritt 206 wird eine das Laufzeitobjekt beziehungsweise die Ausführung des Laufzeitobjekts charakterisierende Größe ermittelt. Eine das Laufzeitobjekt charakterisierende Größe kann beispielsweise eine diesem Laufzeitobjekt zugeordnete Sicherheitsrelevanz beschreiben. Eine das Laufzeitobjekt charakterisierende Größe kann ferner beschreiben, ob und von welchen weiteren Laufzeitobjekten die von dem vorliegenden Laufzeitobjekt berechneten Größen benötigt werden, bzw. ob und von welchen weiteren Laufzeitobjekten die von dem vorliegenden Laufzeitobjekt berechneten Größen abhängen. Damit könnten folglich Abhängigkeiten der Laufzeitobjekte untereinander beschrieben werden.
  • Die eine Ausführung eines Laufzeitobjekts charakterisierende Größe kann beispielsweise beschreiben, ob zur Zeit des Auftretens des Fehlers bereits ein Speicherzugriff durch das Laufzeitobjekt erfolgt ist, ob der Fehler relativ kurz nach Laden des Laufzeitobjekts erfolgte, ob die von dem Laufzeitobjekt zu berechnenden Größen dringend von anderen Laufzeitobjekten benötigt werden und/oder wie groß die für eine Ausführung des Laufzeitobjekts noch zur Verfügung stehende Zeitspanne ist.
  • Diese Größen können dann bei einer Auswahl der Fehlerbehandlungsroutine berücksichtigt werden. Steht beispielsweise nicht mehr genug Zeit zur Verfügung, das gesamte Laufzeitobjekt erneut auszuführen, kann vorgesehene sein, ein Backward-Recovery oder ein Forward-Recovery durchzuführen.
  • In einem Schritt 207 wird ermittelt, ob ein permanenter oder ein transienter Fehler vorliegt. Dazu können beispielsweise Fehlerzähler mitgeführt werden, die angeben, wie häufig ein Fehler bei der Ausführung eines bestimmten Laufzeitobjekts auftritt. Tritt dieser besonders häufig oder gar immer auf, kann von einem permanenten Fehler ausgegangen werden.
  • Die Schritte 206 und 207 sind zunächst voneinander unabhängig und können jeweils einzeln ausgeführt werden. Auch eine Ausführung in umgekehrter Reihenfolge ist jedoch möglich. Außerdem ist es denkbar, dass die in Schritt 206 ermittelte, das Laufzeitobjekt oder die Ausführung des Laufzeitobjektes charakterisierende Größe als Eingangswert zur Ermittlung der Fehlerart in Schritt 207 verwendet wird. In diesem Fall müssen die beiden Schritte 206 und 207 in der angegebenen Reihenfolge abgearbeitet werden. Schließlich müssen die Schritte 206 und 207 nicht notwendigerweise sequenziell abgearbeitet werden; sie können auch parallel abgearbeitet werden.
  • Es ist des weiteren möglich, einer einzelnen Hardwareeinheit des Computersystems 1, also beispielsweise einer Recheneinheit 2, 3, einen Fehlerzähler zuzuordnen. Wird beispielsweise festgestellt, dass auf einer Recheneinheit 2, 3 des Computersystems 1 die Ausführung besonders vieler Laufzeitobjekte fehlerhaft ist, so kann auf das Vorhandensein eines permanenten Fehlers (z. B. eines Hardware-Fehlers) geschlossen werden.
  • In einem Schritt 208 wird eine Fehlerbehandlungsroutine ausgewählt. Dazu werden die in den Schritten 205 bis 207 ermittelten Größen, insbesondere eine oder mehrere dem fehlerhaften Laufzeitobjekt zugeordneten Kennungen, eine oder mehrere das Laufzeitobjekt beziehungsweise die Ausführung des Laufzeitobjekts charakterisierende Größen sowie die Art des aufgetretenen Fehlers berücksichtigt.
  • Die Fehlerbehandlungsroutine wird beispielsweise durch das Betriebssystem 6 ausgewählt. Die Auswahl kann mittels der vorgenannten Größen in einer Art Entscheidungsbaum durchgeführt werden.
  • In einem Schritt 209 wird die Fehlerbehandlung durchgeführt und in einem Schritt 210 das erfindungsgemäße Verfahren zur Fehlerbehandlung beendet. Allerdings ist die in 3 dargestellte Abarbeitung eines Programms mit sequentieller Ausführung von Laufzeitobjekten und anschließender Überprüfung auf Vorliegen eines Fehlers an dieser Stelle nicht zwangsläufig ebenfalls beendet. Falls die Abarbeitung des Programms beim Erreichen des Schritts 210 noch nicht beendet ist, kann zu Schritt 201 rückgesprungen werden (gestrichelte Linie).
  • Mit dem erfindungsgemäßen Verfahren ist es folglich möglich, bereits bei der Programmierung beziehungsweise der Implementierung oder der Installation eines Laufzeitobjekts auf dem Computersystem festzulegen, welche Fehlerbehandlungsroutine bei Auftreten eines Fehlers ausgeführt werden soll. Dies ermöglicht eine besonders flexible und dem ausgeführten Laufzeitobjekt angepasste Fehlerbehandlung. Insbesondere können erfindungsgemäß einem Laufzeitobjekt mehrere Kennungen zugeordnete sein. Damit kann die Auswahl einer Fehlerbehandlungsroutine noch flexibler gestaltet sein.
  • Vorzugsweise können eine die Art des Fehlers (transient/permanent), eine das Laufzeitobjekt selbst oder eine die Ausführung des Laufzeitobjekts charakterisierende Größen zur Auswahl der Fehlerbehandlungsroutine herangezogen werden. Ferner ist es möglich, Informationen, die von der Fehlererkennungseinheit 5 ermittelt werden, beispielsweise eine Identität der Recheneinheiten 2, 3, auf dem das Laufzeitobjekt während des Auftretens des Fehlers ausgeführt wurde, bei der Auswahl der Fehlerbehandlungsroutine zu berücksichtigen. Dabei kann aus der Information, ob das betrachtete Laufzeitobjekt auf nur einer der Recheneinheiten 2, 3 oder auf beiden Recheneinheiten 2, 3 gleichzeitig abgearbeitet wurde/wird, auf die Sicherheitsrelevanz des Laufzeitobjekts zum momentanen Abarbeitungszeitpunkt geschlossen werden. Weiterhin ist es möglich, weitere Informationen des Computersystems und/oder der Peripherie (z. B. aktueller Wertebereich von Sensorgrößen und/oder Wertebereich der Ausgangsgrößen) des Computersystems zur Einschätzung der momentanen Sicherheitsrelevanz der Laufzeitumgebung heranzuziehen. Damit ist eine noch flexiblere Fehlerbehandlung auf einem Computersystem möglich.
  • Während der Durchführung der Fehlerbehandlung in den Schritten 107 beziehungsweise 209 kann ferner geprüft werden, ob beispielsweise ein durch die Fehlerbehandlungsroutine veranlasstes erneutes Ausführen des fehlerhaften Laufzeitobjekts wieder zu einem Fehler führt. In diesem Fall könnte vorgesehen sein, erneut eine Fehlerbehandlungsroutine, dieses Mal jedoch eine andere, auszuwählen. Beispielsweise kann in diesem Fall vorgesehen sein, das ganze System beziehungsweise ein Teilsystem abzuschalten.

Claims (17)

  1. Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem (1), das mindestens eine Recheneinheit (2, 3) umfasst, wobei das Computerprogramm mindestens ein Laufzeitobjekt umfasst, wobei ein während der Ausführung des Laufzeitobjekts auftretender Fehler durch eine Fehlererkennungseinheit (5) erkannt wird und wobei die Fehlererkennungseinheit (5) bei einem erkannten Fehler ein Fehlererkennungssignal erzeugt, dadurch gekennzeichnet, dass eine Fehlerbehandlungsroutine aus einer vorgebbaren Menge von Fehlerbehandlungsroutinen in Abhängigkeit von einer dem Laufzeitobjekt zugeordneten Kennung ausgewählt wird und die ausgewählte Fehlerbehandlungsroutine ausgeführt wird.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Fehlerbehandlungsroutine zusätzlich in Abhängigkeit von dem Fehlererkennungssignal ausgewählt wird.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Fehlerbehandlung in Abhängigkeit von mindestens einer das ausgeführte Laufzeitobjekt und/oder die Ausführung des Laufzeitobjekts charakterisierenden Größe durchgeführt wird.
  4. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass das Computersystem (1) mehrere Recheneinheiten (2, 3) umfasst, das Laufzeitobjekt auf mindestens zwei der Recheneinheiten (2, 3) redundant ausgeführt wird, ein Vergleich der redundant erzeugten Ergebnisse der mindestens zwei Recheneinheiten (2, 3) durchgeführt wird und ein Fehlererkennungssignal erzeugt wird, wenn die Ergebnisse nicht übereinstimmen.
  5. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahren in einem Kraftfahrzeug, insbesondere in einem Kraftfahrzeugsteuergerät, verwendet wird.
  6. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahren in einem sicherheitsrelevanten System eingesetzt wird.
  7. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass auf mindestens einer Recheneinheit (2, 3) des Computersystems (1) ein Betriebssystem (6) abläuft und die Auswertung der Kennung und/oder die Auswertung des Fehlererkennungssignals und/oder die Auswahl der Fehlerbehandlungsroutine durch das Betriebssystem (6) erfolgt.
  8. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass mindestens eine der Fehlerbehandlungsroutinen in der vorgebbaren Menge von Fehlerbehandlungsroutinen eine der folgenden Fehlerbehandlungsmöglichkeiten realisiert: a. Durchführen keiner Operation; b. Abbruch der Ausführung des Laufzeitobjekts; c. Abbruch der Ausführung des Laufzeitobjekts und Verbot einer neuen Aktivierung des Laufzeitobjekts; d. Wiederholung der Ausführung des Laufzeitobjekts; e. Backward Recovery; f. Forward Recovery; g. Reset.
  9. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass der auftretende Fehler ein transienter Fehler ist.
  10. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die Auswahl der Fehlerbehandlungsroutine zusätzlich in Abhängigkeit davon durchgeführt wird, ob der erkannte Fehler ein transienter Fehler oder ein permanenter Fehler ist.
  11. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass mittels einer Testroutine ein Hardware-Test durchgeführt wird und das Fehlererkennungssignal in Abhängigkeit des Ergebnisses Abarbeitung der Testroutine erzeugt wird.
  12. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass dem Laufzeitobjekt für verschiedene Fehlerarten und/oder für unterschiedliche Laufzeitumgebungen unterschiedliche Kennungen zugeordnet sind.
  13. Computerprogramm, das auf einem Computersystem (1) ablauffähig ist, dadurch gekennzeichnet, dass das Computerprogramm ein Verfahren nach einem der Ansprüche 1 bis 12 ausführt, wenn es auf dem Computersystem (1) abläuft.
  14. Computerprogramm nach Anspruch 13, dadurch gekennzeichnet, dass das Computerprogramm als Betriebssystem (6) ausgebildet ist.
  15. Maschinenlesbarer Datenträger, auf dem ein Computerprogramm abgespeichert ist, wobei das Computerprogramm auf einem Computersystem (1) ausführbar ist, dadurch gekennzeichnet, dass das Computerprogramm ein Verfahren nach einem der Ansprüche 1 bis 12 ausführt, wenn es auf dem Computersystem (1) abgearbeitet wird.
  16. Computersystem (1), auf dem ein Computerprogramm ausführbar ist, das mindestens ein Laufzeitobjekt umfasst und bei dem ein während der Ausführung des Laufzeitobjekts auftretender Fehler durch eine Fehlererkennungseinheit (5) erkennbar ist, dadurch gekennzeichnet, dass dem Laufzeitobjekt eine Kennung zugeordnet ist und in Abhängigkeit von der Kennung eine ausführbare Fehlerbehandlungsroutine aus einer vorgebbaren Menge von Fehlerbehandlungsroutinen auswählbar ist.
  17. Computersystem (1) nach Anspruch 16, dadurch gekennzeichnet, dass das Computersystem (1) ein Computerprogramm zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 12 aufweist.
DE102004046611A 2004-09-25 2004-09-25 Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem Withdrawn DE102004046611A1 (de)

Priority Applications (6)

Application Number Priority Date Filing Date Title
DE102004046611A DE102004046611A1 (de) 2004-09-25 2004-09-25 Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem
JP2007532882A JP4903149B2 (ja) 2004-09-25 2005-09-12 コンピュータシステム上でコンピュータプログラムを処理する方法
US11/662,611 US8316261B2 (en) 2004-09-25 2005-09-12 Method for running a computer program on a computer system
PCT/EP2005/054513 WO2006032617A1 (de) 2004-09-25 2005-09-12 Verfahren zur abarbeitung eines computerprogramms auf einem computersystem
CN200580032522.9A CN101027647B (zh) 2004-09-25 2005-09-12 在计算机***上执行计算机程序的方法
EP05784608A EP1794680A1 (de) 2004-09-25 2005-09-12 Verfahren zur abarbeitung eines computerprogramms auf einem computersystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004046611A DE102004046611A1 (de) 2004-09-25 2004-09-25 Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem

Publications (1)

Publication Number Publication Date
DE102004046611A1 true DE102004046611A1 (de) 2006-03-30

Family

ID=35447817

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004046611A Withdrawn DE102004046611A1 (de) 2004-09-25 2004-09-25 Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem

Country Status (6)

Country Link
US (1) US8316261B2 (de)
EP (1) EP1794680A1 (de)
JP (1) JP4903149B2 (de)
CN (1) CN101027647B (de)
DE (1) DE102004046611A1 (de)
WO (1) WO2006032617A1 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013208666A1 (de) 2013-05-13 2014-11-13 Zf Friedrichshafen Ag Verfahren und Vorrichtung zur Absicherung eines Errorhandlers für eine Abarbeitung eines Computerprogramms auf einem Rechnersystem
WO2017080650A1 (de) * 2015-11-11 2017-05-18 Kuka Roboter Gmbh Verfahren und computerprogramm zur korrektur von fehlern eines manipulatorsystems
WO2019174709A1 (de) * 2018-03-12 2019-09-19 Celonis Se Verfahren zur behebung von prozessanomalien
US10940583B2 (en) 2015-11-11 2021-03-09 Kuka Deutschland Gmbh Method and computer program for producing a graphical user interface of a manipulator program

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070294584A1 (en) * 2006-04-28 2007-12-20 Microsoft Corporation Detection and isolation of data items causing computer process crashes
US20090024870A1 (en) * 2007-07-20 2009-01-22 Telefonaktiebolaget Lm Ericsson System and method for managing application server responses in ip multimedia subsystem
DE102007056218A1 (de) * 2007-11-22 2009-05-28 Robert Bosch Gmbh Verfahren zur Behandlung von transienten Fehlern in Echtzeitsystemen, insbesondere in Steuergeräten von Kraftfahrzeugen
DE102009030774B4 (de) * 2009-06-27 2020-01-30 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur rechnergestützten Erfassung von Fehlern beim Ablauf von einem oder mehreren softwarebasierten Programmen in einem System aus Komponenten
WO2013073761A1 (ko) * 2011-11-14 2013-05-23 (주)네오위즈게임즈 비정상 종료 처리 방법, 이를 수행하는 비정상 종료 처리 서버 및 이를 저장한 기록 매체
US10216521B2 (en) * 2017-06-20 2019-02-26 Nvidia Corporation Error mitigation for resilient algorithms
KR102259928B1 (ko) * 2017-06-26 2021-06-03 에스케이하이닉스 주식회사 오류 관리 시스템 및 이를 포함하는 데이터 처리 시스템
CN116319269B (zh) * 2023-05-19 2023-09-15 南方电网数字电网研究院有限公司 具备通讯故障自检及快速隔离的新能源边缘侧通信模块

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155729A (en) * 1990-05-02 1992-10-13 Rolm Systems Fault recovery in systems utilizing redundant processor arrangements
JP2779559B2 (ja) * 1991-09-04 1998-07-23 本田技研工業株式会社 レーダ装置
JPH0635758A (ja) * 1992-07-20 1994-02-10 Fujitsu Ltd プログラム監視制御装置
DE4439060A1 (de) 1994-11-02 1996-05-09 Teves Gmbh Alfred Mikroprozessoranordnung für ein Fahrzeug-Regelungssystem
US5619409A (en) * 1995-06-12 1997-04-08 Allen-Bradley Company, Inc. Program analysis circuitry for multi-tasking industrial controller
JPH09120368A (ja) * 1995-10-25 1997-05-06 Unisia Jecs Corp Cpu監視装置
US5928369A (en) 1996-06-28 1999-07-27 Synopsys, Inc. Automatic support system and method based on user submitted stack trace
US6012148A (en) * 1997-01-29 2000-01-04 Unisys Corporation Programmable error detect/mask utilizing bus history stack
DE19720618A1 (de) * 1997-05-16 1998-11-19 Itt Mfg Enterprises Inc Mikroprozessorsystem für Kfz-Regelungssysteme
US6334193B1 (en) * 1997-05-29 2001-12-25 Oracle Corporation Method and apparatus for implementing user-definable error handling processes
JPH11259340A (ja) * 1998-03-10 1999-09-24 Oki Comtec:Kk コンピュータの再起動制御回路
US6393582B1 (en) * 1998-12-10 2002-05-21 Compaq Computer Corporation Error self-checking and recovery using lock-step processor pair architecture
US6948092B2 (en) * 1998-12-10 2005-09-20 Hewlett-Packard Development Company, L.P. System recovery from errors for processor and associated components
US6366980B1 (en) * 1999-06-04 2002-04-02 Seagate Technology Llc Disc drive for achieving improved audio and visual data transfer
US6615374B1 (en) * 1999-08-30 2003-09-02 Intel Corporation First and next error identification for integrated circuit devices
CN1141644C (zh) * 1999-11-20 2004-03-10 深圳市中兴通讯股份有限公司 一种嵌入处理机内存的检测和监控方法
US6625749B1 (en) * 1999-12-21 2003-09-23 Intel Corporation Firmware mechanism for correcting soft errors
JP2001357637A (ja) * 2000-06-14 2001-12-26 Sony Corp 情報再生装置、情報処理方法及び情報記録媒体
DE10056408C1 (de) 2000-11-14 2002-03-07 Bosch Gmbh Robert Vorrichtung zur Überwachung eines Prozessors
WO2002052411A1 (en) * 2000-12-21 2002-07-04 Veritas Operating Corporation Computer software run-time analysis systems and methods
US6950978B2 (en) * 2001-03-29 2005-09-27 International Business Machines Corporation Method and apparatus for parity error recovery
US6931571B2 (en) * 2001-11-20 2005-08-16 Hewlett-Packard Development Company, L.P. Method and apparatus for handling transient memory errors
US7194671B2 (en) * 2001-12-31 2007-03-20 Intel Corporation Mechanism handling race conditions in FRC-enabled processors
US7418618B2 (en) * 2003-01-08 2008-08-26 Transpacific Ip Ltd. Error reporting and correcting method for peripheral
US20040078650A1 (en) * 2002-06-28 2004-04-22 Safford Kevin David Method and apparatus for testing errors in microprocessors
US7251755B2 (en) * 2004-02-13 2007-07-31 Intel Corporation Apparatus and method for maintaining data integrity following parity error detection
US7716652B2 (en) * 2004-03-30 2010-05-11 Symantec Corporation System and methods for tracing transactions
US7263631B2 (en) * 2004-08-13 2007-08-28 Seakr Engineering, Incorporated Soft error detection and recovery
DE102004046288A1 (de) 2004-09-24 2006-03-30 Robert Bosch Gmbh Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013208666A1 (de) 2013-05-13 2014-11-13 Zf Friedrichshafen Ag Verfahren und Vorrichtung zur Absicherung eines Errorhandlers für eine Abarbeitung eines Computerprogramms auf einem Rechnersystem
WO2017080650A1 (de) * 2015-11-11 2017-05-18 Kuka Roboter Gmbh Verfahren und computerprogramm zur korrektur von fehlern eines manipulatorsystems
US10940583B2 (en) 2015-11-11 2021-03-09 Kuka Deutschland Gmbh Method and computer program for producing a graphical user interface of a manipulator program
US11065766B2 (en) 2015-11-11 2021-07-20 Kuka Deutschland Gmbh Method and computer program for correcting errors in a manipulator system
WO2019174709A1 (de) * 2018-03-12 2019-09-19 Celonis Se Verfahren zur behebung von prozessanomalien
US11307557B2 (en) 2018-03-12 2022-04-19 Celonis Se Method for eliminating process anomalies

Also Published As

Publication number Publication date
CN101027647A (zh) 2007-08-29
US20080201618A1 (en) 2008-08-21
EP1794680A1 (de) 2007-06-13
JP2008513900A (ja) 2008-05-01
CN101027647B (zh) 2013-05-01
US8316261B2 (en) 2012-11-20
WO2006032617A1 (de) 2006-03-30
JP4903149B2 (ja) 2012-03-28

Similar Documents

Publication Publication Date Title
WO2006032617A1 (de) Verfahren zur abarbeitung eines computerprogramms auf einem computersystem
EP1917592B1 (de) Rechnersystems mit wenigstens zwei ausführungseinheiten und einer vergleichseinheit sowie verfahren zu dessen steuerung
DE102012109614B4 (de) Verfahren zum Wiederherstellen von Stapelüberlauf- oder Stapelunterlauffehlern in einer Softwareanwendung
EP1805617A1 (de) Verfahren zur abarbeitung eines computerprogramms auf einem computersystem
EP1854007A2 (de) Verfahren, betriebssysem und rechengerät zum abarbeiten eines computerprogramms
DE102015210651B4 (de) Schaltung und Verfahren zum Testen einer Fehlerkorrektur-Fähigkeit
DE102006054169B4 (de) Verfahren und System für eine Zentralisierung einer Prozessabfolgeüberprüfung
EP1810139B1 (de) Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms
DE102007056218A1 (de) Verfahren zur Behandlung von transienten Fehlern in Echtzeitsystemen, insbesondere in Steuergeräten von Kraftfahrzeugen
EP2902905B1 (de) Verfahren zur Überprüfung der Abarbeitung von Software
DE102008045767A1 (de) Mikroprozessor mit Pipelineblasen-Erfassungseinrichtung
DE102013202961A1 (de) Verfahren zum Überwachen eines Stackspeichers in einem Betriebssystem eines Steuergeräts eines Kraftfahrzeuges
WO2006045733A2 (de) Verfahren, betriebssystem und rechengerät zum abarbeiten eines computerprogramms
EP3311273A1 (de) Verfahren und vorrichtung zum absichern einer programmzählerstruktur eines prozessorsystems und zum überwachen der behandlung einer unterbrechungsanfrage
DE102016116221A1 (de) Verfahren und Einrichtung zur Überwachung der Ausführung eines Programmcodes
EP3388944A1 (de) Verfahren zur fehlererkennung in einem betriebssystem
WO2017153411A1 (de) Verfahren zum betreiben eines steuergeräts für ein kraftfahrzeug
EP1461701B1 (de) Programmgesteuerte einheit mit überwachungseinrichtung
DE10110050A1 (de) Verfahren zur Absicherung sicherheitskritischer Programmteile vor versehentlicher Ausführung und eine Speichereinrichtung zur Durchführung dieses Verfahrens
WO2023232401A1 (de) Verfahren für einen betrieb eines steuergeräts eines fahrzeuges
DE102021204460A1 (de) Verfahren und Hardwarevorrichtung für diverse Redundanz aus nicht diversem Software-Quellcode
DE102009005449B4 (de) Prozessor, der zur Überwachung des Kontrollflusses Befehlen zugeordnete Eigen- und Folgekennungen auswertet
DE102010031017A1 (de) Verfahren zur Überwachung des Programmablaufs eines Prozessors
DE102015218386A1 (de) Verfahren und Vorrichtung zum Überwachen eines Programmflusses eines von einem Prozessor ausführbaren Programmes und Prozessoreinrichtung
WO2015007717A1 (de) Verfahren zur erhöhung der verfügbarkeit eines mikroprozessorsystems

Legal Events

Date Code Title Description
R005 Application deemed withdrawn due to failure to request examination

Effective date: 20110927