DE19728971C2 - Datenverarbeitungsvorrichtung und -verfahren - Google Patents
Datenverarbeitungsvorrichtung und -verfahrenInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving 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.
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.
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.
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ß.
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
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.
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.
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.
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)
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)
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 |
-
1997
- 1997-07-07 DE DE1997128971 patent/DE19728971C2/de not_active Expired - Fee Related
-
1998
- 1998-07-06 GB GB9814645A patent/GB2328299B/en not_active Expired - Fee Related
- 1998-07-07 FR FR9808684A patent/FR2765700B1/fr not_active Expired - Fee Related
Non-Patent Citations (2)
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 |