-
Die Erfindung betrifft ein Verfahren zum Betreiben eines informationstechnischen Systems, das zumindest eine erste Verarbeitungseinheit und eine zweite Verarbeitungseinheit aufweist, die miteinander verbunden sind. Ferner betrifft die Erfindung das informationstechnische System.
-
Eine Vielzahl von Softwareprogrammen sind derart ausgebildet, dass für eine Ausführung des Softwareprogramms ein jeweiliger Programmteil des Softwareprogramms von unterschiedlichen Rechnereinheiten ausgeführt werden muss. Dies kann zum Beispiel dadurch begründet sein, dass eine Leistungsfähigkeit einer Recheneinheit nicht ausreichend ist und/oder spezielle Sicherheitsfunktionen von einer Recheneinheit ausgeführt werden, die speziell hierfür ausgebildet ist. Der Bedarf nach häufigen Aktualisierungen der Software und der Wunsch, ausreichenden Schutz für die Software der Rechnereinheiten vorzusehen, schaffen ferner einen Bedarf nach Rechnersystemen, die eine sichere und zuverlässige Softwareaufrüstung erlauben. Insbesondere bei Kontrolleinrichtungen für ein Kraftfahrzeug, beispielsweise bei einem digitalen Tachografen, sind die Anforderungen an eine Manipulationssicherheit der Software und an eine zuverlässige Softwareaufrüstung besonders hoch.
-
WO 2011/051128 A1 offenbart ein Verfahren zum Betreiben eines Tachographen mit einem Applikationscontroller und einem Sicherheitscontroller. Dem Applikationscontroller ist ein Speicher und dem Sicherheitscontroller ist ein weiterer Speicher zugeordnet. Ein verschlüsselter Programmkode mit zumindest einer zugeordneten Signatur wird dem Sicherheitscontroller zur Verfügung gestellt. Mittels des Sicherheitscontrollers wird der verschlüsselte Programmkode entschlüsselt und mittels der zumindest einen Signatur verifiziert. Es wird detektiert, ob der entschlüsselte Programmkode für den Applikationscontroller und/oder für den Sicherheitscontroller bestimmt ist. Abhängig von der Detektierung wird das Programm in dem Speicher und/oder das weitere Programm in dem weiteren Speicher durch den entschlüsselten Programmkode zumindest teilweise ersetzt und abhängig von einem Ergebnis der Verifikation das zumindest teilweise ersetzte Programm und/oder das zumindest teilweise ersetzte weitere Programm zur Ausführung freigegeben.
-
-
Die Aufgabe, die der der Erfindung zugrunde liegt, ist es, ein Verfahren zum Betreiben eines informationstechnischen Systems und das informationstechnische System zu schaffen, die einen zuverlässigen Betrieb des informationstechnischen Systems ermöglichen.
-
Die Aufgabe wird gelöst durch die Merkmale der unabhängigen Patentansprüche. Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
-
Gemäß einem ersten Aspekt zeichnet sich die Erfindung aus durch ein Verfahren zum Betreiben eines informationstechnischen Systems. Das informationstechnische System umfasst zumindest eine erste Verarbeitungseinheit und eine zweite Verarbeitungseinheit, die miteinander in Verbindung stehen. Die erste Verarbeitungseinheit und die zweite Verarbeitungseinheit sind ausgebildet zu einer gemeinsamen Ausführung eines Anwendungsprogramms. Der ersten Verarbeitungseinheit ist ein erster Speicher zugeordnet, in dem ein von der ersten Verarbeitungseinheit ausführbarer erster Programmteil des Anwendungsprogramms gespeichert ist, und der zweiten Verarbeitungseinheit ist ein zweiter Speicher zugeordnet, in dem ein von der zweiten Verarbeitungseinheit ausführbarer zweiter Programmteil des Anwendungsprogramms gespeichert ist. Der ersten Verarbeitungseinheit und der zweiten Verarbeitungseinheit ist jeweils eine Installationsroutine zugeordnet, die ausgebildet ist, eine Aktualisierung des ersten Programmteils beziehungsweise des zweiten Programmteils zu steuern. Das Verfahren umfasst hierbei folgende Schritte: Abhängig von einem Zustand der jeweiligen Installationsroutine und abhängig von einem jeweiligen Aktualisierungsfortschritt des ersten Programmteils beziehungsweise des zweiten Programmteils während einer Aktualisierung des Anwendungsprogramms wird der ersten Verarbeitungseinheit ein Ist-Zustand aus einer vorgegebenen Menge von möglichen Zuständen zugeordnet und der zweiten Verarbeitungseinheit ein zweiter Ist-Zustand aus der vorgegebenen Menge möglicher Zustände. Nach einem Neustart des Systems oder sobald eine erfolgreiche Abspeicherung des ersten Programmteils und des zweiten Programmteils oder ein Fehler bei der Abspeicherung des ersten Programmteils und/oder des zweiten Programmteils erkannt wird, werden abhängig von dem Ist-Zustand der ersten Verarbeitungseinheit und dem Ist-Zustand der zweiten Verarbeitungseinheit jeweils vorgegebene Verarbeitungsschritte in einer vorgegebenen Reihenfolge von der ersten und der zweiten Verarbeitungseinheit ausgeführt.
-
Dies ermöglicht vorteilhafterweise mit nur sehr geringem technischen Aufwand einen zuverlässigen Betrieb des informationstechnischen Systems sicherzustellen, sowohl während einer Aktualisierung des Anwendungsprogramms als auch bei einer Störung und/oder Unterbrechung der Aktualisierung des Anwendungsprogramms sowie bei einem gezielten und/oder unerwarteten Neustart (auch bezeichnet als Reset) der ersten und/oder zweiten Verarbeitungseinheit. Eine Systemblockade aufgrund eines inkonsistenten Zustands des ersten Programmteils und des zweiten Programmteils und/oder der Installationsroutinen kann vermieden werden. Der erste und zweite Programmteil kann jeweils Programmkode und/oder Programmdaten umfassen.
-
Das erfolgreiche Abspeichern des ersten und zweiten Programmteils kann hierbei auch umfassen, dass beispielsweise die erste und/oder zweite Verarbeitungseinheit die Integrität des ersten und zweiten Programmteils erfolgreich verifiziert hat.
-
In einer vorteilhaften Ausgestaltung umfasst die Menge an möglichen Zuständen einen ersten Zustand, der einen ersten beziehungsweise einen zweiten gültigen Programmteil und eine jeweilige inaktive Programmroutine repräsentiert, einen zweiten Zustand, der einen ersten beziehungsweise einen zweiten gültigen Programmteil und eine jeweilige aktive Programmroutine repräsentiert, und einen dritten Zustand, der einen ersten beziehungsweise einen zweiten ungültigen Programmteil und eine jeweilige aktive Programmroutine der ersten beziehungsweise der zweiten Verarbeitungseinheit repräsentiert.
-
In einer weiteren vorteilhaften Ausgestaltung werden nach einem Neustart des Systems oder sobald eine erfolgreiche Abspeicherung des ersten Programmteils und des zweiten Programmteils oder ein Fehler bei der Abspeicherung des ersten Programmteils und/oder des zweiten Programmteils erkannt wird, abhängig von dem Ist-Zustand der ersten Verarbeitungseinheit und dem Ist-Zustand der zweiten Verarbeitungseinheit unter vorgegebenen Bedingungen jeweils ein neuer Ist-Zustand zugeordnet gemäß folgender Vorschrift: Falls sich die erste Verarbeitungseinheit im ersten Zustand und die zweite Verarbeitungseinheit im zweiten Zustand befindet, kann die zweite Verarbeitungseinheit zum ersten Zustand zurückkehren, oder die erste Verarbeitungseinheit muss auf den zweiten Zustand umschalten. Falls sich die erste Verarbeitungseinheit im ersten Zustand und die zweite Verarbeitungseinheit im dritten Zustand befindet, muss die erste Verarbeitungseinheit in den zweiten Zustand übergehen. Falls sich die erste Verarbeitungseinheit im zweiten Zustand und die zweite Verarbeitungseinheit im ersten Zustand befindet, kann die zweite Verarbeitungseinheit auf den zweiten Zustand wechseln, oder die erste Verarbeitungseinheit muss zum ersten Zustand zurückkehren. In allen anderen Fällen bleiben die jeweiligen Ist-Zustände gleich.
-
In einer weiteren vorteilhaften Ausgestaltung kehrt, sobald das erfolgreiche Abspeichern des ersten Programmteils und des zweiten Programmteils erkannt wird, die erste Verarbeitungseinheit zunächst in den zweiten Zustand zurück, insoweit sie ihn nicht bereits aufweist, und anschließend wechselt die zweite Verarbeitungseinheit in den ersten Zustand.
-
In einer weiteren vorteilhaften Ausgestaltung werden für eine Charakterisierung des Ist-Zustands der ersten Verarbeitungseinheit und des Ist-Zustands der zweiten Verarbeitungseinheit jeweils zwei binäre Flags genutzt, wobei ein jeweils erstes binäres Flag je nach seinem Binärzustand eine inaktive beziehungsweise aktive Installationsroutine der ersten Verarbeitungseinheit beziehungsweise der zweiten Verarbeitungseinheit repräsentiert und ein jeweils zweites binäres Flag je nach seinem Binärzustand einen gültigen beziehungsweise einen ungültigen ersten Programmteil beziehungsweise zweiten Programmteil repräsentiert. Dies ermöglicht eine sehr einfache und damit kostengünstige Charakterisierung der Ist-Zustände der ersten und zweiten Verarbeitungseinheit.
-
In einer weiteren vorteilhaften Ausgestaltung werden, nach einem Neustart des Systems oder sobald das erfolgreiche Abspeichern des ersten Programmteils und des zweiten Programmteils oder ein Fehler bei der Abspeicherung des ersten Programmteils und/oder des zweiten Programmteils erkannt wird, abhängig von den Binärzuständen der jeweiligen ersten und zweiten binären Flags die vorgegebenen Verarbeitungsschritte in der vorgegebenen Reihenfolge von der ersten und der zweiten Verarbeitungseinheit ausgeführt. Vorteilhafterweise ist eine Auswertung der Binärzustände sehr einfach und mit technisch geringem Aufwand möglich.
-
In einer weiteren vorteilhaften Ausgestaltung werden, sobald das erfolgreiche Abspeichern des ersten Programmteils und des zweiten Programmteils erkannt wird, abhängig von den Binärzuständen der jeweiligen ersten und zweiten binären Flags in einer vorgegebenen Reihenfolge die Binärzustände der jeweiligen ersten und zweiten binären Flags auf den Binärzustand zurückgesetzt, der einen gültigen Programmteil beziehungsweise eine inaktive Installationsroutine repräsentiert. Das Zurücksetzen der ersten und zweiten binären Flags in der vorgegebenen Reihenfolge ermöglicht, dass für eine Vielzahl von Zustandskombinationen, die die erste und zweite Verarbeitungseinheit aufweisen können, zu jeder Zeit des Betriebes des informationstechnischen Systems sichergestellt ist, dass das informationstechnische System lauffähig ist, das heißt der erste und zweite Programmteil sind gültig und damit jeweils ausführbar oder die jeweilige Installationsroutine ist aktiv oder die jeweilige Installationsroutine kann zumindest neu gestartet werden.
-
In einer weiteren vorteilhaften Ausgestaltung ist die erste Verarbeitungseinheit ausgebildet, einen Start der Aktualisierung des Anwendungsprogramms zu initiieren und/oder ein Ende der Aktualisierung des Anwendungsprogramms zu initiieren. Vorzugsweise ist nur die erste Verarbeitungseinheit ausgebildet, einen Start der Aktualisierung des Anwendungsprogramms zu initiieren und/oder ein Ende der Aktualisierung des Anwendungsprogramms zu initiieren. Dies kann vorteilhafterweise einen Beitrag dazu leisten, dass das informationstechnische System besser vor Manipulationen, zum Beispiel Softwaremanipulationen, geschützt werden kann.
-
In einer weiteren vorteilhaften Ausgestaltung ist die zweite Verarbeitungseinheit ausgebildet, zu entscheiden, ob die Aktualisierung des Anwendungsprogramms gestartet und/oder beendet wird. Vorzugsweise ist nur die zweite Verarbeitungseinheit ausgebildet, zu entscheiden, ob eine Aktualisierung des Anwendungsprogramms gestartet und/oder beendet werden darf oder nicht. Dies kann vorteilhafterweise einen Beitrag dazu leisten, dass das informationstechnische System besser vor Manipulationen, zum Beispiel Softwaremanipulationen, geschützt werden kann.
-
In einer weiteren vorteilhaften Ausgestaltung ist die zweite Verarbeitungseinheit ausgebildet, eine Integrität des ersten Programmteils und/oder des zweiten Programmteils zu verifizieren. Dies ermöglicht beispielsweise eine Unversehrtheit und/oder Unverändertheit des ersten und/oder des zweiten Programmteils zu überprüfen.
-
Gemäß einem zweiten Aspekt zeichnet sich die Erfindung aus durch ein informationstechnisches System, das zumindest eine erste Verarbeitungseinheit und eine zweite Verarbeitungseinheit umfasst. Die erste und die zweite Verarbeitungseinheit stehen miteinander in Verbindung und sind ausgebildet zu einer gemeinsamen Ausführung eines Anwendungsprogramms. Der ersten Verarbeitungseinheit ist ein erster Speicher zugeordnet, in dem ein von der ersten Verarbeitungseinheit ausführbarer erster Programmteil des Anwendungsprogramms gespeichert ist. Der zweiten Verarbeitungseinheit ist ein zweiter Speicher zugeordnet, in dem ein von der zweiten Verarbeitungseinheit ausführbarer zweiter Programmteil des Anwendungsprogramms gespeichert ist. Ferner ist der ersten Verarbeitungseinheit und der zweiten Verarbeitungseinheit jeweils eine Installationsroutine zugeordnet, die ausgebildet ist, eine Aktualisierung des ersten Programmteils beziehungsweise des zweiten Programmteils zu steuern. Die erste Verarbeitungseinheit ist ausgebildet, abhängig von einem Zustand der ihr zugeordneten Installationsroutine und abhängig von einem Aktualisierungsfortschritt des ersten Programmteils während einer Aktualisierung des Anwendungsprogramms sich einen Ist-Zustand aus einer vorgegebenen Menge von möglichen Zuständen zuzuordnen. Die zweite Verarbeitungseinheit ist ausgebildet, abhängig von einem Zustand der ihr zugeordneten Installationsroutine und abhängig von einem Aktualisierungsfortschritt des zweiten Programmteils während der Aktualisierung des Anwendungsprogramms sich einen Ist-Zustand aus der vorgegebenen Menge von möglichen Zuständen zuzuordnen. Die erste Verarbeitungseinheit und die zweite Verarbeitungseinheit sind ferner ausgebildet, nach einem Neustart des Systems oder sobald eine erfolgreiche Abspeicherung des ersten Programmteils und des zweiten Programmteils oder ein Fehler bei der Abspeicherung des ersten Programmteils und/oder des zweiten Programmteils erkannt wird, abhängig von dem Ist-Zustand der ersten Verarbeitungseinheit und dem Ist-Zustand der zweiten Verarbeitungseinheit jeweils vorgegebene Verarbeitungsschritte in einer vorgegebenen Reihenfolge auszuführen.
-
Vorteilhafte Ausgestaltungen des ersten Aspekts gelten hierbei auch für den zweiten Aspekt.
-
In einer vorteilhaften Ausgestaltung ist das Informationstechnische System als digitaler Tachograf ausgebildet und die erste Verarbeitungseinheit umfasst einen Applikationscontroller und die zweite Verarbeitungseinheit einen Sicherheitscontroller. Vorteilhafterweise ermöglicht dies, den digitalen Tachograf derart auszubilden, dass ein manipulationsgesicherter und zuverlässiger Betrieb des digitalen Tachografen möglich ist, sowohl während einer Aktualisierung des Anwendungsprogramms als auch bei einer Störung und/oder Unterbrechung der Aktualisierung des Anwendungsprogramms sowie bei einem gezielten und/oder unerwarteten Neustart (auch bezeichnet als Reset) der ersten und/oder zweiten Verarbeitungseinheit. Eine Systemblockade aufgrund eines inkonsistenten Zustands des ersten Programmteils und des zweiten Programmteils und/oder der Installationsroutine kann vermieden werden.
-
Ausführungsbeispiele der Erfindung sind im Folgenden anhand der schematischen Zeichnungen erläutert. Es zeigen:
- 1 ein vereinfachtes Blockschaltbild eines informationstechnischen Systems,
- 2a und 2b jeweils mögliche Kombinationen von jeweiligen binären Flags und
- 3a und 3b ein Ablaufdiagram eines Programms und eines weiteren Programms zum Betreiben des informationstechnischen Systems.
-
Elemente gleicher Konstruktion oder Funktion sind figurenübergreifend mit den gleichen Bezugszeichen versehen.
-
1 zeigt ein Ausführungsbeispiel eines informationstechnisches Systems 10. Das informationstechnische System 10 kann beispielsweise ein eingebettetes System (auch bezeichnet als Embedded System) umfassen. Beispielsweise kann das informationstechnischen System 10 von einem digitalen Tachografen eines Fahrzeugs umfasst sein. Das informationstechnische System 10 umfasst zumindest eine erste Verarbeitungseinheit CM und eine zweite Verarbeitungseinheit SM.
-
Die erste Verarbeitungseinheit CM kann beispielsweise einen Applikationscontroller umfassen und die zweite Verarbeitungseinheit SM kann beispielsweise einen Sicherheitscontroller umfassen.
-
Die erste Verarbeitungseinheit CM und die zweite Verarbeitungseinheit SM stehen miteinander in Verbindung. Die erste CM und zweite Verarbeitungseinheit SM sind ausgebildet zu einer gemeinsamen Ausführung eines Anwendungsprogramms. Der ersten Verarbeitungseinheit CM ist hierzu ein erster Speicher zugeordnet, in dem ein von der ersten Verarbeitungseinheit CM ausführbarer erster Programmteil des Anwendungsprogramms gespeichert ist. Der zweiten Verarbeitungseinheit SM ist ein zweiter Speicher zugeordnet, in dem ein von der zweiten Verarbeitungseinheit SM ausführbarer zweiter Programmteil des Anwendungsprogramms gespeichert ist. Der ersten Verarbeitungseinheit CM und der zweiten Verarbeitungseinheit SM ist jeweils eine Installationsroutine SUC1, SUC2 zugeordnet, die ausgebildet ist, eine Aktualisierung des ersten Programmteils beziehungsweise des zweiten Programmteils zu steuern. Die jeweiligen Installationsroutinen SUC1, SUC2 können beispielsweise aus dem Anwendungsprogramm heraus gestartet werden.
-
Für eine Aktualisierung des Anwendungsprogramms können verschiedene Maßnahmen vorgesehen sein, die einen Beitrag dazu leisten, dass eine Konsistenz des Anwendungsprogramms einfach sichergestellt werden kann und das informationstechnische System 10 zuverlässig betrieben werden kann.
-
Beispielsweise kann die zweite Verarbeitungseinheit SM ausgebildet sein, die Integrität des ersten Programmteils und/oder des zweiten Programmteils zu verifizieren.
-
Ferner kann vorgesehen sein, dass die erste Verarbeitungseinheit CM ausgebildet ist, einen Start der Aktualisierung des Anwendungsprogramms zu initiieren und/oder ein Ende der Aktualisierung des Anwendungsprogramms zu initiieren. Die erste Verarbeitungseinheit CM kann hierzu eine Schnittstelle IF aufweisen, über die die erste Verarbeitungseinheit CM mit externen Einrichtungen kommunizieren kann. Vorzugsweise weist die zweite Verarbeitungseinheit SM keine externe Schnittstelle auf, über die auf die zweite Verarbeitungseinheit SM von extern zugegriffen werden kann. Die erste CM und zweite Verarbeitungseinheit SM können beispielsweise derart zusammenwirken, dass die zweite Verarbeitungseinheit SM nur abhängig von der ersten Verarbeitungseinheit CM kommunizieren kann.
-
Die zweite Verarbeitungseinheit SM kann ausgebildet sein, zu entscheiden, ob die Aktualisierung des Anwendungsprogramms gestartet und/oder beendet wird. Solch eine Entscheidung kann beispielsweise abhängig von einer erfolgreichen Authentisierung eines Administrators auf der zweiten Verarbeitungseinheit SM sein.
-
Beispielsweise kann vorgesehen sein, dass das Anwendungsprogramm als ungültig charakterisiert wird, sobald auch nur ein Teil des ersten Programmteils und/oder zweiten Programmteils geändert wird und das informationstechnische System 10 derart ausbildet ist, dass das als ungültig charakterisierte Anwendungsprogramm nicht ausgeführt werden kann.
-
Ferner kann vorgesehen sein, dass die Aktualisierung des Anwendungsprogramms abgebrochen werden kann, solange der erste Programmteil und der zweite Programmteil noch nicht, auch nicht teilweise, geändert wurde. Hintergrund hierfür, dass die Aktualisierung nach einer einzelnen Änderung nicht abgebrochen werden kann, ist typischerweise, dass der Programmteil im jeweiligen Speicherbereich überschrieben wurde und die alte Software nicht mehr auf der jeweiligen Verarbeitungseinheit gespeichert ist und somit nicht lokal wiederhergestellt werden kann.
-
Des Weiteren kann vorgesehen sein, dass bei einer Aktualisierung des Anwendungsprogramms nach einem erfolgreichen Abspeichern des ersten und des zweiten Programmteils das Anwendungsprogramm aktiv als gültig charakterisiert wird und damit für das informationstechnische System 10 ausführbar wird. Das erfolgreiche Abspeichern des ersten und zweiten Programmteils kann hierbei auch umfassen, dass beispielsweise die erste CM und/oder zweite Verarbeitungseinheit SM die Integrität des ersten und zweiten Programmteils erfolgreich verifiziert hat, beispielsweise durch Prüfen einer elektronischen Signatur.
-
Die erste Verarbeitungseinheit CM ist ausgebildet, abhängig von einem Zustand der ihr zugeordneten Installationsroutine SUC1 und abhängig von einem Aktualisierungsfortschritt des ersten Programmteils während einer Aktualisierung des Anwendungsprogramms sich einen Ist-Zustand aus einer vorgegebenen Menge von möglichen Zuständen zuzuordnen.
-
Die zweite Verarbeitungseinheit SM ist ausgebildet, abhängig von einem Zustand der ihr zugeordneten Installationsroutine SUC2 und abhängig von einem Aktualisierungsfortschritt des zweiten Programmteils während der Aktualisierung des Anwendungsprogramms sich einen Ist-Zustand aus der vorgegebenen Menge von möglichen Zuständen zuzuordnen.
-
Die erste Verarbeitungseinheit CM und die zweite Verarbeitungseinheit SM sind ausgebildet, nach einem Neustart des Systems 10 oder sobald eine erfolgreiche Abspeicherung des ersten Programmteils und des zweiten Programmteils oder ein Fehler bei der Abspeicherung des ersten Programmteils und/oder des zweiten Programmteils erkannt wird, abhängig von dem Ist-Zustand der ersten Verarbeitungseinheit CM und dem Ist-Zustand der zweiten Verarbeitungseinheit SM jeweils vorgegebene Verarbeitungsschritte in einer vorgegebenen Reihenfolge auszuführen.
-
Die Menge an möglichen Zuständen kann einen ersten Zustand ZA umfassen, der einen ersten beziehungsweise einen zweiten gültigen Programmteil und eine jeweilige inaktive Programmroutine SUC1, SUC2 repräsentiert. Fern kann die Menge einen zweiten Zustand ZSUCa umfassen, der einen ersten beziehungsweise einen zweiten gültigen Programmteil und eine jeweilige aktive Programmroutine SUC1, SUC2 repräsentiert, und einen dritten Zustand ZSUCb umfassen, der einen ersten beziehungsweise einen zweiten ungültigen Programmteil und eine jeweilige aktive Programmroutine SUC1, SUC2 repräsentiert.
-
In Tabelle 1 sind mögliche Zustandskombinationen für die erste Verarbeitungseinheit
CM und die zweite Verarbeitungseinheit SM zusammengefasst. Ferner sind in Tabelle 1 für die jeweilige Zustandskombinationen mögliche Maßnahmen angegeben, die von der ersten Verarbeitungseinheit
CM nach einem Neustart (auch bezeichnet als Reset) ausgeführt werden, um einen möglichen inkonsistenten Zustand des ersten und zweiten Programmteils und der jeweiligen Installationsroutinen SUC1, SUC2 aufzuheben.
Tabelle 1
Zustand erste Verarbeitungseinheit | Zustand zweite Verarbeitungseinheit | Notwendige Maßnahmen der ersten Verarbeitungseinheit CM abhängig von der zweiten Verarbeitungseinheit |
CM | SM |
ZA | ZA | keine |
ZA | ZSUCa | Entweder SM kehrt in die Ausführung des zweiten Programmteils zurück oder CM startet ihre Installationsroutine SUC1 (CM hat bereits die Befugnis von SM erhalten, ihre Installationsroutine SUC1, SUC2 zu starten) |
ZA | ZSUCb | CM muss ihre Installationsroutine SUC1 starten, CM hat bereits die Befugnis von SM erhalten, ihre |
| | Installationsroutine SUC1 zu starten |
ZSUCa | ZA | Entweder CM kehrt in die Ausführung des ersten Programmteils zurück oder SM startet ihre Installationsroutine SUC2 |
ZSUCa | ZSUCa | Entweder CM und SM starten die Ausführung des ersten beziehungsweise des zweiten Programmteils oder CM und SM führen die jeweilige Installationsroutine SUC1, SUC2 fort |
ZSUCa | ZSUCb | Die Aktualisierung des ersten und zweiten Programmteils muss durchgeführt werden |
ZSUCb | ZA | Diese Kombination ist unlösbar |
ZSUCb | ZSUCa | Die Aktualisierung des ersten und zweiten Programmteils muss durchgeführt werden |
ZSUCb | ZSUCb | Die Aktualisierung des ersten und zweiten Programmteils muss durchgeführt werden |
-
Die in Tabelle 1 gezeigten Zustandskombinationen sind bis auf eine kritische Zustandskombination, bei der die erste Verarbeitungseinheit CM den dritten Zustand ZSUCb aufweist und die zweite Verarbeitungseinheit SM den ersten Zustand ZA aufweist, für das informationstechnische System 10 lösbar. Das informationstechnische System 10 ist, mit Ausnahme wenn es die kritische Zustandskombination aufweist, in der Lage, durch geeignete Maßnahmen die erste Verarbeitungseinheit CM und die zweite Verarbeitungseinheit SM jeweils in einen Ist-Zustand zu überführen, sodass das informationstechnische System 10 lauffähig ist, das heißt der erste und zweite Programmteil sind gültig und damit jeweils ausführbar oder die jeweilige Installationsroutine SUC1, SUC2 ist aktiv oder die jeweilige Installationsroutine SUC1, SUC2 kann zumindest neu gestartet werden.
-
Die kritischen Zustandskombination kann unlösbar sein, etwa weil die erste Verarbeitungseinheit CM, nachdem der erste Programmteil durch die Aktualisierung teilweise überschrieben wurde, nach einem Neustart nicht mehr startfähig ist, und das Anwendungsprogramm aber dafür zuständig wäre, die erforderliche Authentisierung eines Administrators für eine Neuaufnahme des Aktualisierungsprozesses an die zweite Verarbeitungseinheit SM weiterzureichen, was sie in der kritischen Zustandskombination aber nicht mehr kann. Durch die daraus resultierende Verklemmung wäre das System unbenutzbar.
-
Aus diesem Grund werden nach einem Neustart des Systems 10 oder sobald eine erfolgreiche Abspeicherung des ersten Programmteils und des zweiten Programmteils oder ein Fehler bei der Abspeicherung des ersten Programmteils und/oder des zweiten Programmteils erkannt wird, abhängig von dem Ist-Zustand der ersten Verarbeitungseinheit CM und dem Ist-Zustand der zweiten Verarbeitungseinheit SM unter vorgegebenen Bedingungen jeweils ein neuer Ist-Zustand zugeordnet gemäß folgender Vorschrift: Falls sich die erste Verarbeitungseinheit CM im ersten Zustand ZA und die zweite Verarbeitungseinheit SM im zweiten Zustand ZSUCa befindet, kann die zweite Verarbeitungseinheit SM zum ersten Zustand ZA zurückkehren, oder die erste Verarbeitungseinheit CM muss auf den zweiten Zustand ZSUCa umschalten. Falls sich die erste Verarbeitungseinheit CM im ersten Zustand ZA und die zweite Verarbeitungseinheit SM im dritten Zustand ZSUCb befindet, muss die erste Verarbeitungseinheit CM in den zweiten Zustand ZSUCa übergehen.
-
Falls sich die erste Verarbeitungseinheit CM im zweiten Zustand ZSUCa und die zweite Verarbeitungseinheit SM im ersten Zustand ZA befindet, kann die zweite Verarbeitungseinheit SM auf den zweiten Zustand ZSUCa wechseln, oder die erste Verarbeitungseinheit CM muss zum ersten Zustand ZA zurückkehren. In allen anderen Fällen bleiben die jeweiligen Ist-Zustände gleich.
-
Ein Auftreten der kritischen Zustandskombination wird somit das erfindungsgemäße Verfahren vermieden.
-
Insbesondere kehrt, sobald das erfolgreiche Abspeichern des ersten Programmteils und des zweiten Programmteils erkannt wird, zunächst die erste Verarbeitungseinheit CM in den zweiten Zustand ZSUCa zurück, insoweit sie ihn nicht bereits aufweist, und anschließend wechsel die zweite Verarbeitungseinheit SM in den ersten Zustand ZA wechselt.
-
Dies kann sicherstellen, dass nach dem Abspeichern des ersten Programmteils und des zweiten Programmteils die zweite Verarbeitungseinheit SM aus dem zweiten Zustand ZSUCa oder dritten ZSUCb nicht sofort in den ersten Zustand ZA wechselt. Stattdessen weist die erste Verarbeitungseinheit CM den zweiten Zustand ZSUCa auf oder kehrt dorthin zurück. Danach wechselt die zweite Verarbeitungseinheit SM in den ersten Zustand ZA.
-
Für eine Charakterisierung des jeweiligen Ist-Zustands der ersten CM und zweiten Verarbeitungseinheit SM können beispielsweise jeweils zwei binäre Flags CMU, CMI, SMU, SMI genutzt werden. Ein jeweils erstes binäres Flag CMU, SMU kann je nach seinem Binärzustand _gelöscht, _gesetzt eine inaktive beziehungsweise eine aktive Installationsroutine SUC1, SUC2 der ersten CM beziehungsweise der zweiten Verarbeitungseinheit SM repräsentieren.
-
Ein jeweils zweites binäres Flag CMI, SMI kann je nach seinem Binärzustand _gelöscht, _gesetzt einen gültigen beziehungsweise einen ungültigen ersten Programmteil beziehungsweise zweiten Programmteil repräsentieren.
-
Hierzu kann beispielsweise die Installationsroutine SUC1 der ersten Verarbeitungseinheit CM ausgebildet sein, dem ersten CMU und zweiten binären Flag CMI der ersten Verarbeitungseinheit CM den jeweiligen Binärzustand _gelöscht, _gesetzt zuzuweisen. Die Installationsroutine SUC2 der zweiten Verarbeitungseinheit SM ist beispielsweise ausgebildet, dem ersten SMU und zweiten binären Flag SMI der zweiten Verarbeitungseinheit SM den jeweiligen Binärzustand _gelöscht, _gesetzt zuzuweisen.
-
Dem jeweiligen ersten binären Flag CMU, SMU wird von der jeweiligen Installationsroutine SUC1, SUC2 ein zweiter Binärzustand _gesetzt zugeordnet, sobald die Installationsroutine SUC1 der ersten Verarbeitungseinheit CM beziehungsweise die Installationsroutine SUC2 der zweiten Verarbeitungseinheit SM aktiv ist. Solange das erste binäre Flag CMU der ersten Verarbeitungseinheit CM den zweiten Binärzustand _gesetzt aufweist, wird bei einem Neustart der ersten Verarbeitungseinheit CM die Installationsroutine SCU1 der ersten Verarbeitungseinheit CM gestartet und solange das erste binäre Flag SMU der zweiten Verarbeitungseinheit SM den zweiten Binärzustand _gesetzt aufweist, wird bei einem Neustart der zweiten Verarbeitungseinheit SM die Installationsroutine SCU2 der zweiten Verarbeitungseinheit SM gestartet.
-
Dem jeweiligen zweiten binären Flag CMI, SMI wird von der jeweiligen Installationsroutine SUC1, SUC2 der zweite Binärzustand _gesetzt zugeordnet, sobald der erste Programmteil beziehungsweise der zweite Programmteil aufgrund einer Änderung des ersten Programmteils beziehungsweise des zweiten Programmteils ungültig wird.
-
Die 2a und 2b zeigen in Tabellenform jeweils mögliche Kombinationen der jeweiligen binären Flags CMU, CMI, SMU, SMI und den jeweiligen möglichen Zustand der ersten Verarbeitungseinheit CM beziehungsweise der zweiten Verarbeitungseinheit SM.
-
Der vierte Zustand Z_NA tritt hier nur künstlich auf durch die Verwendung von jeweils zweier binärer Flags CMU, CMI, SMU, SMI für die erste CM beziehungsweise zweite Verarbeitungseinheit SM und wird im Folgenden nicht weiter betrachtet. Die erste CM beziehungsweise die zweite Verarbeitungseinheit SM könnte den vierten Zustand Z_NA nur aufweisen, wenn eine aktive und direkte Manipulation der jeweiligen Installationsroutinen SUC1, SUC2 und/oder einer Reset-Logik erfolgt. Das informationstechnische System 10 würde sich in diesem Fall, beispielsweise wenn zu diesem Zeitpunkt ein Neustart (auch bezeichnet als Reset) erfolgt, in einer Systemblockade befinden.
-
Beispielsweise können, nach dem Neustart des Systems 10 oder sobald das erfolgreiche Abspeichern des ersten Programmteils und des zweiten Programmteils oder ein Fehler bei der Abspeicherung des ersten Programmteils und/oder des zweiten Programmteils erkannt wird, abhängig von den Binärzuständen der jeweiligen ersten CMU, SMU und zweiten binären Flags CMI, SMI die vorgegebenen Verarbeitungsschritte in der vorgegebenen Reihenfolge von der ersten CM und der zweiten Verarbeitungseinheit SM ausgeführt werden.
-
Insbesondere können, sobald das erfolgreiche Abspeichern des ersten Programmteils und des zweiten Programmteils erkannt wird, abhängig von den Binärzuständen _gelöscht,_gesetzt der jeweiligen ersten CMU, SMU und zweiten binären Flags CMI, SMI in einer vorgegebenen Reihenfolge die Binärzustände gelöscht, _gesetzt der jeweiligen ersten CMU, SMU und zweiten binären Flags CMI, SMI auf den ersten Binärzustand zurückgesetzt werden, der einen gültigen Programmteil beziehungsweise eine inaktive Installationsroutine SUC1, SUC2 repräsentiert.
-
Hierdurch wird vermieden, dass zum Beispiel nach einem erfolgreichen Abspeichern des ersten Programmteils und des zweiten Programmteils die zweite Verarbeitungseinheit SM ausgehend von dem dritten Zustand ZUCb sich selbst den ersten Zustand ZA zuordnet. Die Änderung des dritten Zustands ZSUCb der zweiten Verarbeitungseinheit SM in den ersten Zustand ZA wird beispielsweise von der ersten Verarbeitungseinheit CM ausgelöst und somit zumindest teilweise gesteuert.
-
In 3a ist ein Ablaufdiagramm eines Programms gezeigt, das beispielsweise von der zweiten Verarbeitungseinheit SM ausgeführt wird. In 3b ist ein Ablaufdiagramm eines weiteren Programms gezeigt, das beispielsweise von der ersten Verarbeitungseinheit CM ausgeführt wird. Die beiden Programme dienen dazu, nach einer erfolgreichen Abspeicherung des ersten und zweiten Programmteils, die binären Flags CMU, CMI, SMU, SMI der vorgegebenen Reihenfolge zurückzusetzen, sodass sichergestellt ist, dass beispielsweise nach einem Neustart (auch bezeichnet als Reset), der auch beliebig während der Programmaktualisierung erfolgen kann, das informationstechnische System 10 trotzdem einen lauffähigen Betriebszustand aufweist.
-
Die erste Verarbeitungseinheit CM ist hierzu beispielsweise ausgebildet, mehrere Anfragen an die zweite Verarbeitungseinheit SM zu senden. Die zweite Verarbeitungseinheit SM ist beispielsweise ausgebildet, Rückmeldungen zu den Anfragen der ersten Verarbeitungseinheit CM an die erste Verarbeitungseinheit CM zu senden.
-
Beispielsweise kann die erste Verarbeitungseinheit CM ausgebildet sein, die folgenden Anfragen an die zweite Verarbeitungseinheit SM zu senden.
- SUCStart:
- Mit dieser Anfrage wird der Start der Installationsroutine SUC2 auf der zweiten Verarbeitungseinheit SM veranlasst, insoweit die zweite Verarbeitungseinheit SM den Start der Installationsroutine SUC2 zulässt.
- SUCStop:
- Mit dieser Anfrage wird das Beenden der Installationsroutine SUC2 auf der zweiten Verarbeitungseinheit SM veranlasst, insoweit die zweite Verarbeitungseinheit SM das Beenden der Installationsroutine SUC2 zulässt und der zweite Programmteil erfolgreich abgespeichert ist.
- SUCActive:
- Mit dieser Anfrage kann die erste Verarbeitungseinheit CM überprüfen, ob die Installationsroutine SUC2 der zweiten Verarbeitungseinheit SM aktiv ist.
- SUCValid:
- Mit dieser Anfrage kann die erste Verarbeitungseinheit CM überprüfen, ob der zweite Programmteil der zweiten Verarbeitungseinheit SM erfolgreich abgespeichert wurde.
-
Das Programm (3a) wird beispielsweise in einem Schritt S2_10 gestartet. Der Start des Programms erfolgt beispielsweise nach dem Erkennen einer erfolgreichen Abspeicherung des ersten und zweiten Programmteils durch die zweite Verarbeitungseinheit SM. Beispielsweise kann die Programminstallationsroutine SUC2 der zweiten Verarbeitungseinheit SM ausgebildet sein, zu erkennen, dass der erste Programmteil und der zweite Programmteil erfolgreich abgespeichert wurden. Beispielsweise kann die erste SUC1 und/oder zweite Programminstallationsroutine SUC2 ausgebildet sein, wenn ein Fehler bei der Abspeicherung des ersten Programmteils beziehungsweise des zweiten Programmteils auftritt, eine Fehlermeldung zu signalisieren. Zusätzlich kann beispielsweise die Programminstallationsroutine SUC2 der zweiten Verarbeitungseinheit SM ausgebildet sein, am Ende der Speicherung des ersten und zweiten Programmteils eine Integrität des gesamten ersten Programmteils und zweiten Programmteils festzustellen. Beispielsweise kann das Programm nach dem Festellen der Integrität des gesamten ersten Programmteils und zweiten Programmteils gestartet werden.
-
In einem Schritt S2_20 wird das zweite binäre Flag SMI auf den ersten Binärzustand _gelöscht gebracht.
-
In einem Schritt S2_30 wird beispielsweise ein Signal von der zweiten Verarbeitungseinheit SM an die erste Verarbeitungseinheit CM gesendet, zum Signalisieren, dass die jeweiligen Programminstallationsroutine SUC1, SUC2 beendet werden können.
-
In einem Schritt S2_70 wird, nachdem die zweite Verarbeitungseinheit SM den von der ersten Verarbeitungseinheit CM gesendete zweiten Befehl SUCStop empfangen hat, das erste binäre Flag SMU vom zweiten Binärzustand _gesetzt auf den ersten Binärzustand _gelöscht umgeschaltet.
-
In einem Schritt S2_90 wird das Programm beendet.
-
Das weitere Programm (3b), das von der ersten Verarbeitungseinheit CM ausgeführt wird, wird beispielsweise in einem Schritt S1_40 gestartet. Der Start des weiteren Programms erfolgt vorzugsweise nach dem Erkennen des Signals zum Signalisieren, dass die jeweiligen Programminstallationsroutinen SUC2, SUC1 beendet werden können, das von der zweiten Verarbeitungseinheit SM an die erste Verarbeitungseinheit CM gesendet wurde.
-
In einem Schritt S1_50 erfolgt ein Umschalten des Binärzustandes des zweiten binären Flags CMI der ersten Verarbeitungseinheit CM, so dass den ersten Binärzustand _gelöscht aufweist.
-
In einem Schritt S1_60 sendet die erste Verarbeitungseinheit den CM zweiten Befehl SUCStop an die zweite Verarbeitungseinheit SM.
-
In einem Schritt S1_80 erfolgt ein Umschalten des Binärzustandes des ersten binären Flags CMU der ersten Verarbeitungseinheit CM, so dass es den ersten Binärzustand _gelöscht aufweist.
-
In einem Schritt S1_90 wird das weitere Programm beendet.
-
In einem Fehlerfall während der Aktualisierung des Anwendungsprogramms, beispielsweise nach Kommunikationsstörungen oder bei einer nicht erfolgreichen Abschussprüfung werden, damit die kritische Zustandskombination nicht auftreten kann, beispielsweise folgende Maßnahmen getroffen:
-
Falls der Fehler bei der zweiten Verarbeitungseinheit SM auftritt, meldet diese einen Fehler an die erste Verarbeitungseinheit CM zurück. Der ersten Verarbeitungseinheit CM ist somit auch in diesem Fall bekannt, dass ein Fehler aufgetreten ist.
-
In einem ersten Schritt sendet die erste Verarbeitungseinheit CM die Anfrage SUCValid an die zweite Verarbeitungseinheit SM und erhält so zusammen mit seinem eigenen zweiten binären Flag CMI die Information, ob ein Rücksprung in die Ausführung des ersten und zweiten Programmteils, also die Ausführung des Anwendungsprogramms erlaubt ist oder nicht. Falls solch ein Rücksprung nicht erlaubt ist, werden in einem zweiten Schritt, die jeweiligen Installationsroutinen SUC1, SUC2 neu gestartet. In diesem Fall wird als nächster Schritt der vierte Schritt ausgeführt. Falls der Rücksprung erlaubt ist, kann in dem zweiten Schritt beispielsweise ein Anwender entscheiden, ob das Anwendungsprogramm oder die jeweiligen Installationsroutinen SUC1, SUC2 neu gestartet werden sollen. Falls das Anwendungsprogramm neu gestartet werden soll, sendet in einem dritten Schritt die erste Verarbeitungseinheit CM an die zweite Verarbeitungseinheit SM die Anfrage SUCStop und löscht nach positiver Rückmeldung sein eigenes erstes binäres Flag CMU. In einem vierten Schritt wird auf der ersten Verarbeitungseinheit CM und der zweiten Verarbeitungseinheit SM jeweils ein Neustart (auch bezeichnet als Reset) ausgeführt und das Anwendungsprogramm wird gestartet beziehungsweise die jeweiligen Installationsroutinen SUC1, SUC2 werden neu gestartet.
-
Vorteilhafterweise ist so sichergestellt, dass weder nach einer erfolgreichen Abspeicherung des ersten Programmteils und des zweiten Programmteils noch in einem Fehlerfall noch bei einem unerwarteten Neustart (auch bezeichnet als Reset) das informationstechnische System 10 die kritische Zustandskombination aufweist. Im Falle eines unerwarteten Neustarts entscheidet das jeweilige erste binäre Flag CMU, SMU ob der jeweilige Programmteil oder die jeweilige Installationsroutine SUC1, SUC2 gestartet wird.
-
In einer weiteren Ausführungsvariante des informationstechnischen Systems 10 kann auf eine explizite Anfrage SUCValid zur Abfrage des Ist-Zustandes der zweiten Verarbeitungseinheit SM verzichtet werden, wenn die Anfrage SUCStop einen Fehlerwert zurückmeldet, falls das erste binäre Flag SMU der zweiten Verarbeitungseinheit SM nicht gelöscht werden kann, weil das erste binäre Flag SMI der zweiten Verarbeitungseinheit SM noch den zweiten Binärzustand _gesetzt aufweist. Das Verhalten dieser Implementierung unterscheidet sich in einem Fehlerfall geringfügig von der oben beschriebenen Ausführungsvariante, weil die erste Verarbeitungseinheit CM noch keine Information über die Gültigkeit des zweiten Programmteils hat und bespielweise einem Anwender nicht die Wahl bieten kann, entweder zu einer Ausführung des ersten und zweiten Programmteils zurückzuwechseln oder die Aktualisierung fortzusetzen. Dies bedeutet, dass in einem Fehlerfall keine Unterscheidung zwischen dem zweiten Zustand ZSUCa und dem dritten Zustand ZSUCb mehr möglich ist.