DE60006422T2 - Taskreihenfolgeplanung und nachrichtenübertragung - Google Patents

Taskreihenfolgeplanung und nachrichtenübertragung Download PDF

Info

Publication number
DE60006422T2
DE60006422T2 DE60006422T DE60006422T DE60006422T2 DE 60006422 T2 DE60006422 T2 DE 60006422T2 DE 60006422 T DE60006422 T DE 60006422T DE 60006422 T DE60006422 T DE 60006422T DE 60006422 T2 DE60006422 T2 DE 60006422T2
Authority
DE
Germany
Prior art keywords
task
transformed
deadline
tasks
period
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE60006422T
Other languages
English (en)
Other versions
DE60006422D1 (de
Inventor
A. Pamela BINNS
C. Stephen VESTAL
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.)
Honeywell Inc
Original Assignee
Honeywell Inc
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 Honeywell Inc filed Critical Honeywell Inc
Publication of DE60006422D1 publication Critical patent/DE60006422D1/de
Application granted granted Critical
Publication of DE60006422T2 publication Critical patent/DE60006422T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Communication Control (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft allgemein die Task-Einteilung und die Nachrichtenweiterleitung in Task-Systemen und insbesondere das Modellieren der periodischen und aperiodischen Echtzeit-Task-Einteilung und der Nachrichtenweiterleitung, ausgelegt für eine Analyse des Zeitsteuerungsverhaltens in Multitask-Systemen und für eine Definition elektronischer Systeme und Anweisungen zur Ausführung einer solchen Einteilung und Nachrichtenweiterleitung.
  • Allgemeiner Stand der Technik
  • Computerprozesse werden oft in vielfältige Funktionen unterteilt, die als Tasks auf serielle und/oder parallele Weise ausgeführt werden können. Mit diesen Computerprozessen kann man Informationen sammeln und auf diese reagieren und als Reaktion auf die Informationen ein bestimmtes Ergebnis hervorbringen. Diese funktionalen Task-Systeme finden in vielfältigen wichtigen Umgebungen Verwendung. Beispiele sind u.a. die Überwachung und Steuerung eines industriellen Prozesses, wie z.B. eines Energieerzeugungs- und Verteilungssystems, oder die Überwachung und Steuerung komplexer Gerätschaften, wie z.B. eines kommerziellen Flugzeugs.
  • Klassische Steuerfunktionen verwenden Datenflüsse zwischen periodisch ausgeführten Tasks, wobei die Ergebnisse einer Task bei der nächsten Abfertigung dieser Task abgeliefert werden. Dieses Verhalten ermöglicht zyklische Datenabhängigkeiten zwischen Tasks, d.h. Rückkopplungsschleifen, und ist mit den Annahmen vereinbar, die der mathematischen Analyse zeitdiskreter dynamischer Systeme zugrundeliegen. Ein Nachrichtenweiterleitungskommunikationsmodell eignet sich besser für partitionierte Mehrprozessorsysteme als ein Shared-Memory-Kommunikationsmodell, insbesondere Systeme, die lose gekoppelt sind, um einen hohen Grad an Hardware-Fehlerisolation aufrecht zu erhalten.
  • Bei vielen missionskritischen Systemen muß Software durch Verwendung einer entsprechenden Funktionszerlegung modularisiert werden, wodurch häufig ein Zerlegen einer traditionellen Steuertask in mehrere Kommunikations-Subtasks erforderlich wird. Dazu kann eine Ende-zu-Ende-Anordnung und Einteilung bestimmter Subtasks und Nachrichten erforderlich sein. Zum Beispiel könnten in einem flugtechnischen System die Trägheitsmeß- und Autopilotverarbeitung als durch separate Task-Mengen implementierte separate Funktionen implementiert werden. Es bestünde eine Ende-zu-Ende-Frist von dem Lesen von Sensordaten bis zum Ausgeben von Stellgliedbefehlen und Task- und Nachrichtenordnungsabhängigkeiten innerhalb dieser Frist.
  • Durch die zunehmende Komplexität von Hardware wird es schwieriger, Berechnungs- und Kommunikationszeiten präzise zu beschränken. Zum Beispiel wird es durch Cache-Speicher schwieriger, Rechenzeiten im ungünstigsten Fall genau zu beschränken, und zwar auch für Algorithmen, deren Steuerfluß datenunabhängig ist. Die tatsächlichen Rechenzeiten im ungünstigsten Fall können mitunter wesentlich kleiner als Schranken sein, die während der Entwicklung leicht hergestellt werden können. Tatsächliche Rechenzeiten können über verschiedene Dispatches der selben Task hinweg signifikant variieren. Systeme werden so ausgelegt werden, daß nur für die kritischeren Funktionen eine Garantie mit höchster Sicherheit der Einteilbarkeit unter Rechenzeitschranken im ungünstigsten Fall besteht. In Intervallen mit transienter Prozessorüberlastung wird es zu einer Lastverhexelung der weniger kritischen Tasks kommen.
  • Systeme mit großer Sicherheit stellen zusätzliche Anforderungen. Die Abhängigkeitsanordnung von Berechnungen und Übermittlungen und die genauen Zeiten von Wechselwirkungen mit der Außenwelt müssen deterministische Ergebnisse erzeugen. Unbestimmtheiten oder Variationen der Task-Rechenzeiten dürfen sich nicht auf die Werte ausgewiesener Steuerausgangssignale auswirken. Es ist notwendig, das Zeitsteuerungsverhalten eines Systems formal zu modellieren und zu analysieren. Spezifikationen, Modelle, Analysen und Code müssen alle gut strukturiert, verständlich, verfolgbar und mehreren unabhängigen Mitteln der Verifikation zugänglich sein.
  • Es gibt in der Technik Lösungen bei der Modellierung der periodischen und aperiodischen Echtzeit-Taskeinteilung und der Nachrichtenweiterleitung, die in integrierten missionskritischen Systemen oder in Systemen mit hochratigen Anwendungen und Mikrosteuerungen mit eingeschränktem Durchsatz und/oder Speicher nützlich sind.
  • Aus "Metall support for real-time multi-processor avionics", Proceedings of 5th International Workshop on Parallel and Distributed Real-Time Systems und Third Workshop on Object-Oriented Real-Time Systems, 1.–3.4 1997, Seiten 11 bis 21, Genf, Schweiz, ist eine Echtzeit-Modellierungsvorrichtung bekannt, die ein ausführliches zuvorkommendes Festprioritätsmodell einer Anwendung erzeugt.
  • Die Erfindung behandelt die deterministische Kommunikation zwischen zwei periodischen Prozessen. Sie umfaßt ein Kommunikationsmodell, eine Fristenreduktionstechnik, eine periodische Transformationstechnik und Implementierungseffizienzpufferzuweisungsregeln.
  • In einer Ausführungsform liefert die Erfindung ein Verfahren zur Erzeugung einer zugewiesenen Einteilungspriorität mehrerer Tasks in einem Multitask-System, mit den folgenden Schritten:
    Definieren einer ersten Liste der mehreren Tasks, wobei die erste Liste der mehreren Tasks mit einer Task-Frist als ein Primärschlüssel und einer Task-Kritizität als ein Sekundärschlüssel sortiert wird;
    Transformieren der Task-Frist jeder der mehreren Tasks einzeln unter Verwendung eines Transformationsszenarios, beginnend mit der Task mit der kleinsten Task-Frist, wodurch eine transformierte Task-Frist für jede der mehreren Tasks erzeugt wird;
    Definieren einer zweiten Liste der mehreren Tasks, wobei die zweite Liste der mehreren Tasks mit der transformierten Task-Frist als Primärschlüssel sortiert wird und wobei weiterhin jede transformierte Task-Frist einer Task mit einer ersten Task-Kritizität kleiner als jede transformierte Task-Frist einer Task mit einer kleineren Task-Kritizität als die erste Task-Kritizität ist; und
    Zuweisen von Einteilungspriorität in einer Reihenfolge der zweiten Liste der mehreren Tasks, wodurch die zugewiesene Einteilungspriorität erzeugt wird.
  • 1A ist ein Schaltbild eines Flugleitsystems zur Verwendung gemäß einer Armausführungsform der Erfindung.
  • 1B ist ein Schaltbild eines redundanten Flugleitsystems zur Verwendung gemäß einer Ausführungsform der Erfindung.
  • 1C ist ein Blockschaltbild eines Multitask-Systems gemäß einer Ausführungsform der Erfindung.
  • 2 ist eine Ausführungs-Zeitlinie einer Task gemäß einer Ausführungsform der Erfindung.
  • 3 ist ein Schaltbild von Verbindungstypen für die Nachrichtenweiterleitung gemäß einer Ausführungsform der Erfindung, die mit Task-Objekten dargestellt ist.
  • 4 ist ein Schaltbild eines Hardwareobjekts gemäß einer Ausführungsform der Erfindung.
  • 5 ist ein Schaltbild von Ende-zu-Ende-Berechnungen und der Kommunikation gemäß einer Ausführungsform der Erfindung.
  • 6 ist ein Schaltbild einer Task-Exekutive gemäß einer Ausführungsform der Erfindung.
  • 7 ist ein Schaltbild von Exekutivpuffern gemäß einer Ausführungsform der Erfindung.
  • 8 ist ein Prozeßflußdiagramm einer Abfertiger-Task gemäß einer Ausführungsform der Erfindung.
  • 9 ist ein Prozeßflußdiagramm eines Ereignis-Handlers gemäß einer Ausführungsform der Erfindung.
  • 10 ist ein Prozeßflußdiagramm einer Dienstkomponente gemäß einer Ausführungsform der Erfindung.
  • 11 ist ein Prozeßflußdiagramm der Tasklistenerzeugung gemäß einer Ausführungsform der Erfindung.
  • 12 ist eine Darstellung beispielhafter Transformationsszenarien zur Verwendung gemäß Ausführungsformen der Erfindung.
  • 13 ist ein Prozeßflußdiagramm der Tasktransformation gemäß einer Ausführungsform der Erfindung.
  • 14 ist ein Blockschaltbild eines elektronischen Systems gemäß einer Ausführungsform der Erfindung.
  • Beschreibung der Ausführungsformen
  • In der folgenden ausführlichen Beschreibung der bevorzugten Ausführungsformen wird auf die beigefügten Zeichnungen Bezug genommen, die einen Teil der Beschreibung bilden, und in denen zur Veranschaulichung spezifische Ausführungsformen gezeigt sind, in denen die Erfindungen ausgeübt werden können. Diese Ausführungsformen werden ausführlich genug beschrieben, damit Fachleute die Erfindung ausüben können, und es versteht sich, daß andere Ausführungsformen verwendet und daß Prozeß- oder mechanische Änderungen vorgenommen werden können, ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen. Die folgende ausführliche Beschreibung ist deshalb nicht in einem einschränkenden Sinne aufzufassen, und der Schutzumfang der vorliegenden Erfindung wird nur durch die angefügten Ansprüche definiert.
  • 1A ist ein Schaltbild eines Flugleitsystems 100. Die Flugleittask 105 wird mit einer bestimmten periodischen Rate ausgeführt. Die Flugleittask 105 empfängt Sensordaten (S) 115 von dem Sensor 110, berechnet eine Funktion ƒ mit den Sensordaten 115 und in einer vorherigen Abfertigung (Xm) berechneten Zustandsdaten 130 als Eingaben und schreibt eine Ausgabe (Xm+1) 120 in ein Stellglied 125. Man kann dies als Xm+1 = ƒ(Xm, S) schreiben. Die Sensordaten 115 sollten im wesentlichen ohne Verzögerung zu der Flugleittask 105 transferiert werden, und die Flugleittask 105 darf erst dann ausgeführt werden, wenn sie die Sensordaten 115 empfangen hat. Dieser unverzögerte Transfer ist durch einen Pfeil mit zwei Spitzen dargestellt.
  • Die Stellgliedausgabe 120, die zum Zeitpunkt t aus den Sensordaten 115 berechnet wird, sollte mit minimalem Jitter genau zum Zeitpunkt t + Δ geschrieben werden, wobei Δ und die Taskperiode von einem Regelungsingenieur auf der Grundlage von Systemanforderungen bestimmt und spezifiziert werden. Häufig ist Δ eine Frist, die vor der nächsten Abfertigung der Flugleittask auftritt. Die Zustandsinformationen (Xm) 130, die bei der m-ten Abfertigung der Task berechnet werden, müssen bei der (m+1)-ten Abfertigung der Task empfangen werden. Dieser verzögerte Datenfluß wird durch die Rückkopplungsverbindung von der Flugleittask zu sich selbst dargestellt. Die Rückkopplungsdaten aus der Flugleittask zu sich selbst können auch mit einer bestimmten festen und unveränderlichen Verzögerung, z.B. der Periode dieser Task, transferiert werden. Diese beiden letzteren Transfers werden als Verbindungen mit Einzelabtastverzögerung (SSD – Single Sample Delay) bezeichnet.
  • Wenn Daten von einer periodischen Task A zu einer periodischen Task B (möglicherweise mit verschiedenen Raten) gesendet werden und wenn die i-te Abfertigung von B Daten von der j-ten Abfertigung von A in einem beliebigen einteilbaren Lauf empfängt, muß es dies in jedem einteilbaren Lauf durchführen, um Anforderungen bezüglich der Rückkopplungsregelungsbestimmtheit zu erfüllen. Dies gilt sowohl für unverzögerte als auch für SSD-Verbindungen.
  • 1B zeigt eine Variante eines Flugleitsystems 100 mit Redundanz. Das Flugleitsystem 100 enthält ferner eine Primärflugleittask 105A, eine Sekundärflugleittask 105B und eine Komparatortask 135 zur Wahl der Ausgabe (120A oder 120B), die für die Steuerung des Systems verwendet wird. Die Ende-zu-Ende-Frist Δ zwischen dem Lesen der Sensoreingabe 115 und dem Schreiben der Stellgliedausgabe 120 gilt für die Ausführung aller drei Tasks (105A, 105B und 135) und für den Zwischendatentransfer zwischen den beiden Flugleittasks 105A und 105B und der Komparatortask 135. Der Datentransfer von den Flugleittasks 105A und 105B zu der Komparatortask 135 muß im wesentlichen unverzögert sein und es besteht eine Einteilungsvorgangeinschränkung zwischen den beiden Flugleittasks 105A und 105B und der Komparatortask 135.
  • Bei einer Ausführungsform der Erfindung liefert das System eine zuvorkommende Festprioritätseinteilung periodischer und aperiodischer Tasks und Zuweisungen zwischen Nachrichtenpuffervariablen. Prioritäten werden invers mit der Periode oder Frist zugewiesen, so daß Tasks mit kürzeren Perioden oder Fristen höhere Einteilungsprioritäten aufweisen. Wenn die Anfangsprioritätszuweisung nicht mit Task-Kitizitäten vereinbar ist, dann werden die Perioden und/oder Fristen von Tasks mit hoher Kritizität transformiert, d.h. die Tasks werden zu kleineren Stücken zerlegt, die sequenziell mit höheren Raten abgefertigt werden. Bei aperiodischer Einteilung verwendet die Ausführungsform sowohl Algorithmen mit zurückstellbarem Server als auch mit Periodendurchsetzung. Bei einer anderen Ausführungsform liefert das System einen Echtzeit-Slack-Einteiler.
  • Für die Einteilbarkeitsanalyse wird ein exakter Charakterisierungsalgorithmus verwendet, der erweitert ist, um Empfindlichkeitsanalyseinformationen zu liefern. Das Ausführungsbeispiel wurde in einem Metall-Toolset implementiert, das automatisch formale Einteilbarkeits-, Zuverlässigkeits- und Partitionierungsmodelle eines Systems erzeugt und analysiert; und automatisch das System zusammenstellt, Bilder für jeden Systemprozessor aufbaut, wobei erzeugter Einteilungs- und Kommunikationscode verwendet wird. Das Metall-Toolset wird von Honeywell, Inc., Minneapolis, Minnesota, USA, entwickelt und vertrieben.
  • Es können andere CASE-Werkzeuge (Computer-Aided Software Engineering) mit den verschiedenen Ausführungsformen der Erfindung verwendet werden.
  • Mit Bezug auf 1C ist das Tasksystem 100 ein Multitask-System mit mindestens zwei einteilbaren Anwendungstasks 110. Die Einteilung der Anwendungstasks 110 in dem Task-System 100 sowie die Kommunikation der Anwendungstasks 110 wird durch eine Exekutiv-Task 150 gesteuert. Jede Task 110 in dem Task-System 100 wird entweder für periodische Tasks wiederholt abgefertigt, oder für aperiodische Tasks als Reaktion auf ein bestimmtes Ereignis, d.h. ein softwareerzeugtes, Interrupt- oder anderweitiges Ereignis. Eine Task 110 ist in nur einem Prozessor 120 verankert bzw. wird von diesem durchgeführt.
  • 2 zeigt die Task-Ausführungszeitlinie einer Task 110, die jeder Abfertigung und den hier für gewählte Zeitpunkte und Zeitintervalle definierten Regeln folgt. Der Begriff "Task-Zeitpunkt" bedeutet eine spezifische Abfertigung einer Task 110 und der zugeordneten Sequenz von folgenden Aktivitäten und Einteilungspunkten. Zwischen jeder Abfertigung einer Task 110 und der folgenden Frist muß eine Task eine bestimmte Menge an Arbeit durchführen und eine bestimmte Menge an Rechenzeit von dem Prozessor erhalten. Der Prozessor kann jedoch auch zwischen Abfertigung und Abschluß etwas Zeit mit der Arbeit an anderen Tasks 110 verbringen, und in diesen Zeitspannen wird gesagt, daß andere Tasks 110 einer Task 110 zuvorkommen. Eine wichtige Beobachtung besteht darin, daß Task-Abfertigungen, d.h. wann eine Task 110 in eine mit Prioritäten versehene Bereitschaftswarteschlange eingereiht wird, und Fristen, d.h. eine bestimmte systemdefinierte Frist oder andere Einschränkung für den Abschluß der Task, für periodische Tasks zu deterministischen Zeitpunkten auftreten. Die Task-Startzeit, d.h. wann die Berechnung der Task beginnt, und Abschlußzeiten, d.h. wann die Berechnung der Task abgeschlossen ist, können jedoch abhängig von Einteilungs- und Rechenzeitanforderungen unterschiedlich sein.
  • Tasks 110 werden mit vier Primärparametern charakterisiert. Die Klasse einer Task ist entweder periodisch, d.h. regelmäßig für die Abfertigung eingeteilt, oder aperiodisch, d.h. wird als Reaktion auf ein bestimmtes, nicht eingeteiltes Ereignis abgefertigt. Die Periode einer Task ist der Zeitraum zwischen Abfertigungen einer periodischen Task oder der minimale Zeitraum zwischen Ereignisankünften für eine aperiodische Task. Die Rechenzeit einer Task ist die obere Schranke für die Menge an Prozessorzeit, die eine Instanz dieser Task benötigt, um nach jeder Abfertigung fertig zu werden. In der Praxis wird der Sicherheitsgrad, daß die tatsächliche Rechenzeit diesen Wert nicht überschreitet, abhängig von der Task unterschiedlich sein.
  • Die Kritizität einer Task ist bei eine Ausführungsform ein ganzzahliger Wert, der zur Steuerung des Einteilungsverhaltens verwendet wird, wenn Prozessoren überlastet sind, d.h. wenn eine bestimmte Teilmenge von Tasks nicht einteilbar ist. Obwohl ein solches numerisches Einstufungssystem für die Implementierung zweckmäßig ist, können andere Einstufungssysteme verwendet werden. Die Einteilbarkeit einer Task wird nur durch Tasks auf demselben Prozessor mit einer Kritizität, die größer oder gleich ihrer eigenen Kritizität ist, beeinflußt. Tasks mit niedrigerer Kritizität können ihre Nennrechenzeiten überschreiten oder können bei aperiodischen Tasks mit einer höheren Rate als ihre Nennperioden abgefertigt werden, ohne daß dadurch eine Task mit höherer Kritizität eine Frist verpaßt.
  • Bei einer Ausführungsform sind Nachrichten Werte, die gemäß einer spezifizierten Menge von Verbindungen von Ausgangspuffervariablen in Absendertasks zu Eingangspuffervariablen in Empfängertasks transferiert werden. In der Spezifikationssprache Metall kann jede Task einen oder mehrere Eingangs- oder Ausgangsports aufweisen, die Puffervariablendeklarationen in dem Task-Quellcode auszeichnen, und Verbindungen können zwischen Ports mit kompatiblem Typ hergestellt werden (siehe 3). Wie in 3 gezeigt, weist die Task 1101 einen Ausgangspuffer 310 mit einer Einzelabtastverzögerung und einen unverzögerten Eingangspuffer 340 auf. Die Task 1102 weist einen Eingangspuffer 320 mit einer Einzelabtastverzögerung und einen unverzögerten Ausgangspuffer 330 auf. Die Tasks 1101 und 1102 können zusätzliche oder andere Eingangs- und Ausgangspuffer aufweisen.
  • Der Ausgangspuffer 310 mit einer Einzelabtastverzögerung führt seinen Nachrichtenwert dem Eingangspuffer 320 mit einer Einzelabtastverzögerung zu. Der unverzögerte Ausgangspuffer 330 führt seinen Nachrichtenwert dem unverzögerten Eingangspuffer 340 zu.
  • Ankommende Nachrichten werden in die Eingangspuffer einer Empfängertask abgelegt, bevor sie startet, und es wird angenommen, daß abgehende Nachrichten in den Ausgangspuffern einer Task verfügbar sind, wenn sie fertig ist. Ohne jegliche anderen Einschränkungen der Task-Einteilung in einem einteilbaren System sollten ankommende Nachrichten bei der Taskabfertigung verfügbar sein, und abgehende Nachrichten sind möglicherweise nicht vor der Task-Frist verfügbar. Eine Task ist ein Absender, wenn sie einen Nachrichtenwert von ihrem Ausgangspuffer sendet, und ein Empfänger, wenn sie einen Nachrichtenwert in ihrem Eingangspuffer empfängt.
  • Bei dem Ausführungsbeispiel gibt es zwei Arten von Nachrichtenverbindungen. Die erste ist eine Verbindung mit einer Einzelabtastverzögerung. Die zweite ist eine unverzögerte Nachrichtenverbindung.
  • Eine Verbindung mit einer Einzelabtastverzögerung bewirkt, daß der durch eine Taskinstanz empfangene Wert derjenige ist, der an der jüngsten Absenderfrist verfügbar ist, die der Empfängerabfertigung vorausging oder zum selben Zeitpunkt wie sie auftrat. Bei einer Ausführungsform kommt es zu einer Ausnahme, wenn der Absender eine aperiodische Task ist, so daß der Nachrichtenwert zum Abschlußzeitpunkt anstelle der Frist des Absenders erhalten wird.
  • Hardwareobjekte dürfen Ports besitzen, z.B. Einrichtungssteuerregister, die in den Speicherraum abgebildet werden. Wie in 4 gezeigt, kann das Hardwareobjekt 400 einen oder mehrere Hardware-Eingangsports 410 und einen oder mehrere Hardware-Ausgangsports 420 aufweisen. Transfers zu oder von Hardwareports erfolgen an der Frist der Absendertask bzw. der Abfertigung der Empfängertaskinstanz. Wie bereits erwähnt, können für aperiodische Tasks die Transfers zu einem Hardwareport von einer aperiodischen Task zum Abschlußzeitpunkt der Task auftreten. Hardwareobjekte führen Tasks Nachrichtenwerte zu, z.B. Tastatureingabe von Daten oder Daten aus einem maschinenlesbaren Medium, und nehmen Nachrichtenwerte von Tasks an, z.B. zur Anzeige für einen Endbenutzer oder zur Steuerung industrieller Geräte. Ähnlich wie bei Tasks ist ein Hardwareobjekt ein Absender, wenn es einen Nachrichtenwert von seinem Ausgangsport sendet, und ein Empfänger, wenn es einen Nachrichtenwert an seinem Eingangsport empfängt.
  • Jede Task oder Einrichtung, die unverzögerte Nachrichten ausgibt und nicht eingibt, wird als eine Quelle bezeichnet. Jede Task oder Einrichtung, die unverzögerte Nachrichten eingibt und nicht ausgibt, wird als eine Senke bezeichnet. Jede Task oder Einrichtung, die unverzögerte Nachrichten ausgibt, wird als ein Produzent bezeichnet. Eine Quelle ist definitionsgemäß ein Produzent. Jede Task oder Einrichtung, die unverzögerte Nachrichten eingibt, wird als ein Verbraucher bezeichnet. Eine Senke ist definitionsgemäß ein Verbraucher.
  • Da Fristen und Abfertigungen für periodische Tasks zu deterministischen Zeiten auftreten, führt dies zu einer strikt deterministischen Datenabhängigkeit zwischen periodischen Tasks. Das heißt, wenn die ƒ-te Instanz einer Task Daten von der i-ten Instanz einer anderen Task in einem beliebigen einteilbaren Lauf des Systems Daten empfängt, geschieht dies in allen einteilbaren Läufen des Systems. 5 zeigt ein Beispiel für die Weiterleitung unverzögerter Nachrichten zwischen periodischen Tasks, wobei A unverzögerte Verbindungen zu B und C, und B eine unverzögerte Verbindung zu C aufweist. In 5 empfängt die 1. Instanz der Task C Eingaben von den 1. Instanzen der Tasks A und B, während die 2. Instanz der Task C Eingaben von der 3. Instanz von Task A und der 1. Instanz von Task 3 empfängt. Die Abhängigkeit zwischen periodischen Tasks mit unverzögerter Nachrichtenweiterleitung wiederholt sich in jedem einteilbaren Ablauf des Task-Systems. Die im Fall eines aperiodischen Absenders erlaubte Ausnahme wird als akzeptabler Verlust an Determinismus betrachtet, da aperiodische Abfertigungszeiten selbst in gewissem Sinne nicht deterministisch sind und dies eine einfachere Implementierung ermöglicht.
  • Eine unverzögerte Verbindung richtet eine Vorausgang-Einschränkung sowie eine Datenabhängigkeit zwischen Task-Instanzen ein. Der Absender wird bis zum Abschluß ausgeführt, die Nachricht transferiert und der Empfänger darf dann starten. Bei einer Ausführungsform enthält das Task-System 100 die folgenden Einschränkungen bezüglich unverzögerter Nachrichten verbindungen in dem sogenannten paarweise synchronen Abfertigungsmodell.
    • 1. Die Menge unverzögerter Nachrichtenverbindungen und die zugeordneten Tasks müssen einen gerichtete azyklischen Graphen bilden.
    • 2. Jedes Paar periodischer Tasks, das durch eine unverzögerte Verbindung kommuniziert, muß harmonische Perioden aufweisen, d.h. die Periode der einen muß ein ganzzahliges Vielfaches der Periode der anderen sein. Man beachte, daß Transitivität bewirkt, daß alle Tasks in einer unverzögerten Kette harmonisch sind, aber nicht in parallelen Zweigen eines Baums. Man betrachte z.B. parallele Zweige der unverzögerten Ketten A->>B->>C1 und A->>B->>C2, wenn die Perioden von A, B, C1 und C2 5 ms, 10 ms, 20 ms bzw. 30 ms betragen.
    • 3. Der Absender einer unverzögerten Nachricht darf nur dann eine niedrigere Kritizität als der Empfänger aufweisen, wenn der Absender eine erzwungene Rechenzeit und minimale Ereigniszwischenankunftszeiten aufweist.
  • Ein unverzögerter Datentransfer erfolgt zwischen zwei periodischen Taskinstanzen nur dann, wenn sie zum selben Zeitpunkt abgefertigt wurden, d.h. paarweise synchrone Abfertigung. Bei dem Modell der paarweise synchronen Abfertigung wird zuerst der Absender bis zum Abschluß ausgeführt und der Empfängerstart wird bis nach dem Transfer der Nachricht verzögert. Eine gesamte Kette von Berechnungen und Übermittlungen unverzögerter Nachrichten von Ende zu Ende weist die Frist der letzten Empfängertask auf. Wieder mit Bezug auf 5, wobei A unverzögerte Verbindungen zu B und C, und B eine unverzögerte Verbindung zu C aufweist, ist zu beachten, daß keine Anforderung besteht, daß Absender eine höhere Abfertigungsrate als Empfänger aufweisen.
  • In dem Beispiel von 5 führt C eine Überabtastung der von B empfangenen Daten durch.
  • Wenn entweder die Absender- oder die Empfängertask aperiodisch ist, gelten die Anordnungseinschränkung und der Nachrichtentransfer für die nächste Instanz der Empfängertask, die bei der Abfertigung der Absendertask oder danach abgefertigt wird. Dadurch können z.B. aperiodische Tasks Daten weiterleiten und nachfolgende aperiodische Tasks abfertigen, um Bäume koordinierender Task-Instanzen zu bilden.
  • Wenn eine unverzögerte Verbindung aus einem Hardware-Ausgangsport kommt, wird der Nachrichtenwert bei der Abfertigung der Empfängertask transferiert. Wenn eine unverzögerte Verbindung zu einem Hardware-Eingangsport kommt, wird der Wert beim Abschluß der Absendertask transferiert. Man beachte, daß unverzögerte Verbindungen zu Hardwareports zeitlich nicht deterministisch sind. Folglich können sie aufgrund von Rechenzeit- und Einteilungsvariabilität Jitter aufweisen.
  • Bei einer Ausführungsform teilt die Exekutivtask 150 Tasks unter Verwendung einer zuvorkommenden Festprioritätsdisziplin ein. Die Exekutivtask 150 ist für die Verwaltung von Taskprioritäten, das Abfertigen von Tasks (Einreihen dieser in eine Bereitschaftswarteschlange mit Prioritäten), das Suspendieren von Tasks (Entfernen dieser aus der Bereitschaftswarteschlange) und das Verschieben von Daten zwischen Taskpuffervariablen verantwortlich. Mit Bezug auf 6 enthält die Exekutivtask 150 drei Komponenten:
    • 1. eine periodische Abfertigertask 610, die die Task mit der höchsten Priorität in dem Task-System 100 ist und periodische Abfertigungen von Tasks 110 und ihre Einzelabtastverzögerungsübermittlungen verwaltet,
    • 2. einen Ereignis-Handler 620, der aperiodische Abfertigungen von Tasks 110 und ihre Einzelabtastverzögerungsübermittlungen verwaltet,
    • 3. eine Dienstkomponente 630, die Taskabschlüsse und alle unverzögerten Übermittlungen von Tasks 110 verwaltet.
  • Diese drei Komponenten können automatisch aus einer Metall-Spezifikation von Tasks und ihren Nachrichten- und Ereignisverbindungen erzeugt werden.
  • Die Nachrichtenweiterleitung wird durch Zuweisungen zwischen Taskpuffervariablen implementiert. In vielen Fällen kann eine Exekutivpuffervariable zugeteilt und in der Exekutivtask 150 verwendet werden, z.B. Verbindungen zwischen nicht harmonischen oder aperiodischen Tasks. Im allgemeinen wird eine Verschiebung von Nachrichtendaten als eine Zuweisung von der Puffervariablen eines Absenders zu einer Exekutivpuffervariablen, gefolgt durch eine Zuweisung von der Exekutivpuffervariablen zu der Puffervariablen des Empfängers implementiert. Zum Beispiel leitet in 7 die Absendertask 1101 ihren Nachrichtenwert von einem Ausgangspuffer 710 zu einem Schatten-Ausgangspuffer 720, einem Exekutivpuffer, weiter. Der Schatten-Ausgangspuffer 720 leitet seinerseits den Nachrichtenwert zu dem Schatten-Eingangspuffer 730, einem weiteren Exekutivpuffer, weiter. Der Schatten-Eingangspuffer 730 leitet den Nachrichtenwert zu einem Eingangspuffer 740 der Empfängertask 1102 weiter. Die beiden Zuweisungen, d.h. vom Sender zur Exekutive und von der Exekutive zum Empfänger, können an verschiedenen Einteilungspunkten stattfinden, z.B. die erste an der Frist einer periodischen Absendertask 1101 und die zweite bei der Abfertigung einer periodischen Empfängertask 1102 . Bei einer Ausführungsform könnte die Zwischenzuweisung eines Nachrichtenwerts zu einer Exekutivpuffervariablen für Verbindungen zwischen harmonischen periodischen Tasks, deren Fristen gleich ihren Perioden sind, wegoptimiert werden, so daß die Absendertask 1101 ihren Nachrichtenwert direkt zu der Empfängertask 1102 weiterleitet, wie durch die gestrichelte Linie 750 gezeigt. In diesem Fall werden die Exekutivpuffer eliminiert. In einer anderen Ausführungsform sind der Schatten-Ausgangspuffer und der Schatten-Eingangspuffer derselbe Exekutivpuffer, der der Zweckmäßigkeit halber als Schatten-Eingangspuffer bezeichnet wird.
  • Die Abfertigertask 610 führt eine Einzelabtastverzögerungsnachrichtenweiterleitung zwischen periodischen Tasks und eine Abfertigung periodischer Tasks durch. Die Abfertigertask 610 wird in der Regel als der Handler eines periodischen Hardwaretaktinterrupts, der nahezu gleichzeitig an allen Prozessoren auftritt, implementiert. Die Interruptrate sollte so gewählt sein, daß jede Abfertigung und Frist ein ganzzahliges Vielfaches der Interruptperiode ist, z.B. der größte gemeinsame Teiler der Perioden und Fristen, die in der Systemspezifikation erscheinen.
  • Bei jedem Interrupt wird ein Zykluszähler um 1 erhöht (Modulo einen bestimmten großen Wert, der ein gemeinsames Vielfaches aller Perioden ist). Die periodischen Aktionen, die bei jedem Interrupt auftreten sollen, werden dadurch bestimmt, ob der Zykluszähler gerade durch die Periodizität einer Aktion teilbar ist oder nicht.
  • Bei einer Ausführungsform kann ein Prozeßfluß der Abfertigertask 610 mit Bezug auf 8 beschrieben werden. 8 ist ein Prozeßflußdiagramm mit Aktionsboxen 810, 820, 840 und 850 sowie einer Entscheidungsbox 830. In der Aktionsbox 810 wird die Abfertigertask 610 darauf vorbereitet, an dem periodischen Interrupts, wie z.B. einem Hardwaretaktinterrupt, abzulaufen. Nach dem Empfang des periodischen Interrupt wird der Zykluszähler in der Aktionsbox 820 erhöht. Die Entscheidungsbox 830 bestimmt, ob etwaige eingeteilte Tasks in diesem Zyklus abgefertigt werden sollen, d.h. wenn der Zyklus die Größe der Taskperiode, dividiert durch das periodische Interrupt, gerade teilt. wenn in der Entscheidungsbox 830 Tasks abgefertigt werden sollen, bestimmt die Aktionsbox 840 die Menge (S) aller abzufertigenden Tasks. In der Aktionsbox 850 erfolgt für die periodischen Tasks, die die Kriterien der Entscheidungsbox 830 erfüllen, Nachrichtenzuweisungen von Puffer zu Puffer und diese Tasks werden abgefertigt. Die Steuerung wird dann an die durch das periodische Interrupt unterbrochenen Tasks zurückgegeben. Die Abfertigung der periodischen Tasks kann als Hinzufügen der Tasks zu einer Bereitschaftswarteschlange 890 angesehen werden. Mit Bezug auf 8 wird das folgende Beispiel angegeben:
    Figure 00180001
  • Der Ereignis-Handler 620 wird immer dann ausgeführt, wenn externe Interrupts oder interne, durch Software erzeugte Ereignisse auftreten. Bei der Abfertigung aperiodischer Tasks zu empfangende Nachrichtenwerte werden ihren Eingangspuffervariablen zugewiesen und die Tasks werden abgefertigt.
  • 9 ist ein Prozeßflußdiagramm einer Ausführungsform des Ereignis-Handlers 620. 9 enthält die Aktionsboxen 910, 920 und 930. In der Aktionsbox 910 wird der Ereignis-Handler 620 als Reaktion auf ein durch Software erzeugtes Ereignis oder einen externen Interrupt ausgeführt. Nach dem Empfang des Interrupts in der Aktionsbox 910 weist der Ereignis-Handler 620 ihren Taskeingangspuffern in der Aktionsbox 920 Nachrichtenwerte zu. Die dem Interrupt in 910 zugeordnete aperiodische Task bzw. zugeordneten aperiodischen Tasks werden in der Aktionsbox 930 abgefertigt. Die Steuerung wird dann an die Bereitschaftstask mit der höchsten Priorität zurückgegeben. Wie bei der Abfertigungstask 610 umfaßt das Abfertigen einer aperiodischen Task das Einreihen der aperiodischen Task in der Bereitschaftswarteschlange 890.
  • Die Dienstkomponente 630 wird ausgeführt, wenn eine Taskinstanz abgeschlossen wird. Die abschließende Task wird aus der Bereitschaftswarteschlange 890 entfernt. Durch die abschließende Task erzeugte Ausgangswerte werden entsprechenden Exekutiv- oder Empfängertaskpuffervariablen gemäß den nachfolgend angegebenen Regeln zugewiesen. Diese Zuweisungen sind konditional, abhängig von Informationen, die bei der Abfertigung jeder Task, die unverzögerte Nachrichten empfangen kann, aufgezeichnet werden. Bei jeder Abfertigung einer periodischen Task, die eine unverzögerte Eingabe von einer anderen periodischen Task empfangen kann, wird der Zyklus, an dem diese Task abgefertigt wird, aufgezeichnet. Bei der Abfertigung jeder aperiodischen Task, die eine unverzögerte Eingabe von einer anderen Task empfangen kann, wird der Einteilungszustand jeder Absendertask (Warten auf Abfertigung oder abgefertigt, aber noch nicht abgeschlossen) aufgezeichnet.
  • 10 ist ein Prozeßflußdiagramm einer Ausführungsform der Dienstkomponente 630. 10 enthält die Aktionsboxen 1010, 1020 und 1030. In der Aktionsbox 1010 wird die Dienstkomponente 630 ausgeführt, wenn eine Task abgeschlossen ist. Nach dem Abschluß einer Task oder von Tasks, was zu der Aktionsbox 1010 führt, entfernt die Dienstkomponente 630 die abschließende Task oder die abschließenden Tasks aus der Bereitschaftswarteschlange 890. Ausgaben aus der abschließenden Task oder den abschließenden Tasks werden in der Aktionsbox 1030 einem Exekutiv- oder Empfängerpuffer zugewiesen. Die Steuerung geht dann an die Task mit der höchsten Priorität in der Bereitschaftswarteschlange. Die Zuweisung der Ausgabe in der Aktionsbox 1030 kann mit Bezug auf Tabelle 1 weiterbeschrieben werden. Tabelle 1 Nachrichtenweiterleitungszeitsteuerung
    Figure 00210001
    mit:
  • <<-
    = unverzögerte Nachrichtenweiterleitung
    <-
    = einzelabtastverzögerte Nachrichtenweiterleitung
    XR.in
    = Eingangspuffer für Task X, mit X = P (periodisch), A (aperiodisch) oder D (Einrichtung)
    XR.in.buffer
    = Schatten-Eingangspuffer für Task X, mit X = P, A oder D
    XS.out
    =Ausgangspuffer für Task X, mit X = P, A oder D
    PR
    = Periodischer Empfänger
    PS
    = Periodischer Absender
    AR
    = Aperiodischer Empfänger
    AS
    = Aperiodischer Absender
    DR
    = Einrichtungsempfänger
    DS
    = Einrichtungsabsender
    DS(n)
    = Nächste Abfertigung der Absendertask
    DS(l)
    = Letzte Abfertigung der Absendertask
    DR(n)
    = Nächste Abfertigung der Empfängertask
    DS(1)
    = Letzte Abfertigung der Empfängertask
    SR(n)
    = Nächste Startzeit der Empfängertask
    CS(n)
    = Nächste Abschlußzeit der Absendertask
    LS(n)
    = Nächste Frist der Absendertask
  • Bei einer Ausführungsform weist ein Prioritätszuweisungsalgorithmus dem Absender einer unverzögerten Nachricht eine höhere Priorität als allen seinen signalabwärts befindlichen Empfängern zu. Zu signalabwärts befindlichen Empfängern gehören jede Task, die direkt die unverzögerte Nachricht empfängt, sowie alle empfangenden Tasks in einem acylischen Graphen, dessen Wurzel am Absender der unverzögerten Nachricht liegt. Dadurch wird garantiert, daß jeder Task, deren Puffer bei Abschluß einer anderen Task beschrieben werden, d.h. jeder Task, die unverzögerte Werte von einer anderen Task empfängt, von dem Zeitpunkt ihrer Abfertigung bis zum Zeitpunkt der Zuweisung zuvorgekommen worden ist, und sie somit erst nach der Zuweisung startet.
  • Immer dann, wenn es möglich ist, wird eine Task mit hoher Kritizität aber langer Periode transformiert, so daß eine fristenmonotone Prioritätszuweisung verwendet werden kann. Bei einer Ausführungsform ist die Periodentransformation eine Art der Steuerung des Time-Slicing. Die Rechenzeit der transformierten Task wird durch einen bestimmten ganzzahligen wert dividiert, um zu einem Zeitschlitz für diese Task zu kommen. Eine Abfertigung der transformierten Task wird in eine Abfertigung, der eine Reihe von periodischen Wiederaufnahmen folgt, umgesetzt. Jede Abfertigung und Wiederaufnahme gewährt einen Zeitschlitz und nach dem Aufbrauchen jedes Zeitschlitzes wird eine transformierte Task bis zu ihrer nächsten Wiederaufnahme suspendiert. Der Gesamteffekt besteht darin, daß eine Task mit niedriger Rate wie eine Task mit hoher Rate mit kleinerer Rechenzeit und somit höherer Priorität aussieht.
  • Zur Periodentransformation periodischer Tasks werden die Abfertigungen und Wiederaufnahmen einfach in die entsprechenden Fälle der Abfertiger-Case-Anweisung eingefügt (Q1 wird dann auf ein Vielfaches aller transformierten Perioden eingeschränkt). Die Periodentransformation aperiodischer Tasks hängt von dem verwendeten Einteilungsprotokoll ab. Eine Periodentransformation kann einfach unter Verwendung des zurückstellbaren Serverprotokolls angewandt werden, da dieses Protokoll im wesentlichen gesteuertes Time-Slicing mit Slave-Beziehung zu der Abfertigerfrequenz ist. Bei einer Ausführungsform wird die Periodendurchsetzung approximiert durch Definieren der Wiederfreigabe einer Task als die nächste Abfertiger-Taskabfertigung und es könnte auch eine analoge approximative Periodentransformation durchgeführt werden. Die Task-Einteilung kann auch so ausgelegt werden, daß sie Kritizität berücksichtigt.
  • Das Metall-Toolset erzeugt Datentabellen und Code für die Abfertigertask 610, den Ereignis-Handler 620 und die Dienstkomponente 630. Außerdem erzeugt und analysiert sie ein Echtzeit-Einteilbarkeitsmodell des Task-Systems 100.
  • Die unverzögerten Nachrichtenverbindungen und Tasks werden geprüft, um sicherzustellen, daß sie keine Zyklen enthalten. Je nach Notwendigkeit werden dann Taskfristen reduziert, so daß die Frist jedes Absenders einer unverzögerten Nachricht streng kleiner als die Frist aller ihrer Empfänger ist. Eine nachfolgende fristenmonotone Prioritätszuweisungsphase, die kürzeren Fristen höhere Prioritäten zuweist, weist dem Sender einer unverzögerten Nachricht eine höhere Priorität als dem Empfänger zu. Dadurch wird sichergestellt, daß dem Empfänger zuvorgekommen bleibt und er erst startet, wenn der Absender abgeschlossen ist (immer dann, wenn die Bedingungen für unverzögerten Transfer erfüllt sind).
  • Genauer gesagt wird zuerst die Menge unverzögerter Nachrichtenverbindungen auf Zyklen geprüft. Je nach Notwendigkeit werden dann Taskfristen reduziert, so daß die Frist jedes Absenders einer unverzögerten Nachricht streng kleiner als die Frist aller ihrer Empfänger ist. Eine nachfolgende fristenmonotone Prioritätszuweisungsphase, die kürzeren Fristen höhere Prioritäten zuweist, weist dem Sender einer unverzögerten Nachricht eine höhere Priorität als den Empfängern zu. Dadurch wird sichergestellt, daß den Empfängern zuvorgekommen bleibt und er erst startet, wenn der Absender abgeschlossen ist (immer dann, wenn die Bedingungen für unverzögerten Transfer erfüllt sind).
  • Formaler ausgedrückt, wird die Menge aller unverzögerten Nachrichten als eine Erreichbarkeitsmatrix R mit R(ij) = 1 für τi ->> τj und null andernfalls dargestellt. Man konstruiere Rk(ij) = 1, wenn ein unverzögerter Verbindungsweg von τi zu τj der genauen Länge k vorliegt und null andernfalls. Zyklen, die nicht zugelassen sind, existieren, wenn für jedes 1 ≤ i,k ≤ nu, Rk(ij) = 1 ist, wobei nu die Anzahl von Tasks mit unverzögerten Verbindungen ist.
  • Als nächstes konstruiere man D aus der Menge{Rk} durch D(ij) max {k|Rk(Ej) = 1}. Anders ausgedrückt ist D(ij) der unverzögerte Nachrichtenverbindungsweg maximaler Länge von τi zu τj. Es kann mehrere Wege geben, und in diesem Fall setze man D(ij) = 0 (anstelle von ). Die Frist jeder Task τ wird dann auf das Minimum ihrer benutzerspezifischen Frist und der Fristen aller Tasks, die von τ aus erreicht werden können, eingestellt. Um verschiedene Fristen und Prioritätszuweisungen sicherzustellen, werden diese Fristen dann um m∈ vermindert, wobei m die maximale Verbindungstiefe zwischen einem Absender einer unverzögerten Nachricht und allen Blättern in dem gerichteten azyklischen Graphen (DAG) unverzögerter Verbindungen mit Wurzel an diesem Absender ist, und ∈ ist ein Zeitquantum, das vorzugsweise mehrere Größenordnungen kleiner als die Anzahl von Tasks mal dem Fristenquantum, d.h. der Abfertiger-Taskrate, ist. Zum Beispiel kann ∈ 1 Nanosekunde betragen, wobei erwartet wird, daß Fristen Vielfache einer in Millisekunden gemessenen Abfertigertaskperiode sind. Der Ausdruck interne Fristen wird so definiert, daß er diese eingestellten Fristen bedeutet. In mathematischer Notation sei I(i) = {k : D(i,k) > 0}. I(i) ist der Indexsatz aller Tasks, die τi über eine unverzögerte Nachrichtenketten erreichen kann. Für jedes i gilt dann Frist von τi = mink∈I(1) {Frist von τi, Frist von τk D(i,k)·∈}.
  • Zwischen den benutzerspezifizierten Kritizitäten für zwei Tasks und den durch unverzögerte Verbindungen und ihren entsprechenden internen Fristen implizierten Prioritätszuweisungen können Konflikte entstehen. Wenn z.B. eine unverzögerte Verbindung von A nach B besteht, dann muß A eine höhere Priorität als B aufweisen, um die Vorausgangeinschränkung ordnungsgemäß zu implementieren, aber B könnte eine höhere benutzerspezifizierte Kritizität als A aufweisen. Durch Kritizität von τi > Kritizität von τj und j ∈ I(i) wird dann ein Konflikttest gegeben. Solche Konflikte sind zulässig, solange Rechenzeitgrenzen (und für aperiodische Tasks eine Periodendurchsetzung) für den Absender spezifiziert sind, und andernfalls handelt es sich um einen Fehler. Interne Fristen (und Prioritäten) werden gemäß Vorausgangeinschränkungen unverzögerter Verbindungen zugewiesen, anstatt gemäß benutzerspezifizierten Kritizitätsattributen, wenn ein solcher Konflikt besteht. Benutzerspezifizierte Kritizitätswerte werden je nach Notwendigkeit nach oben eingestellt, um akzeptable Konflikte zu entfernen. Der Ausdruck interne Kritizitäten ist so definiert, daß er diese eingestellten Kritizitätswerte bedeutet.
  • Als ein Beispiel sei τu eine Task, die eine unverzögerte Nachricht sendet. Es sei Ru die Menge aller Tasks, die letztendlich Eingaben τu direkt oder durch Zwischentasks über eine Sequenz unverzögerter Nachrichten empfangen werden. Ru enthält die Knoten des DAG von Empfängertasks mit Wurzel bei τu und wird leicht unter Verwendung eines transitiven Abschlusses aller Tasks und ihrer Nachrichtenverbindungen konstruiert. Da τu abgeschlossen sein muß, bevor eine Task in Ru beginnen kann, wird die interne Kritizität von τu auf das Minimum ihrer benutzerspezifizierten Kritizität und der internen Kritizitäten von Tasks in Ru eingestellt.
  • Die Liste von Tasks, die unverzögerte Nachrichten senden oder empfangen, wird dann nach aufsteigenden internen Fristen sortiert. Wenn mehrere Tasks gleiche Fristen aufweisen, dann wird diese Subliste nach aufsteigender Kritizität sortiert. Das Ergebnis ist eine sortierte Liste mit interner Frist als Primärschlüssel und interner Kritizität als Sekundärschlüssel, wobei interne Fristen und interne Kritizitäten beide miteinander vereinbar und in aufsteigen der Reihenfolge sind.
  • Die Liste verbleibender Tasks (Tasks, die unverzögerte Nachrichten weder senden noch empfangen) wird nun mit dieser Liste in sortierter Reihenfolge unter Verwendung der benutzerspezifizierten Frist als Primärschlüssel und der benutzerspezifizierten Kritizität als Sekundärschlüssel zusammengeführt. Unstimmigkeiten zwischen Kritizitätseinstufungen und Fristeneinstufungen sind in dieser Liste zulässig. Diese Unstimmigkeiten werden später unter Verwendung der Periodentransformation eliminiert. Interne Kritizitäten und interne Fristen werden auf die benutzerspezifizierten Kritizitäten bzw. die benutzerspezifizierten Fristen eingestellt.
  • Die zusammengeführte Liste von Tasks wird unter Verwendung der internen Frist als Primärschlüssel und der internen Kritizität als Sekundärschlüssel sortiert. Der nächste Schritt ist das Transformieren der Perioden und Fristen der Tasks, so daß sowohl Kritizitäten als auch Fristen in monotoner Reihenfolge vorliegen. Das heißt, alle Tasks mit einer ersten Kritizität weisen Fristen auf, die kleiner als jede Task mit einer niedrigeren Kritizität sind.
  • 11 ist ein Prozeßflußdiagramm einer Ausführungsform der obigen Tasklistenerzeugung. In 11 werden die Liste von Tasks, die unverzögerte Nachrichten senden oder empfangen und die Liste verbleibender Tasks parallel erzeugt. Es besteht jedoch keine Anforderung einer solchen parallelen Implementierung.
  • 11 enthält die Aktionsboxen 1110, 1115, 1120, 1125, 1135, 1140, 1145, 1155, 1160, 1165 und 1170, sowie die Entscheidungsboxen 1130 und 1150. Die Erzeugung der Liste von Tasks, die unverzögerte Nachrichten senden oder empfangen, für jeden Prozessor beginnt mit der Aktionsbox 1110. In der Aktionsbox 1115 werden interne Fristen so gesetzt, daß die Frist jeder Absendertask streng kleiner als die Frist aller ihrer Empfänger ist. Die Liste wird dann in der Aktionsbox 1115 nach interner Frist sortiert. In der Aktionsbox 1125 werden interne Kritizitäten eingestellt, um Konflikte zu entfernen. Die Entscheidungsbox 1130 bestimmt, ob mehrere Tasks in der sortierten Liste gleiche interne Fristen aufweisen. Wenn ja, werden der Teil bzw. die Teile der Liste mit gleichen Fristen in der Aktionsbox 1135 nach interner Kritizität sortiert. Wenn es keine Teile der Liste mit gleichen internen Fristen in der Entscheidungsbox 1130 gibt, oder nach dem Sortieren nach interner Kritizität in der Aktionsbox 1135, wird die Steuerung an die Aktionsbox 1165 abgegeben.
  • Die Erzeugung der Liste von Tasks, die keine unverzögerten Nachrichten senden oder empfangen, beginnt für jeden Prozessor in der Aktionsbox 1140. Die in der Aktionsbox 1140 erzeugte Liste wird in der Aktionsbox 1145 nach benutzerspezifizierter Frist sortiert. Die Entscheidungsbox 1150 bestimmt, ob mehrere Tasks in der sortierten Liste gleiche benutzerspezifizierte Fristen aufweisen. wenn ja, werden der Teil bzw. die Teile der Liste mit gleichen benutzerspezifizierten Fristen in der Aktionsbox 1155 nach benutzerspezifizierter Kritizität sortiert. Wenn es keine Teile der Liste mit gleichen benutzerspezifizierten Fristen in der Entscheidungsbox 1150 gibt, oder nach dem Sortieren nach benutzerspezifizierter Kritizität in der Aktionsbox 1155, wird die Steuerung an die Aktionsbox 1160 abgegeben, in der interne Kritizitäten und Fristen auf die benutzerspezifizierten Kritizitäten bzw. Fristen eingestellt werden.
  • Die Aktionsbox 1165 führt die sortierte Liste von Tasks, die unverzögerte Nachrichten senden oder empfangen, mit der sortierten Liste von Tasks, die keine unverzögerten Nachrichten senden oder empfangen, zusammen. Die zusammengeführte Liste wird mit der internen Frist als Primärschlüssel und der internen Kritizität als Sekundärschlüssel sortiert. Die zusammengeführte Liste wird dann in der Aktionsbox 1170 einer Transformation unterzogen, um die prioritätssortierte Liste zu erzeugen.
  • Eine Task wird transformiert durch Dividieren ihrer Periode und Rechenzeit durch eine bestimmte positive ganze Zahl, wodurch sie in diesem Beispiel über gesteuertes Laufzeit-Time-Slicing in eine Task mit kleinerer Periode und Frist und folglich höherer Priorität umgesetzt wird.
  • Der Transformationsalgorithmus arbeitet einzeln an Tasks, beginnend mit der Task mit der geringsten Frist. Die Liste von Tasks kann als eine Verkettung von Sublisten HELpU betrachtet werden, wobei p die gerade transformierte Task, H die Subliste von Tasks mit höherer Kritizität als die von p, E die Subliste von Tasks mit gleicher Kritizität wie p, L die Subliste von Tasks mit kleinerer Kritizität als p und U der untransformierte Teil der Liste ist. Das Ziel ist, einen ganzzahligen Teiler der Periode (und Rechenzeit) von p, d.h. einen Transformationsfaktor, zu finden, der ein Umschreiben der Liste als HE1pE2LU Zuläß, wobei die Tasks in E1 und E2 Kritizitäten aufweisen, die der von p gleich sind, die Tasks in E1 keine Fristen aufweisen, die größer als die von p sind, und die Tasks in E2 keine Fristen aufweisen, die kleiner als die von p sind.
  • Mehrere Faktoren verkomplizieren die Lösung dieses Problems. Es ist möglich, Beispiele ohne machbare ganzzahlige Lösung zu konstruieren, wobei das Transformieren von p durch den Transformationsfaktor i eine transformierte Periode ergibt, die zu groß ist, aber das Transformieren von p durch den Transformationsfaktor i + 1 eine transformierte Periode ergibt, die zu klein ist. Man betrachte z.B. die Kritizitätsanordnung A > B > C, wobei die Periode von A und C gleich 2, aber die Periode von B gleich 3 ist. Die Verwendung des Transformationsfaktors 1 ergibt eine zu große transformierte Periode, während die Verwendung des Transformationsfaktors 2 eine zu kleine transformierte Periode ergibt.
  • Eine transformierte Task muß möglicherweise durch eine Vorperiodenfrist abgeschlossen werden. Die Transformation der Frist analog zu der Transformation der Periode kann also angemessen sein.
  • Transformation führt Kontextwechsel-Overheads ein. Bei einer Ausführungsform werden diese Kontextwechsel-Overheads minimiert. Außerdem sind transformierte Perioden und Fristen vorzugsweise Vielfache der Taktinterruptperiode. Schließlich kann der Absender einer unverzögerten Nachricht nicht transformiert werden, da dies Intervalle erzeugen könnte, in denen der Empfänger starten könnte, bevor der Absender beendet hatte. Folglich werden die Fristen von Absendern unverzögerter Nachrichten vor jeglichen Periodentransformationen berechnet.
  • 12 zeigt drei Szenarien für die Transformation einer Task dergestalt, daß sie ihre angegebene Menge Rechenzeit bis zu ihrer angegebenen Frist erhält. Der erste Teil von 12 zeigt die ursprüngliche Taskperiode und -frist. Das Szenario 1 von 12 ist das Transformieren sowohl der Periode als auch der Frist, wobei die transformierte Frist eine Vorperiodenfrist in bezug auf die transformierte Periode ist und so ausgewählt wird, daß die transformierte Frist des letzten Resumés an der ursprünglichen Frist auftritt. Dieses Szenario wird bevorzugt, wenn die transformierte Frist ein wesentlicher Teil der transformierten Periode ist. Das Szenario 2 transformiert die Task so, daß ihre ursprüngliche Frist ein Vielfaches der transformierten Periode ist. Die transformierte Frist ist gleich der transformierten Periode und die transformierte Rechenzeit ist dergestalt, daß die Task nach einer bestimmten Anzahl transformierter Perioden abgeschlossen ist, die nicht größer als die ursprüngliche Frist ist. Das Szenario 2 wird gegenüber dem Szenario 1 bevorzugt, wenn das Szenario 1 eine transformierte Frist erzeugen würde, die ein kleiner Teil der transformierten Periode ist. Beide Szenarien stimmen überein, wenn die ursprüngliche Frist und die ursprüngliche Periode gleich sind. Das Szenario 3 besteht darin, einfach die Frist je nach Notwendigkeit zu verringern, d.h. einfach die Priorität je nach Notwendigkeit zu erhöhen, um der Kritizitätsanforderung zu genügen, ohne die Einteilung der Task zu transformieren. Das Szenario 3 wird beim Transformieren von Absendern unverzögerter Nachrichten verwendet, und in Fällen, wenn kein ganzzahliger Transformationsfaktor machbar ist.
  • Bei einer Ausführungsform wird der Umfang machbarer ganzzahliger Transformationsfaktoren, d.h. derjenigen, die die Task p in die Subliste E verschieben würden, durchsucht. Für jeden machbaren Transformationsfaktor wird sowohl das Szenario 1 als auch das Szenario 2 beurteilt. Das Szenario 3 kann auch für alle ganzzahligen Transformationsfaktoren von 1 bis zu dem größten Transformationsfaktor, der p nicht vor E legt, beurteilt werden, mit dem Effekt, daß Kombinationen des Szenarios 3 mit den Szenarien 1 und 2 beurteilt werden.
  • Bei einer Ausführungsform dient eine Kostenfunktion zur Auswahl eines Szenarios gegenüber einem anderen, dergestalt, daß die Kosten minimiert werden. Bei einer anderen Ausführungsform handelt es sich bei der Kostenfunktion um die für Kontextwechsel erforderliche Ausnutzung, d.h. Entfernung und Ersetzung des Stapels und von Registern, plus einem Faktor, der die Abnahme der Einteilbarkeit aufgrund von Vorperiodenfristen berücksichtigt. Bei einer weiteren Ausführungsform handelt es sich bei der Kostenfunktion um den Transformationsfaktor (der 1 sein kann) multipliziert mit.
    Figure 00320001
    wobei S die Kontextwechselzeit, Tt die transformierte Periode und Dt die transformierte Frist ist. Bei einer Ausführungsform erfolgt die Auswahl eines Szenarios zur Minimierung der Kostenfunktion.
  • 13 ist ein Prozeßflußdiagramm einer Ausführungsform der Tasktransformation, die für jede Task in der zusammengeführten Liste von Tasks durchgeführt wird. In der Aktionsbox 1310 werden machbare ganzzahlige Transformationsfaktoren bestimmt. Zu machbaren Transformationsfaktoren gehören: der kleinste ganzzahlige Teiler der Periode von p, der ein Umschreiben der Subliste HELpU als HE1pE2LU ermöglicht, wobei die Tasks in E1 und E2 Kritizitäten gleich der von p, die Tasks in E1 keine Fristen von mehr als der von p und die Tasks in E2 keine Fristen von weniger als der von p aufweisen, d.h. minimaler machbarer Transformationsfaktor oder TFmin, der größte ganzzahlige Teiler der Periode von p, der ein Umschreiben der Subliste HELpU als HE1pE2LU ermöglicht, wobei die Tasks in E1 und E2 Kritizitäten gleich der von p, die Tasks in E1 keine Fristen von mehr als der von p und die Tasks in E2 keine Fristen von weniger als der von p aufweisen, d.h. maximaler machbarer Transformationsfaktor oder TFmax. In der Aktionsbox 1320 wird die Periode und Frist der Task in einem ersten Szenario für jeden Transformationsfaktor von TFmin bis TFmax transformiert, wobei die transformierte Frist eine Vorperiodenfrist in bezug auf die transformierte Periode ist und so ausgewählt wird, daß die transformierte Frist des letzten Resumés an der ursprünglichen Frist auftritt. In der Aktionsbox 1330 wird die Task in einem zweiten Szenario für jeden Transformationsfaktor von TFmin bis TFmax so transformiert, daß ihre ursprüngliche Frist ein Vielfaches der transformierten Periode ist. Die transformierte Frist ist gleich der transformierten Periode und die transformierte Rechenzeit ist dergestalt, daß die Task nach einer bestimmten Anzahl transformierter Perioden abgeschlossen ist, die nicht größer als die ursprüngliche Frist ist. In der Aktionsbox 1340 wird die Frist der Task in einem dritten Szenario transformiert, wobei die Frist verringert wird, um die Priorität so zu erhöhen, wie es notwendig ist, um die Kritizitätsanforderung zu erfüllen, ohne die Einteilung der Task zu transformieren. Nachdem alle Szenarien über ihren jeweiligen Umfang von Transformationsfaktoren ausgewertet wurden, werden in der Aktionsbox 1350 für jeden Transformationsfaktor jedes Szenarios die Kosten ausgewertet. In der Aktionsbox 1360 wird das Szenario und der Transformationsfaktor mit dem niedrigsten Kostenwert ausgewählt, um die Task zu transformieren. Die Task wird in der Aktionsbox 1370 transformiert.
  • Nachdem alle Tasks transformiert wurden, werden in der Reihenfolge, in der Tasks in der Endliste erscheinen, Prioritäten zugewiesen. Die geordneten Prioritäten der transformierten Tasks stellen eine zugewiesene Einteilungspriorität dar. Die zugewiesene Einteilungspriorität wird von der Exekutive zur Anordnung der Ausführung der Tasks auf einem Prozessor in dem Multitask-System benutzt.
  • Als ein Beispiel erzeugt bei einer Implementierung der Erfindung, die das Metall-Toolset verwendet, das Metall-Toolset ein lineares Einteilbarkeitsmodell, ein Modell, in dem jede Task als eine Sequenz von Taskkomponenten beschrieben werden kann. Jede Taskkomponente kann gemeinsam von anderen Tasks benutzt werden und kann andere Tasks blockieren. Im allgemeinen werden Aktionen, die im Namen einer bestimmten Task 110 durch die Exekutivtask 150 durchgeführt werden, wie z.B. Nachrichtenweiterleitung, als Komponenten dieser Task und Blockierungszeiten für andere Tasks höherer Priorität modelliert. Rechenzeiten für erzeugte Exekutivkomponenten werden von dem MetaH-Tool unter Verwendung von Attributen der Zielhardware erzeugt, z.B. werden Pufferzuweisungszeiten durch die lineare Funktion A1 + A2 × b geschätzt, wobei b die Anzahl zugewiesener Byte ist und A1, A2 Abfang- und Steigungsattribute sind, die in dem Metall-Prozessor oder in der Busspezifikation definiert sind. Die Abbildung zwischen Spezifikation, Implementierung und Modell ist also ausführlicher als eine einfache Liste von Tasks und ihrer Parameter. Die Analyse wird unter Verwendung einer Erweiterung eines exakten Charakterisierungsalgorithmus durchgeführt, die eine Zerlegung von Tasks in Komponenten ermöglicht und Rechenzeitempfindlichkeitsanalyseinformationen bereitstellt.
  • Die verschiedenen Ausführungsformen der Erfindung erzeugen nicht immer eine bezüglich benutzerspezifizierten Fristen monotone Prioritätszuweisung. Viele Fachleuten bekannte Einteilbarkeitsanalysemethoden arbeiten mit einer beliebigen Prioritätszuweisung ohne Annahmen oder spezielle Einschränkungen bezüglich der Beziehung zwischen Prioritäten und Fristen, Perioden oder minimalen Zwischenankunftsraten und können mit dem Ansatz der Ausführungsformen verwendet werden.
  • Die Lösung der verschiedenen Ausführungsformen bleibt für Tasks, die Echtzeitsemaphoren verwenden, gültig, solange das Semaphorenprotokoll dem Prozessor nicht erlaubt, mit einer niedrigeren Priorität als eine beliebige Task, die auf eine Semaphore wartet, auszuführen. Diese Bedingung ist notwendig, um sicherzustellen, daß Empfänger unverzögerter Nachrichten, denen zuvorgekommen wurde, nicht starten können, wenn ein Absender auf einer Semaphore blockiert. Dies gilt für die Deckenpriorität und alle Prioritätsvererbungssemaphorenprotokolle.
  • Die verschiedenen Ausführungsformen der Erfindung unterstützen weiterhin eine dynamische Umkonfiguration oder Moduswechsel. Bei einer Ausführungsform werden Moduswechsel auf Hyperperiodengrenzen eingeschränkt. Für jeden benutzerspezifizierten Moduswechsel werden Transitionsmodi eingeführt, und der Abfertiger kann in einem Transitionsmodus Prozeßstarts und -stops und etwas unterschiedliche Muster der Nachrichtenweiterleitung durchführen. Durch MetaH-Spezifikationen des hierarchischen Modus wird es möglich, daß sich Modi Teilmengen von Tasks und Verbindungen auf komplexe Weisen teilen. Die so präsentierten Algorithmen werden für die Vereinigung aller Modi in einem System durchgeführt, worauf eine Nachverarbeitungsphase folgt, um die Anzahl von erforderlichen Prioritätsniveaus zu reduzieren.
  • In verteilten Echtzeitsystemen kann das Auswählen von Taktinterruptraten ein Problem sein. Es können zeitlich deterministische Nachrichtenfreigabezeiten notwendig sein, um harte Fristen von Ende zu Ende sicherzustellen. Es können Taktinterruptperioden erwünscht sein, die nicht nur die benutzerspezifizierten Perioden und Fristen teilen, sondern auch zweckmäßige transformierte Perioden und zweckmäßige Netzwerknachrichtenfreigabezeiten liefern.
  • Die verschiedenen Verfahren der Erfindung liefern ein Modell, das für eine Analyse des Zeitsteuerungsverhaltens eines Task-Systems ausgelegt ist, und zwar insbesondere für modulare missionskritische Softwaresysteme, hochratige Anwendungen und Mikrosteuerungen. Die Verwendung solcher Modelle erlaubt eine Offline-Analyse und -konfiguration, um eine Exekutive für jedes System anzupassen, statt eine generische Exekutive zu verwenden, wodurch eine einfachere, kleinere und schnellere Exekutive möglich wird. Solche Modelle helfen außerdem bei der Formulierung gut strukturierter Spezifikationen für Task-Systeme, wodurch die Erzeugung von besser strukturiertem und verfolgbarem Code, der dem Task-System zugrundeliegt, möglich werden kann.
  • Obwohl die Ausführungsbeispiele Mehrprozessor-Task-Systeme beschreiben, die auf einem einzigen Bus kommunizieren, ist die Erfindung nicht auf Einbussysteme beschränkt.
  • Obwohl es bevorzugt wird, daß mehrere Prozessoren durch Busse mit relativ hoher Geschwindigkeit und niedriger Latenz für effizienten Transfer von Einzelabtastverzögerungsnachrichten verbunden werden, kann man verteilte Systeme verwenden, wenn Einteilungsansätze das Freigeben einer Einzelabtastverzögerungsnachricht mit einer spezifizierten Frist auf dem Netzwerk erlauben und wenn die Kommunikation gleichzeitig mit der Prozessorausführung stattfinden kann.
  • Durch Verwendung verschiedener Ausführungsformen der Erfindung hergestellte Modelle können zum Definieren elektronischer Systeme verwendet werden, um die Einteilungs- und Nachrichtenweiterleitungsaktivitäten des Multitask-Systems auszuführen. Die beschriebenen elektronischen Systeme verwenden vielfältige elektronische Geräte mit Prozessoren, die Anweisungen in maschinenlesbarer Form zur Ausführung der hier beschriebenen Verfahren aufweisen. 14 zeigt ein Blockschaltbild eines Prozessors 1410, der an ein maschinenlesbares Medium 1420 angekoppelt ist. Der Prozessor 1410 kann zur Kommunikation mit anderen Prozessoren weiterhin an den Bus 1430 angekoppelt sein. Das maschinenlesbare Medium 1420 kann an den Prozessor 1410 angekoppelte feste Einrichtungen enthalten, wie z.B. internes magnetisches Medium oder programmierbares Speichergerät. Das maschinenlesbare Medium 1420 kann außerdem an den Prozessor 1410 angekoppelte wechselbare Geräte enthalten, wie z.B. wechselbares magnetisches Medium oder Programmierkassette. Das maschinenlesbare Medium 1420 enthält darin gespeicherte Anweisungen in maschinenlesbarem Format, die bewirken können, daß der Prozessor 1410 die hier beschriebenen Verfahren ausführt.
  • Schlußfolgerung
  • Es werden Verfahren offengelegt, die für die Modellierung der periodischen und aperiodischen Echtzeit-Taskeinteilung und Nachrichtenweiterleitung in Multitask-Systemen nützlich sind. Unter Verwendung von Verfahren der Erfindung erzeugte Modelle werden angepaßt, um das Zeitsteuerungsverhalten in solchen Multitask-Systemen zu analysieren. Die Verfahren verwenden unverzögerte und einzelabtastverzögerte Nachrichtenverbindungen zwischen Softwaretaskobjekten und Hardwareobjekten. Taskprioritäten werden invers mit der Periode oder Frist zugewiesen, so daß Tasks mit kürzeren Perioden oder Fristen höhere Einteilungsprioritäten aufweisen. Perioden von Tasks mit hoher Kritizität werden in kleinere Stücke zerlegt, die sequenziell mit höheren Raten abgefertigt werden, wobei die anfängliche Zuweisung der Priorität mit der Taskkritizität nicht vereinbar ist. Systemmodelle definieren elektronische Systeme und Anweisungen zum Ausführen der Einteilung und Nachrichtenweiterleitung des Multitask-Systems.
  • Obwohl hier spezifische Ausführungsformen dargestellt und beschrieben wurden, ist für Durchschnittsfachleute erkennbar, daß jede beliebige Anordnung, die so berechnet ist, daß derselbe Zweck erzielt wird, die spezifischen gezeigten Ausführungsformen ersetzen können. Fachleuten werden viele Anpassungen der Erfindung ersichtlich sein. Folglich soll die vorliegende Anmeldung jegliche Anpassungen oder Varianten der Erfindung abdecken. Es wird manifest beabsichtigt, daß die vorliegende Erfindung nur durch die folgenden Ansprüche und ihre Äquivalente eingeschränkt wird.

Claims (12)

  1. Verfahren zum Erzeugen einer zugewiesenen Einteilungspriorität mehrerer Tasks (110) in einem Multitask-System (100), mit den folgenden Schritten: Definieren einer ersten Liste der mehreren Tasks, wobei die erste Liste der mehreren Tasks mit einer Task-Frist als ein Primärschlüssel und einer Task-Kritizität als ein Sekundärschlüssel sortiert wird; Transformieren der Task-Frist jeder der mehreren Tasks einzeln unter Verwendung eines Transformationsszenarios, beginnend mit der Task mit der kleinsten Task-Frist, wodurch eine transformierte Task-Frist für jede der mehreren Tasks erzeugt wird; Definieren einer zweiten Liste der mehreren Tasks, wobei die zweite Liste der mehreren Tasks mit der transformierten Task-Frist als Primärschlüssel sortiert wird und wobei weiterhin jede transformierte Task-Frist einer Task mit einer ersten Task-Kritizität kleiner als jede transformierte Task-Frist einer Task mit einer kleineren Task-Kritizität als die erste Task-Kritizität ist; und Zuweisen von Einteilungspriorität in einer Reihenfolge der zweiten Liste der mehreren Tasks, wodurch die zugewiesene Einteilungspriorität erzeugt wird.
  2. Verfahren nach Anspruch 1, wobei die transformierte Task-Frist mindestens einer der mehreren Tasks (110) gleich der Task-Frist dieser mindestens einen der mehreren Tasks ist.
  3. Verfahren nach Anspruch 1, wobei das Transformationsszenario aus der folgenden Gruppe ausgewählt wird: Transformieren sowohl eines Task-Zeitraums als auch der Task-Frist einer Task (110), wobei der Task-Zeitraum durch einen Transformationsfaktor dividiert wird, wodurch die transformierte Task-Frist und ein transformierter Task-Zeitraum erzeugt werden, wobei die transformierte Task-Frist in bezug auf den transformierten Task-Zeitraum eine Vorzeitraumfrist ist und wobei die transformierte Task-Frist einer letzten Wiederaufnahme der Task an der ursprünglichen Task-Frist auftritt; Transformieren sowohl des Task-Zeitraums als auch der Task-Frist der Task durch Dividieren des Task-Zeitraums durch einen Transformationsfaktor, wodurch die transformierte Task-Frist und der transformierte Task-Zeitraum erzeugt werden, wobei die ursprüngliche Task-Frist der Task ein Vielfaches des transformierten Zeitraums der Task ist und wobei die transformierte Task-Frist gleich dem transformierten Task-Zeitraum ist; und Transformieren der Task-Frist der Task durch Dividieren der Task-Frist durch einen Transformationsfaktor, wodurch die transformierte Task-Frist erzeugt wird, wobei die transformierte Task-Frist der Task kleiner als jede transformierte Task-Frist anderer, zuvor transformierter Tasks mit niedrigerer Task-Kritizität ist.
  4. Verfahren nach Anspruch 3, wobei das Transformationsszenario bei mehreren Transformationsfaktoren ausgewertet wird.
  5. Verfahren nach Anspruch 3, wobei das Transformieren der Task-Frist weiterhin das Auswerten einer Kostenfunktion zur Auswahl des Transformationsszenarios umfaßt.
  6. Verfahren nach Anspruch 5, wobei die Kostenfunktion der Transformationsfaktor ist, multipliziert mit der folgenden Größe:
    Figure 00410001
    wobei S eine Kontextumwechselzeit, Tt der transformierte Task-Zeitraum und Dt die transformierte Task-Frist ist.
  7. Verfahren nach Anspruch 1, wobei das Transformieren der Task-Frist weiterhin das Auswerten einer Kostenfunktion zur Auswahl des Transformationsszenarios aus mehreren möglichen Transformationsszenarien umfaßt.
  8. Verfahren nach Anspruch 1, wobei das Transformieren der Task-Frist weiterhin das Auswerten des Transformationsszenarios unter Verwendung von mindestens zwei Transformationsfaktoren und das Auswerten einer Kostenfunktion zur Auswahl eines der mindestens zwei Transformationsfaktoren für das Transformationsszenario umfaßt.
  9. Verfahren nach Anspruch 1, wobei das Definieren einer ersten Liste der mehreren Tasks weiterhin folgendes umfaßt: Definieren einer ersten Subliste mindestens einer Task (112) der mehreren Tasks (110), die an dem Senden von unverzögerten Nachrichten oder dem sich Verlassen auf solche beteiligt sind, wobei die erste Subliste mit einer internen Task-Frist als ein Primärschlüssel und einer internen Task-Kritizität als ein Sekundärschlüssel sortiert wird; Definieren einer zweiten Subliste verbleibender Tasks der mehreren Tasks, wobei die zweite Subliste mit einer benutzerspezifizierten Task-Frist als ein Primärschlüssel und einer benutzerspezifizierten Task-Kritizität als ein Sekundärschlüssel sortiert wird, und Zusammenführen der ersten Subliste und der zweiten Subliste, wodurch die erste Liste der mehreren Tasks erzeugt wird.
  10. Verfahren nach Anspruch 1, wobei das Multitask-System ein Flugsteuersystem ist.
  11. Maschinenlesbares Medium (1420), auf dem eine Anweisung gespeichert ist, die bewirken kann, daß ein Prozessor (1410) ein Verfahren ausführt, wobei das Verfahren die folgenden Schritte umfaßt: Definieren einer ersten Liste mehrerer Tasks, wobei die erste Liste der mehreren Tasks mit einer Task-Frist als ein Primärschlüssel und einer Task-Kritizität als ein Sekundärschlüssel sortiert wird; Transformieren der Task-Frist jeder der mehreren Tasks einzeln unter Verwendung eines Transformationsszenarios, beginnend mit der Task mit der kleinsten Task-Frist, wodurch eine transformierte Task-Frist für jede der mehreren Tasks erzeugt wird; Definieren einer zweiten Liste der mehreren Tasks, wobei die zweite Liste der mehreren Tasks mit der transformierten Task-Frist als Primärschlüssel sortiert wird und wobei weiterhin jede transformierte Task-Frist einer Task mit einer ersten Task-Kritizität kleiner als jede transformierte Task-Frist einer Task mit einer kleineren Task-Kritizität als die erste Task-Kritizität ist; und Zuweisen von Einteilungspriorität in einer Reihenfolge der zweiten Liste der mehreren Tasks, wodurch eine zugewiesene Einteilungspriorität erzeugt wird.
  12. Maschinenlesbares Medium (1420) nach Anspruch 11, wobei das Transformationsszenario aus der folgenden Gruppe ausgewählt wird: Transformieren sowohl eines Task-Zeitraums als auch der Task-Frist einer Task durch Dividieren des Task-Zeitraums durch einen Transformationsfaktor, wodurch die transformierte Task-Frist und ein transformierter Task-Zeitraum erzeugt werden, wobei die transformierte Task-Frist in bezug auf den transformierten Task-Zeitraum eine Vorzeitraumfrist ist und wobei die transformierte Task-Frist einer letzten Wiederaufnahme der Task an der ursprünglichen Task-Frist auftritt; Transformieren sowohl des Task-Zeitraums als auch der Task-Frist der Task durch Dividieren des Task-Zeitraums durch einen Transformationsfaktor, wodurch die transformierte Task-Frist und der transformierte Task-Zeitraum erzeugt werden, wobei die ursprüngliche Task-Frist der Task ein Vielfaches des transformierten Zeitraums der Task ist und wobei die transformierte Task-Frist gleich dem transformierten Task-Zeitraum ist; und Transformieren der Task-Frist der Task durch Dividieren der Task-Frist durch einen Transformationsfaktor, wodurch die transformierte Task-Frist erzeugt wird, wobei die transformierte Task-Frist der Task kleiner als jede transformierte Task-Frist anderer, zuvor transformierter Tasks mit niedrigerer Task-Kritizität ist.
DE60006422T 1999-05-14 2000-05-15 Taskreihenfolgeplanung und nachrichtenübertragung Expired - Fee Related DE60006422T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US312592 1999-05-14
US09/312,592 US6567840B1 (en) 1999-05-14 1999-05-14 Task scheduling and message passing
PCT/US2000/013356 WO2000070455A2 (en) 1999-05-14 2000-05-15 Task scheduling and message passing

Publications (2)

Publication Number Publication Date
DE60006422D1 DE60006422D1 (de) 2003-12-11
DE60006422T2 true DE60006422T2 (de) 2004-09-09

Family

ID=23212169

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60006422T Expired - Fee Related DE60006422T2 (de) 1999-05-14 2000-05-15 Taskreihenfolgeplanung und nachrichtenübertragung

Country Status (9)

Country Link
US (1) US6567840B1 (de)
EP (1) EP1244963B1 (de)
JP (1) JP2002544621A (de)
KR (1) KR20020022049A (de)
AT (1) ATE253751T1 (de)
AU (1) AU769245B2 (de)
CA (1) CA2371340A1 (de)
DE (1) DE60006422T2 (de)
WO (1) WO2000070455A2 (de)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040100982A1 (en) * 1999-09-30 2004-05-27 Sivaram Balasubramanian Distributed real-time operating system
US7418506B1 (en) * 1999-11-12 2008-08-26 International Business Machines Corporation Apparatus for connection management and the method therefor
WO2001050241A2 (en) * 1999-12-30 2001-07-12 Koninklijke Philips Electronics N.V. Multi-tasking software architecture
US6928646B1 (en) * 2000-02-02 2005-08-09 Sony Corporation System and method for efficiently performing scheduling operations in an electronic device
US20010027463A1 (en) * 2000-03-22 2001-10-04 Fujitsu Limited Task priority decision apparatus and method, workflow system, work processing method, and recording medium
US7140022B2 (en) * 2000-06-02 2006-11-21 Honeywell International Inc. Method and apparatus for slack stealing with dynamic threads
US7028299B1 (en) * 2000-06-30 2006-04-11 Intel Corporation Task-based multiprocessing system
US6721948B1 (en) * 2000-06-30 2004-04-13 Equator Technologies, Inc. Method for managing shared tasks in a multi-tasking data processing system
GB0100535D0 (en) * 2001-01-09 2001-02-21 Lucas Industries Ltd Method of and apparatus for transmitting data in a distributed processor system
US6918115B2 (en) * 2001-02-16 2005-07-12 Microsoft Corporation Method and apparatus for synchronization of periodic processes
JP3857530B2 (ja) * 2001-03-09 2006-12-13 インターナショナル・ビジネス・マシーンズ・コーポレーション ジョブ実行制御装置、方法、及びプログラム
US6978459B1 (en) * 2001-04-13 2005-12-20 The United States Of America As Represented By The Secretary Of The Navy System and method for processing overlapping tasks in a programmable network processor environment
US6968447B1 (en) 2001-04-13 2005-11-22 The United States Of America As Represented By The Secretary Of The Navy System and method for data forwarding in a programmable multiple network processor environment
US6950927B1 (en) 2001-04-13 2005-09-27 The United States Of America As Represented By The Secretary Of The Navy System and method for instruction-level parallelism in a programmable multiple network processor environment
US7653906B2 (en) * 2002-10-23 2010-01-26 Intel Corporation Apparatus and method for reducing power consumption on simultaneous multi-threading systems
EP1609062A4 (de) * 2003-03-31 2011-08-03 Avaya Technology Corp System und verfahren zur effizienten planung periodischer phänomene
US7496915B2 (en) * 2003-04-24 2009-02-24 International Business Machines Corporation Dynamic switching of multithreaded processor between single threaded and simultaneous multithreaded modes
US20050165881A1 (en) * 2004-01-23 2005-07-28 Pipelinefx, L.L.C. Event-driven queuing system and method
JP3816497B2 (ja) * 2004-02-13 2006-08-30 株式会社東芝 情報処理装置
US7197502B2 (en) * 2004-02-18 2007-03-27 Friendly Polynomials, Inc. Machine-implemented activity management system using asynchronously shared activity data objects and journal data items
US8099313B2 (en) 2004-09-22 2012-01-17 Samsung Electronics Co., Ltd. Method and system for the orchestration of tasks on consumer electronics
US8185427B2 (en) 2004-09-22 2012-05-22 Samsung Electronics Co., Ltd. Method and system for presenting user tasks for the control of electronic devices
US8412554B2 (en) 2004-09-24 2013-04-02 Samsung Electronics Co., Ltd. Method and system for describing consumer electronics using separate task and device descriptions
US8789051B2 (en) * 2004-11-18 2014-07-22 Hamilton Sundstrand Corporation Operating system and architecture for embedded system
US8510737B2 (en) * 2005-01-07 2013-08-13 Samsung Electronics Co., Ltd. Method and system for prioritizing tasks made available by devices in a network
US8069422B2 (en) 2005-01-10 2011-11-29 Samsung Electronics, Co., Ltd. Contextual task recommendation system and method for determining user's context and suggesting tasks
JP4102425B2 (ja) * 2005-04-12 2008-06-18 松下電器産業株式会社 プロセッサ
US7788667B2 (en) * 2005-04-22 2010-08-31 Gm Global Technology Operations, Inc. Extensible scheduling of tasks in time-triggered distributed embedded systems
US8205013B2 (en) 2005-05-02 2012-06-19 Samsung Electronics Co., Ltd. Method and system for aggregating the control of middleware control points
FR2889329B1 (fr) * 2005-07-29 2007-10-19 Airbus France Sas Procede de sequencement automatique des specifications d'un calculateur, notamment pour aeronef
US8849908B2 (en) * 2005-10-13 2014-09-30 Kaydon A. Stanzione Internet based data, voice and video alert notification communications system
US8438572B2 (en) * 2006-03-15 2013-05-07 Freescale Semiconductor, Inc. Task scheduling method and apparatus
US8028283B2 (en) 2006-03-20 2011-09-27 Samsung Electronics Co., Ltd. Method and system for automated invocation of device functionalities in a network
JP2007316721A (ja) * 2006-05-23 2007-12-06 Toshiba Corp 携帯端末
US9588809B2 (en) 2006-10-10 2017-03-07 Invistasking LLC Resource-based scheduler
US8056083B2 (en) 2006-10-10 2011-11-08 Diskeeper Corporation Dividing a computer job into micro-jobs for execution
US8239869B2 (en) * 2006-06-19 2012-08-07 Condusiv Technologies Corporation Method, system and apparatus for scheduling computer micro-jobs to execute at non-disruptive times and modifying a minimum wait time between the utilization windows for monitoring the resources
US7787486B2 (en) * 2006-11-13 2010-08-31 Honeywell International Inc. Method and system for achieving low jitter in real-time switched networks
US8266624B2 (en) * 2006-11-30 2012-09-11 Red Hat, Inc. Task dispatch utility coordinating the execution of tasks on different computers
CA2677131C (en) 2007-02-06 2014-10-14 Mba Sciences, Inc. A resource tracking method and apparatus
EP2212785A2 (de) * 2007-11-20 2010-08-04 Sandbridge Technologies, Inc. Verfahren zur implementierung periodischer verhaltensweisen anhand einer einzigen referenz
KR100953099B1 (ko) * 2007-12-26 2010-04-19 전자부품연구원 소형 저전력 임베디드 시스템 및 그의 선점 회피 방법
US8010846B1 (en) * 2008-04-30 2011-08-30 Honeywell International Inc. Scalable self-checking processing platform including processors executing both coupled and uncoupled applications within a frame
US20090300626A1 (en) * 2008-05-29 2009-12-03 Honeywell International, Inc Scheduling for Computing Systems With Multiple Levels of Determinism
JP2010102567A (ja) * 2008-10-24 2010-05-06 Toshiba Corp 周期駆動タスク実行装置、周期駆動タスク実行方法及びプログラム
TWI394027B (zh) * 2008-10-27 2013-04-21 Tatung Co 頻率調整方法及使用此方法的電腦程式產品
KR101513505B1 (ko) * 2008-11-04 2015-04-20 삼성전자주식회사 프로세서 및 인터럽트 처리 방법
US20120159336A1 (en) * 2009-03-27 2012-06-21 Michael Roy Norwood Electronic list priority management system and method of using same
CN101620550B (zh) * 2009-05-27 2013-01-02 西华师范大学 一种基于任务模糊多特征的嵌入式实时调度方法
KR101086905B1 (ko) * 2009-11-25 2011-11-24 한양대학교 산학협력단 파이프라인 멀티 코어 시스템 및 파이프라인 멀티 코어 시스템의 효과적인 태스크 할당 방법
WO2012005637A1 (en) * 2010-07-05 2012-01-12 Saab Ab Method for configuring a distributed avionics control system
US8428076B2 (en) 2010-09-13 2013-04-23 Tata Consultancy Services Limited System and method for priority scheduling of plurality of message types with serialization constraints and dynamic class switching
US8375389B2 (en) * 2010-10-20 2013-02-12 Microsoft Corporation Ordered scheduling of suspended processes based on resumption events
KR101232561B1 (ko) * 2011-02-07 2013-02-12 고려대학교 산학협력단 임베디드 멀티 코어 프로세서의 태스크 스케쥴링 및 캐쉬 메모리 리사이징 장치 및 방법
KR101819504B1 (ko) 2011-06-01 2018-01-17 엘지전자 주식회사 이동 단말기 및 그 제어방법
EP2541348B1 (de) * 2011-06-28 2017-03-22 Siemens Aktiengesellschaft Verfahren und Programmiersystem zur Programmierung einer Automatisierungskomponente
US9098331B2 (en) * 2011-06-29 2015-08-04 Telefonaktiebolaget L M Ericsson (Publ) Joint scheduling of multiple processes on a shared processor
US9380597B2 (en) * 2011-08-25 2016-06-28 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for wireless communication baseband processing
US8924976B2 (en) * 2011-08-26 2014-12-30 Knu-Industry Cooperation Foundation Task scheduling method and apparatus
US8769090B2 (en) * 2011-11-30 2014-07-01 At&T Intellectual Property I, L.P. Method and apparatus for managing communication inquiries
US8938739B2 (en) * 2012-06-02 2015-01-20 Texas Instruments Incorporated Resource sharing aware task partitioning for multiprocessors
WO2014203029A1 (en) * 2013-06-17 2014-12-24 Freescale Semiconductor, Inc. Efficient scheduling in asynchronous contention-based system
CN103313216B (zh) * 2013-06-24 2015-04-01 腾讯科技(深圳)有限公司 一种通信账号的消息提醒方法、系统及装置
KR102224844B1 (ko) * 2014-12-23 2021-03-08 삼성전자주식회사 선점 방식을 선택하는 방법 및 장치.
EP3121716A1 (de) * 2015-07-21 2017-01-25 Robert Bosch Gmbh Verfahren und vorrichtung zum hosten eines multitasking-gasts in einem hauptrechnersystem
MX2018004072A (es) * 2015-10-27 2018-08-01 Ford Global Tech Llc Notificacion mejorada de sistema de vehiculo.
EP3273349A1 (de) * 2016-07-22 2018-01-24 Tata Consultancy Services Limited Annähernde berechnung für anwendungsleistung in heterogenen systemen
US10289448B2 (en) * 2016-09-06 2019-05-14 At&T Intellectual Property I, L.P. Background traffic management
CN109298917B (zh) * 2017-07-25 2020-10-30 沈阳高精数控智能技术股份有限公司 一种适用于实时系统混合任务的自适应调度方法
DE102018205390A1 (de) * 2018-04-10 2019-10-10 Robert Bosch Gmbh Verfahren und Vorrichtung zur Fehlerbehandlung in einer Kommunikation zwischen verteilten Software Komponenten
DE102018205392A1 (de) * 2018-04-10 2019-10-10 Robert Bosch Gmbh Verfahren und Vorrichtung zur Fehlerbehandlung in einer Kommunikation zwischen verteilten Software Komponenten
CN109214771A (zh) * 2018-08-01 2019-01-15 奇酷互联网络科技(深圳)有限公司 日常任务管理的方法、设备、存储介质及终端
KR102222939B1 (ko) * 2019-08-20 2021-03-04 성균관대학교산학협력단 태스크의 러너블 그룹 단위 분할을 통한 선점 최소화 방법 및 이를 위한 장치
US11822967B2 (en) 2019-08-20 2023-11-21 Research & Business Foundation Sungkyunkwan University Task distribution method for minimizing preemption between tasks and apparatus for performing the same
US11544720B2 (en) 2019-11-25 2023-01-03 Bank Of America Corporation Client manager and router
US11305810B2 (en) 2020-04-24 2022-04-19 Steering Solutions Ip Holding Corporation Method and system to synchronize non-deterministic events
CN114326560B (zh) * 2021-11-18 2024-02-09 北京华能新锐控制技术有限公司 降低风电机组国产化plc的cpu负荷的方法及装置
US11922161B2 (en) 2022-03-07 2024-03-05 Bank Of America Corporation Scheduling a pausable automated process in a computer network
US11792135B2 (en) 2022-03-07 2023-10-17 Bank Of America Corporation Automated process scheduling in a computer network
CN115883438A (zh) * 2022-11-16 2023-03-31 重庆邮电大学 时间敏感网络中时间触发流量的路由与调度方法、装置及可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3648253A (en) 1969-12-10 1972-03-07 Ibm Program scheduler for processing systems
DE69231762T2 (de) 1991-07-08 2001-07-26 Seiko Epson Corp Risc-prozessor mit dehnbarer architektur
US5408663A (en) 1993-11-05 1995-04-18 Adrem Technologies, Inc. Resource allocation methods
US5566177A (en) 1994-10-09 1996-10-15 International Business Machines Corporation Priority-based arbitrator on a token-based communication medium
US5630096A (en) 1995-05-10 1997-05-13 Microunity Systems Engineering, Inc. Controller for a synchronous DRAM that maximizes throughput by allowing memory requests and commands to be issued out of order

Also Published As

Publication number Publication date
AU769245B2 (en) 2004-01-22
DE60006422D1 (de) 2003-12-11
WO2000070455A2 (en) 2000-11-23
JP2002544621A (ja) 2002-12-24
AU4851700A (en) 2000-12-05
US6567840B1 (en) 2003-05-20
ATE253751T1 (de) 2003-11-15
WO2000070455A3 (en) 2001-02-08
KR20020022049A (ko) 2002-03-23
EP1244963B1 (de) 2003-11-05
CA2371340A1 (en) 2000-11-23
EP1244963A2 (de) 2002-10-02

Similar Documents

Publication Publication Date Title
DE60006422T2 (de) Taskreihenfolgeplanung und nachrichtenübertragung
Marjanovic Dynamic verification of temporal constraints in production workflows
US8180623B2 (en) Integration of a discrete event simulation with a configurable software application
Dobson et al. Simultaneous resource scheduling to minimize weighted flow times
US5913051A (en) Method of simultaneous simulation of a complex system comprised of objects having structure state and parameter information
Buss Modeling with event graphs
EP3538960B1 (de) Ablaufsteuerung von programmmodulen
DE112012004728T5 (de) Verfahren, Programm und System zur Simulationsausführung
DE69018052T2 (de) Verfahren und System zur Glättung und Überwachung der Datenraten von asynchronen Zeitmultiplexübertragungen.
Carothers et al. Design and implementation of HLA time management in the RTI version F. 0
DE60303444T2 (de) Ablaufsteuerung unter verwendung von quantumwerten und defizitwerten
WO1998059281A1 (de) Verfahren zur prozessüberwachung, steuerung und regelung
Faucou et al. Heuristic techniques for allocating and scheduling communicating periodic tasks in distributed real-time systems
DE10065419A1 (de) Industrielle Steuerung mit taktsynchronem Ablaufebenenmodell
Van Hee et al. On the optimal allocation of resources in stochastic workflow nets
Kobetski et al. Time-optimal coordination of flexible manufacturing systems using deterministic finite automata and mixed integer linear programming
CN113434268A (zh) 一种工作流分布式调度管理系统和方法
EP1440544B1 (de) Verfahren zur kommunikation eines realzeit-datenverkehrs in einem kollisionserkennungs-basierten kommunikationsnetz, entsprechendes speichermedium und kommunikationsnetz
EP1220065B1 (de) Verfahren zum Betrieb einer industriellen Steuerung mit Run-Time-System
CN114064397A (zh) 一种异构数据源同步质量监控方法及装置、电子设备
CN108259373A (zh) 一种数据分配调度的方法及系统
Marlin Manufacturing lead time accuracy
Heidelberger et al. Simultaneous parallel simulations of continuous time Markov chains at multiple parameter settings
Jensen A timeliness model for asychronous decentralized computer systems
DE60015032T2 (de) Verteiltes Echtzeit-Betriebssystem

Legal Events

Date Code Title Description
8339 Ceased/non-payment of the annual fee