DE60127857T2 - Sicherheitsverfahren mit deterministischer echtzeit-ausführung von multitask-anwendungen des steuer- und befehlstyps mit fehlereingrenzung - Google Patents

Sicherheitsverfahren mit deterministischer echtzeit-ausführung von multitask-anwendungen des steuer- und befehlstyps mit fehlereingrenzung Download PDF

Info

Publication number
DE60127857T2
DE60127857T2 DE60127857T DE60127857T DE60127857T2 DE 60127857 T2 DE60127857 T2 DE 60127857T2 DE 60127857 T DE60127857 T DE 60127857T DE 60127857 T DE60127857 T DE 60127857T DE 60127857 T2 DE60127857 T2 DE 60127857T2
Authority
DE
Germany
Prior art keywords
task
system layer
time
execution
microkernel
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 - Lifetime
Application number
DE60127857T
Other languages
English (en)
Other versions
DE60127857D1 (de
Inventor
Vincent David
Jean Delcoigne
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.)
Areva NP SAS
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique CEA
Areva NP SAS
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 Commissariat a lEnergie Atomique CEA, Areva NP SAS filed Critical Commissariat a lEnergie Atomique CEA
Publication of DE60127857D1 publication Critical patent/DE60127857D1/de
Application granted granted Critical
Publication of DE60127857T2 publication Critical patent/DE60127857T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Alarm Systems (AREA)
  • Hardware Redundancy (AREA)

Description

  • Die vorliegende Erfindung hat ein Sicherungsverfahren zur Aufgabe, das das Echtzeitausführen von Multitasking-Anwendungen des Steuer- und Befehlstyps in einem Steuersystem deterministisch macht, umfassend mindestens einen ersten Taktgeber, der ein Unterbrechungssignal sendet, wenn eine einstellbare Zeitmenge abgelaufen ist, eine zentrale Recheneinheit mit mindestens einem Prozessor, der mindestens das Unterbrechungssignal des Taktgebers empfangen kann, einen Hauptspeicher und eine Einheit von Controllern von Peripheriegeräten für die Eingangs-Ausgangs-Steuerung des Steuersystems.
  • Bei einem Multitasking-Verwaltungssystem verschiedener Verarbeitungen (Eingänge-Ausgänge, Berechnungen usw.) mit unterschiedlichen Zeitmaßstäben, die Daten austauschen können, mit Echtzeitsynchronisation und -Koordination aller Verarbeitungen, ist es wünschenswert, Verarbeitungen in Echtzeit deterministisch ausführen zu können, das heißt mit einer Einmaligkeit und einer Invarianz des globalen Verhaltens aller Aufgaben, die untereinander und mit der Umgebung in Wechselwirkung treten. Es ist ferner wünschenswert, dass das Durchführen der Verarbeitungen in Echtzeit gesichert wird, das heißt, dass es das Erfassen und das Absondern von Anomalien so aufweist, dass die Unabhängigkeit der verschiedenen Aufgaben in Bezug auf Versagensfälle sichergestellt ist und bei Gegenwart von Betriebsanomalien gleichzeitig möglichst deterministisch bleibt.
  • Man kennt bereits zahlreiche Multitasking-Verwaltungssysteme. Diese Verwaltungssysteme sind jedoch meistens asynchron und daher nicht deterministisch. Ferner weisen solche Systeme eine Konzeption auf, die das Ausbreiten bestimmter Ausfallsarten nicht verhindert.
  • Insbesondere kennt man aus dem Dokument FR-A-2 771 828 ein Sicherungsverfahren eines Multitasking-Rechners, der mit einem System zum Erfassen von Ausfall durch zeitweiliges oder räumliches Partitionieren ausgestattet ist, das jederzeit die Aufgabe, deren Ausführung zulässig ist, erkennt.
  • Gemäß diesem Dokument, das ein System mit zyklischer Ablaufplanung betrifft, wird das Partitionieren verwendet, um das Ausbreiten der Ausfälle zu beschränken, es besteht dann aber keine Kommunikationen zwischen den Partitionen mehr, das heißt, dass es auf globaler Ebene keine Multitasking-Verwaltung mehr gibt. Es existiert ferner immer noch eine Möglichkeit des Ausbreitens von Ausfällen innerhalb einer Partition, was es nicht erlaubt, eine maximale Absicherung zu haben.
  • Das Dokument FR-A-2 771 828 zeigt daher, dass das Erzielen eines Determinismus einer Multitasking-Verwaltung zu widersprechen scheint.
  • Christophe AUSSAGUES et al., „Guaranteeing Timeliness In Safety-Critical Real-Time Systems" beschreibt ein Modellierungsverfahren zum Garantieren des deterministischen Echtzeitausführens von Multitasking-Anwendungen, das die folgenden Schritte aufweist: für jede der Aufgaben Definieren der zulässigen Verkettungen, die in einem Zustände-Übergänge-Graphen ausgedrückt werden, für jede Aufgabe Definieren eines Anfangsknotens, ausgehend von den Zustände-Übergänge-Graphen Aufbauen eines SP-Graphen, der alle möglichen Durchführungen aller Aufgaben darstellt, und Analysieren des SP-Graphen, um zu bestimmen, ob das deterministische Durchführen der Aufgaben garantiert ist.
  • Die vorliegende Erfindung zielt darauf ab, den Nachteilen des früheren Stands der Technik abzuhelfen und es zu erlauben, über weiter integrierte, leistungsfähigere und sicherere Steuersysteme zu verfügen.
  • Insbesondere zielt die vorliegende Erfindung darauf ab, eine gesicherte Multitasking-Echtzeitausführung und deterministisch durch einen Rechner mit Fehlerabsondern und Fehlertoleranz zu erlauben.
  • Die Erfindung zielt daher darauf ab, eine Sicherung sicherzustellen, die einen hohen Grad an Determinismus der Echtzeitdurchführung von Multitasking-Anwendungen sowohl für zyklische Aufgaben als für azyklische Aufgaben mit expliziten Kommunikationen (datierte Meldungen) und impliziten Kommunikationen (datierte Datenströme) sicherstellt.
  • Diese Zielsetzungen werden dank eines Sicherungsverfahrens erreicht, das die Durchführung in Echtzeit von Multitasking-Anwendungen des Steuer- und Befehlstyps in einem Steuersystem deterministisch macht, umfassend:
    • – mindestens einen ersten Taktgeber, der ein Unterbrechungssignal sh sendet, wenn eine einstellbare Zeitmenge abgelaufen ist,
    • – eine zentrale Recheneinheit mit mindestens einem Prozessor, der zumindest das Unterbrechungssignal sh des Taktgebers empfangen kann,
    • – einen Hauptspeicher und
    • – eine Einheit von Controllern von Peripheriegeräten für die Eingänge-Ausgänge-Steuerung des Steuersystems,
    wobei das Verfahren dadurch gekennzeichnet ist, daß es die folgenden Schritte aufweist:
    • (a) für jede der Aufgaben einer gegebenen Anwendung Speichern aller gestatteten Verkettungen ihrer Zeitsynchronisationspunkte, die ein Abrufen einer Systemschicht erfordern, wobei sich diese Verkettungen in einem Steuergraphen der Ausführung von Abrufen der Systemschicht der betreffenden Aufgabe zeigen, wobei jeder Graph eine Einheit von Knoten aufweist, die jeweils einem Abruf der Systemschicht des Steuersystems entsprechen,
    • (b) für jeden Knoten des Steuergraphen jeder Aufgabe Speichern der Art des Abrufens der Systemschicht und ihrer Abrufparameter, inklusive der Zeitparameter, die die Aktualisierungen von Daten d(i) des „frühester Anfang" und von Daten f(i) des „spätesten Endes" ermöglichen,
    • (c) für jede Aufgabe Speichern eines Anfangsknotens in dem zugehörigen Graphen,
    • (d) für die gegebene Anwendung und vor dem Starten der Echtzeitdurchführung gemäß einer zeitgetakteten Betriebsart für jede Aufgabe Initialisieren des Anfangsknotens und des Anfangszeitpunktes, der den Anfangszustand der betreffenden Aufgabe darstellt,
    • (e) für die gegebene Anwendung und vor dem Starten der Echtzeitausführung gemäß einer zeitgetakteten Betriebsart Initialisieren der Startreihenfolge jeder der Aufgaben, wobei eine Vorab-Ablaufplanung der Listen der Aufgaben im Bereich eines nuklearen Mikrokerns durchgeführt wird,
    • (f) Aktivieren des ersten Taktgebers, um das Taktgeberunterbrechungssignal sh zu senden, das ein Abrufen des Mikrokerns darstellt, zum ersten Zeitpunkt der Anwendung für das Starten der Ausführung dieser Anwendung im zeitgetakteten Betrieb,
    • (g) während des normalen Betriebs, nach dem Aktivieren des ersten Taktgebers, Veranlassen des Deaktivierens des ersten Taktgebers durch den Mikrokern bei jedem Abrufen des Mikrokerns; bei einem Abrufen des Mikrokerns durch die Systemschicht oder durch das Verarbeiten des Unterbrechungssignals sh, Übergehenlassen des Mikrokerns zu dem Schritt des Aktualisierens der Listen der Aufgaben auf geordnete Weise gemäß den Zeitmerkmalen der Aufgaben, nämlich ihrem Datum d(i) des frühesten Anfangs und ihrem Datum f(i) des spätesten Endes; nach dem Aktualisieren der Listen Berechnenlassen durch den Mikrokern des kleinsten zukünftigen Zeitpunkts, in dem eine Aufgabe wieder aktiviert wird, und Aktivierenlassen des ersten Taktgebers durch den Mikrokern ausgehend von diesem kleinsten zukünftigen Zeitpunkt, um die Aufgabe zu wecken, und Verlassen des Mikrokerns,
    • (h) bei dem Ausführen einer Aufgabe Durchführen eines Abrufens der Systemschicht nur, wenn ein Knoten des Steuergraphen der Aufgabe erreicht ist, wobei das Argument die Nummer des Knotens ist; Durchführen einer Kontrolle beim Eintritt in die Systemschicht, um zu überprüfen, ob gemäß dem Steuergraphen der in Ausführung befindlichen Aufgabe die Verkettung ausgehend von dem Knoten, der dem vorhergehenden Abrufen der Systemschicht entspricht, zulässig ist, um auf der Ebene der Systemschicht das Verarbeiten einer Anomalie auszulösen, wenn diese Verkettung nicht zulässig ist, und das Aktualisieren der Zeitparameter der in Ausführung befindlichen Aufgabe durchzuführen, darunter das Datum d(i) des frühesten Anfangs und das Datum f(i) des spätesten Endes, mit Hilfe von Abrufen des Mikrokerns durch die Systemschicht und Fortsetzen der normalen Ausführung der laufenden Aufgabe, bis diese einen neuen Knoten ihres Steuergraphen erreicht.
  • Insbesondere wird das erfindungsgemäße Sicherungsverfahren bei einem Steuersystem angewandt, das ferner eine Speicherschutzeinheit zum Steuern der Adressierungszugriffsrechte aufweist, wobei die Speicherschutzeinheit ausgehend von einer angeforderten Adresse ad, die von der zentralen Recheneinheit geliefert wird, und von Zugriffsrechten (C) der Ausführungskontexte des Prozessors auf dem adressierbaren Speicherplatz, auf exklusive Weise eine bestätigte Adresse av erzeugt, die den Zugriff ermöglicht, oder aber in Richtung der zentralen Recheneinheit ein Ausnahmesignal se einer nicht gestatteten Adressierung sendet, wobei das Sicherungsverfahren ferner die folgenden Schritte aufweist:
    • (i) während einer Vorbereitungsphase Speichern der Zugriffsrechte auf jedes der Speichersegmente für den Mikrokern für eine gegebene Anwendung sowie für jede Aufgabe der Anwendung und ihre Verlängerung in der Systemschicht, um einen ersten und einen zweiten Ausführungskontext zu bilden, je nachdem, ob sich die Anweisungen in dem die Aufgabe darstellenden Anwendung eigenen Code befinden oder ob sich diese Anweisungen in dem generischen Code der Systemschicht, der die Verlängerung der Aufgabe in der Systemschicht darstellt, befinden,
    • (j) für eine gegebene Anwendung und vor dem Starten der Echtzeitdurchführung gemäß einer zeitgetakteten Betriebsart, Initialisieren des Kontextes des Mikrokerns und des ersten und des zweiten Ausführungskontextes für jede Aufgabe und für ihre Verlängerung in der Systemschicht,
    • (k) bei dem Durchführen einer Aufgabe Ausführen eines Abrufs der Systemschicht mit Hilfe einer Anweisung zum Übergehen auf einen privilegierten Ausführungsmodus, der es ermöglicht, vom Ausführungskontext der Aufgabe auf den Ausführungskontext ihrer Verlängerung in der Systemschicht überzugehen, und nach dem Prüfen, ob die Verkettung ausgehend von dem Knoten, der dem vorherigen Systemabruf entspricht, zulässig ist, und nach Aktualisieren der Zeitparameter der Aufgabe mit Hilfe von Abrufen des Mikrokerns durch die Systemschicht, Rückkehr in den Code der Aufgabe mit Hilfe einer Rückkehranweisung in den nicht privilegierten Modus, der es ermöglicht, von dem Ausführungskontext der Verlängerung in der Systemschicht auf den Ausführungskontext der Aufgabe überzugehen.
  • Vorzugsweise sind die Ausführungskontexte jeder Aufgabe der Anwendung paarweise getrennt.
  • Gemäß einem besonderen Merkmal des erfindungsgemäßen Verfahrens sind die Verlängerungen der Ausführungskontexte der Aufgaben der Anwendung in der Systemschicht für die Ausführungskontexte der Aufgaben mit dem Code der Anwendung zum Schreiben nicht zugänglich.
  • Die Codierung des Steuergraphen einer Aufgabe untersagt jeden Ausfall aus gemeinsamer Ursache zwischen dem Ausführungssteuermechanismus einer beliebigen Aufgabe der Anwendung und der Ausführung dieser Aufgabe selbst.
  • Das erfindungsgemäße Verfahren kann auch die folgenden Schritte aufweisen:
    • (l) während einer Vorbereitungsphase für eine gegebene Anwendung, für alle gestatteten Verkettungen in jeder Aufgabe Speichern einer Zeitquote, die eine Erhöhung der maximal erforderlichen Ausführungszeit für den Übergang von einem Knoten zum anderen in dem Steuergraphen der Aufgabe darstellt, wobei jede dieser Zeitquoten die mit der Ausführung der der Aufgabe eigenen Anweisungen verbrachte Zeit aber auch die bei der Ausführung des generischen Codes der Systemschicht in Verlängerung der Aufgabe verbrachte Zeit enthält,
    • (m) während des normalen Betriebs nach dem Aktivieren des ersten Taktgebers bei einem Abrufen des Mikrokerns, das durch das zeitbedingte Unterbrechungssignal sh ausgelöst wurde und zum Deaktivieren des ersten Taktgebers führt, Ausführen einer Prüfung, um zu prüfen, ob das zeitbedingte Taktgeberunterbrechungssignal sh, das das Abrufen des Mikrokerns auslöst, mit einem Verstoßversuch gegen eine Zeitquote verbunden ist, und, wenn dies der Fall ist, Veranlassen der Verarbeitung der Anomalie durch den Mikrokern, während, wenn das zeitbedingte Unterbrechungssignal sh nicht mit einem Verstoßversuch gegen eine Zeitquote verbunden ist, das Übergehen des Mikrokerns auf den Schritt des Aktualisierens der Aufgabenlisten veranlaßt wird, und nach dieser Aktualisierung der Aufgabenlisten, Veranlassen der Berechnens durch den Mikrokern einerseits des kleinsten zukünftigen Zeitpunkts, in dem eine Aufgabe geweckt werden soll, und andererseits des zukünftigen Zeitpunkts, ab dem die Zeitquote, die bei der Aktualisierung der Listen bestimmt wurde, die der in Ausführung befindlichen Aufgabe am Ausgang des Mikrokerns auferlegten Zeitquote entspricht, abgelaufen ist, und Veranlassen des Aktivierens des ersten Taktgebers durch den Mikrokern in dem kleinsten dieser zukünftigen Zeitpunkte, um, je nach Fall, entweder die Aufgabe zu wecken oder einen Verstoßversuch gegen eine Zeitquote, der eine Funktionsanomalie aufzeigt, zu erfassen und Verlassen des Mikrokerns nach Aktivieren des ersten Taktgebers.
  • In dem Fall, in dem ein zweiter Taktgeber in dem Steuersystem umgesetzt wird, und gemäß einem besonderen Merkmal der Erfindung, läßt man den Mikrokern auf diesen zweiten Taktgeber zugreifen, um durch Vergleichen der Zeitsignale das Verstreichen der getakteten Zeit durch den ersten Taktgeber zu prüfen.
  • Das erfindungsgemäße Sicherungsverfahren, das angepaßt ist, um das Ausführen in Echtzeit kommunizierender Multitasking-Anwendungen des Steuer-Befehltyps deterministisch zu machen, kann ferner die folgenden Schritte aufweisen:
    • (n) in einer Vorbereitungsphase für jede der Aufgaben einer gegebenen Anwendung Speichern aller zulässigen Verkettungen ihrer Zeitsynchronisations- und Kommunikationspunkte mit den anderen Aufgaben der Anwendung, die ein Abrufen der Systemschicht erfordern, wobei sich diese zulässigen Verkettungen in einem Steuergraphen der Ausführung von Abrufen der Systemschicht der betreffenden Aufgabe zeigen, wobei jeder Graph eine Einheit von Knoten aufweist, die jeweils einem Abrufen der Systemschicht entsprechen,
    • (o) für jede Pufferzone, die für einen Datenaustausch zwischen Aufgaben notwendig ist, Speichern ihrer Lage oder Basisadresse unter Angabe ihrer Größe, der Größe der Elemente, die sie enthält, sowie der Beziehungen zwischen den Pufferzonen, die es ermöglichen, die für die Kommunikationen erforderlichen Informationsübertragungen zu bestätigen,
    • (p) für jede Pufferzone Speichern der Anfangswerte ihrer Elemente,
    • (q) für die gegebene Anwendung und vor dem Starten der Echtzeitdurchführung gemäß einer zeitgetakteten Betriebsart, Initialisieren der Werte der Elemente der Pufferzone mit den vorher gespeicherten Werten,
    • (r) bei der Ausführung einer Aufgabe bei einem Abrufen der Systemschicht, wenn ein Knoten des Steuergraphen der Aufgabe erreicht wird, und nach Überprüfung, ob gemäß dem Steuergraphen der in Ausführung befindlichen Aufgabe die Verkettung ausgehend von dem Knoten, der dem vorhergehenden Abrufen der Systemschicht entspricht, zulässig ist, Durchführen aufeinander folgender Aktualisierungen der Pufferzonen in Abhängigkeit von der Art des vorher gespeicherten Abrufens durch die inkrementalen Aktualisierungen und die für die Zeitparameter der laufend ausgeführten Aufgabe erforderlich sind, darunter das Datum d(i) des frühesten Anfangs und das Datum f(i) des spätesten Endes.
  • Gemäß einem besonderen Merkmal der Erfindung gestattet man auf der Ebene der Systemschicht das Teilen der alleinigen Pufferzonen durch die Verlängerungen der Durchführungskontexte der Aufgaben einer Anwendung, wobei eine gegebene Pufferzone für die dynamischen Kommunikationen dem Senden von Meldungen entspricht, die sich nur zwei Verlängerungen von Ausführungskontexten einer Aufgabe teilen können, während eine gegebene Pufferzone für die statischen Kommunikationen, die einem datierten Datenfluß entsprechen, mehr als zwei Verlängerungen von Durchführungskontexten einer Aufgabe geteilt werden, aber immer nur von der Eigentümeraufgabe in der Verlängerung ihres Kontexts in der Systemschicht geändert werden kann.
  • Das erfindungsgemäße Sicherungsverfahren kann bei Leitsystemanwendungen mit hohem Sicherheitskritizitätsgrad angewandt werden.
  • Insbesondere kann das erfindungsgemäße Verfahren bei einem Leitsystem eines Niveaus der Sicherheitsklasse 1E für einen Kernreaktor angewandt werden.
  • Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der folgenden Beschreibung besonderer Ausführungsformen, die beispielhaft unter Bezugnahme auf die anliegenden Zeichnungen gegeben werden, in welchen:
  • 1 eine vereinfachte Darstellung der Architektur eines Steuersystems ist, bei dem das erfindungsgemäße Sicherungsverfahren angewandt werden kann,
  • 2 eine Skizze ist, die die Tiefenverteilung des Codes in Bezug auf eine Systemschicht und einen Mikrokern mit dem erfindungsgemäßen Verfahren zeigt,
  • 3 ein Organigramm ist, das der Verarbeitung eines Echtzeitaufgabenbeispiels gemäß dem erfindungsgemäßen Sicherungsverfahren entspricht,
  • 4 ein Steuergraph ist, der dem Organigramm der 3 entspricht,
  • 5 ein Beispiel für ein Steuerungsdiagramm und dazugehörende Zeitwerte bei der Verarbeitung des Echtzeitaufgabenbeispiels der 3 und der 4 gemäß dem erfindungsgemäßen Sicherungsverfahren ist,
  • 6 eine Tabelle der Knoten des Steuergraphen der 4 ist, die die Beschreibung der Operationen aufweist, die an den Daten des frühesten Anfangs d(i) und den Daten des spätesten Endes f(i) auszuführen sind,
  • 7 ein Organigramm ist, das der Verarbeitung eines Beispiels einer ersten Echtzeitaufgabe entspricht, die dazu bestimmt ist, mit einer zweiten Aufgabe zu kommunizieren, gemäß dem erfindungsgemäßen Sicherungsverfahren,
  • 8 ein Steuergraph ist, der dem Organigramm der 7 entspricht,
  • 9 ein Organigramm ist, das der Verarbeitung eines Beispiels einer zweiten Echtzeitaufgabe entspricht, die dazu bestimmt ist, mit der ersten Echtzeitaufgabe, die von dem Organigramm der 7 veranschaulicht wird, zu kommunizieren,
  • 10 ein Steuergraph ist, der dem Organigramm der 9 entspricht,
  • 11 ein Beispiel für ein Steuerungsdiagramm und dazugehörende Zeitwerte bei der Verarbeitung des Beispiels kommunizierender Echtzeitaufgaben der 7 bis 10 gemäß dem erfindungsgemäßen Sicherungsverfahren ist,
  • die 12 und 13 Tabellen von Knoten der Steuergraphen der 8 und 10 sind, die die Beschreibungen der Operationen enthalten, die an den Daten des frühesten Anfangs d(i) und den Daten des spätesten Endes f(i) und an den Meldungen durchzuführen sind, und
  • 14 eine ausführliche Tabelle ist, die für den Prozessor die Zugriffsrechte auf die Segmente des Speichers in Zusammenhang mit einer Aufgabe, auf die Systemschicht und auf den Mikrokern gemäß einem Beispiel des erfindungsgemäßen Verfahrens zeigt.
  • Zuerst wird unter Bezugnahme auf 1 ein vereinfachtes Typarchitekturbeispiel eines Steuersystems beschrieben, bei dem das erfindungsgemäße Sicherungsverfahren angewandt werden kann.
  • Das Steuersystem weist mindestens einen ersten Taktgeber 14 auf, der über eine Leitung 22 ein Unterbrechungssignal sh sendet, wenn eine programmierbare Zeitmenge abgelaufen ist. Eine zentrale Recheneinheit 10 weist mindestens einen Prozessor auf, der Daten von einer Leitung 21 und das Unterbrechungssignal sh von der Leitung 22 empfangen kann.
  • Die zentrale Recheneinheit 10 erlaubt über die Leitungen 23, 24 das Senden von Adreßsignalen an einen Hauptspeicher, der einen Totspeicher 12 und einen Lebendspeicher 13 aufweist.
  • Der Totspeicher 12 enthält mindestens die Informationen (A), die die Programme der betreffenden Anwendung und die Informationen (B), die die gleich bleibenden Daten und Tabellen der Anwendung enthalten, aufweisen.
  • Der Lebendspeicher 13 enthält die variablen Arbeitsdaten der Programme der Anwendung.
  • Controller 11 bis 1N von Peripheriegeräten 1 bis N erlauben es, die Echtzeitverwaltung von Eingängen und Ausgängen des Steuersystems sicherzustellen.
  • Ein zweiter Taktgeber 15 kann umgesetzt werden, um eine zusätzliche Kontrolle des guten Funktionierens des Taktgebers 14 durchzuführen.
  • Das Steuersystem kann ferner eine Speicherschutzeinheit 16 aufweisen, die es erlaubt, eine Kontrolle der Adressierungszugangsrechte sicherzustellen.
  • Ausgehend von einer verlangten Adresse ad, die von der zentralen Recheneinheit 10 zu der Speicherschutzeinheit 16 über die Leitung 23 geliefert wird, und von Zugriffsrechten (C) der Ausführungskontexte des Prozessors auf den adressierbaren Speicherplatz, die von einer Leitung 26 geliefert werden, die den Totspeicher 12 mit der Speicherschutzeinheit 16 verbindet, erzeugt diese Speicherschutzeinheit 16 exklusiv auf der Leitung 14, die mit den Speichern 12, 13 verbunden ist, für die Peripheriegerätecontroller 11 bis 1N und die Taktgeber 14, 15 eine bestätigte Adresse av, die den Zugriff erlaubt oder über eine Leitung 25 zu der zentralen Recheneinheit 10 ein Ausnahmesignal se des nicht gestatteten Adressierens sendet.
  • Die Speicherschutzeinheit 16 kann aus einem Mechanismus bestehen, der in einer Standardspeicherverwaltungseinheit des Typs MMU („Memory Management Unit") gegenwärtig ist, wobei die Speicherverwaltungseinheit selbst in den Prozessor der zentralen Recheneinheit 10 eingebaut sein kann.
  • Der Prozessor der zentralen Recheneinheit 10, der mindestens ein Taktgeberunterbrechungssignal sh und ein Ausnahmesignal se des nicht gestatteten Adressierens empfangen kann, besitzt einen privilegierten Ausführungsmodus, für den der Zugang durch eine Anweisung des Typs „Abrufen der Systemschicht" geschützt ist, die zum Beispiel eine Abzweigungsanweisung („trap") sein kann.
  • Im Allgemeinen betrifft die Erfindung ein Verwaltungssystem des Typs zeitgesteuerte, deterministische gesicherte Echtzeit-Multitasking-Architektur („Time Triggered Architecture") mit expliziter (datierte Meldungen) und impliziter (datierte Datenströme) Kommunikation, wobei der Rhythmus der Aufgaben zyklisch oder azyklisch sein kann.
  • Insbesondere nimmt man gemäß dem erfindungsgemäßen Sicherungsverfahren eine spezifische Verwaltung der Abrufe der Systemschicht des Steuersystems vor (durch einen privilegierten Abrufausführungsmodus), wobei die spezifische Verwaltung das Erfassen und Absondern von Fehlern mit einer deterministischen und voraussehbaren Verhaltensgarantie erlaubt.
  • Erfindungsgemäß funktioniert die Verwaltung der Abrufe der Systemschicht wie folgt:
    • i. der einzige zulässige Abruf der Systemschicht ausgehend von der betreffenden Anwendungsaufgabe zu der Systemschicht besteht darin, sich auf den Knotenwechsel in dem Steuergraphen der betreffenden Aufgabe zu beziehen,
    • ii. die Systemschicht prüft dabei, daß dieser Abruf in Bezug auf den Ausführungspfad des Steuergrafen, der in den konstanten Tabellen der Anwendung beschrieben ist, zulässig ist,
    • iii. wenn der Abruf zulässig ist, werden alle Operationen, die auf dem betreffenden Knoten von der Systemschicht auszuführen sind, durch die konstanten Tabellen der dazugehörenden Anwendung der Systemschicht vorbestimmt.
  • Eine Vorab-Ablaufplanung der Aufgabenlisten einer betreffenden Anwendung erfolgt vor dem Echtzeitausführen auf der Ebene eines nuklearen Mikrokerns, der anschließend, wenn er von der Systemschicht während der Echtzeitausführung gerufen wird, ein gemäß den neuen Zeitmerkmalen der Aufgaben, nämlich ihr Datum des frühestes Anfangs d(i) und ihr Datum des spätesten Endes f(i), die von der Systemschicht berechnet werden, geordnetes Aktualisieren der Aufgabenlisten durchführt.
  • Das erfindungsgemäße Sicherungsverfahren weist im Wesentlichen die folgenden Schritte auf:
    • (a) für jede der Aufgaben einer gegebenen Anwendung Speichern aller zulässigen Verkettungen ihrer Zeitsynchronisationspunkte gestatten, die einen Abruf einer Systemschicht benötigen, wobei diese Verkettungen einen Steuergrafen der Ausführung der Abrufe der Systemschicht der betreffenden Aufgabe ergeben, wobei jeder Graph eine Einheit von Knoten aufweist, die jeweils einem Abruf der Systemschicht des Steuersystems entsprechen,
    • (b) für jeden Knoten des Steuergraphen jeder Aufgabe die Beschaffenheit des Abrufs der Systemschicht und seine Abrufparameter speichern, darunter die Zeitparameter, die die Aktualisierungen der Daten d(i) des „frühesten Anfangs" und f(i) des „spätesten Endes" erlauben,
    • (c) für jede Aufgabe einen Anfangsknoten (Knoten 0) in dem dazugehörenden Graphen speichern,
    • (d) für jede gegebene Anwendung und vor dem Starten der Echtzeitausführung gemäß einer zeitgetakteten Betriebsart für jede Aufgabe den Anfangsknoten (Knoten 0) initialisieren, und den Anfangsaugenblick, der den Anfangszustand der betreffenden Aufgabe darstellt,
    • (e) für die gegebene Anwendung und vor dem Starten der Echtzeitausführung gemäß einer zeitgetakteten Betriebsart die Startreihenfolge jeder der Aufgaben initialisieren, indem eine Vorab-Ablaufplanung der Aufgabenlisten auf der Ebene eines nuklearen Mikrokerns durchgeführt wird,
    • (f) Aktivieren des ersten Taktgebers 14 zum Senden des Taktgeberunterbrechungssignals sh, das einen Abruf des Mikrokerns bildet, im ersten Zeitpunkt der Anwendung, zum Starten der Ausführung dieser Anwendung in zeitgetaktetem Modus,
    • (g) während des normalen Betriebs und nach dem Aktivieren des ersten Taktgebers, Auslösen des Deaktivierens des ersten Taktgebers 14 durch den Mikrokern bei jedem Abruf des Mikrokerns, bei einem Abruf des Mikrokerns durch die Systemschicht oder durch die Verarbeitung des Unterbrechungssignals sh den Mikrokern zu den gemäß den Zeitmerkmalen der Aufgaben geordneten Aktualisierungsschritten der Aufgabenlisten weitergehen lassen, nämlich gemäß ihrem Datum des frühesten Anfangs d(i) und ihrem Datum des spätesten Endes f(i), den Mikrokern nach dem Aktualisieren der Listen den kleinsten zukünftigen Zeitpunkt berechnen lassen, in dem eine Aufgabe geweckt werden muß, und den ersten Taktgeber 14 von dem Mikrokern ausgehend von diesem kleinsten zukünftigen Zeitpunkt aktivieren lassen, um die Aufgabe zu wecken und Verlassen des Mikrokerns,
    • (h) bei dem Ausführen einer Aufgabe Durchführen eines Abrufs der Systemschicht nur, wenn ein Knoten des Steuergraphen der Aufgabe erreicht ist, indem als Argument die Knotennummer gegeben wird, Durchführen einer Prüfung beim Eintritt in die Systemschicht, um zu prüfen, ob gemäß dem Steuergraphen der in Ausführung befindlichen Aufgabe die Verkettung, ausgehend von dem Knoten, der dem vorhergehenden Abruf der Systemschicht entspricht, zulässig ist, um auf der Ebene der Systemschicht die Verarbeitung einer Anomalie zu starten, wenn die Verkettung nicht zulässig ist, und die Ausführung fortzusetzen, wenn die Verkettung zulässig ist, Durchführen der Aktualisierung der Zeitparameter der in Ausführung befindlichen Aufgabe. darunter das Datum des frühesten Anfangs d(i) und das Datum des spätesten Endes f(i) mit Hilfe von Abrufen des Mikrokerns durch die Systemschicht und normales Fortsetzen der Ausführung der laufenden Aufgabe, bis diese wieder einen Knoten ihres Steuergraphen erreicht.
  • Wie oben angegeben, kann das Steuersystem, bei dem das erfindungsgemäße Sicherungsverfahren angewandt wird, eine Speicherschutzeinheit und Tabellen für die Zugriffsrechte zu jedem der Segmente jedes Kontexts aufweisen, die vorbestimmt sind und gegebenenfalls in den Totspeicher gegeben werden können. Für jeden der Ausführungskontexte erfolgt das Initialisieren des Tabellendeskriptors, der die Rechte dieses Kontextes definiert, nur ein Mal bei der Initialisierungsphase des ganzen Systems, und nach dieser Initialisierungsphase des Systems hat keine der Verarbeitungen, die auf der zentralen Recheneinheit abläuft, diese Tabellen in ihrem Ausführungskontext.
  • Das erfindungsgemäße Sicherungsverfahren kann daher ferner die folgenden Schritte aufweisen, die sich zwischen die oben definierten Schritte einfügen:
    • (i) während einer Vorbereitungsphase, für eine gegebene Anwendung die Zugangsrechte zu jedem der Speichersegmente für den Mikrokern und für jede Aufgabe der Anwendung und ihre Verlängerung in der Systemschicht speichern, so daß ein erster und einer zweiter Ausführungskontext gemäß den Anweisungen gebildet werden, je nachdem, ob die Anweisungen in dem der Anwendung, die die Aufgabe bildet, eigenen Code sind, oder ob diese Anweisungen in dem generischen Code der Systemschicht sind, die die Verlängerung der Aufgabe in der Systemschicht bildet,
    • (j) für eine gegebene Anwendung und vor dem Starten der Echtzeitausführung gemäß einer zeitgetakteten Betriebsart, Initialisieren des Kontexts des Mikrokerns und des ersten und des zweiten Ausführungskontextes für jede Aufgabe und für ihre Verlängerung in der Systemschicht,
    • (k) beim Ausführen einer Aufgabe Durchführen eines Abrufs der Systemschicht mit Hilfe einer Anweisung zum Übergehen auf einen privilegierten Ausführungsmodus, der es erlaubt, von dem Ausführungskontext der Aufgabe auf den Ausführungskontext ihrer Verlängerung in der Systemschicht überzugehen, und nach dem Prüfen, ob die Verkettung ausgehend von dem Knoten, der dem vorhergehenden Abruf des Systems entspricht, zulässig ist, und nach Aktualisieren der Zeitparameter der Aufgabe mit Hilfe von Abrufen des Mikrokerns durch die Systemschicht, Rückkehr in den Code der Aufgabe mit Hilfe einer Anweisung zur Rückkehr in den nicht privilegierten Modus, die es erlaubt, von dem Ausführungskontext der Verlängerung in der Systemschicht zu dem Ausführungskontext der Aufgabe zurückzukehren.
  • Das erfindungsgemäße Sicherungsverfahren kann sich auch auf Zeitquoten beziehen und kann daher ferner die folgenden Schritte aufweisen, die sich zwischen die oben definierten Schritte des Basisverfahrens oder des modifizierten Basisverfahrens einfügen, um die Gegenwart privilegierter Ausführungsmodi zu berücksichtigen, die einen Übergang auf einen Ausführungskontext der Verlängerung einer Aufgabe in der Systemschicht erlauben:
    • (l) während einer Vorbereitungsphase, für eine gegebene Anwendung für alle in der Aufgabe zulässigen Verkettungen, Speichern einer Zeitquote, die eine Erhöhung der Ausführungszeit bildet, die maximal zum Übergehen von einem Knoten auf den anderen in dem Steuergraphen der Aufgabe erforderlich ist, wobei jede dieser Zeitquoten die Zeit enthält, die mit dem Ausführen der der Aufgabe eigenen Anweisungen verbracht wird, aber auch die Zeit, die bei der Ausführung des generischen Codes der Systemschicht in Verlängerung der Aufgabe verbracht wird,
    • (m) während des normalen Betriebs und nach dem Aktivieren des ersten Taktgebers 14, bei einem Abruf des Mikrokerns, der von dem zeitbedingten Unterbrechungssignal sh ausgelöst wird und der das Deaktivieren des ersten Taktgebers 14 bewirkt, Ausführen einer Prüfung, um sicherzustellen, ob das zeitbedingte Unterbrechungssignal sh, das den Abruf des Mikrokerns auslöst, mit einem Verstoßversuch gegen eine Zeitquote verbunden ist, und, wenn das der Fall ist, den Mikrokern veranlassen, die Verarbeitung der Anomalie zu starten, während, wenn das zeitbedingte Unterbrechungssignal sh nicht mit einem Verstoßversuch gegen eine Zeitquote verbunden ist, der Mikrokern veranlaßt wird, zum Aktualisierungsschritt der Aufgabenlisten überzugehen, und, nach dieser Aktualisierung der Aufgabenlisten, den Mikrokern einerseits den kleinsten zukünftigen Zeitpunkt, in dem eine Aufgabe geweckt werden muß, und andererseits den zukünftigen Zeitpunkt, ab welchem die Zeitquote, die der Aufgabe, die am Ausgang des Mikrokerns in Ausführung ist, auferlegt wird, die bei der Aktualisierung der Listen bestimmt wird, aufgebraucht ist, berechnen zu lassen, und den ersten Taktgeber 14 durch den Mikrokern im kleinsten dieser zukünftigen Zeitpunkte aktivieren lassen, um je nach Fall entweder die Aufgabe zu wecken oder einen Verstoßversuch gegen eine Zeitquote zu erkennen, der auf eine Betriebsanomalie hinweist, und Verlassen des Mikrokerns nach Aktivieren des ersten Taktgebers 14.
  • Die Aktualisierungsvorgehensweise der Aufgabenlisten der Anwendung auf der Ebene des Mikrokerns kann auch wie unten angegeben erklärt werden, wobei eine bevorzugte Ausführungsform berücksichtigt wird, bei der auf eine Zeitquote Bezug genommen wird, die der in Verarbeitung befindlichen Aufgabe auferlegt ist, die aber auch für eine vereinfachte Basisausführungsform gelten kann, wenn man die Bezugnahme auf eine Zeitquote wegläßt.
  • Für jeden Abruf des Mikrokerns bei der Ausführung und ungeachtet der Verlängerung des Ausführungskontextes der betreffenden Aufgabe in der Systemschicht, zählen zwei Parameter für die Aktualisierung der Aufgabenlisten: das Datum d(i) des frühesten Anfangs und das Datum f(i) des spätesten Endes. Zwei Aufgabenlisten werden erzeugt: die Liste der in Frage kommenden Aufgaben, die zur Ausführung bereit sind, das heißt die, deren Datum des frühesten Anfangs d(i) in der Vergangenheit liegt, und die Liste der nicht in Frage kommenden Aufgaben, die zur Ausführung oder zum Warten auf Wecken nicht bereit sind, das heißt die, deren Datum des frühesten Anfangs d(i) in der Zukunft liegt. Die Liste der in Frage kommenden Aufgaben wird gemäß den aufsteigenden spätesten Enddaten geordnet, die der nicht in Frage kommenden Aufgaben wird gemäß den aufsteigenden frühesten Anfangsdaten d(i) geordnet. Für jede wartende Aufgabe wird sichergestellt, daß sie beim Erreichen ihres Datums des frühesten Anfangs auf den Zustand „bereit" übergeht.
    • α) Wenn beim Abruf des Mikrokerns das Datum d(i) des frühesten Anfangs einer Aufgabe in der Zukunft liegt, kommt die Aufgabe nicht in Frage und wird daher in die geordnete Liste der nicht in Frage kommenden Aufgaben transferiert. Dieses Datum erlaubt es, den nächsten Zeitpunkt zu berechnen, in dem eine Aufgabe gemäß der Reihenfolge der Daten des frühesten Anfangs geweckt werden soll: das kleinste der zukünftigen Daten des frühesten Anfangs gibt den zukünftigen Zeitpunkt an, in dem die nächste betreffende Aufgabe in Frage kommt (um geweckt zu werden).
    • ß) Wenn hingegen beim Abruf des Mikrokerns das Datum d(i) des frühesten Anfangs der betreffenden Aufgabe in der Vergangenheit liegt, kommt die Aufgabe in Frage und wird in die geordnete Liste der in Frage kommenden Aufgaben transferiert. Der Mikrokern gibt an die in Frage kommende Aufgabe weiter, die das kleinste zukünftige Datum des spätesten Endes gemäß der geordneten Reihenfolge der Daten des spätesten Endes hat, und berechnet den zukünftigen Zeitpunkt, ab welchem die Zeitquote, die der ausgewählten Aufgabe auferlegt ist, abläuft (wobei sich die Quote aus dem Unterschied zwischen dem kleinsten zukünftigen Enddatum und dem gegenwärtigen Zeitpunkt ergibt).
    • γ) Wenn der Abruf des Mikrokerns jedoch von dem Taktgeber 14 in dem Fall eines Aktivierens aufgrund der auferlegten Zeitquote der in Verarbeitung befindlichen Aufgabe ausgelöst wird, führt der Mikrokern zuerst die Anomalieverarbeitungsaktion, die von der Anwendung vorgesehen wird, aus, und dann die Aktionen α) und β).
  • Ausgehend von diesen zwei Zeitpunkten (dem kleinsten zukünftigen Zeitpunkt des Weckens einer Aufgabe und dem zukünftigen Zeitpunkt des Ablaufens der der ausgewählten Aufgabe auferlegten Zeitquote) aktiviert der Mikrokern dann den Taktgeber 14 so, daß er im kleinsten dieser zwei Zeitpunkte aktiviert wird (entweder, um eine Aufgabe im richtigen Zeitpunkt zu wecken oder um einen Verstoßversuch gegen die Zeitquote zu erfassen, das heißt eine Funktionsanomalie). Sobald der Taktgeber 14 aktiviert ist, verläßt man den Mikrokern eventuell mit Umschaltung.
  • Während des Ausführens erfolgt daher der Wechsel der aktiven Aufgabe entweder durch zeitbedingte Unterbrechung oder im Anschluß an einen Knotenwechsel für die aktive Aufgabe.
  • Die zeitbedingte Unterbrechung kann als Ursprung entweder die Tatsache haben, daß eine wartende Aufgabe bereit wird (aufgrund des Zeittaktens), oder weil die aktive Aufgabe ihre auferlegte Zeitquote aufgebraucht hat, und in diesem Fall wird eine Sicherheitsprüfung durchgeführt.
  • Wenn die aktive Aufgabe den Knoten in ihrem Steuergraphen wechselt, wird entweder ihr Datum des spätesten Endes zurückverlegt, oder ihr Datum des frühesten Anfangs wird zurückgeschoben. In dem ersten Fall kann eine andere Aufgabe an ihrer Stelle aktiv werden. In dem zweiten Fall wird die aktive Aufgabe in die Einheit der wartenden Aufgaben gegeben, wenn ihr neues Datum des frühesten Anfangs in der Zukunft liegt.
  • Die Anzahl der Vorherbestimmungen ist endlich und abgegrenzt, und es ist möglich, analytisch ein maximales Limit der Anzahl der Vorherbestimmungen zu berechnen.
  • Insofern als die Zeitquoten aktualisiert und bei jedem Knotenwechsel geprüft werden, kann man Anomalien rechtzeitig erkennen, um die Aufgabe unverzüglich abzusondern.
  • Insofern als nur die in dem Steuergraphen möglichen Bewegungen akzeptiert werden, ist es unmöglich, daß eine Aufgabe ein Zeitverhalten zeigt, das dazu führt, daß mehr Ressourcen verbraucht werden (zum Beispiel Speicherressource für Kommunikationen) als statisch mit Hilfe des gleichen Graphen geschätzt wurde.
  • Unten wird unter Bezugnahme auf die 3 bis 6 eine beispielhafte Ausführungsform des erfindungsgemäßen Sicherungsverfahrens mit einer bestimmten Echtzeitaufgabe beschrieben.
  • Gemäß diesem Beispiel besteht die Funktion der Echtzeitaufgabe darin, einen Alarm zu melden, wenn ein Meßwert so ist, daß v einen Schwellenwert s1 während einer Dauer t(v) überschreitet, die selbst einen Schwellenwert s2 überschreitet.
  • 3 stellt ein Organigramm dar, das den Verarbeitungsprozeß der Aufgabe, die dem oben genannten Beispiel entspricht, veranschaulicht.
  • Das Bezugszeichen 101 bezeichnet einen Anfangsknoten oder Knoten 0, auf dessen Ebene die Systemschicht abgerufen wird.
  • Das Bezugszeichen 102 entspricht einem ersten Schritt des Erfassens des Meßwerts v.
  • Das Bezugszeichen 103 entspricht einem Test nach dem man zu dem Anfangsknoten 101 und dann zum Schritt 102 zurückkehrt, wenn v < s1, und man hingegen zum Knoten 1 mit dem Bezugszeichen 104 und dann zum Schritt 105 weitergeht, wenn v ≥ s1.
  • Auf der Ebene des Knotens 104 wird die Systemschicht abgerufen, und im Schritt 105 wird die Dauer t(v) berechnet.
  • Nach dem Schritt 105 erlaubt ein Test 106 das Zurückkehren zum Anfangsknoten 101, wenn t(v) < s2 und das Übergehen zum Knoten 2 mit dem Bezugszeichen 107, wenn t(v) ≥ s2.
  • Nach dem zweiten Knoten 107, in dem die Systemschicht abgerufen wird, geht man zu dem Schritt 108 des Meldens des Alarms weiter, und danach kehrt man zum Anfangsknoten 101 zurück.
  • 4 stellt der Steuergraf mit den Knoten 101, 104, 107 und die dazugehörenden Bögen dar, die dem Organigramm der 3 entsprechen.
  • In dem betrachteten Beispiel sind die Fristen, die zugeordnet werden, um die Operationen „Erfassen v" (Schritt 102), „Berechnen t(v)" (Schritt 105) und „Melden des Alarms" (Schritt 108) die Folgenden sind:
    • Erfassungsschritt 102: 1 Zeiteinheit
    • Rechenschritt 105: 2 zusätzliche Zeiteinheiten
    • Meldeschritt 108: 1 Zeiteinheit.
  • Für jeden der Knoten 101, 104, 107 sind unten die Dienstleistungen angegeben, die die Systemschicht leistet, und die Operationen, die an den Daten di des frühesten Anfangs und Daten fi des spätesten Endes ausgeführt werden, wobei man beim Initialisieren ein Datum d0 des frühesten Anfangs so hat, daß d(0) = 0, und ein Datum f(0) des spätesten Endes so hat, daß f(0) = 1 Zeiteinheit.
  • Figure 00200001
  • 6 präsentiert eine Synthese einer Tabelle der Knoten 0, 1 und 2 mit der Beschreibung der an dem Datum d(i) des frühesten Anfangs und an dem Datum f(i) des spätesten Endes durchzuführenden Operationen.
  • Ferner kann der Steuergraph der Aufgabe, der in 4 veranschaulicht ist, in Matrixform codiert werden und hat dann in dem oben genannten Beispiel die folgende Form:
    Figure 00200002
    wobei
  • mij
    = A wenn die Bewegung des Knoten i zum Knoten j zulässig ist
    mij
    = I wenn die Bewegung von dem Knoten i zu dem Knoten j verboten
    ist.
  • 5 veranschaulicht in Form eines Steuerungsdiagramms ein Umsetzungsbeispiel der oben beschriebenen Echtzeitaufgabe und läßt dabei die dazugehörenden Zeitwerte erscheinen. Die Ziffern von 1 bis 10 bezeichnen die reale Uhrzeit in Anzahl von Zeiteinheiten ab dem Anfang des Betriebs im zeitgetakteten Modus.
  • Das erfindungsgemäße Sicherungsverfahren kann auch das Echtzeitausführen von Multitasking-Anwendungen, die durch Meldungen untereinander kommunizieren, deterministisch machen.
  • In diesem Fall weist das Verfahren die besonderen folgenden Schritte auf, die sich zwischen die oben beschriebenen Schritte in dem Fall eines Basisverfahrens mit Multitasking-Anwendungen ohne Anzeige von Kommunikation zwischen Aufgaben einfügen:
    • (n) während einer Vorbereitungsphase, für jede der Aufgaben einer gegebenen Anwendung, Speichern aller zulässigen Verkettungen und ihrer Zeitsynchronisations- und Kommunikationspunkte mit den anderen Aufgaben der Anwendung, die ein Abrufen der Systemschicht erfordern, wobei diese zulässigen Verkettungen in einem Steuergraphen der Ausführung des Abrufens der Systemschicht der betreffenden Aufgabe ausgedrückt sind, wobei jeder Graph eine Einheit von Knoten aufweist, die jeweils einem Abruf der Systemschicht entsprechen,
    • (o) Speichern jeder Pufferzone, die für einen Datenaustausch zwischen Aufgaben erforderlich ist, unter Angeben ihrer Größe, der Größe der Elemente, die sie enthält, ihrer Lage oder Basisadresse sowie der Beziehungen zwischen den Pufferzonen, die es erlauben, die für die Kommunikationen erforderlichen Informationstransfers zu bestätigen,
    • (p) für jede Pufferzone Speichern der Anfangswerte ihrer Elemente,
    • (q) für die gegebene Anwendung und vor dem Starten der Echtzeitausführung gemäß einer zeitgetakteten Betriebsart, Initialisieren der Werte der Elemente der Pufferzone mit den zuvor gespeicherten Werten,
    • (r) bei der Ausführung einer Aufgabe, bei einem Abruf der Systemschicht, wenn ein Knoten des Steuergrafen der Aufgabe erreicht wird und nach Prüfen, ob gemäß dem Steuergraphen der in Ausführung befindlichen Aufgabe die Verkettung ab dem Knoten, der dem vorhergehenden Abruf der Systemschicht entspricht, zulässig ist, Ausführen der aufeinander folgenden Aktualisierungen der Pufferzonen in Abhängigkeit von der Beschaffenheit des zuvor durch die inkrementalen Aktualisierungen gespeicherten Abrufs und die für die Zeitparameter der in Ausführung befindlichen Aufgaben erforderlich sind, die das Datum d(i) des frühesten Anfangs und das Datum f(i) des spätesten Endes aufweisen.
  • Sind der erste und der zweite Ausführungskontext für jede Aufgabe der Anwendung und ihre Verlängerung in der Systemschicht definiert, liegen ferner die folgenden Besonderheiten vor:
    Auf der Ebene der Systemschicht gestattet man das Teilen der alleinigen Pufferzonen durch die Verlängerungen der Ausführungskontexte der Aufgaben einer Anwendung, wobei eine gegebene Pufferzone für die dynamischen Kommunikationen dem Senden von Meldungen entspricht, die sich die zwei Verlängerungen von Ausführungskontexten einer Aufgabe nicht teilen können, während eine gegebene Pufferzone für die statischen Kommunikationen, die einem datiertem Datenfluß entspricht, von mehr als zwei Verlängerungen von Ausführungskontexten einer Aufgabe geteilt, aber immer nur von einem einzigen Kontext geschrieben oder modifiziert werden kann.
  • Unten wird unter Bezugnahme auf die 7 bis 13 ein Anwendungsbeispiel des erfindungsgemäßen Sicherungsverfahrens auf das Umsetzen von Echtzeitaufgaben beschrieben, die durch Meldungen kommunizieren.
  • Bei diesem einfachen Beispiel besteht die ausgeführte Funktion darin, eine Alarmlampe einzuschalten, wenn ein Meßwert v so ist, daß v einen Schwellenwert s1 überschreitet, und wenn die Dauer t(v) des Überschreitens des Schwellenwerts s1 durch den Meßwert v selbst einen Schwellenwert s2 überschreitet.
  • Eine Verarbeitungsaufgabe führt daher das Erfassen von v aus und sendet bei Bedarf eine Meldung zu einer Alarmaufgabe, die die angegebene Lampe einschaltet.
  • 7 stellt das Organigramm dar, das dem Ausführen der Verarbeitungsaufgabe des betrachteten Beispiels entspricht.
  • Das Bezugszeichen 111 bezeichnet den Anfangsknoten oder Knoten 0, für den die Systemschicht abgerufen wird.
  • Der erste Schritt 112 ist ein Erfassungsschritt des Meßwerts v, mit dem ein Test 113 verbunden ist, der den Wert v mit dem Schwellenwert s1 vergleicht.
  • Wenn v < s1, kehrt man zum Anfangsknoten 111 zurück, während man, wenn v ≥ 1, der in 4 veranschaulichten zum Knoten 1 bezeichnet mit dem Bezugszeichen 114 übergeht und was zu einem Abrufen der Systemschicht führt.
  • Der zweite Schritt 115, der auf den Knoten 114 folgt, entspricht dem Berechnen der Dauer t(v).
  • Der mit dem Schritt 115 verbundene Test 116 vergleicht die Dauer t(v) mit dem Schwellenwert s2.
  • Wenn t(v) < s2, kehrt man zu dem Anfangsknoten 111 zurück, während man, wenn t(v) ≥ s2 ist, zu dem Knoten 2 bezeichnet mit dem Bezugszeichen 117 zurückkehrt, der zu einem Abrufen der Systemschicht führt.
  • Nach dem Knoten 117 geht man zum dritten Knoten bezeichnet mit dem Bezugszeichen 118 weiter, bei dem Abrufen der Systemschicht und Ausführen eines dritten Schritts erfolgt, der darin besteht, eine Alarmmeldung zu senden, bevor man zum Anfangsknoten 111 zurückkehrt.
  • 8 stellt den Steuergraphen dar, der dem Organigramm der 7 entspricht, mit den Knoten und zulässigen Bögen.
  • 9 stellt das Organigramm dar, das dem Ausführen der Alarmaufgabe des betrachteten Beispiels entspricht.
  • Das Bezugszeichen 121 bezeichnet den Anfangsknoten oder Knoten 0, für den die Systemschicht abgerufen wird.
  • Ein Test 122 untersucht, ob eine Meldung empfangen wird.
  • In dem Fall, in dem keine Meldung gegenwärtig ist, erfolgt der Übergang zu einem Ausschaltschritt 123 der Alarmlampe und Rückkehr zum Anfangsknoten 121.
  • Wenn ein oder mehrere Meldungen gegenwärtig sind, erfolgt der Übergang auf den ersten Knoten 124 mit Abrufen der Systemschicht und Übergang auf einen Schritt 125 des Einschaltens der Alarmlampe vor einer Rückkehr zu dem Anfangsknoten 121.
  • 10 stellt den Steuergraphen dar, der dem Organigramm der 9 entspricht, mit den zulässigen Knoten und Bögen.
  • In dem betrachteten Beispiel sind die Fristen, die zum Durchführen der Operationen „Erfassen v", „Berechnen t(v)", „Senden Meldung", „Ausschalten", „Einschalten" den Schritten 112, 115, 118, 123 und 125 zugewiesen sind, die Folgenden:
    • „Erfassen v": 1 Zeiteinheit
    • „Berechnen t(v)": 2 zusätzliche Zeiteinheiten
    • „Senden Meldung": 1 Zeiteinheit, die Meldung ist aber in 2 Zeiteinheiten verfügbar
    • „Ausschalten": 1 Zeiteinheit
    • „Einschalten": 1 Zeiteinheit.
  • Unten werden für jeden Knoten jeder dieser zwei Aufgaben der von der Systemschicht geleistete Dienst und die Operationen, die an den Daten d(i) des frühesten Anfangs und den Daten f(i) des spätesten Endes (mit anfänglich d(0) = 0 und f(0) = 1) sowie an dem Datum dV der Sichtbarkeit der Meldungen durchgeführten Operationen angegeben.
  • Figure 00250001
  • Figure 00260001
  • Die 12 und 13 stellen jeweils für die Verarbeitungsaufgabe und die Alarmaufgabe des betrachteten Beispiels Tabellen der Knoten dar, die die Beschreibungen der an dem Datum d(i) des frühesten Anfangs, dem Datum f(i) des spätesten Endes und dem Datum dV der Sichtbarkeit durchzuführenden Operationen aufweisen.
  • Die Steuergraphen der Verarbeitungsaufgabe und der Alarmaufgabe können in Matrixform wie folgt codiert sein:
    Figure 00260002
    wobei
  • mij
    = A, wenn die Bewegung von dem Knoten i zu dem Knoten j zulässig ist, und
    mij
    = I, wenn die Bewegung von dem Knoten i zu dem Knoten j verboten ist.
  • 11 veranschaulicht in Steuerungsdiagrammform ein Ausführungsbeispiel der zwei kommunizierenden oben beschriebenen Aufgaben und zeigt dabei die dazugehörenden Zeitwerte. Die Zahlen 1 bis 10 bezeichnen die tatsächliche Uhrzeit in Zeiteinheiten ab dem Anfang des Betriebs in zeitgetaktetem Modus.
  • Ein einziger und alleiniger Meldungstyp wird in einer gegebenen Meldungsreihe gespeichert. Ein Datum dV der Sichtbarkeit der Meldung wird mit jeder gesendeten Meldung verbunden. Das Datum dV präzisiert den zukünftigen Zeitpunkt, ab welchem der Empfänger die Meldung aufbrauchen kann. Das Aufbrauchen von Meldungen erfolgt in der Reihenfolge des Sichtbarkeitsdatums dV, dann nach Sendernamen und schließlich nach Sendereihenfolge, was es erlaubt, die Meldungen für ihren Gebrauch komplett zu ordnen.
  • Für jede Meldungsdatei existiert eine Sendezone in dem Kontext jedes Senders und eine Empfangszone für den Eigentümer der betreffenden Meldungsdatei.
  • Da jeder Erzeuger (Sender) eine Sendezone hat, gibt es keine Konfliktprobleme zwischen zwei Meldungssendungen durch zwei unterschiedliche Aufgaben.
  • Ferner, und wie oben bereits angegeben, erlaubt das Speichersegmentieren das Einschränken der Auswirkung von Ausfällen einer Aufgabe auf ihren eigenen Speicherraum. Das Ausbreiten eines Ausfallens einer Aufgabe auf die anderen Aufgaben der Anwendung ist daher unmöglich.
  • Der Gebrauch des Speichersegmentierens erlaubt es ferner, die folgende Eigenschaft zu erzielen: innerhalb eines Zeitintervalls des Zeittaktens (TT) einer Aufgabe ist der Ausführungskontext dieser Aufgabe zwischen dem Anfang einer neuen Anweisung und dem Ende der vorhergehenden unveränderlich.
  • Das Speichersegmentieren wird an die Systemschicht selbst angewandt, um sie intern abzuschotten und den Mikrokern von dem Rest der Systemschicht zu trennen.
  • Die Speicherschutzeinheit 16 bildet den materiellen Mechanismus, der es erlaubt zu prüfen, daß die Speichersegmentierung tatsächlich vom Standpunkt der physikalischen Architektur her durchgeführt wird.
  • 2 stellt die Tiefenverteilung des ausgehend von dem Anwendungsniveau erzeugten Codes mit Benutzerausführungsmodus 201 oder nicht privilegiertem Modus bis zum Mikrokern 203 verlaufend über die Systemschicht 202 mit privilegiertem Ausführungsmodus dar.
  • Der Zugang zu der Systemschicht 202 mit einem privilegierten Ausführungsmodus wird durch eine Abzweiganweisung des Typs „trap" geschützt, während der Übergang von der Systemschicht 202 auf den Mikrokern 203 durch eine Anweisung des Bewegungstyps ausgelöst wird.
  • Der Taktgeber 14 gewährleistet das Zeittakten und gibt ein Taktgeberunterbrechungssignal sh aus, wenn eine programmierte Zeitmenge abgelaufen ist.
  • In 2 sieht man daher auf Anwendungsebene 201 den Code und die Daten der verschiedenen Aufgaben, während man auf der Ebene der Systemschicht 202 einerseits die Verlängerungen der Kontexte der Aufgaben in der Systemschicht und andererseits den Code der Systemschicht findet. Auf der Ebene des Mikrokerns 213 findet man die Daten und den Code des Mikrokerns für das Verwalten der Zuweisung des Prozessors zu den Aufgaben und die Verwaltung der Zeit.
  • Unter Bezugnahme auf 14 wird nun eine detaillierte Tabelle der Rechte der verschiedenen Segmente in dem Fall eines Umsetzungsbeispiels des erfindungsgemäßen Sicherungsverfahrens mit segmentiertem Speicher gegeben.
  • Wie bereits erwähnt, weist eine Multitasking-Anwendung einen spezifischen Code, Aufgaben, Ströme von Zeitvariablen, Mailboxen auf, wobei eine Systemschicht die Informationstransfers zwischen Aufgaben sicherstellt, einen Graphenausführer, der die Bewegungen der Aufgaben in dem Anwendungscode steuert, und einen Mikrokern, der die Zeitverwaltung und das Teilen des Prozessors sicherstellt.
  • Der Speicher ist in Segmente geteilt, die Zugangsrechte haben, die von dem Ausführungskontext des Prozessors abhängen.
  • Um die Tabelle der 14 zu verstehen, werden die folgenden Definitionen gegeben:
    • .inst: Einheit aufeinander folgenden Anweisungen im Speicher,
    • .const: Einheit aufeinander folgender Daten mit konstantem Wert,
    • .war: Einheit aufeinander folgender durch Anweisungen modifizierbarer Daten,
    • I: Recht zum Ausführen der Anweisungen des Segments,
    • M: Recht zum Modifizieren und Einsehen des Segments,
    • C: das Recht des Zugreifens auf das Segment ist auf das Einsehen beschränkt,
    • R: der Zugang zu dem Segment wird verweigert.
  • Die Segmente sind in Zonen gruppiert, je nach dem, ob sie für die Anwendung spezifisch oder mit dem erfindungsgemäßen Modell auf dem Rechner 10 mit seinem Prozessor verbunden sind.
  • Für jede Aufgabe hat man die aufeinander folgenden Anwendungszonen CT, FT, BM, ME, VT und PU. Die Beschreibung dieser Anwendungszonen ist die Folgende:
  • Aufgabenberechnunaszone CT:
    • .const und .var: die Daten der Aufgabe, darunter der Stapel in nicht privilegiertem Modus,
    • .inst: die Berechnungen der Aufgabe
  • Aufgabenfunktionszone FT:
    • .const: die Beschreibung des Funktionierens der Aufgabe (Ausführungsgraph, Beschreibung der Knoten, Fälligkeiten, Erhöhungen der Rechenzeiten durch die zentrale Recheneinheit usw.),
    • .var: die Argumenteübergangszone zu der Systemschicht,
    • .inst: die Funktionen der Anfrage um Wechsel des Knotens bei der Systemschicht.
  • Mailboxzone BM:
    • .const: die Merkmale jeder Mailbox der Aufgabe, darunter die Verbindungen mit den Sendezonen (ME-Zonen),
    • .var: die Einheit der im laufenden Zeitpunkt für die Aufgabe zugänglichen Meldungen.
  • Meldungsspeicherzone ME:
    • .const: die Beschreibung der Speicherzonen der von der Aufgabe gesendeten Meldungen, die für die Empfängeraufgaben nicht sichtbar sind,
    • .var: die Speicherzonen selbst.
  • Zeitvariablenzone VT:
    • .const: die Beschreibung der Speicherzonen für die Aufgabe, der Werte der Zeitvariablenströme, die für die Aufgabe sichtbar sind, darunter die Verbindungen mit den Zonen des Erzeugers der Werte,
    • .var: die Speicherzonen für die Aufgabe der vergangenen sichtbaren Werte.
  • Zone PU:
    • .var: die zeitweiligen für den Prozessor erforderlichen Arbeitsdaten, der laufende Kontext der Aufgabe, der Stapel in privilegiertem Modus.
  • Es gibt ferner eine globale Anwendungszone, die den Aufgaben gemeinsam ist, und die wie folgt beschrieben wird:
  • Globale Zone G:
    • .const: die Beschreibung der globalen Konstanten der Anwendung (Anzahl der Aufgaben, Referenzen der Deskriptoren von Aufgaben, Beschreibung der Taktgeber usw.) und die Schnittstellenkonstanten mit der Systemschicht.
  • Die Systemschicht weist selbst eine Zone CS auf, die wie folgt beschrieben wird:
  • Systemschichtzone CS:
    • .const: für Speicher,
    • .var: leer (das Vergangene ist in dem Segment .var der Zone PU gespeichert),
    • .inst: die Anweisungen des Graphenausführers, der Verwaltung der Mailboxen, der Bereitstellung der vergangenen Werte der Zeitvariablenströme und die Verwaltungsanweisungen der Taktgeber und der Berechnung der Fälligkeiten.
  • Die Transferzone TR, die für die Systemschicht gemeinsam ist, ist wie folgt beschrieben:
  • Transferzone TR:
    • .const: für Speicher,
    • .var: die Identifikation der aktiven Aufgabe,
    • .inst: die Anweisungen zum Wechseln der Zugangsrechte zu dem Speicher durch das Material und des Anschließens in der Systemschicht oder dem Mikrokern.
    • Der Mikrokern weist Zonen MN und RS auf, die wie folgt beschrieben werden:
  • Zone MN:
    • .const: für Speicher,
    • .var: die erforderlichen Daten für die Verwaltung des Materials (Zeitverwaltung, Verwaltung der „trap"-Anweisungen usw.),
    • .inst: die Verwaltungsanweisungen der Einheiten von Aufgaben, die bereit oder in Ruhestellung sind, in Abhängigkeit von den Fälligkeiten, zum Speichern und Wechseln des Materialkontextes, zum Verwalten der Taktgeberunterbrechung aufgrund des abgelaufenen Nutzungsrechts des Prozessors und Aktivieren des auf dem Rechner verfügbaren Speicherschutzes.
  • Zone RS:
    • .const: für Speicher,
    • .var: leer,
    • .inst: die Initialisierungsanweisungen des Rechners und der Software, die ohne Schutz des Speichers ausgeführt werden.
  • In einem gegebenen Zeitpunkt führt der Prozessor Anweisungen entweder für Rechnung einer Aufgabe im Anwendungscode (im nicht privilegiertem Modus) oder für eine Aufgabe in der Systemschicht (im privilegierten Modus) oder in dem Mikrokern aus.
  • Die Tabelle der 14 präsentiert auf den Zeilen die Segmente einer Aufgabe, dann die der Systemschicht und schließlich die des Mikrokerns, wie sie oben definiert sind. Die Spalten stellen die Zugangsrechte zu dem Speicher je nachdem dar, ob der Prozessor Anweisungen des Anwendungscodes der Aufgabe (Spalte 301), des Codes der Systemschicht für die Aufgabe (Spalte 302), des Codes der Systemschicht für eine andere Aufgabe (Spalte 303), des Codes für den Mikrokern nach dem Initialisieren des Rechners (Spalte 304) ausführt.
  • Allgemein kann der Speicher in Seiten geteilt werden, und eine Seite kann schreibgeschützt oder abwesend oder verfügbar sein. Bei dieser Situation wird die Größe der Segmente auf ein Vielfaches der Seite gerundet, .const und .var werden fusioniert und schreibgeschützt, und die Seiten von Rechten R sind entweder abwesend oder aus der Beschreibung genommen.

Claims (10)

  1. Sicherungsverfahren, das das Echtzeitausführen von Multitasking-Anwendungen des Steuer-Befehlstyps in einem Steuersystem deterministisch macht, aufweisend: – mindestens einen ersten Taktgeber (14), der ein Unterbrechungssignal (sh) sendet, wenn eine einstellbare Zeitmenge abgelaufen ist, – eine zentrale Recheneinheit (10) mit mindestens einem Prozessor, der mindestens das Taktgeberunterbrechungssignal (sh) empfangen kann, – einen Hauptspeicher (12, 13) und – eine Einheit Controller (11 bis 1N ) für Peripheriegeräte (1 bis N) zum Verwalten von Eingängen-Ausgängen des Steuersystems, Verfahren dadurch gekennzeichnet, daß es die folgenden Schritte aufweist: a) für jede der Aufgaben einer gegebenen Anwendung Speichern der zulässigen Verkettungen ihrer Zeitsynchronisationspunkte, die ein Abrufen einer Systemschicht erfordern, wobei diese Verkettungen in einem Steuergraphen der Ausführung der Abrufe der Systemschicht der betreffenden Aufgabe dargelegt sind, wobei jeder Graph eine Einheit von Knoten aufweist, die jeweils einem Abrufen der Systemschicht des Steuersystems entsprechen, b) für jeden Knoten des Steuergraphen jeder Aufgaben Speichern der Art des Abrufens der Systemschicht und seiner Abrufparameter, darunter Zeitparameter, die Aktualisierungen von Daten d(i) des „frühesten Anfangs" und Daten f(i) des „spätesten Endes" erlauben, c) für jede Aufgabe Speichern eines Anfangsknotens (Knoten 0) in dem dazugehörenden Graphen, d) für die gegebene Anwendung und vor dem Starten der Echtzeitausführung gemäß einer zeitgetakteten Betriebsart für jede Aufgabe Initialisieren des Anfangsknotens (Knoten 0) und des Anfangsaugenblicks, der den Anfangszustand der betreffenden Aufgaben darstellt, e) für die gegebene Anwendung und vor dem Starten der Echtzeitausführung gemäß einer zeitgetakteten Betriebsart Initialisieren der Anfangsreihenfolge jeder der Aufgaben durch Durchführen einer Vorab-Ablaufplanung der Listen der Aufgaben auf der Ebene eines nuklearen Mikrokerns, f) Aktivieren des ersten Taktgebers (14) zum Senden des Taktgeberunterbrechungssignals (sh), das ein Abrufen des Mikrokerns bildet, im ersten Zeitpunkt der Anwendung für das Starten der Ausführung dieser Anwendung in zeitgetaktetem Betrieb, g) während des normalen Betriebs, nach dem Aktivieren des ersten Taktgebers (14) Veranlassen des Deaktivierens des ersten Taktgebers (14) durch den Mikrokern bei jedem Abrufen des Mikrokerns; bei einem Abrufen des Mikrokerns durch die Systemschicht oder durch die Verarbeitung des Unterbrechungssignals (sh) den Mikrokern auf den Aktualisierungsschritt der Liste der Aufgaben in geordneter Art gemäß den Zeitcharakteristiken der Aufgaben übergehen lassen, nämlich ihr Datum d(i) des frühesten Anfangs und ihr Datum f(i) des spätesten Endes; den Mikrokern nach dem Aktualisieren der Listen den kleinsten zukünftigen Zeitpunkt berechnen lassen, in dem eine Aufgabe geweckt werden muß, und den ersten Taktgeber (14) durch den Mikrokern ausgehend von diesem kleinsten zukünftigen Zeitpunkt aktivieren lassen, um die Aufgabe zu wecken, und Verlassen Mikrokerns, h) bei der Ausführung einer Aufgabe Durchführen eines Abrufens der Systemschicht nur, wenn ein Knoten des Steuergraphen der Aufgabe erreicht ist, durch Eingeben der Nummer des Knotens als Argument; Durchführen einer Kontrolle beim Eintreten in die Systemschicht, um zu prüfen, ob gemäß dem Steuergraphen der in Ausführung befindlichen Aufgabe die Verkettung ausgehend von dem Knoten, der dem vorhergehenden Abrufen der Systemschicht entspricht, zulässig ist, um auf der Ebene der Systemschicht die Verarbeitung einer Anomalie zu starten, wenn die Verkettung nicht zulässig ist, und die Ausführung fortsetzen zu lassen, wenn die Verkettung zulässig ist; Durchführen der Aktualisierung der Zeitparameter der in Ausführung befindlichen Aufgabe, darunter das Datum d(i) des frühesten Anfangs und das Datum f(i) des spätesten Endes, mit Hilfe von Abrufen des Mikrokerns durch die Systemschicht und normales Fortsetzen der Ausführung der laufenden Aufgabe, bis diese wieder einen Knoten ihres Steuergraphen erreicht.
  2. Sicherungsverfahren nach Anspruch 1, dadurch gekennzeichnet, daß es an ein Steuersystem angewandt wird, das ferner eine Speicherschutzeinheit (16) zum Steuern der Adressierungszugangsrechte aufweist, wobei die Speicherschutzeinheit (16) ausgehend von einer verlangten Adresse (ad), die von der zentralen Recheneinheit (10) geliefert wird, und von Zugangsrechten (C) zu Ausführungskontexten des Prozessors zu dem adressierbaren Speicherraum exklusiv eine bestätigte Adresse (av) erzeugt, die den Zugang gestattet oder in Richtung der zentralen Recheneinheit (10) ein Ausnahmesignal (se) des nicht zulässigen Adressierens sendet, und daß es ferner die folgenden Schritte aufweist: i) während einer Vorbereitungsphase für eine gegebene Anwendung, Speichern der Zugangsrechte zu jedem der Speichersegmente für den Mikrokern und für jede Aufgabe der Anwendung und ihre Verlängerung in der Systemschicht, so daß ein erster und ein zweiter Ausführungskontext je nachdem gebildet werden, ob die Anweisungen in dem der Anwendung, die die Aufgabe bildet, eigenen Code sind oder ob diese Anweisungen in dem generischen Code der Systemschicht sind, der die Verlängerung der Aufgabe in der Systemschicht bildet, j) für eine gegebene Anwendung und vor dem Starten der Echtzeitausführung gemäß einer zeitgetakteten Betriebsart, Initialisieren des Kontextes des Mikrokerns und des ersten und zweiten Ausführungskontextes für jede Aufgabe und für ihre Verlängerung in der Systemschicht, k) bei der Ausführung einer Aufgabe Ausführen eines Abrufens der Systemschicht mit Hilfe einer Anweisung zum Übergehen auf einen privilegierten Ausführungsmodus, der es erlaubt, von dem Ausführungskontext der Aufgabe auf den Ausführungskontext ihrer Verlängerung in der Systemschicht überzugehen, und nach Prüfen, ob die Verkettung ausgehend von dem Knoten, der dem vorhergehenden Abrufen des Systems entspricht, zulässig ist, und nach Aktualisieren der Zeitparameter der Aufgabe mit Hilfe von Abrufen des Mikrokerns durch die Systemschicht, Rückkehr in den Code der Aufgabe mit Hilfe einer Anweisung zum Zurückkehren in den nicht privilegierten Modus, der es erlaubt, von dem Ausführungskontext der Verlängerung in der Systemschicht auf den Ausführungskontext der Aufgabe überzugehen.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß die Ausführungskontexte jeder Aufgabe der Anwendung gepaart getrennt sind.
  4. Verfahren nach Anspruch 2 oder Anspruch 3, dadurch gekennzeichnet, daß die Verlängerungen der Ausführungskontexte der Aufgaben der Anwendung in der Systemschicht zum Schreiben für die Ausführungskontexte der Aufgaben mit dem Code der Anwendung nicht zugänglich sind.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß die Codierung des Steuergraphen einer Aufgabe jedes Ausfallen mehrerer Komponenten aufgrund gemeinsamer Ursache zwischen dem Ausführungssteuermechanismus einer beliebigen Aufgabe der Anwendung und der Ausführung dieser Aufgabe selbst verbietet.
  6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß es ferner die folgenden Schritte aufweist: l) während einer Vorbereitungsphase für eine gegebene Anwendung für alle in jeder Aufgabe zulässigen Verkettungen Speichern einer Zeitquote, die eine Erhöhung der maximalen Ausführungszeit bildet, die erforderlich ist, um in dem Steuergraphen der Aufgabe von einem Knoten auf den anderen überzugehen, wobei jede dieser Zeitquoten die Zeit enthält, die beim Ausführen der aufgabeneigenen Anwendungen verbracht wurde, aber auch die Zeit, die beim Ausführen des generischen Codes der Systemschicht in Verlängerung der Aufgabe verbracht wurde, m) während des normalen Betriebs nach dem Aktivieren des ersten Taktgebers (14), bei einem Abrufen des Mikrokerns, das von dem zeitbedingten Unterbrechungssignal (sh) ausgelöst wurde und das das Deaktivieren des ersten Taktgebers (14) verursacht hat, Ausführen einer Kontrolle, um zu prüfen, ob das zeitbedingte Unterbrechungssignal (sh), das das Abrufen des Mikrokerns auslöst, mit einem Verstoßversuch gegen eine Zeitquote verbunden ist, und, wenn das der Fall ist, Starten durch den Mikrokern der Verarbeitung der Anomalie, während, wenn das zeitbedingte Unterbrechungssignal (sh) nicht mit einem Verstoßversuch gegen eine Zeitquote verbunden ist, das Übergehen des Mikrokerns auf den Aktualisierungsschritt der Aufgabenlisten veranlaßt wird, und nach diesem Aktualisieren der Aufgabenlisten, den Mikrokern einerseits den kleinsten zukünftigen Zeitpunkt berechnen lassen, in dem eine Aufgabe geweckt werden muß, und andererseits den zukünftigen Zeitpunkt, ab welchem die der am Ausgang des Mikrokerns in Ausführung befindlichen Aufgabe auferlegt wurde, die bei der Aktualisierung der Listen bestimmt wurde, abläuft, und den ersten Taktgeber (14) von dem Mikrokern im kleinsten dieser zukünftigen Zeitpunkte aktivieren lassen um, je nach Fall, entweder die Aufgabe zu wecken oder einen Verstoßversuch gegen die Zeitquote zu erfassen, der eine Betriebsanomalie anzeigt, und Verlassen des Mikrokerns nach dem Aktivieren des ersten Taktgebers (14).
  7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß ein zweiter Taktgeber (15) umgesetzt wird, und daß man diesen zweiten Taktgeber (15) auf den Mikrokern zugreifen läßt, um durch Vergleichen der Zeitsignale das Ablaufen der durch den ersten Taktgeber (14) getakteten Zeit zu prüfen.
  8. Sicherungsverfahren nach einem der Ansprüche 1 bis 7, das das Echtzeitausführen von kommunizierenden Multitasking-Anwendungen des Steuer-Befehlstyps deterministisch macht, dadurch gekennzeichnet, daß es ferner die folgenden Schritte aufweist: n) während einer Vorbereitungsphase für jede der Aufgaben einer gegebenen Anwendung Speichern aller zulässigen Verkettungen ihrer Zeitsynchronisations- und Kommunikationspunkte mit den anderen Aufgaben der Anwendung, die ein Abrufen der Systemschicht erfordern, wobei diese zulässigen Verkettungen einen Steuergraphen der Ausführung der Abrufe der Systemschicht der betreffenden Aufgabe ergeben, wobei jeder Graph eine Einheit Knoten aufweist, die jeweils einem Abrufen der Systemschicht entsprechen, o) Speichern jeder für einen Datenaustausch zwischen Aufgaben erforderlichen Pufferzone unter Angeben ihrer Größe, der Größe der Elemente, die sie enthält, ihrer Lage oder Basisadresse sowie der Beziehungen zwischen den Pufferzonen, die es erlauben, die für die Kommunikationen erforderlichen Informationstransfers zu bestätigen, p) für jede Pufferzone Speichern der anfänglichen Werte ihrer Elemente, q) für die gegebene Anwendung und vor dem Starten der Echtzeitausführung gemäß einer zeitgetakteten Betriebsart Initialisieren der Werte der Elemente der Pufferzone mit den zuvor gespeicherten Werten, r) beim Ausführen einer Aufgabe, beim Abrufen der Systemschicht, wenn ein Knoten des Steuergraphen der Aufgabe erreicht ist und nachdem geprüft wurde, ob gemäß dem Steuergraphen der in Ausführung befindlichen Aufgabe das Verketten ausgehend von dem Knoten, der dem vorhergehenden Abrufen der Systemschicht entspricht, zulässig ist, Ausführen der aufeinander folgenden Aktualisierungen der Pufferzonen in Abhängigkeit von der Beschaffenheit des zuvor gespeicherten Abrufens und der inkrementalen Aktualisierungen, die für die Zeitparameter der in Ausführung befindlichen Aufgabe erforderlich sind, die das Datum d(i) des frühesten Anfangs und das Datum f(i) des spätesten Endes aufweisen.
  9. Verfahren nach den Ansprüchen 2 und 8, dadurch gekennzeichnet, daß man auf der Ebene der Systemschicht das Teilen der alleinigen Pufferzonen durch die Verlängerungen der Ausführungskontexte der Aufgaben einer Anwendung gestattet, wobei eine gegebene Pufferzone für die dynamischen Kommunikationen dem Senden von Meldungen entspricht, die nicht von zwei Verlängerungen von Ausführungskontexten einer Aufgabe geteilt werden können, während eine gegebene Pufferzone für die statischen Kommunikationen, die einem Strom datierter Daten entsprechen, von mehr als zwei Verlängerungen von Ausführungskontexten einer Aufgabe geteilt werden kann, aber immer nur von einem einzigen Kontext geschrieben oder modifiziert werden kann.
  10. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß es an ein Leitsystem einer Sicherheitsklassenebene 1E für einen Kernreaktor angewandt wird.
DE60127857T 2000-11-13 2001-11-13 Sicherheitsverfahren mit deterministischer echtzeit-ausführung von multitask-anwendungen des steuer- und befehlstyps mit fehlereingrenzung Expired - Lifetime DE60127857T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0014555 2000-11-13
FR0014555A FR2816730B1 (fr) 2000-11-13 2000-11-13 Procede de securisation rendant deterministe l'execution en temps reel d'applications multitaches du type controle- commande avec confinement d'erreur
PCT/FR2001/003532 WO2002039277A1 (fr) 2000-11-13 2001-11-13 Procede de securisation rendant deterministe l'execution en temps reel d'applications multitaches du type controle-commande avec confinement d'erreur

Publications (2)

Publication Number Publication Date
DE60127857D1 DE60127857D1 (de) 2007-05-24
DE60127857T2 true DE60127857T2 (de) 2007-12-20

Family

ID=8856366

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60127857T Expired - Lifetime DE60127857T2 (de) 2000-11-13 2001-11-13 Sicherheitsverfahren mit deterministischer echtzeit-ausführung von multitask-anwendungen des steuer- und befehlstyps mit fehlereingrenzung

Country Status (13)

Country Link
US (1) US7299383B2 (de)
EP (1) EP1337919B1 (de)
JP (1) JP3921447B2 (de)
KR (1) KR100837787B1 (de)
CN (1) CN1282079C (de)
AT (1) ATE359549T1 (de)
AU (1) AU2002220777A1 (de)
CA (1) CA2428467C (de)
DE (1) DE60127857T2 (de)
ES (1) ES2284725T3 (de)
FR (1) FR2816730B1 (de)
RU (1) RU2285947C2 (de)
WO (1) WO2002039277A1 (de)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7263598B2 (en) * 2002-12-12 2007-08-28 Jack Robert Ambuel Deterministic real time hierarchical distributed computing system
US8108628B2 (en) * 2003-08-04 2012-01-31 Azul Systems, Inc. Processor instruction used to perform a matrix test to generate a memory-related trap
US7689782B1 (en) * 2003-08-04 2010-03-30 Azul Systems, Inc. Processor instruction used to determine whether to perform a memory-related trap
EP1522923A3 (de) * 2003-10-08 2011-06-22 STMicroelectronics SA Architektur eines simultanen Multithreadprozessors (SMT)
US8683426B2 (en) 2005-06-28 2014-03-25 The Mathworks, Inc. Systems and methods for modeling execution behavior
US8793602B2 (en) * 2004-01-15 2014-07-29 The Mathworks, Inc. System and method for scheduling the execution of model components using model events
US9070104B2 (en) * 2004-11-12 2015-06-30 Sap Se Cross-context task management
CN100361081C (zh) * 2005-01-18 2008-01-09 华为技术有限公司 处理多线程/多任务/多处理器的方法
US8196178B2 (en) * 2005-10-05 2012-06-05 Microsoft Corporation Expert system analysis and graphical display of privilege elevation pathways in a computing environment
ATE535877T1 (de) * 2005-10-20 2011-12-15 Sap Ag Gesteuerte pfadbasierte prozessausführung
JP2007133807A (ja) * 2005-11-14 2007-05-31 Hitachi Ltd データ処理システム、ストレージ装置及び管理装置
JP4609381B2 (ja) * 2006-06-14 2011-01-12 株式会社デンソー 異常監視用プログラム、記録媒体及び電子装置
CN101266553B (zh) * 2008-05-06 2010-06-02 无锡紫芯集成电路系统有限公司 基于嵌入式系统的多任务管理方法
US7921195B2 (en) * 2008-06-09 2011-04-05 International Business Machines Corporation Optimizing service processing based on business information, operational intelligence, and self-learning
FR2937439B1 (fr) 2008-10-17 2012-04-20 Commissariat Energie Atomique Procede d'execution deterministe et de synchronisation d'un systeme de traitement de l'information comportant plusieurs coeurs de traitement executant des taches systemes.
CN101853181A (zh) * 2010-05-11 2010-10-06 中达电通股份有限公司 用于嵌入式系统的子程序相互调用的方法
US8639809B2 (en) * 2010-08-20 2014-01-28 International Business Machines Corporation Predictive removal of runtime data using attribute characterizing
CN102339029B (zh) * 2011-06-30 2013-03-06 电子科技大学 一种嵌入式操作系统定时保护的实现方法
US8850557B2 (en) 2012-02-29 2014-09-30 International Business Machines Corporation Processor and data processing method with non-hierarchical computer security enhancements for context states
US8707316B1 (en) * 2012-01-05 2014-04-22 The Boeing Company Methods and systems for mission-driven quality of service management
WO2013134206A1 (en) * 2012-03-05 2013-09-12 The Board Of Regents, The University Of Texas System Automatically bridging the semantic gap in machine introspection
US20130290315A1 (en) * 2012-04-30 2013-10-31 Iac Search & Media, Inc. Method and system of using an access control for temporarily overriding call number for representations
FR2990782B1 (fr) * 2012-05-15 2015-06-26 Sagem Defense Securite Procede de gestion d'une execution de taches dans un systeme informatique
FR2993070B1 (fr) 2012-07-09 2014-07-18 Commissariat Energie Atomique Procede d'execution, au sein d'un systeme embarque multitaches, d'une application cadencee par plusieurs domaines de temps differents incluant une gestion d'interruptions
US8869148B2 (en) * 2012-09-21 2014-10-21 International Business Machines Corporation Concurrency identification for processing of multistage workflows
FR3004274A1 (fr) 2013-04-09 2014-10-10 Krono Safe Procede d'execution de taches dans un systeme temps-reel critique
FR3004825B1 (fr) * 2013-04-19 2015-04-24 Krono Safe Procede d'allocation temporelle de taches permettant une recuperation d'erreur deterministe en temps reel
CN103984277B (zh) * 2014-05-26 2016-08-24 保定迈卓医疗器械有限公司 全数字化制氧机监测控制系统
CN104980224A (zh) * 2015-05-05 2015-10-14 电子科技大学 Fc-ae-1553数据交换模式设计、网络控制及节能方法
US10635831B1 (en) * 2018-01-06 2020-04-28 Ralph Crittenden Moore Method to achieve better security using a memory protection unit
US20220078199A1 (en) * 2020-09-09 2022-03-10 Spyderbat, Inc. Security event connectivity generated by linking enitities and actions from process tracking

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589093A (en) * 1983-03-28 1986-05-13 Xerox Corporation Timer manager
FR2766592B1 (fr) * 1997-07-23 1999-08-27 Bull Sa Dispositif et procede de regulation dynamique de l'attribution des ressources sur un systeme informatique
FR2771828B1 (fr) * 1997-12-03 2002-11-29 Sextant Avionique Procede de securisation pour un calculateur

Also Published As

Publication number Publication date
JP2004535607A (ja) 2004-11-25
RU2285947C2 (ru) 2006-10-20
FR2816730B1 (fr) 2004-10-15
EP1337919A1 (de) 2003-08-27
CA2428467A1 (en) 2002-05-16
WO2002039277A1 (fr) 2002-05-16
ATE359549T1 (de) 2007-05-15
CN1282079C (zh) 2006-10-25
AU2002220777A1 (en) 2002-05-21
US20040078547A1 (en) 2004-04-22
KR100837787B1 (ko) 2008-06-13
DE60127857D1 (de) 2007-05-24
US7299383B2 (en) 2007-11-20
FR2816730A1 (fr) 2002-05-17
CA2428467C (en) 2008-09-23
KR20030063378A (ko) 2003-07-28
JP3921447B2 (ja) 2007-05-30
EP1337919B1 (de) 2007-04-11
CN1488097A (zh) 2004-04-07
ES2284725T3 (es) 2007-11-16

Similar Documents

Publication Publication Date Title
DE60127857T2 (de) Sicherheitsverfahren mit deterministischer echtzeit-ausführung von multitask-anwendungen des steuer- und befehlstyps mit fehlereingrenzung
DE60008267T2 (de) Verfahren zum planen von zeitverteilten anwendungen in einem rechnerbetriebssystem
DE3611223C2 (de)
EP0762274B1 (de) Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks
DE4216871C2 (de) Ausführungsordnen zum Sicherstellen der Serialisierbarkeit verteilter Transaktionen
EP0951673B1 (de) Verfahren zur überwachung der vorgeschriebenen ausführung von softwareprogrammen
EP0771444A1 (de) Verfahren zur steuerung von technischen vorgängen oder prozessen
DE112006002908T5 (de) Technik für die Kommunikation und Synchronisation von Threads
DE20221531U1 (de) Vorrichtung für die Überwachung von Tasks, insbesondere zur Verwendung in einem Echtzeit-Telekommunikationssystem
DE2101949A1 (de) Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage
DE112019007400T5 (de) Verfahren zur Verifizierung eines Interrupt-Antriebssystems basierend auf einem Interrupt-Sequenzdiagramm
DE102014103139A1 (de) Parallelisierte Ausführung von Single-Core Steuerungssoftware auf Multi-Core Fahrzeugsteuergeräten
WO2011063869A1 (de) Verfahren zum ermöglichen einer sequentiellen, nicht blockierenden abarbeitung von anweisungen in nebenläufigen tasks in einer steuereinrichtung
EP3080668A1 (de) Verfahren zur beeinflussung eines steuerprogramms eines steuergeräts
DE112016004301T5 (de) Vornehmen einer flüchtigen Fehleratomarität von Isolierungstransaktionen in einem nichtflüchtigen Speicher
DE69838366T2 (de) Fädensynchronisierung durch selektive Objektverriegelung
DE19954407A1 (de) Verfahren zum direkten Aufrufen einer Funktion mittels eines Softwaremoduls durch einen Prozessor mit einer Memory-Management-Unit (MMU)
DE102006051188A1 (de) Flexibles Verschaltungssystem
EP1514180A2 (de) Reaktionszeit-beschränkung eines software-prozesses
DE4104365C1 (de)
DE69830886T2 (de) Statusbasierte Objektübergangsteuerung und verschachtelte Verriegelung
DE102020133748A1 (de) Fahrzeugsteuergerät mit synchronem treiber
DE2507405A1 (de) Verfahren und anordnung zum synchronisieren der tasks in peripheriegeraeten in einer datenverarbeitungsanlage
DE60211703T2 (de) Verfahren und system zur zeitverwaltung in einem echtzeitsystem
EP0991995B1 (de) Unterbrechungsverfahren in einem computersystem mit unterbrechungssteuerung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition