DE19728971C2 - Datenverarbeitungsvorrichtung und -verfahren - Google Patents

Datenverarbeitungsvorrichtung und -verfahren

Info

Publication number
DE19728971C2
DE19728971C2 DE1997128971 DE19728971A DE19728971C2 DE 19728971 C2 DE19728971 C2 DE 19728971C2 DE 1997128971 DE1997128971 DE 1997128971 DE 19728971 A DE19728971 A DE 19728971A DE 19728971 C2 DE19728971 C2 DE 19728971C2
Authority
DE
Germany
Prior art keywords
task
data processing
processing program
glk2
glk1
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
DE1997128971
Other languages
English (en)
Other versions
DE19728971A1 (de
Inventor
Ole See
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE1997128971 priority Critical patent/DE19728971C2/de
Priority to GB9814645A priority patent/GB2328299B/en
Priority to FR9808684A priority patent/FR2765700B1/fr
Publication of DE19728971A1 publication Critical patent/DE19728971A1/de
Application granted granted Critical
Publication of DE19728971C2 publication Critical patent/DE19728971C2/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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/461Saving or restoring of program or task context

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Description

Die vorliegende Erfindung betrifft eine Datenverarbeitungs­ vorrichtung und ein entsprechendes Datenverarbeitungsver­ fahren.
Aus Tannenbaum, A., Moderne Betriebssysteme, Hansa, 1994, Seiten 40 bis 55 ist es bekannt, ein erstes Datenverarbei­ tungsprogramm unter Verwendung von einer oder mehreren glo­ balen Variablen und ein zweites Datenverarbeitungsprogramm, das die in zumindest einer der globalen Variablen enthalte­ nen Daten verwendet, auf einer Prozessoreinrichtung ablau­ fen zu lassen. Weiterhin ist es aus diesem Buch bekannt, dass das zweite Datenverarbeitungsprogramm durch das erste Datenverarbeitungsprogramm bei einem Vorgang unterbrechbar ist und dass eine von dem ersten Datenverarbeitungsprogramm lesbare Zustandsanzeigeeinrichtung vom zweiten Datenverar­ beitungsprogramm zum Anzeigen des Vorgangs ersetzbar ist.
Weiterhin sind auf Seite 588 bis 599 dieses Buchs atomare Transaktionen beschrieben, und insbesondere das Anlegen ei­ ner lokalen Kopie (Schattenblock) einer globalen Variablen.
Obwohl auf beliebige Datenverarbeitungsvorrichtungen an­ wendbar, werden die vorliegende Erfindung sowie die ihr zugrundeliegende Problematik in bezug auf eine an Bord ei­ nes Kraftfahrzeuges befindliche Datenverarbeitungsvorrich­ tung, die zur Vernetzung verschiedener Steuergeräte mit Sensor- und Aktuatorvorrichtungen z. B. das echtzeitfähige serielle Bussystem "Controller Area Network" (CAN) ver­ wendt, erläutert.
Betrachtet werde ein Steuergerät zur Festlegung eines Mo­ torparameters, wie z. B. der Kraftstoff-Einspritzmenge. In diesem Steuergerät laufen im Betriebssystem verschiedene Tasks bzw. Anwendungsprogramme, welche sich nach dem Zeit­ scheibenverfahren eines Prozessors bedienen. Dabei wird die Rechenzeit des Prozessors auf alle Tasks aufgeteilt. Jedem Task wird zyklisch oder nach bestimmten Prioritäten ein An­ teil der Rechnerleistung zugewiesen. Das Hin- und Herschal­ ten zwischen den Tasks erfolgt in der Regel mit so hoher Geschwindigkeit, daß die Unterbrechungen und Wiederaufnah­ men nach außen nicht wahrnehmbar sind. Alle Daten, welche von mehreren Tasks benutzt werden, werden als globale Va­ riablen definiert.
Werden in einem Task A Daten berechnet, die in einem ande­ ren Task B weiterverarbeitet werden, so muß die Datenkonsi­ tenz auch dann gewährleistet sein, wenn der Task B jeder­ zeit vom Task A unterbrochen werden kann. Mit anderen Wor­ ten darf sich vor Beendigung des Tasks B dessen aktueller Datensatz nicht ändern, obwohl der Task A nach der Unter­ brechung bereits neue Daten zur Verfügung stellt.
Zur näheren Veranschaulichung der Problematik sei folgender Fall der Drehzahlregelung in einem Motorsteuergerät be­ trachtet.
Im Motorsteuergerät wird der Stellwert des Drehzahlreglers berechnet. Den einzuregelnden Drehzahlsollwert sowie den Bertriebsmodus, d. h. das Reglerverhalten (z. B. Proportio­ nalanteil, Differentialanteil, Integralanteil usw.) emp­ fängt das Motorsteuergerät über den CAN-Bus vom Fahrzeug­ steuergerät alle 10 ms. Die Berechnung der Regelparameter (Regelparametersatz), d. h. des Parametersatzes für das Reg­ lermodul erfolgt hingegen alle 50 ms im Motorsteuergerät. Somit ist klar, daß das Motorsteuergerät bis zum Ende sei­ ner jeweiligen Verarbeitungszeit von 50 ms keine neuen Da­ ten vom Fahrzeugsteuergerät übernehmen darf, obwohl letzte­ res solche neuen Daten prinzipiell alle 10 ms bereitstellt.
Momentan finden sich im Stand der Technik drei Ansätze zur Gewährleistung der Datenkonsistenz.
Der erste Ansatz sieht das Anlegen von lokalen Kopien der Daten, die im Task mit der höheren Priorität berechnet wer­ den, am Anfang des Tasks mit der niedrigeren Priorität vor.
Ein Nachteil bei dieser Vorgehensweise besteht darin, daß die Datenkonsistenz dann nicht mehr gewährleistet ist, wenn der Task niedrigerer Priorität während des eigentlichen Ko­ piervorganges vom Task höherer Priorität unterbrochen wird. Denn in diesem Fall werden bei der Fortführung des Tasks niedrigerer Priorität nach Beendigung der Unterbrechung die bereits angelegten Kopien nicht mehr aufgefrischt, sondern der Kopiervorgang an der Stelle der Unterbrechung fortge­ führt. Daher besteht nach Beendigung des Kopiervorganges eine Inkonsistenz zwischen den zuerst und zuletzt kopierten Daten.
Der zweite Ansatz sieht das Anlegen von lokalen Kopien der Daten wie beim ersten Ansatz vor. Während des Kopiervor­ gangs wird allerdings jede Unterbrechung bzw. Interrupt ge­ sperrt, so daß der Task mit höherer Priorität den Task mit niedrigerer Priorität nicht "stören" kann.
Dieser Ansatz hat allerdings den Nachteil, daß die Inter­ ruptsperrzeit beim Kopieren von größeren Datenmengen, z. B. Strukturen überschritten werden kann, was zu einem Neustart von der Seite des Betriebssystems her führen kann. Dieses Verhalten ist unerwünscht, da es das ganze System lahmlegen kann, z. B. bei Motorsteuergeräten zu Aussetzern bei der Kraftstoffeinspritzung oder sogar zum Motorstillstand füh­ ren kann.
Der dritte Ansatz sieht das Anlegen eines "shared memory" bzw. gemeinsam genutzten Speichers vor. Dies ist ein Be­ reich im Arbeitsspeicher, der vom Betriebssystem verwaltet wird, und in den prinzipiell alle Task Daten schreiben bzw. aus dem prinzipiell alle Task Daten lesen können, wenn es das Betriebssystem erlaubt. Zur Sicherung der Datenkonsi­ stenz im erwähnten Fall, darf der Task höherer Priorität erst dann wieder in das shared memory schreiben, wenn der Task niederer Priorität seine lokalen Kopien gefertigt hat. D. h. während der Anfertigung der lokalen Kopien durch den Task mit niedrigerer Priorität ist ein Zugriff des Tasks mit höherer Priorität auf das "shared memory" verboten.
Dieser Ansatz hat den Nachteil, daß das shared memory vom Betriebssystem verwaltet werden muß, was einen erhöhten Aufwand, also einen größeren Eingriff ins Betriebssystem zur Folge hat.
Als nachteilhaft bei den obigen bekannten Ansätzen hat sich also die Tatsache herausgestellt, daß sie entweder keine hinreichende Datensicherheit aufweisen und/oder einen hohen Aufwand erfordern.
VORTEILE DER ERFINDUNG
Die erfindungsgemäße Datenverarbeitungsvorrichtung mit den Merkmalen des Anspruchs 1 und das entsprechende Datenverar­ beitungsverfahren gemäß Anspruch 4 weisen gegenüber den be­ kannten Lösungsansätzen den Vorteil auf, daß sie eine gute Datenkonsistenz mit einfachen Mitteln, d. h. ohne großen ap­ parativen Aufwand bzw. Programmieraufwand gewährleisten.
Die Datenkonsistenz ist auch bei Daten gewährleistet, die in enger Beziehung zueinander stehen und deshalb unter gleichen Bedingungen weiterverarbeitet werden müssen, d. h. nicht aus zwei unterschiedlichen Zyklen der ersten Daten­ verarbeitung stammen dürfen.
Die mit der Interruptsperre verbundenen Probleme sind be­ seitigt, und auch der Eingriff in das System ist gering und erfolgt lokal und nicht auf Betriebssystemebene.
Die der vorliegenden Erfindung zugrundeliegende Idee be­ steht darin, daß ein erster Task bzw. Anwendungsprogramm mit höherer Priorität bestimmte globale Variablen festlegt, die ein zweiter Task mit niedrigerer Priorität verwendet. In dem zweiten Task wird während eines Datenkopiervorganges ein globales Flag bzw. eine Zustandsanzeige gesetzt, die vom ersten Task lesbar ist. Bei Unterbrechung dieses Daten­ kopiervorgangs durch den ersten Task wird vor Ende der Un­ terbrechung der Zustand des Flags im ersten Task geprüft, und falls es gesetzt ist, wird dies als ein Hinweis auf eine mögliche Veränderung von bereits gelesenen Daten gese­ hen. Dementsprechend werden vom dem ersten Task entweder nur die veränderten oder alle lokal vom zweiten Task be­ nutzte Variablen mit ihrem aktuellen Wert überschrieben, welche zu diesem Zweck ebenfalls global definiert sind. Das Anlegen der lokalen Kopien erfolgt am Anfang des zweiten Tasks mit niedrigerer Priorität, also vor jeglicher Weiter­ verarbeitung der zu kopierenden Daten. Das Überschreiben der lokalen Kopien erfolgt, falls erforderlich, am Ende des ersten Tasks mit höherer Priorität, also frühestens nachdem alle Modifikationen der zu vom zweiten Task verwendeten Da­ ten abgeschlossen sind.
In den Unteransprüchen finden sich vorteilhafte Weiterbil­ dungen und Verbesserungen der in Anspruch 1 angegebenen Da­ tenverarbeitungsvorrichtung bzw. des in Anspruch 4 angege­ benen Datenverarbeitungsverfahrens.
ZEICHNUNGEN
Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher er­ läutert.
Es zeigen:
Fig. 1 ein Zeitablaufdiagramm für einen ersten Task A und einen zweiten Task B, wenn der erste Task B den zweiten Task A nach dem Kopiervorgang unter­ bricht, gemäß einem ersten Ausführungsbeispiel der Erfindung;
bricht, gemäß einem ersten Ausführungsbeispiel der Erfindung;
Fig. 2 ein Zeitablaufdiagramm für einen ersten Task A und einen zweiten Task B, wenn der erste Task A den zweiten Task B beim Kopiervorgang unter­ bricht, gemäß dem ersten Ausführungsbeispiel der Erfindung;
Fig. 3 eine schematische Darstellung von Datenverarbei­ tungsschritten in einem ersten Task A gemäß einem Ausführungsbeispiel der Erfindung; und
Fig. 4 eine schematische Darstellung von Datenverarbei­ tungsschritten in einem zweiten Task B gemäß dem zweiten Ausführungsbeispiel der Erfindung.
BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELE
Fig. 1 zeigt ein Zeitablaufdiagramm für einen ersten Task A und einen zweiten Task B, wenn der erste Task A den zweiten Task B nach dem Kopiervorgang unterbricht, gemäß einem er­ sten Ausführungsbeispiel der Erfindung.
In Fig. 1 bezeichnen t1, t2, t3, t4 und t5 einen jeweiligen aufeinanderfolgenden ersten bis fünften Zeitpunkt auf der vertikalen Zeitachse. A1, A2, A3 und A4 bezeichnen jeweili­ ge Programmblöcke eines Tasks bzw. Anwenderprogramms A mit einer ersten höheren Priorität. B1, B2, B3, B4 und B5 bezeichnen jeweilige Programmblöcke eines Tasks bzw. Anwen­ derprogramms B mit einer zweiten niedrigeren Priorität. Programmblock bedeutet dabei einen Teil des gesamten Pro­ gramms.
Beide Tasks A und B werden nach dem Zeitscheibenverfahren unter Berücksichtigung ihrer Priorität auf derselben Pro­ zessoreinrichtung verarbeitet. Insbesondere berechnet der Task A Variablen V1 und V2, welche der Task B seinerseits benötigt. Dabei ist darauf zu achten, daß der Task B aus Gründen der Datenkonsistenz während eines Durchlaufs nur ein zusammengehöriges Datenpaar für V1 und V2 benutzen darf.
Die Verarbeitung beginnt zum Zeitpunkt t1 mit dem Programm­ block A1 des Tasks A, welcher unter anderem die Berechnung der Daten der globalen Variablen V1 und V2 beinhaltet. Glo­ bale Variable heißt in diesem Zusammenhang, daß zumindest auch der Task B einen Zugriff auf diese Variablen hat.
Zum Zeitpunkt t2 ist die Zeitscheibe des Task A abgelaufen, und der Task B beginnt mit dem Programmblock B1, in dem ein Flag F auf logisch "1" gesetzt wird, wobei dieses Flag F die erfindungsgemäße Zustandsanzeige-Einrichtung verkör­ pert. Das Flag F zeigt so den Beginn und den Verlauf des Kopiervorgangs an.
Darauffolgend werden im Task B in den Programmblöcken B2 und B3 lokale Kopien der Variablen V1 und V2 angefertigt, nämlich GLK1 als Kopie von V1 in B2 und GLK2 als Kopie von V2 in B3.
Es sei ausdrücklich darauf hingewiesen, daß die Variablen GLK1, GLK2 und F ebenfalls globale Variablen sind, also zu­ mindest auch der Task A auf sie Zugriff hat.
Im Programmblock B4 wird das Flag F auf logisch "0" ge­ setzt, um das Ende des Kopiervorgangs anzuzeigen.
Zum Zeitpunkt t3 ist die Zeitscheibe des Task B abgelaufen, und der Task A wird mit dem Programmblock A2 neu gestartet, welcher unter anderem die Neuberechnung der Daten der glo­ balen Variablen V1 und V2 beinhaltet.
Im anschließenden Programmblock A3, der in der Reihenfolge nach sämtlichen Neuberechnungen der vom Task B benötigten Variablen V1, V2 kommt, prüft der Task A, ob das Flag F ge­ setzt ist oder nicht. Da im vorliegenden Fall die Unterbre­ chung des Tasks B nach dem Kopiervorgang erfolgte ist das Flag F auf logisch "0".
Da somit der Task A darüber informiert ist, daß der Task B im Besitz der benötigten zusammengehörigen Kopien GLK1 und GLK2 ist und diese nicht vom Task A verändert wurden, sind keine weiteren Schritte notwendig, und der Task A endet mit dem Programmblock A4 zum Zeitpunkt t4.
Daraufhin wird der Task B mit dem Programmblock B5 fortge­ setzt, der den Task B abschließt oder bis zur nächsten Un­ terbrechung durch den Task A läuft. Weder die beschriebene erste noch irgendeine weitere Unterbrechung gefährdet je­ doch die Datenkonsistenz im Task B.
Fig. 2 zeigt ein Zeitablaufdiagramm für einen ersten Task A und einen zweiten Task B, wenn der erste Task A den zweiten Task B beim Kopiervorgang unterbricht, gemäß dem ersten Ausführungsbeispiel der Erfindung.
In Fig. 2 bezeichnen t1, t2, t3', t4' und t5 einen jeweili­ gen aufeinanderfolgenden ersten bis fünften Zeitpunkt auf der vertikalen Zeitachse. A1, A2, A3 und A4' bezeichnen je­ weilige Programmblöcke eines Tasks bzw. Anwenderprogramms A, und B1, B2, B3, B4 und B5 bezeichnen jeweilige Programm­ blöcke eines Tasks bzw. Anwenderprogramms B. Dabei entspre­ chen die ungestrichenen Bezugszeichen den in Fig. 1 erläu­ terten Bestandteilen.
Die Verarbeitung beginnt wie oben zum Zeitpunkt t1 mit dem Programmblock A1 des Tasks A, welcher unter anderem die Be­ rechnung der Daten der globalen Variablen V1 und V2 bein­ haltet.
Zum Zeitpunkt t2 ist die Zeitscheibe des Task A abgelaufen, und der Task B beginnt mit dem Programmblock B1, in dem das Flag F auf logisch "1" gesetzt wird und so den Beginn und den Verlauf des Kopiervorgangs anzeigt.
Darauffolgend wird im Task B im Programmblock B2 eine loka­ le Kopie GLK1 der Variablen V1 angefertigt. Zum Zeitpunkt t3' wird die Zeitscheibe des Task B vom Task A unterbro­ chen, und der Task A fährt fort mit dem Programmblock A2, welcher unter anderem die Neuberechnung der Daten der glo­ balen Variablen V1 und V2 beinhaltet.
Im anschließenden Programmblock A3, der in der Reihenfolge nach sämtlichen Neuberechnungen der vom Task B benötigten Variablen V1, V2 kommt, prüft der Task A, ob das Flag F ge­ setzt ist oder nicht. Da im vorliegenden Fall die Unterbre­ chung des Tasks B während des Kopiervorganges erfolgte ist das Flag F auf logisch "1".
Somit ist der Task A darüber informiert, daß der Task B nicht im Besitz der benötigten zusammengehörigen Kopien GLK1 und GLK2 ist und es sind weitere Schritte notwendig, um die Datenkonsistenz zu gewährleisten.
Dazu führt der Task A den Programmblock A4' durch, in dem der Kopiervorgang für den Task B durchgeführt wird, nämlich in GLK1 eine Kopie von V1 und in GLK2 eine Kopie von V2 an­ gelegt wird.
Dazu sei allgemein bemerkt, daß der Task A prinzipiell nur die Kopien erneuern muß, deren entsprechende Variable er verändert hat. Dies kann bei größeren Datenmengen zu Zei­ tersparnissen ausgenutzt werden.
Zum Zeitpunkt t4' ist die Zeitscheibe des Tasks A abgelau­ fen und dieser beendet.
Darauffolgend wird der Task B an der Stelle, wo er vorher unterbrochen wurde, fortgesetzt und fertigt im Programm­ block B3 eine lokale Kopie GLK2 der Variablen V2 an. Im Programmblock B4 wird darauf das Flag F auf logisch "0" ge­ setzt, um das Ende des Kopiervorgangs anzuzeigen.
Daraufhin wird der Task B mit dem Programmblock B5 fortge­ setzt, der den Task B abschließt oder bis zur nächsten Un­ terbrechung durch den Task A läuft. Weder die beschriebene erste noch irgendeine weitere Unterbrechung gefährdet je­ doch die Datenkonsistenz im Task B. Insbesondere führt jede weitere Unterbrechung des Tasks B durch den Task A zu der im Zusammenhang mit Fig. 1 beschriebenen Situation.
Fig. 3 zeigt eine schematische Darstellung von Datenverar­ beitungsschritten in einem ersten Task A gemäß dem zweiten Ausführungsbeispiel der Erfindung.
Der Task A belegt eine feste Zeitscheibe von 10 ms. In den Schritten S1 und S2 werden die Daten für die globalen Va­ riablen V1 bzw. V2, welche auch der Task B verwendet, be­ rechnet. Im gestichelten Bereich finden beliebige andere Datenverarbeitungsschritte statt.
Am Ende des Tasks A in den Schritten S4 bis S7 wird, falls erforderlich, d. h. falls das Flag F logisch "1" ist, der Kopiervorgang von V1 in GLK1 und von V2 in GLK2 für den Task B wiederholt.
Fig. 4 zeigt eine schematische Darstellung von Datenverar­ beitungsschritten in einem zweiten Task B gemäß dem zweiten Ausführungsbeispiel der Erfindung.
Der Task B belegt eine feste Zeitscheibe von 50 ms. In den Schritten S1' bis S4' werden globalen Variablen V1 und V2, welche der Task B verwendet, in die globalen Variablen GLK1 bzw. GLK2 kopiert. Nur während dieses Kopiervorganges ist das Flag F logisch "1", um bei einer Unterbrechung durch den Task A die Notwendigkeit von Maßnahmen zur Vermeidung von Dateninkonsistenzen anzuzeigen. Im gestichelten Bereich finden beliebige andere Datenverarbeitungsschritte statt.
Am Ende des Tasks B im Schritt S5' werden die lokalen Kopi­ en GLK1 und/oder GLK2 weiterverarbeitet, wobei die vorlie­ gende Erfindung gewährleistet, daß in einem Durchlauf des Tasks B stets mit ein und demselben konsistenten Variablen­ paar gerechnet wird.
Obwohl die vorliegende Erfindung anhand eines bevorzugten Ausführungsbeispiels vorstehend beschrieben wurde, ist sie darauf nicht beschränkt, sondern auf vielfältige Weise mo­ difizierbar.
Insbesondere können die beiden Einrichtungen zur Durchfüh­ rung der Datenverarbeitung sowie die Zustandsanzeige- Einrichtung nicht nur softwaremäßig, sondern natürlich auch hardwaremäßig realisiert werden.
Weiterhin wurden im obigen Ausführungsbeispiel zwei Varia­ ble V1 und V2 gemeinsam vom Task A und Task B benutzt. Die Erfindung ist jedoch auf eine beliebige Anzahl gemeinsam benutzter Variablen anwendbar. Der Ausdruck Variable ist dabei allgemein im Sinn von veränderliche Größe zu verste­ hen.
Darüber hinaus ist die vorliegende Erfindung nicht nur zur Abstimmung zweier Tasks mit einem Flag, sondern mehrerer Tasks, die jeweils paarweise ein Flag verwenden, anwendbar.
Die Zuordnung von verschiedenen Zeitspannen zu verschiede­ nen Tasks ist nicht zwangsläufig. Ein 50 ms-Task wird alle 50 ms aufgerufen, ein 10 ms-Task alle 10 ms. Das bedeutet nur, daß ein 50 ms-Task maximal 50 ms, ein 10 ms Task maximal 10 ms dauern darf, damit sich der jeweilige Task nicht selbst überholt und damit einen Restart des Betriebssystems aus­ löst. Dies bedeutet aber nicht, daß die Zeitdauer 50 ms bzw. 10 ms lang sein muß.
BEZUGSZEICHENLISTE
t1
, t2
, t3
, t4
, t5
, t'3
, t'4
Zeitpunkte
A1-A4, A4', B1-B5 Programmblöcke
V1, V2 globale Variablen
GLK1, GLK2 globale Variablen für lokale Kopien
F Flag
S1-S7 Programmschritte Task A
S1'- S5' Programmschritte Task A

Claims (6)

1. Datenverarbeitungsvorrichtung mit:
einer Prozessoreinrichtung
zur Durchführung eines ersten Datenverarbeitungspro­ gramms (TASK A) unter Verwendung von einer oder mehre­ ren globalen Variablen (V1, V2); und
zur Durchführung eines zweiten Datenverarbeitungspro­ gramms (TASK B), das die in zumindest einer der globa­ len Variablen (V1, V2) enthaltenen Daten verwendet;
wobei das zweite Datenverarbeitungsprogramm (TASK B) derart gestaltet ist, daß
es zur Verwendung der in zumindest einer der globalen Variablen (V1, V2) enthaltenen Da­ ten am Anfang mindestens eine lokale Kopie (GLK1; GLK2) in Form einer globalen Varia­ blen von mindestens einer der globalen Va­ riablen (V1; V2) erstellt;
es während des Kopiervorgangs eine von dem ersten Datenverarbeitungsprogramm (TASK A) lesbare Zustandsanzeige-Einrichtung (F) zum Anzeigen des laufenden Kopiervorgangs setzt;
es beim Kopiervorgang durch das erste Daten­ verarbeitungsprogramm (TASK A) während eines Kopiervorganges unterbrechbar ist;
es am Ende einer Unterbrechung während eines Kopiervorganges durch das erste Datenverar­ beitungsprogramm (TASK A) an der Stelle der Unterbrechung mit dem Kopiervorgang fort­ fährt;
wobei das erste Datenverarbeitungsprogramm (TASK A) derart gestaltet ist, daß
es während einer Unterbrechung des zweiten Datenverarbeitungsprogramms (TASK B) eine Modifikation der mindestens einen in die lo­ kale Kopie (GLK1; GLK2) kopierten globalen Variablen (V1; V2) durchführen kann;
es vor dem Ende einer Unterbrechung des zweiten Datenverarbeitungsprogramms (TASK B) und nach Abschluss von allen Modifikationen der mindestens einen in die lokale Kopie (GLK1; GLK2) kopierten globalen Variablen (V1; V2) prüft, ob die Zustandsanzeige- Einrichtung (F) gesetzt ist, und, falls ja, die mindestens eine lokale Kopie (GLK1; GLK2) in Form der globalen Variablen mit ihrem ak­ tuellen Wert überschreibt.
2. Datenverarbeitungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß dem ersten Datenverarbeitungsprogramm (TASK A) eine erste, kürzere Zeitspanne und dem zweiten Da­ tenverarbeitungsprogramm (TASK B) eine zweite, längere Zeitspanne hinsichtlich der Benutzung der Prozessoreinrich­ tung zugeordnet ist.
3. Datenverarbeitungsvorrichtung nach einem der vorherge­ henden Ansprüche, dadurch gekennzeichnet, daß das erste Da­ tenverarbeitungsprogramm (TASK A) eine Bestimmungseinrich­ tung zum Bestimmen, welche der von dem zweiten Datenverar­ beitungsprogramm (TASK B) in die lokale Kopie (GLK1; GLK2) kopierten, globalen Variablen (V1; V2) bei gesetzter Zu­ standsanzeige-Einrichtung (F) modifiziert worden sind, auf­ weist und nur die entsprechenden lokale Kopien (GLK1; GLK2) in Form der globalen Variablen mit ihrem aktuellen Wert überschreibt.
4. Datenverarbeitungsverfahren mit den Schritten:
Durchführen eines ersten Datenverarbeitungsprogramms (TASK A) unter Verwendung von einer oder mehreren globalen Varia­ blen (V1, V2) mittels einer Prozessoreinrichtung;
Durchführung eines zweiten Datenverarbeitungsprogramms (TASK B), das die in zumindest einer der globalen Variablen (V1, V2) enthaltenen Daten verwendet, mittels der Prozes­ soreinrichtung;
wobei das zweite Datenverarbeitungsprogramm (TASK B)
zur Verwendung der in zumindest einer der globalen Variablen (V1, V2) enthaltenen Da­ ten am Anfang mindestens eine lokale Kopie (GLK1; GLK2) in Form einer globalen Varia­ blen von mindestens einer der globalen Va­ riablen (V1; V2) erstellt;
während des Kopiervorgangs eine von dem er­ sten Datenverarbeitungsprogramm (TASK A) lesbare Zustandsanzeige-Einrichtung (F) zum Anzeigen des laufenden Kopiervorgangs setzt;
beim Kopiervorgang durch das erste Datenver­ arbeitungsprogramm (TASK A) während eines Kopiervorganges unterbrechbar ist;
am Ende einer Unterbrechung während eines Kopiervorganges durch das erste Datenverar­ beitungsprogramm (TASK A) an der Stelle der Unterbrechung mit dem Kopiervorgang fort­ fährt;
wobei das erste Datenverarbeitungsprogramm (TASK A)
während einer Unterbrechung des zweiten Da­ tenverarbeitungsprogramms (TASK B) eine Mo­ difikation der mindestens einen in die loka­ le Kopie (GLK1; GLK2) kopierten globalen Va­ riablen (V1; V2) durchführen kann;
vor dem Ende einer Unterbrechung des zweiten Datenverarbeitungsprogramms (TASK B) und nach Abschluss von allen Modifikationen der mindestens einen in die lokale Kopie (GLK1; GLK2) kopierten, globalen Variablen (V1; V2) prüft, ob die Zustandsanzeige-Einrichtung (F) gesetzt ist, und, falls ja, die minde­ stens eine lokale Kopie (GLK1; GLK2) in Form der globalen Variablen mit ihrem aktuellen Wert überschreibt.
5. Datenverarbeitungsverfahren nach Anspruch 4, dadurch gekennzeichnet, daß dem ersten Datenverarbeitungsprogramm (TASK A) eine erste, kürzere Zeitspanne und dem zweiten Da­ tenverarbeitungsprogramm (TASK B) eine zweite, längere Zeitspanne hinsichtlich der Benutzung der Prozessoreinrich­ tung zugeordnet wird.
6. Datenverarbeitungsverfahren nach einem der vorherge­ henden Ansprüche 4 oder 5, dadurch gekennzeichnet, daß das erste Datenverarbeitungsprogramm (TASK A) bestimmt, welche der von dem zweiten Datenverarbeitungsprogramm (TASK B) in die lokale Kopie (GLK1; GLK2) kopierten globalen Variablen (V1; V2) bei gesetzter Zustandsanzeige-Einrichtung (F) mo­ difiziert worden sind, und nur die entsprechenden lokalen Kopien (GLK1; GLK2) in Form der globalen Variablen mit ih­ rem aktuellen Wert überschreibt.
DE1997128971 1997-07-07 1997-07-07 Datenverarbeitungsvorrichtung und -verfahren Expired - Fee Related DE19728971C2 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE1997128971 DE19728971C2 (de) 1997-07-07 1997-07-07 Datenverarbeitungsvorrichtung und -verfahren
GB9814645A GB2328299B (en) 1997-07-07 1998-07-06 Data-processing device and method
FR9808684A FR2765700B1 (fr) 1997-07-07 1998-07-07 Dispositif et procede de traitement de donnees

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE1997128971 DE19728971C2 (de) 1997-07-07 1997-07-07 Datenverarbeitungsvorrichtung und -verfahren

Publications (2)

Publication Number Publication Date
DE19728971A1 DE19728971A1 (de) 1999-01-14
DE19728971C2 true DE19728971C2 (de) 2003-10-09

Family

ID=7834902

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1997128971 Expired - Fee Related DE19728971C2 (de) 1997-07-07 1997-07-07 Datenverarbeitungsvorrichtung und -verfahren

Country Status (3)

Country Link
DE (1) DE19728971C2 (de)
FR (1) FR2765700B1 (de)
GB (1) GB2328299B (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6519265B1 (en) * 1999-05-28 2003-02-11 Sony Corporation System and method for context switching in an electronic network
DE102004017050A1 (de) 2004-04-07 2005-10-27 Robert Bosch Gmbh Datenkonsistenz in Datenverarbeitungsanlagen
DE102005051673A1 (de) * 2005-10-28 2007-05-03 Vector Informatik Gmbh Messvorrichtung und Messverfahren zur Erfassung von Steuergerät-Variablen
CN103049334B (zh) * 2012-12-14 2015-09-30 华为技术有限公司 一种任务处理的方法和虚拟机

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4875159A (en) * 1987-12-22 1989-10-17 Amdahl Corporation Version management system using plural control fields for synchronizing two versions of files in a multiprocessor system
EP0365728B1 (de) * 1988-10-28 1993-12-29 International Business Machines Corporation Betriebsmittelzugriff für Multiprozessorrechnersystem
US5255387A (en) * 1990-04-27 1993-10-19 International Business Machines Corporation Method and apparatus for concurrency control of shared data updates and queries
US5513349A (en) * 1994-03-24 1996-04-30 International Business Machines Corporation System and method for safing of asynchronous interrupts

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
TANENBAUM, A.: Moderne Betriebssysteme, Hanser, 1994, S. 40-55 *
TANENBAUM, A.: Moderne Betriebssysteme, Hanser, 1994, S. 588-599 *

Also Published As

Publication number Publication date
GB9814645D0 (en) 1998-09-02
GB2328299A (en) 1999-02-17
DE19728971A1 (de) 1999-01-14
FR2765700B1 (fr) 2000-10-06
GB2328299B (en) 1999-07-07
FR2765700A1 (fr) 1999-01-08

Similar Documents

Publication Publication Date Title
EP0851348B1 (de) Verfahren und Vorrichtung zum Implementieren eines echtzeitfähigen Steuerprogramms in einem nicht-echtzeitfähigen Betriebsprogramm
DE4410775C2 (de) Steuergerät und Arbeitsverfahren eines Betriebssystems für dieses Steuergerät
WO2011061046A1 (de) Parallelisierte programmsteuerung
DE102005013913A1 (de) Unterbrechungsanforderungsprogramm und Mikrocomputer
DE3539395A1 (de) Verfahren und einrichtung zur adaption der gemischsteuerung bei brennkraftmaschinen
DE3644631A1 (de) Unregelmaessigkeiten ermittelnder mikrocomputer
DE4005042C2 (de) Mehrrechnersystem zur Durchführung von Bewegungssteuerungen
DE2064383C3 (de) Datenverarbeitungsanlage mit mehreren zentralen Verarbeitungseinrichtungen
EP0671031B1 (de) Mikrorechner mit überwachungsschaltung
DE19955776C1 (de) Multitasking-Prozessorsystem
EP0799441B1 (de) Verfahren zur steuerung von technischen vorgängen
DE19728971C2 (de) Datenverarbeitungsvorrichtung und -verfahren
DE2943903A1 (de) Rechnersystem
DE19722114A1 (de) Taktsignal-Bereitstellungsvorrichtung und -verfahren
DE4004516A1 (de) Verfahren zur verarbeitung von insbesondere bei der steuerung von brennkraftmaschinen anfallenden informationen und aktivitaeten
WO2003069424A2 (de) Reaktionszeit-beschränkung eines software-prozesses
DE10110444A1 (de) Verfahren und Vorrichtung zum Ermitteln der Auslastung eines Rechengeräts
EP0584512B1 (de) Verfahren zum zeitlichen Überwachen einer Programmabarbeitung
EP1563358A2 (de) Verfahren zur sicheren überprüfung eines speicherbereiches eines mikrocontrollers in einem steuergerät und steuergerät mit einem geschützten mikrocontroller
DE10160298A1 (de) Verfahren und Vorrichtung zur Verarbeitung von Interrput-Signalen
EP2126700B1 (de) Steuerung des laufzeitverhaltens von prozessen
DE102009061083B3 (de) Modifizieren periodischer Signale, die von einem Mikrocontroller erzeugt worden sind
DE10229520A1 (de) Verfahren und Vorrichtung sowie Betriebssystem zur Steuerung von Vorgängen bei einem Fahrzeug
EP0298960A1 (de) Verfahren und digitales steuergerät zur bestimmung und steuerung von pulsbreitenmodulierten betriebsgrössen bei einer brennkraftmaschine.
DE102020202338A1 (de) Elektronische steuereinheit

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8304 Grant after examination procedure
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20150203