DE69406571T2 - Verfahren zur Überprüfung des eindwandfreien Ablaufs eines Mehrfaden-Computerprogramms - Google Patents

Verfahren zur Überprüfung des eindwandfreien Ablaufs eines Mehrfaden-Computerprogramms

Info

Publication number
DE69406571T2
DE69406571T2 DE69406571T DE69406571T DE69406571T2 DE 69406571 T2 DE69406571 T2 DE 69406571T2 DE 69406571 T DE69406571 T DE 69406571T DE 69406571 T DE69406571 T DE 69406571T DE 69406571 T2 DE69406571 T2 DE 69406571T2
Authority
DE
Germany
Prior art keywords
message
task
execution
bit
binary
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.)
Expired - Fee Related
Application number
DE69406571T
Other languages
English (en)
Other versions
DE69406571D1 (de
Inventor
Guillaume Bres
Francois Simon
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.)
Alstom Transport SA
Original Assignee
GEC Alsthom Transport SA
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 GEC Alsthom Transport SA filed Critical GEC Alsthom Transport SA
Publication of DE69406571D1 publication Critical patent/DE69406571D1/de
Application granted granted Critical
Publication of DE69406571T2 publication Critical patent/DE69406571T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

  • Die Erfindung betrifft ein Verfahren zur Kontrolle des korrekten Ablaufs eines Programms in einem sogenannten Multitask-Rechner mit Hilfe eines oder mehrerer Prozessoren, in denen die Programmaufgaben Nachrichten aussenden und unter Berücksichtigung solcher Nachrichten ausgeführt werden, wobei die Nachrichten je eine Zeitmarke enthalten. Die Druckschrift US-A-4 251 885 bietet ein Beispiel für ein System, in dem die korrekte Ausführung einer Subroutine durch Erzeugung eines besonderen Kodes gemeldet wird.
  • Die Ausführung eines Multitask-Programms ist korrekt, wenn die folgenden vier Bedingungen erfüllt sind (die Prozessoren sind nicht gestört).
  • 1) Jede Aufgabe sendet eine oder mehrere Nachrichten als Antwort auf die Berücksichtigung einer oder mehrerer weiterer Nachrichten nach einer Zeitverzögerung aus, die unterhalb der bei Konzeption des Programms vorgegebenen Verzögerung liegt.
  • 2) Jede von einer Aufgabe ausgesendete Nachricht wird korrekt an die Aufgaben übermittelt, für die diese Nachricht bestimmt ist.
  • 3) Jede von einer Aufgabe ausgesendete Nachricht hat einen korrekten Wert.
  • 4) Die Aufgaben berücksichtigen einerseits die Nachrichten, die für sie bestimmt sind, in einer chronologischen Reihenfolge, die bei der Konzeption des Programms festgelegt wurde, und werden andererseits gemäß einer chronolögischen Reihenfolge ausgeführt, die ebenfalls bei der Konzeption des Programms festgelegt wurde. Nachfolgend gilt, daß die normale Ausführung des Programms einen unzyklischen Graphen bestimmt, dessen Endpunkte die Aufgaben und dessen Verbindungslinien den Fluß der Nachrichten zwischen den Aufgaben bilden.
  • Um zu kontrollieren, ob die erste Bedingung erfüllt ist, ist es bekannt, daß die Zeitmarken in den Aufgaben durch die Nachrichten gereicht werden und in jeder Aufgabe die Marke jeder Nabhricht in einem durch einen Taktgeber bestimmten örtlichen Zeitpunkt verglichen wird.
  • Um zu kontrollieren, ob die zweite Bedingung erfüllt ist, verwendet man bekanntlich Fehlererkennungskodes, beispielsweise vom Typ CRC.
  • Um zu kontrollieren, ob die dritte Bedingung erfüllt ist, wiederholt man bekanntlich die Aufgaben des Programms und wendet Mehrheitsentscheidungen an.
  • Ziel der Erfindung, wie sie in den Ansprüchen definiert ist, ist es, eine Lösung für die Kontrolle anzugeben, ob die vierte Bedingung erfüllt ist. Diese Bedingung ist nicht erfüllt, wenn beispielsweise Nachrichten verlorengegangen oder dupliziert wurden oder auch von den Aufgaben weggelassen wurden. Ein Verfahren zur Kontrolle, ob diese vierte Bedingung von einem Programm eines Multitask-Rechners erfüllt wird, ist aus der Druckschrift IEEE 1991 "Logical Time in Distributed Computing Systems", Colin Fidge, beschrieben. In diesem bekannten Verfahren erarbeitet jede eine Nachricht aussendende Aufgabe einen dieser Nachricht zugeordneten Ausführungsschlüssel, der eine kausale Abhängigkeitsbeziehung für diese Nachricht identifiziert, die durch die chronologische Reihenfolge der Ausführung der Aufgaben und die chronologische Reihenfolge der Berücksichtigung der Nachrichten durch diese Aufgaben definiert ist, welche zur Aussendung dieser Nachricht durch diese aussendende Aufgabe geführt haben. Jeder Ausführungsschlüssel besteht aus einer Liste von Zählern, und zwar ein Zähler für jede Aufgabe des Programms, die einen Zeitvektor bilden. Jedesmal, wenn eine Aufgabe eine Nachricht für eine Zielaufgabe aussendet, inkrementiert sie in ihrem Zeitvektor den entsprechenden Zähler und überträgt eine Kopie dieses Zeitvektors an die Zielaufgabe. Die Zielaufgabe aktualisiert ihren eigenen Zeitvektor, indem sie für jeden Zähler den größeren der Werte dieses Zählers zwischen seinem Zeitvektor und dem empfangenen Zeitvektor nimmt. Ein Problem, das sich bei diesem bekannten Verfahren stellt, besteht darin, daß die Ausführungsschlüssel eine sehr große Zahl von Bits besitzen, die linear von der Anzahl der Aufgaben des Programms abhängt (ein Zähler für jede Aufgabe). Daraus folgt, daß die Übertragung der Ausführungsschlüssel zwischen Nachrichten aussendenden Aufgaben und solche Nachrichten empfangenden Aufgaben viel Zeit erfordert und ggf. die Echtzeitausführung des Rechnerprogramms beeinträchtigt.
  • Außerdem ist in diesem bekannten Verfahren keine automatische Kontrolle der korrekten Ausführung eines Multitask-Rechnerprogramms während seines operationellen Betriebs vorgesehen. Dieses Verfahren wird nämlich in erster Linie für das Debugging eines Multitask-Rechnerprogramms verwendet.
  • Ziel der Erfindung ist es, diese Nachteile zu beheben. Hierzu ist Gegenstand der Erfindung ein Verfahren zur Kontrolle des korrekten Ablaufs eines Multitask-Rechnerprogramms, dadurch gekennzeichnet, daß jeder Ausführungsschlüssel durch die Exklusiv-ODER-Verknüpfung Bit für Bit von Binärwörtern gebildet wird, die je die binäre Repräsentation einer Aufgabenidentifikation oder einer Nachrichtenidentifikation oder einer Nachrichten-Zeitmarke enthalten, wobei die Bits jedes Binärworts vorher zyklisch mit unterschiedlichen Umfängen für jedes Wort permutiert werden.
  • Die Anzahl von Bits eines solchen Ausführungsschlüssels hängt daher nur von der Anzahl der Bits ab, die für die binäre Darstellung der Identifizierung der Aufgabe oder einer Nachricht oder einer Zeitmarke erforderlich ist, wozu ggf. die Anzahl von Bits kommt, die für die zirkulare Permutation größten Umfangs verwendet werden.
  • Die Bit-für-Bit-Kornbination ist vorzugsweise eine Exklusiv-ODER-Verknüpfung Bit-für-Bit.
  • Wenn das Multitask-Rechnerprogramm eine Industrieanlage steuert, beispielsweise eine Eisenbahnanlage, kann ein Ausführungsfehler des Multitask-Programms schwerwiegende Folgen haben. Es ist daher nützlich oder sogar notwendig, die korrekte Ausführung eines solchen Rechnerprogramms während seines Ablaufs so zu kontrollieren, daß bei Auftreten eines Ausführungsfehlers ein Alarm ausgegeben werden kann und eine restriktive Steuerung für die gesteuerte Anlage erzeugt werden kann. Hierzu sendet gemäß einem anderen Aspekt der Erfindung mindestens eine der Aufgaben mindestens eine Nachricht in Antwort auf die Berücksichtigung mindestens einer Eingangsnachricht aus, wobei ein Vergleich zwischen dem an letzter Stelle von einer Aufgabe des Programms erarbeiteten Ausführungsschlüssel und einem aufgrund der Eingangsnachricht erarbeiteten Bezugsschlüssel durchgeführt wird, auf dessen Basis ein Ausführungsfehler erfaßt werden kann.
  • Ein Ausführungsbeispiel der Erfindung wird nun anhand der beiliegenden Zeichnungen näher erläutert.
  • Figur 1 zeigt schematisch die Struktur einer Datenverarbeitungsanlage, in der das erfindungsgemäße Verfahren durchgeführt wird.
  • Figur 2 zeigt schematisch Aufgaben eines Multitask- Rechnerprogramms, die miteinander über Nachrichten in Verbindung stehen.
  • Figur 3 zeigt ein Zeitdiagramm, aus dem die Reihenfolge der Ausführung der Aufgaben des in Figur 2 gezeigten Programms und die Reihenfolge der Berücksichtigung der Nachrichten durch diese Aufgaben hervorgeht.
  • Figur 4a zeigt schematisch einen Ausführungsgraphen eines Multitask-Rechnerprogramms.
  • Figur 4b zeigt genauer ausgeführt einen Bezugsschlüssei in Form einer Kausalitätskette.
  • Figur 5 zeigt, wie ein Ausführungsschlüssel von einer eine Nachricht aussendenden Aufgabe erarbeitet wird.
  • Gemäß Figur 1 wird die Struktur der Datenverarbeitungsanlage, die zur Durchführung des erfindungsgemäßen Verfahrens vorgesehen ist, einerseits von mindestens einem Prozessor 1, 1', 1", die je eine oder mehrere Aufgaben eines zu kontrollierenden Multitask-Programms wie z.B. 10 in Figur 2 ausführen sollen, und von einem fehlerfreien Eingangsorgan 3 und einem fehlerfreien Ausgangsorgan 4 gebildet, die bei einem Fehler miteinander über eine spezialisierte Verbindung und mit den Prozessoren über einen Bus 2 verkehren. Solche Eingangs- und Ausgangsorgane können als besondere Prozessoren betrachtet werden, die programmiert sind, um die folgenden Aufgaben zu erfüllen: Für jedes Datensignal E, das für das zu kontrollierende Programm bestimmt ist, bildet das Eingangsorgan 3 eine Eingangsnachricht einschließlich einer Zeitmarke und übermittelt diese parallel an das Programm und an das Ausgangsorgan 4. Wie nachfolgend beschrieben erarbeiten die Aufgaben während der Ausführung des Programms durch die Prozessoren Ausführungsschlüssel immer dann, wenn sie eine Nachricht aussenden. Parallel dazu berechnet das Ausgangsorgan einen Bezugsausführungsschlüssel aus der vom Eingangsorgan gelieferten Eingangsnachricht. Auf der Basis eines Vergleichs des letzten Ausführungsschlüssels, der von einer Aufgabe des Programms erarbeitet wurde, mit dem Bezugsausführungsschlüssel erfaßt das Ausgangsorgan 4 das Vorliegen oder Nichtvorliegen eines Ausführungsfehlers und liefert ein Ausgangssignal 5 entsprechend dem Vergleichsergebnis.
  • In Figur 2 ist ein einfaches Beispiel eines Multitask-Rechnerprogramms 10 dargestellt. Es enthält sechs Aufgaben 13 mit den Bezeichnungen Pa, Pb, Pc, Pd, Pe, Pf, die interne Nachrichten 12 mit den Bezeichnungen r2, r3, r4, r5, r6, r8, r9 aussenden. Die Aufgaben Pa und Pe empfangen Eingangsnachrichten 11, die die Bezeichnungen r1 und r7 tragen. Als Antwort auf die Nachricht r1 sendet die Aufgabe Pa, wenn sie ausgeführt wird, die Nachrichten r2 und r3 aus.
  • Als Antwort auf die Nachricht r7 sendet die Aufgabe Pe, wenn sie ausgeführt wird, die Nachricht r8 aus. Die Aufgaben Pb, Pc, Pd, Pf werden bei Berücksichtigung einer oder mehrerer interner Nachrichten ausgeführt und die Aufgabe Pf, die als letzte ausgeführt wird, sendet die Ausgangsnachricht r9.
  • In Figur 3 zeigt das Diagramm den normalen chronologischen Ablauf der Ausführung der Aufgaben 13 des Programms und den normalen chronologischen Ablauf der Berücksichtigung der Eingangsnachrichten 11 oder internen Nachrichten 12 durch diese Aufgaben. In diesem Beispiel berücksichtigt die Aufgabe Pe die Nachricht r7, ehe die Aufgabe Pa die Nachricht r1 berücksichtigt. Außerdem sendet die Aufgabe Pf die Nachricht r9 aus, wenn sie die Nachrichten r6 und r8 berücksichtigen kann, die von der Berücksichtigung der Nachrichten r7 und r1 durch die Aufgaben Pe und Pa resultieren.
  • Das Verfahren zur Erarbeitung der Ausführungsschlüssel durch die Aufgaben wird nun anhand des Beispiels des Programms 10 aus Figur 2 beschrieben,
  • 1. Fall: Aufgaben Pa und Pe
  • Die Aufgaben Pa und Pe berücksichtigen je eine Eingangsnachricht 11, die vom Eingangsorgan 3 geliefert wird. Jede Eingangsnachricht enthält mindestens eine Identifikation der Nachricht, eine Zeitmarke und Daten. Die Identifikation der Nachricht wird üblicherweise vom Symbolnamen der Nachricht gebildet, der im Augenblick der Konzeption des Programms definiert wurde. Die Zeitmarke ist üblicherweise eine Systemangabe, die vom Eingangsorgan der Eingangsnachricht zugeordnet wird. Wenn mehrere Eingangsnachrichten durch das Eingangsorgan mit gleichen Nachrichtenidentifikatiorien geliefert werden, haben sie notwendigerweise unterschiedliche Zeitmarkenwerte. Außerdem verfügt jede Aufgabe über eine Aufgabenidentifikation und über die Identifikation jeder internen Nachricht, die sie aussendet. Die Aufgabenidentifikation ist der Symbolname der Aufgabe, der bei der Konzeption des Programms definiert wurde. In gleicher Weise wird die interne Nachrichtenidentifikation durch den Symbolnamen der internen Nachricht gebildet, der bei der Konzeption des Programms definiert wurde. Als Antwort auf die Berücksichtigung der Nachricht r1 erfaßt die Aufgabe Pa während ihrer Ausführung die Nachrichtenidentifikation und die Zeitmarke der Nachricht r1. Sie erarbeitet einen der internen Nachricht r2 zugeordneten Ausführungsschlüssel wie folgt: Die binären Darstellungen der Nachrichtenidentifikation r1, der Zeitmarke dieser Nachricht r1, der Aufgabenidentifikation der Aufgabe Pa und der Nachrichtenidentifika tion r2 liegen je in Speicherregistern einer Länge von B Bits. Eine zyklische Permutation wird auf die Bits jedes Speicherregisters mit einem Umfang angewendet, der unter einer vorher gespeicherten und für die Aufgabe Pa zugänglichen Liste verschiedener Umfänge ausgewählt wird. Die Permutationen in den verschiedenen Speicherregistern haben unterschiedliche Umfänge, die aus der Umfangsliste genommen werden. Diese Umfangsliste kann aus einer Liste von ganzzahligen Werten bestehen, die in zunehmender Reihenfolge geordnet sind und mit dem Wert 1 beginnen, z.B. 1, 2, 3, ... usw. Nach der Permutation werden die Werte der Speicherregister Bit für Bit ohne Übertrag addiert, um eine Ausführungssignatur Sex(r2) in Form eines Binärworts mit B Bits zu erhalten. Der Ausführungsschlüssel Cex(r2), der der Nachricht r2 zugeordnet ist, besteht aus der berechneten Ausführungssignatur Sex(r2) und einem Aufgabenbeitragszähler Nex(r2). Für den Nachrichtenausführungsschlüssel r2 ist der Wert Nex(r2) des Zählers auf 1 festgelegt, da er von keiner anderen Aufgabe abhängt, die vorher ausgeführt werden muß.
  • Die Aufgabe Pa erarbeitet auch einen Ausführungsschlüssel Cex(r3), der der Nachricht r3 ähnlich wie für die Nachricht r2 beschrieben zugeordnet ist, wobei die symbolische Darstellung der Nachricht r2 durch die symbolische Darstellung der Nachricht r3 ersetzt ist. Der Wert des Zählers Nex(r3) ist auch auf den Wert 1 festgelegt.
  • Ähnlich erarbeitet die Aufgabe Pe, wenn sie ausgeführt wird, einen Ausführungsschlüssel Cex(r8) für die Nachricht r8, wie oben beschrieben. Der Wert des Zählers Nex(r8) ist auf 1 festgelegt.
  • Die von den Aufgaben Pa und Pe erarbeiteten Ausführungsschlüssel werden mit den Nachrichten r2, r3, r8 an die diese Nachrichten empfangenden Aufgaben übermittelt, d.h. daß der Ausführungsschlüssel Cex(r2) an die Aufgabe Pb, der Ausführungsschlüssel Cex(r3) an die Aufgabe Pc und der Ausführungsschlüssel Cex(r8) an die Aufgabe Pf übertragen wird.
  • 2. Fall: Aufgaben Pb, Pc, Pd
  • Jede dieser Aufgaben berücksichtigt eine interne Nachricht, die von einer Aufgabe ausgesendet wurde. Sie empfängt daher einen der Nachricht zugeordneten Ausführungsschlüssel, den sie berücksichtigt. Diese Aufgaben hängen von einer Aufgabe ab, die vor ihnen ausgeführt wurde.
  • Die Aufgabe Pb entnimmt aus dem Ausführungsschlüssel Cex(r2) die Signatur Sex(r2) und den Zähler Nex(r2) sowie aus der Nachricht r2 die Identifikation und die Zeitmarke dieser Nachricht. Die Zeitmarke der Nachricht r2 gleicht der der Nachricht r1, da die Nachricht r2 unmittelbar von der Nachricht r1 abgeleitet wird. Die Aufgabe Pd erarbeitet einen Ausführungsschlüssel Cex(r4) für die Nachricht r4 wie folgt: Die binären Darstellungen der Identifikation der Nachricht r2, der der Nachricht r2 zugeordneten Zeitmarke, der Identifikation der Aufgabe Pb und der Identifikation der Nachricht r4 werden je in einem Speicherregister mit einer Länge von B Bits angeordnet. Eine zyklische Permutation wird auf die Bits jedes Speicherregisters mit einem Umfang angewandt, der aus der gleichen Umfangsliste wie für die Aufgabe Pa entnommen wird. Nach der Permutation werden die Werte der Speicherregister Bit für Bit addiert, um die partielle Ausführungssignatur Spex(r4) in Form eines Binärworts B Bits zu erhalten. Eine zyklische Permutation wird auf die Bits von Spex(r4) mit einem Umfang von Nex(r2) angewandt. Nach der Permutation der Bits werden die Werte von Sex(r2) und Spex(r4) Bit für Bit ohne Übertrag addiert, um eine Ausführungssignatur SeK(r4) in Form eines Binärworts mit B Bits zu erhalten. Der Ausführungsschlüssel Cex(r4), der der Nachricht r4 zugeordnet ist, wird von Sex(r4) und einem Zähler Nex(r4) gebildet, dessen Wert dem Wert von Nex(r2)+1 gleicht.
  • In gleicher Weise erarbeitet die Aufgabe Pc einen Ausführungsschlüssel Cex(r5).
  • Um den Ausführungsschlüssel, der der Nachricht r6 zugeordnet ist, zu erarbeiten, entnimmt die Aufgabe Pd zuerst aus den Ausführungsschlüsseln Cex(r4) und Cex(r5) die Ausführungsschlüssel Sex(r4) und Sex(r5) und die Zähler Nex(r4) und Nex(r5). Dann entnimmt sie aus den Nachrichten r4 und r5 ihre Nachrichtenidentifikation und ihre Zeitmarke. Die Zeitmarke der Nachrichten r4 und r5 gleicht der der Nachrichten r1.
  • Die Aufgabe Pd erarbeitet während ihrer Ausführung einen Ausführungsschlüssel Cex(r6) für die Nachricht r6 wie folgt: Die binären Darstellungen der Identifikation der Nachricht r5, der der Nachricht r5 zugeordneten Zeitmarke, der Identifikation der Nachricht r4, der Zeitmarke der Nachricht r4, der Identifikation der Aufgabe Pd und der Identifikation der Nachricht r6 werden je in einem Speicherregister mit einer Länge von B Bits eingespeichert. Eine zyklische Permutation wird auf die Bits jedes Speicherregisters mit einem Umfang gemäß der gleichen Umfangsliste wie für die Aufgabe Pa angewandt. Nach der Permutation werden die Werte der Speicherregister Bit für Bit ohne Übertrag addiert, um eine partielle Ausführungssignatur Spex(r6) in Form eines Binärworts von B Bits zu ergeben. Eine zyklische Permutation wird auf die Bits von Sex(r5) mit einem Umfang gleich Nex(r4) und auf die Bits von Spex(r6) mit einem Umfang gleich Nex(r4)+Nex(r5) angewandt. Nach der Permuta tion der Bits werden die Werte von Sex(r5), Sex(r4) und Spex(r6) Bit für Bit ohne Übertrag addiert, um eine Ausführungssignatur Sex(r6) in Form eines Binärworts von B Bits zu ergeben. Der Ausführungsschlüssel Cex(r6), der der Nachricht r6 zugeordnet ist, wird von Sex(r6) und einem Zähler Nex(r6) gebildet, dessen Wert der Summe Nex(r4)+Nex(r5)+1 gleicht.
  • Um einen Ausführungsschlüssel zu erarbeiten, der der Nachricht r9 zugeordnet ist, entnimmt die Aufgabe Pf zuerst aus den Ausführungsschlüsseln Cex(r6) und Cex(r8) die Ausführungssignaturen Sex(r6) und Sex(r8) und die Zähler Nex(r6) und Nex(r8). Sie entnimmt dann aus den Nachrichten r6 und r8 deren Nachrichtenidentifikation und deren Zeitmarke. Die Zeitmarke der Nachricht r6 gleicht der der Nachricht r1 und die Zeitmarke der Nachricht r8 gleicht der der Nachricht r7.
  • Die Aufgabe Pf erarbeitet bei ihrer Ausführung einen Ausführungsschlüssel Cex(r9) für die Nachricht r9 wie folgt: Die binären Darstellungen der Identifikation der Nachricht r8, der der Nachricht r8 zugeordneten Zeitmarke, der Identifikation der Nachricht r6, der Zeitmarke der Nachricht r6, der Identifikation der Aufgabe Pf und der Identifikation der Nachricht r9 werden je in einem Speicherregister mit einer Länge von B Bits untergebracht. Eine zyklische Permutation wird auf die Bits jedes Speicherregisters mit einem Umfang angewandt, der aus der gleichen Liste von Umfängen wie für die Aufgabe Pa oder Pe entnommen wird. Nach der Permutation werden die Werte der Speicherregister Bit für Bit ohne Übertrag addiert, um eine partielle Ausführungssignatur Spex(r9) in Form eines Binärworts von B Bits zu ergeben. Eine zyklische Permutation wird auf die Bits von Sex(r8) mit einem Umfang gleich Nex(r6) und auf die Bits von Spex(r9) mit einem Umfang gleich Nex(r8)+Nex(r6) angewandt. Nach der Permutation der Bits werden die Werte von Sex(r8), Sex(r6) und Spex(r9) Bit für Bit ohne Übertrag addiert und ergeben eine Ausführungssignatur Sex(r9) in Form eines Binärworts mit B Bits. Der Ausführungsschlüssel Cex(r9), der der Nachricht r9 zugeordnet ist, wird von Sex(r9) und einem Zähler Nex(r9) gebildet, dessen Wert der Summe Nex(r8)+Nex(r6)+1 gleicht. Der Ausführungsschlüssel Cex(r9) wird an das Ausgangsorgan 4 übermittelt.
  • Außerdem wird ein Bezugsausführungsschlüssel Cref(r9) durch das Ausgangsorgan 4 ausgehend von den Eingangsnachrichten r1 und r2 erarbeitet, indem der oben für den normalen Ausführungsgraphen des Programms 10 beschriebene Prozeß wiederholt wird, so daß ein Ausführungsfehler durch Vergleich des Bezugsausführungsschlüssels Cref(r9) mit dem Ausführungsschlüssel Cex(r9) erkannt werden kann. Wenn während der Ausführung des Programms 10 mehrere Nachrichten r1 und mehrere Nachrichten entsprechend r7 ausgesendet werden und wenn beispielsweise eine Nachricht r1 von der Aufgabe Pa weggelassen wurde, dann haben bestimmte Nachrichten r6 und r7, die von der Aufgabe Pf berücksichtigt werden, unterschiedliche Zeitmarken. Daraus ergibt sich, daß ein Ausführungsfehler vom Ausgangsorgan 4 erkannt wird.
  • Der normale Ausführungsgraph des Programms 10 kann leicht, beispielsweise beim Kompilieren, durch Analyse der Syntax des Quellenkodes des Programms 10 erhalten werden, aus dem die symbolischen Namen der Eingangsnachrichten, der internen Nachrichten und der Aufgaben sowie der kausale Abhängigkeitsbezug der Nachricht r9 entnommen werden. In Figur 4a ist ein normaler Ausführungsgraph eines Multitask- Programms dargestellt. In dieser Figur enthält das Programm drei Aufgaben 13 mit dem Namen T1, T2, und T3. Die Aufgaben Tl und T2 empfangen parallel eine Eingangsnachricht 11, deren Identifikation durch das Symbol e bezeichnet ist. Die Aufgaben T1 und T2 senden je als Antwort auf die Eingangsnachricht 11 die internen Nachrichten 12 aus, deren Identifikationen durch die Symbole a und b bezeichnet sind. Die Aufgabe T3 sendet als Antwort auf die internen Nachrichten 12 zwei interne Nachrichten aus, deren Identifikationen durch die Symbole c und d bezeichnet sind. Ausgehend von diesem Ausführungsgraphen können Kausalitätsketten für jede von einer Aufgabe ausgesendete interne Nachricht automatisch konstruiert werden. Figur 4b zeigt verschiedene Kausalitäts ketten 41, 42, 45, 46, die für die Nachrichten a, b, c, d erarbeitet wurde. Wenn die Symbole T1, T2, T3 Identifikationen der Aufgaben T1, T2, T3 und die Symbole Θ(e), Θ(a) und Θ(b) (hier gilt Θ(a) = Θ(b) = Θ(e)), die den Nachrichten e, a, b zugewiesenen Zeitmarken bezeichnen, enthält jede Kausalitätskette alle symbolisch dargestellten Elemente, die von einer Aufgabe verwendet werden, um eine Ausführungssignatur zu erarbeiten. So entspricht die Kausalitätskette 41 dem Wert Sex(a), die Kette 42 dem Wert Sex(b), die Kette 45 dem Wert Sex(c) und die Kette 46 dem Wert Sex(d). In den Ketten Sex(c) und Sex(d) liegen auch die partiellen Signaturen 44 und 43 mit den Werten Spex(c) und Spex(d). Das Ausgangsorgan kann daher solche Kausalitätsketten erarbeiten, in denen die Werte der Zeitmarken der Nachrichten abhängig von den vom Eingangsorgan gelieferten Eingangsnachrichten aktualisiert werden, und dann die Elemente (Symbole) der Kausalitätsketten kombinieren, um einen einem Zeitmarkenwert entsprechenden Bezugsausführungsschlüssel zu erhalten.
  • Das erfindungsgemäße Verfahren wird nun ganz allgemein anhand der Figur 5 beschrieben.
  • Nachfolgend werden die folgenden Definitionen verwendet:
  • B ist eine ganze Zahl, die die Anzahl der Bits angibt, die für die binäre Darstellung einer Ausführungssignatur erforderlich sind.
  • Pk ist die zyklische Permutationsfunktion des Umfangs von k Bits in einem Wort von B Bits.
  • r ist eine ganze Zahl, die die Anzahl von Bits angibt, die für die binäre Darstellung eines Symbols erforderlich sind, ob es sich um eine Nachrichtenidentifikation, eine Aufgabenidentifikation oder eine Zeitmarke handelt.
  • nmax ist eine ganze Zahl, die die maximale Anzahl von Nachrichten angibt, die eine Aufgabe berücksichtigt.
  • s ist eine Folge von natürlichen ganzen Zahlen, die die Verschiebung von Bits darstellt, derart, daß gilt:
  • r + maxj{s(i)}< B
  • Hierbei ist s(i) das i-te Element der Liste und der Index für diese Folge reicht von 1 bis 2(1+nmax).
  • symbolisiert die logische Exklusiv-ODER-Funktion Bit für Bit.
  • Eine Aufgabe T gemäß Figur 5 empfängt am Eingang n erste Nachrichten i&sub1;, ... in, berücksichtigt sie und sendet m zweite Nachrichten o&sub1;, ... om aus. Sie besitzt eine Aufgabenidentifikation, die durch das Symbol T bezeichnet ist.
  • Wenn die Aufgabe T ausgeführt wird, übernimmt sie parallel zu den n ersten Nachrichten n Ausführungsschlüssel Cex(i&sub1;), ... Cex(in). Wenn ij eine Eingangsnachricht ist, hat konstruktionsbedingt Cex(ij) nur Bits mit dem Wert 0.
  • Aus den Ausführungsschlüsseln Cex(i&sub1;), Cex(in) entnimmt sie n Zähler für die Beiträge von Aufgaben Nex(i&sub1;), ... Nex(in) und n Ausführungssignaturen Sex(i&sub1;), ... Sex(in). Aus den n ersten berücksichtigten Nachrichten entnimmt sie n Nachrichtenidentifikationen i&sub1;, in und n Nachrichtenzeitmarken &Theta;(i&sub1;), ... &Theta;(in).
  • Für jede zweite Nachricht ok erarbeitet die Aufgabe T einen Ausführungsschlüssel Cex(ok) wie folgt:
  • Zuerst erarbeitet sie eine partielle Signatur Spex(oi) ausgehend von folgender Beziehung:
  • Spex(ok)= j=1,n[Ps(2j-1)(ij) Ps(2j)(&theta;(ij))]
  • Ps(2n+1)(T)
  • Ps(2n+2)(ok)
  • Dann erarbeitet sie eine Ausführungssignatur Sex(ok) ausgehend von folgender Beziehung:
  • Sex(ok)= j=1,n[P&Sigma;p=1,j-1 Nex(ip)(Sex(ij))]
  • P&Sigma;p=1,n Nex(ip)(SPex(ok))
  • Der Ausführungsschlüssel Cex(ok) für die Nachricht ok besteht aus Sex(ok) und einem Zähler Nex(ok), dessen Wert der Summe &Sigma;j=1,n(Nex(ij)+1 gleicht.
  • Selbstverständlich verwenden die Aufgaben eines Programms, dessen Ausführung kontrolliert wird, die gleiche Liste 5 von natürlichen ganzen Zahlen für die Permutationen.
  • Das Ausgangsorgan 4 kann die gleiche Folge von natürlichen ganzen Zahlen wie die Aufgaben benutzen, so daß, wenn das Multitask-Programm normal abläuft, der vom Ausgangsorgan erarbeitete Bezugsschlüssel dem an letzter Stelle durch eine Aufgabe für eine Eingangsnachricht oder für Eingangsnachrichten erarbeiteten Ausführungsschlüssel gleicht. Außerdem kann das Ausgangsorgan den Wert des Bezugsausführungsschlüssels Cref abhängig von neuen Eingangsnachrichten aktualisieren, die von den Aufgaben zu unter schiedlichen Zeitpunkten berücksichtigt werden, so daß die Kontrolle während der ganzen Zeit erfolgt, in der das kontrollierte Programm abläuft.

Claims (6)

1. Verfahren zur Kontrolle der korrekten Ausführung eines Multitask-Rechnerprogramms (10) durch mindestens einen Prozessor (1, 1', 1"), in dem die Aufgaben (Pa, Pb, Pc, Pd, Pe, Pf, T1, T2, T3, T) des Programms Nachrichten (r2, r3, r4, r5, r6, r8, r9, a, b, c, d, ok) aussenden und unter Berücksichtigung solcher Nachrichten ausgeführt werden, wobei jede Nachricht eine Zeitmarke (&Theta;(a), &Theta;(b), &Theta;(ij)) enthält und jede eine Nachricht aussendende Aufgabe einen dieser Nachricht zugeordneten Ausführungsschlüssel (Cex(ok)) erarbeitet, der eine kausale Abhängigkeitsbeziehung der Nachricht identifiziert, welche durch die chronologische Abfolge der Ausführung der Aufgaben und die chronologische Abfolge der Berücksichtigung der Nachrichten durch diese Aufgaben definiert ist, die zur Aussendung dieser Nachricht durch diese aussendende Aufgabe geführt haben, dadurch gekennzeichnet, daß jeder Ausführungsschlüssel (Cex(ok)) durch eine Exklusiv-ODER-Verknüpfung ( ) Bit für Bit von Binärwörtern gebildet wird, die je die binäre Repräsentation einer Aufgabenidentifikation oder einer Nachrichtenidentifikation oder einer Nachrichten-Zeitmarke enthalten, wobei die Bits jedes Binärworts vorher zyklisch mit unterschiedlichen Umfängen (s(2j-1), s(2j), s(2n+1), s(2n+2)) für jedes Wort permutiert wurden, und wobei mindestens eine der Aufgaben (Pa, Pe, T1, T2) eine oder mehrere solcher Nachrichten als Antwort auf die Berücksichtigung mindestens einer Eingangsnachricht (r1, r7, e) aussendet und ein Vergleich zwischen dem an letzter Stelle durch eine Aufgabe des Programms erarbeiteten Ausführungsschlüssel und einem ausgehend von der Eingangsnachricht erarbeiteten Bezugsschlüssel erfolgt, der eine Erfassung eines Ausführungsfehlers erlaubt.
2. Verfahren nach Anspruch 1, in dem jede eine erste Nachricht (ij) empfangende und eine zweite Nachricht (ok) aussen dende Aufgabe (T) für diese zweite Nachricht einen Ausführungsschlüssel (Cex(ok)) durch Kombination Bit für Bit nach zyklischer Permutation mit unterschiedlichen Umfängen ein Binärwort erarbeitet, das die binäre Darstellung der Identifikation der ersten Nachricht (ij), ein Binärwort mit der binären Darstellung der der ersten Nachricht zugewiesenen Zeitmarke (&Theta;(ij)), ein Binärwort mit der binären Darstellung der Identifikation dieser Aufgabe (T) und ein Binärwort mit der binären Darstellung der Identifikation der zweiten Nachricht (ok) kombiniert.
3. Verfahren nach Anspruch 2, in dem bestimmte Aufgaben einen Ausführungsschlüssel (Cex(ij)) parallel mit einer ersten Nachricht (ij) empfangen und eine zweite Nachricht (ok) aussenden, wobei jede (T) dieser bestimmten Aufgaben einen Ausführungsschlüssel (Cex(ok)) für diese zweite Nachricht erarbeitet, indem Bit für Bit nach zyklischer Permutation mit ersten unterschiedlichen Umfängen (s(2j-1), s(2j), s(2n+1), s(2n+2)) ein Binärwort mit der binären Darstellung der Identifikation der ersten Nachricht (ij), ein Binärwort mit der binären Darstellung der Zeitmarke (&Theta;(ij)), die der ersten Nachricht zugewiesen ist, ein Binärwort mit der binären Darstellung der Identifikation dieser Aufgabe (T) und ein Binärwort mit der binären Darstellung der Identifikation der zweiten Nachricht (ok) kombiniert werden, um ein resultierendes Binärwort zu ergeben, und indem Bit für Bit nach zyklischer Permutation mit zweiten unterschiedlichen Umfängen (N1, ... Nn) das resultierende Binärwort mit dem Ausführungsschlüssel kombiniert wird, der parallel mit der ersten Nachricht empfangen wurde.
4. Verfahren nach Anspruch 3, bei dem die ersten Umfänge der zyklischen Permutation von einer Folge ganzzahliger Werte bestimmt wird, die in jeder Aufgabe enthalten ist.
5. Verfahren nach Anspruch 3 oder 4, bei dem die zweiten Umfänge der zyklischen Permutation von einem Zähler bestimmt werden, der zu dem parallel mit der ersten Nachricht empfangenen Ausführungsschlüssel gehört.
6. Verfahren nach einem der Ansprüche 1 bis 5, bei dem die Kombination Bit für Bit eine Exklusiv-ODER-Verknüpfung Bit- für-Bit ist.
DE69406571T 1993-03-11 1994-03-08 Verfahren zur Überprüfung des eindwandfreien Ablaufs eines Mehrfaden-Computerprogramms Expired - Fee Related DE69406571T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9302812A FR2702577B1 (fr) 1993-03-11 1993-03-11 Procédé pour contrôler l'exécution correcte d'un programme d'ordinateur multitâche.

Publications (2)

Publication Number Publication Date
DE69406571D1 DE69406571D1 (de) 1997-12-11
DE69406571T2 true DE69406571T2 (de) 1998-03-05

Family

ID=9444866

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69406571T Expired - Fee Related DE69406571T2 (de) 1993-03-11 1994-03-08 Verfahren zur Überprüfung des eindwandfreien Ablaufs eines Mehrfaden-Computerprogramms

Country Status (7)

Country Link
EP (1) EP0615188B1 (de)
AT (1) ATE160033T1 (de)
DE (1) DE69406571T2 (de)
DK (1) DK0615188T3 (de)
ES (1) ES2108391T3 (de)
FR (1) FR2702577B1 (de)
GR (1) GR3025969T3 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10063350C1 (de) * 2000-12-19 2002-07-18 Siemens Ag Verfahren zur Überwachung einer Datenverarbeitung und -übertragung

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0858034B1 (de) * 1997-02-07 2002-06-12 Hewlett-Packard Company, A Delaware Corporation Rechnerperipheriegeräteverwaltung
GB2387683B (en) * 2002-04-19 2007-03-28 Hewlett Packard Co Workflow processing scheduler
FR2880442B1 (fr) * 2005-01-05 2007-02-16 Siemens Transp Systems Soc Par Procede de verification du bon fonctionnement d'un dispositif de traitement, dispositif de verification et dispositif de traitement incluant le dispositif de verification
DE102007062920A1 (de) * 2007-12-21 2009-06-25 Endress + Hauser Gmbh + Co. Kg Verfahren zur Überwachung der logischen Ausführungsreihenfolge und der Datenübertragung eines in einzelne Module unterteilten Programms
US8156388B2 (en) * 2008-11-24 2012-04-10 Symbol Technologies, Inc. Analysis leading to automatic action
US8336080B2 (en) 2009-06-26 2012-12-18 Symbol Technologies, Inc. Methods and apparatus for rating device security and automatically assessing security compliance
CN108829497A (zh) * 2018-05-31 2018-11-16 阿里巴巴集团控股有限公司 事务因果序的校正方法及装置、电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4251885A (en) * 1979-03-09 1981-02-17 International Business Machines Corporation Checking programmed controller operation
DE2939194A1 (de) * 1979-09-27 1981-05-14 Siemens AG, 1000 Berlin und 8000 München Verfahren und schaltungsanordnung zum ueberwachen des ordnungsgemaessen ablaufs eines programms

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10063350C1 (de) * 2000-12-19 2002-07-18 Siemens Ag Verfahren zur Überwachung einer Datenverarbeitung und -übertragung
US7185262B2 (en) 2000-12-19 2007-02-27 Siemens Aktiengesellschaft Method and device for monitoring a data processing and transmission

Also Published As

Publication number Publication date
DK0615188T3 (da) 1997-12-22
DE69406571D1 (de) 1997-12-11
EP0615188A1 (de) 1994-09-14
GR3025969T3 (en) 1998-04-30
ATE160033T1 (de) 1997-11-15
FR2702577B1 (fr) 1995-04-28
EP0615188B1 (de) 1997-11-05
ES2108391T3 (es) 1997-12-16
FR2702577A1 (fr) 1994-09-16

Similar Documents

Publication Publication Date Title
DE69505218T2 (de) Verfahren zur Fehleridentifizierung in einem komplexen System
DE69315378T2 (de) Einen dynamischen Nachrichtenservice verwendendes objektorientiertes Softwaresystem, besonders für eine Kontroll-/Steuer-Vorrichtung für eine redundante Architektur
DE69021659T2 (de) Verfahren und Vorrichtung zur reihenweisen Parallelprogrammfehlersuche.
DE69613056T2 (de) Schnittstelleneinrichtung zwischen einem Rechner redundanter Architektur und einem Kommunikationsmittel
DE2527631A1 (de) Nachrichtenuebertragungsanlage zur uebertragung von nachrichten zwischen mehreren stationen
DE69406571T2 (de) Verfahren zur Überprüfung des eindwandfreien Ablaufs eines Mehrfaden-Computerprogramms
DE19617976A1 (de) Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen
EP3891642A1 (de) Verfahren zur sicherung der vertrauenswürdigkeit von quellcodes
DE2423260A1 (de) Verfahren und schaltungsanordnung zur pruefung von daten verarbeitenden anlagen, insbesondere fernsprechvermittlungsanlagen mit ueber ein busleitungssystem an eine steuerzentrale angeschlossenen peripheren einrichtungen
EP2569738A1 (de) Vorrichtung zur verarbeitung von daten in einem rechnergestützten logiksystem sowie entsprechendes verfahren
DE60030930T2 (de) Vorrichtung und Verfahren zur Erhaltung einer Leitweglenkungstabelle
DE2654389B2 (de)
DE3842286C2 (de) Verfahren zur Verarbeitung von Daten in einem verteilten Verarbeitungssystem
DE3426902C2 (de) Schaltungsanordnung zum Konfigurieren von Peripherieeinheiten in einer Datenverarbeitungsanlage
DE102015218890A1 (de) Verfahren und Vorrichtung zum Generieren eines Ausgangsdatenstroms
DE69025242T2 (de) Kommunikationseinrichtung zur Überwachung der übertragenen Datenmenge
DE2458224C3 (de) Datenverarbeitungssystem mit Koordinierung der Parallelarbeit von mindestens zwei Datenverarbeitungsanlagen
DE69911000T2 (de) Vorrichtung und Verfahren zur Initialisierung eines verteilten Rechnersystems
DE2657404A1 (de) Steuerwerk
DE102020213323A1 (de) Datenverarbeitungsnetzwerk zur Datenverarbeitung
EP2194457B1 (de) Vorrichtung zum Erzeugen eines markierten Referenzdatenstroms
DE102021126271A1 (de) Verfahren und System zur Verknüpfung von Fehlermeldungen
EP1019808B1 (de) Responsives system und verfahren zur digitalen signalverarbeitung sowie verfahren zum betrieb eines responsiven systems
DE4230178B4 (de) Verfahren zum automatischen Bestimmen der Reihenfolge der Signalbearbeitung in einem sequentiell arbeitenden Bausteinsystem
EP0146865B1 (de) Verfahren zum Erzeugen zufallsähnlicher Binärzeichenfolgen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee