DE19857332C1 - Verfahren zur Synchronisation von Prozessen - Google Patents
Verfahren zur Synchronisation von ProzessenInfo
- Publication number
- DE19857332C1 DE19857332C1 DE1998157332 DE19857332A DE19857332C1 DE 19857332 C1 DE19857332 C1 DE 19857332C1 DE 1998157332 DE1998157332 DE 1998157332 DE 19857332 A DE19857332 A DE 19857332A DE 19857332 C1 DE19857332 C1 DE 19857332C1
- Authority
- DE
- Germany
- Prior art keywords
- semaphore
- sem
- change
- processes
- processor
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
In einer Einrichtung E, in der mehrere Prozesse PR1 ... PR3 von zeitgemäßen Prozessoren CPU1 ... CPU2 mit Registern REG und den Registern REG zugeordneten Zeroflags ZFL ausgeführt werden, wird bei einer Synchronisation, die mit Hilfe eines Semaphors SEM gesteuert wird, von jedem Prozeß PR1 ... PR3 ein Synchronisationswunsch durch eine Änderung des Semaphors SEM angezeigt. Die Synchronisation erfolgt anschließend in Abhängigkeit von bei den Änderungen des Semaphors SEM ausgebildeten prozeßspezifischen Indikatoren FLAG1 ... FLAG3. Hierdurch wird die Synchronisation der Prozesse PR1 ... PR3 effizient bewirkt.
Description
In einer zeitgemäßen Informationsverarbeitungseinrichtung
kommen üblicherweise eine Vielzahl von Informationsverarbei
tungsvorgängen - auch 'Prozesse' genannt - auf den in der In
formationsverarbeitungseinrichtung vorgesehenen prozeßverar
beitenden Einrichtungen, z. B. Prozessoren, zum Ablauf. Hier
bei versteht man unter einem Prozeß den Vorgang einer algo
rithmisch, d. h. in einer Abfolge von einzelnen Informations
verarbeitungschritten, ablaufenden Informationsverarbeitung.
Beispiele für Prozesse sind das Bearbeiten einer Datei oder
die Erstellung eines Programms. Beispiele für Informations
verarbeitungsschritte sind das Öffnen, Drucken und/oder Spei
chern einer Datei oder das Ändern eines Speicherbereichs im
Arbeitsspeicher.
Die Ausführung eines Informationsverarbeitungschritts durch
einen Prozessor erfolgt unter der Steuerung eines Programms,
das aus einer Folge von Anweisungen - auch 'Maschinenbefehle'
genannt - besteht. Hierbei werden durch unterschiedliche Ma
schinenbefehle unterschiedliche elementare Verarbeitungs
schritte des Prozessors gekennzeichnet. Beispiele für elemen
tare Verarbeitungsschritte sind arithmetische Operationen,
z. B. ganzzahlige Addition oder Subtraktion. Durch das Pro
gramm wird dem Prozessor somit angezeigt, welche seiner ele
mentaren Verarbeitungsschritte in welcher Reihenfolge er
bracht werden sollen.
Um eine möglichst optimale Auslastung aller Komponenten einer
Informationsverarbeitungseinrichtung - auch 'Betriebsmittel'
genannt - zu gewährleisten, werden die Prozesse üblicherweise
nebenläufig, d. h. zeitlich ineinander verzahnt, ausgeführt.
Diese Verzahnung wird auch 'Interleaving' genannt. Beispiele
für Betriebsmittel sind Drucker, Prozessoren, Speicherplatz
oder Dateien. Beim Interleaving wird üblicherweise der Ablauf
eines ersten Prozesses mit Hilfe einer Unterbrechung - auch
'Interrupt' genannt - zu einem frei wählbaren Zeitpunkt un
terbrochen. Die Unterbrechung erfolgt üblicherweise zwischen
der Verarbeitung von zwei Maschinenbefehlen, da diese nicht
weiter zerlegbare, d. h. nicht unterbrechbare, Einheiten dar
stellen. Nach Auswahl eines zweiten Prozesses, z. B. durch ein
Betriebssystem, wird mit dem Ablauf des zweiten Prozesses
fortgefahren.
Da im allgemeinen aus Wirtschaftlichkeitsgründen nicht genü
gend Betriebsmittel zur Verfügung stehen, um die Anforderun
gen aller Prozesse gleichzeitig zu erfüllen, können infolge
des Interleaving durch gleichzeitige, d. h. wechselseitige
oder gemeinsame, Benutzung der Betriebsmittel Konflikte ent
stehen - beispielsweise, wenn zwei Prozesse gleichzeitig auf
demselben Drucker Daten ausgeben oder gleichzeitig auf die
gleiche Datei schreibend zugreifen möchten. Auch ohne gemein
same Benutzung der Betriebsmittel können durch die Verzahnung
der Prozesse Konflikte entstehen, beispielsweise wenn ein
Prozeß einen anderen Prozeß beenden möchte, während der an
dere Prozeß aktuell einen Informationsverarbeitungsschritt
ausführt, der nicht unterbrochen werden darf - z. B. das Ab
speichern einer Datei. Ein Informationsverarbeitungsschritt
eines Prozesses, der von anderen Prozessen nicht unterbrochen
werden darf, wird auch 'kritischer Abschnitt' genannt.
Die übliche Strategie zur Vermeidung der Konflikte ist eine
Abstimmung - auch 'Synchronisation' genannt - der nebenläufi
gen Prozesse aufeinander. Hierbei werden die zeitlich inein
ander verzahnt ausgeführten Informationsverarbeitungsschritte
der einzelnen Prozesse im Konfliktfall sequentiell, also
nacheinander, ausgeführt. Diese Konfliktlösung wird auch
'Prinzip des wechselseitigen Ausschlusses' - in der Fachwelt
auch 'mutual exclusion' - genannt, d. h. in Informationsvear
beitungsschritte eines Prozesses, die kritische Abschnitte
darstellen, werden keine Informationsvearbeitungsschritte an
derer Prozesse "eingeschoben". Die Synchronisation wird mit
Hilfe von mehreren, sich voneinander unterscheidenden Prozeß
zuständen AKTIV, BEREIT, und BLOCKIERT gesteuert. Diese Pro
zeßzustände sind folgendermaßen definiert:
AKTIV: ein Prozeß setzt seinen Ablauf fort, z. B. durch Ausführung auf einem Prozessor.
BEREIT: ein Prozeß kann seinen Ablauf fortsetzen und war tet auf die Zuteilung eines Prozessors.
BLOCKIERT: ein Prozeß wartet auf bestimmte Ereignisse, die für seinen weiteren Ablauf erforderlich sind, z. B. auf die Zuteilung von Speicherplatz, die Antwort auf eine Anfrage, oder den Abschluß eines Informationsverarbeitungsschritts eines anderen Prozesses.
AKTIV: ein Prozeß setzt seinen Ablauf fort, z. B. durch Ausführung auf einem Prozessor.
BEREIT: ein Prozeß kann seinen Ablauf fortsetzen und war tet auf die Zuteilung eines Prozessors.
BLOCKIERT: ein Prozeß wartet auf bestimmte Ereignisse, die für seinen weiteren Ablauf erforderlich sind, z. B. auf die Zuteilung von Speicherplatz, die Antwort auf eine Anfrage, oder den Abschluß eines Informationsverarbeitungsschritts eines anderen Prozesses.
Die Synchronisation wird dadurch bewirkt, daß lediglich die
aktivierten Prozesse, d. h. Prozesse im Zustand AKTIV oder BE
REIT, ihren Ablauf fortsetzen. Hierdurch ergibt sich eine Se
quentialisierung der Prozesse.
Die Realisierung des wechselseitigen Ausschlusses erfolgt in
der Praxis oft durch Semaphore. Gemäß Ihrer mathematisch
theoretischen Definition ist ein Semaphor eine ganzzahlige,
nicht negative Variable verbunden mit einer Warteschlange.
Der Anfangswert des Semaphors legt hierbei fest, wie viele
Prozesse sich gleichzeitig in einem durch den Semaphor kon
trollierten kritischen Abschnitt befinden dürfen. Die Warte
schlange enthält die Prozesse, die auf ein Betreten des kri
tischen Abschnitts warten. Ein Semaphor ist üblicherweise in
einem gemeinsamen, d. h. von mehreren Prozessen gemeinsam be
nutzbaren Datenbereich gespeichert, wodurch ein für die Syn
chronisation erforderlicher Datenaustausch zwischen den Pro
zessen - auch 'Interprozeßkommunikation' genannt - bewirkt
wird. Auf einen Semaphor kann nur mit zwei Operationen zuge
griffen werden, mit der P-Operation (holl. Passeer = Betre
ten) - auch 'Warteoperation' genannt -, und der V-Operation
(holl. Verlaat = Verlassen) - auch 'Signaloperation' genannt.
Im allgemeinen wird die P-Operation vor dem Betreten und die
V-Operation nach dem Verlassen eines kritischen Abschnitts
ausgeführt.
Der Zugriff auf einen Semaphor kann wieder zu Konflikten füh
ren. Am Beispiel einer Betriebsmittel-Variable, d. h. eines
Semaphors, der den Zustand und die Beanspruchung eines Be
triebsmittels anzeigt, sei für die P-Operation erläutert,
welcher Konflikt beim Zugriff auf einen Semaphor entstehen
kann. Zur Belegung eines Betriebsmittel mit Hilfe einer
P-Operation sind grundsätzlich zwei Aktionen erforderlich:
- 1. Bewerten der Betriebsmittel-Variable, d. h. Abfragen der Betriebsmittel-Variable auf einen Wert, der die Informa tion 'Betriebsmittel frei' repräsentiert, und, falls dies zutrifft,
- 2. Verändern der Betriebsmittel-Variable, d. h. Ändern der Betriebsmittel-Variable auf einen Wert, der die Informa tion 'Betriebsmittel belegt' repräsentiert, als Signal für andere Prozesse, die ebenfalls das Betriebsmittel be legen wollen.
Wollen zwei Prozesse PR1 und PR2 eine "freie" Betriebsmittel-
Variable gleichzeitig durch Ausführung der P-Operation bele
gen und erfolgt dies ohne wechselseitigen Ausschluß, d. h. in
einander verzahnt, so ist wegen der Verzahnung folgender Be
wertungskonflikt möglich:
- 1. der Prozeß PR1 bewirkt die Aktion (1) und stellt fest, daß die Betriebsmittel-Variable frei ist. Anschließend wird der Prozeß PR1 unterbrochen und der Prozeß PR2 kommt zum Ablauf.
- 2. der Prozeß PR2 bewirkt ebenfalls die Aktion (1) und stellt ebenfalls fest, daß die Betriebsmittel-Variable frei ist, da der Prozeß PR1 die Betriebsmittel-Variable noch nicht verändert hat.
- 3. Beide Prozesse PR1 und PR2 bewirken nun die Aktion (2), wobei unwesentlich ist, in welcher Reihenfolge dies er folgt, und fahren mit ihrer Informationsverarbeitung fort. Somit veranlassen sie beispielsweise ein gleichzei tiges, also vermischtes Drucken von zwei Dateien.
Zur Vermeidung dieses Konfliktes muß also sichergestellt
sein, daß die P- und V-Operation nicht unterbrochen werden,
d. h. daß zwei Prozesse nicht gleichzeitig den gemeinsam be
nutzten Datenbereich, in dem der Semaphor gespeichert ist,
mit einer P- oder V-Operation verändern können.
Die Nichtunterbrechbarkeit der P- und V-Operation kann schal
tungstechnisch realisiert werden, indem die P- und
V-Operation durch spezielle Maschinenbefehle des Prozessors
bewirkt werden. Nachteilig ist hierbei, daß die schaltungs
technische Realisierung nicht der Architektur zeitgemäßer
Prozessoren entspricht, die grundsätzlich unterbrechbar sind.
Zudem entspricht diese Lösung nicht der Konzeption von RISC-
Prozessoren (Reduced Instruction Set Computer), bei der durch
möglichst wenige und einfache Maschinenbefehle eine möglichst
einfache Realisierung des Prozessors anstreben wird. In zeit
gemäßen Prozessoren ist folglich eine derartige Lösung nicht
vorgesehen.
Die Nichtunterbrechbarkeit der P- und V-Operation kann alter
nativ programmtechnisch erfolgen, indem mit Hilfe eines Ma
schinenbefehls des Prozessors Unterbrechungen des Prozessors
während der Ausführung der P- und V-Operation unterbunden
werden. Hierbei wirkt sich ein Programmierfehler innerhalb
der P- oder V-Operation gegebenenfalls auf die Informations
verarbeitungseinrichtung als Ganze aus, da die fehlerhafte
Operation nicht abgebrochen werden kann - beispielsweise
durch einen Prozeßabbruch-Interrupt. Sofern die Prozesse bei
einem zeitgemäßen Prozessor mit einem privilegierten Be
triebsmodus, in dem alle Maschinenbefehle ohne Begrenzung ih
rer Wirkungsweise ausgeführt werden dürfen, und einem nicht
privilegierten Betriebsmodus, in dem einige Maschinenbefehle
in ihrer Wirkungsweise begrenzt oder untersagt sind, im nicht
privilegierten Modus zum Ablauf kommen, ist zudem ein Wechsel
des Betriebsmodus erforderlich, da der Maschinenbefehl, mit
dem die Unterbrechungen unterbunden werden, üblicherweise nur
im privilegierten Modus ausgeführt werden darf. Der Wechsel
des Betriebsmodus wird in zeitgemäßen Prozessoren in etwa 40
Verarbeitungszyklen erreicht.
Der vorhergehend beschriebene technische Hintergrund ist in
Engesser, Hermann [Hrsg.]; Claus, Volker [Bearb.]; Duden
"Informatik"; 1. Auflage; Mannheim; Wien; Zürich: Dudenver
lag; 1988; ISBN 3-411-02421-6; offenbart. Siehe insbesondere
Seite 78 (Echtzeit), Seite 79 (Betriebsmittel), Seite 404-409
(Nebenläufigkeit), Seite 471-475 (Prozesse und Prozeßzu
stände), Seite 588-589 (Synchronisation) und Seite 627-628
(Unterbrechung).
Ein Einsatz von ganzzahligen Semaphoren zur Synchronisation
von Prozessen ist aus Giloi, Wolfgang; Rechnerarchitektur;
Springer-Verlag Berlin, Heidelberg, New York; 1981; ISBN 3-
540-10352-X bekannt.
Der Erfindung liegt nun die Aufgabe zugrunde, ein Verfahren
der eingangs genannten Art derart auszugestalten, daß zumin
dest die Realisierung der P-Operation, d. h. der Warteopera
tion, verbessert wird. Die Aufgabe wird durch die Merkmale
des Patentanspruchs 1 gelöst.
Die Erfindung ist im wesentlichen darin zu sehen, daß in ei
ner Einrichtung, in der mehrere Prozesse von einem zeitgemä
ßen Prozessor mit zumindest einem ersten Speicherbereich - im
weiteren auch 'Register' genannt - und zumindest einem, dem
Register zugeordneten, zweiten Speicherbereich - im weiteren
auch 'Zeroflag' genannt - ausgeführt werden, bei einer Syn
chronisation, die mit Hilfe eines Semaphors gesteuert wird,
von jedem Prozeß ein Synchronisationswunsch durch eine Ände
rung des Semaphors angezeigt wird, und die Synchronisation in
Abhängigkeit von bei den Änderungen des Semaphors ausgebilde
ten prozeßspezifischen Indikatoren erfolgt. Der wesentliche
Vorteil des erfindungsgemäßen Verfahrens ergibt sich daraus,
daß die P-Operation unabhängig vom aktuellen Betriebsmodus
des Prozessors bewirkt wird. Insbesondere ist bei Prozessen,
die im nicht privilegierten Betriebsmodus ablaufen, kein
Wechsel des Betriebsmodus erforderlich, da weder zur Änderung
des Semaphors noch zur Bewertung der Indikatoren Maschinenbe
fehle erforderlich sind, die nur im privilegierten Betriebs
modus ausgeführt werden können. Desweitern wird vorteilhaft
auf Vorsorgemaßnahmen verzichtet, wobei eine Vorsorgemaß
nahme, z. B. das eingangs beschriebene Sperren der Interrupts,
in jedem Fall vorgenommen wird, auch dann, wenn keine Syn
chronisation erforderlich ist, weil z. B. lediglich ein Prozeß
den Semaphor belegen will. Die erfindungsgemäße P-Operation
läuft zudem sehr schnell ab, da nur einfache, d. h. innerhalb
von wenigen Verarbeitungszyklen eines Prozessors bewirkte,
Maschinenbefehle vorgesehen sind, und folglich die Wahr
scheinlichkeit eines Konflikts bezüglich der P-Operation auf
grund der Kürze des kritischen Abschnitts der P-Operation be
sonders niedrig ist.
Gemäß einer Weiterbildung des erfindungsgemäßen Verfahren ist
vorgesehen, daß die Änderung des Semaphors durch eine nicht
unterbrechbare Änderungsaktion erfolgt - Anspruch 2. Diese
Maßnahme ist vorteilhaft für Einrichtungen, in denen eine Un
terbrechung der Änderungsaktion selbst, z. B. durch weitere
Prozessoren oder durch asynchrone, d. h. spontan, auftretende
Meldungen von Betriebsmitteln, vorgesehen ist.
Gemäß einer Ausgestaltung des erfindungsgemäßen Verfahren ist
vorgesehen, daß der Prozessor bei der Bearbeitung der Pro
zesse auf einen nicht privilegierten Betriebsmodus einge
stellt ist, in dem er zwischen zwei aufeinanderfolgenden Ma
schinenbefehlen unterbrochen werden kann und in dem zumindest
ein diese Unterbrechbarkeit verhindernder Maschinenbefehl
nicht ausgeführt werden kann - Anspruch 3. Somit können die
Prozesse die Synchronisation in zeitgemäßen Prozessoren in
einem nicht privilegierten Betriebsmodus bewirken, wodurch
sich wegen der in diesem Betriebsmodus vorgesehenen Schutz
maßnahmen Programmfehler innerhalb der P- oder V-Operation
vorteilhaft nicht auf die Informationsverarbeitungseinrich
tung als Ganze auswirken. Zudem kann die fehlerhafte Opera
tion vorteilhaft abgebrochen und der fehlerhafte Prozeß been
det werden.
Gemäß einer Variante des erfindungsgemäßen Verfahren ist vor
gesehen, daß der Zugriff auf ein in der Einrichtung vorgese
henes Speichermittel, in dem zumindest der Semaphor gespei
chert ist, zumindest während der Änderung des Semaphors auf
den die Änderung bewirkenden Prozessor begrenzt wird - An
spruch 4. Hierdurch wird vorteilhaft verhindert, daß in einer
Einrichtung mit mehreren, auf das Speichermittel zugreifenden
Prozessoren durch ineinander verzahnt ausgeführtes Lesen des
Semaphors vom Speicher in die Register der Prozessoren der
eingangs beschriebene Bewertungskonflikt entsteht.
Nach einer Ausgestaltung des erfindungsgemäßen Verfahren wird
der Semaphor durch einen ganzzahligen Datentyp repräsentiert
- Anspruch 5. Dies hat den Vorteil, daß der Zugriff, d. h. La
den aus dem Speicher in einer Register des Prozessors, Bear
beitung innerhalb des Prozessors, und Speicherung aus dem Re
gister des Prozessors in den Speicher, mit auf den Zugriff
auf ganzzahlige Datentypen optimierten Maschinenbefehlen des
Prozessors bewirkt wird, die üblicherweise in drei Verarbei
tungszyklen des Prozessors erbracht werden.
Gemäß einer Ausgestaltung des erfindungsgemäßen Verfahren
wird die Änderung des Semaphors jeweils durch eine Subtrak
tion um die Zahl "1" bewirkt - Anspruch 6. Gemäß einer alter
nativen Ausgestaltung des erfindungsgemäßen Verfahren wird
die Änderung des Semaphors jeweils durch eine Addition um die
Zahl "1" bewirkt - Anspruch 7. Die Änderung eines ganzzahli
gen Datentyps um eine Zahl "1" wird von zeitgemäßen Prozesso
ren vorteilhaft sehr schnell, d. h. meist innerhalb von einem
Verarbeitungszyklus des Prozessors durchgeführt.
Nach einer weiteren Ausgestaltung des erfindungsgemäßen Ver
fahren wird der Prozeß synchronisiert, dessen prozeßspezifi
scher Indikator bei der Änderung des Semaphors derart ausge
bildet wird, daß er eine Änderung des Semaphors zu der Zahl
"0" anzeigt - Anspruch 8. Dies hat den Vorteil, daß in zeit
gemäßen Prozessoren die Ausbildung der Indikatoren aufgrund
von schaltungstechnisch mit den Registern verbundenen Zero
flags besonders effizient bewirkt wird.
Na einer Weiterbildung des erfindungsgemäßen Verfahren sind
mehrere Semaphore vorgesehen, mit deren Hilfe unterschiedli
che Synchronisationen zwischen den Prozessen bewirkt werden -
Anspruch 9. Somit kann vorteilhaft die gleichzeitige Synchro
nisation mehrerer unterschiedlicher Konflikte erreicht wer
den. Insbesondere kann diese Synchronisation nebenläufig,
d. h. ineinander verzahnt, erfolgen.
Das erfindungsgemäße Verfahren wird im folgenden anhand von
zwei Figuren näher erläutert. Dabei zeigt
Fig. 1 in einem Blockschaltbild eine Informationsverar
beitungseinrichtung und
Fig. 2 in einem Ablaufdiagram eine nicht unterbrechbare
P-Operation
In Fig. 1 ist beispielhaft eine informationsverarbeitende
Einrichtung E dargestellt, die prozeßverarbeitende Einrich
tungen, die durch einen ersten Prozessor CPU1 und einen zwei
ten Prozessor CPU2 gebildet sind, sowie Speichermittel, die
als RAM-Speicher MEM ausgebildet sind, enthält. In dem Spei
cher MEM sind in Speicherbereichen SB gespeicherte, prozeß
spezifische Informationen enthaltende, Prozeßkontrollblöcke
PCB vorgesehen. Hierbei sind in einen ersten Prozeßkontroll
block PCB1 prozeßspezifische Informationen eines ersten Pro
zesses PR1, in einen zweiten Prozeßkontrollblock PCB2 prozeß
spezifische Informationen eines zweiten Prozesses PR2 und in
einen dritten Prozeßkontrollblock PCB3 prozeßspezifische In
formationen eines dritten Prozesses PR3 gespeichert. In dem
ersten Prozeßkontrollblock PCB1 ist ein erster Indikator
FLAG1, in dem zweiten Prozeßkontrollblock PCB2 ein zweiter
Indikator FhAG2 und in dem dritten Prozeßkontrollblock PCB3
ein dritter Indikator FLAG3 vorgesehen. Zudem sind in dem
Speicher MEM in Speicherbereichen SB gespeicherte Semaphore
SEM vorgesehen, die z. B. den Semaphor SEM1 enthalten. Der Se
maphor SEM1 ist vom einem ganzzahligen Datentyp INTEGER. Mit
Hilfe der Semaphors SEM1 wird die Zuteilung eines Betriebs
mittels, z. B. eines Druckers, synchronisiert. Der Semaphor
SEM1 mit dem Wert "1" repräsentiert dabei die Information
'Betriebsmittel frei', d. h. er ist einer "freier" Semaphor.
Ein nicht freier Semaphor SEM1 ist im Gegensatz dazu ein 'be
legter' Semaphor SEM1. Die beiden Prozessoren CPU1, CPU2 und
der Speicher MEM sind durch einen Zugriffsbus ZB miteinander
verbunden, wobei die Zuteilung des Zugriffsbusses ZB an die
Prozessoren CPU1 und CPU2 von einer an den Zugriffsbus ZB an
geschlossenen Zugriffsbussteuereinrichtung ZBS gesteuert
wird. Aufgrund des gemeinsamen Zugriffs der beiden Prozesso
ren CPU1, CPU2 ist der Speicher RAM als gemeinsamer Speicher
SHARED MEMORY ausbildet, d. h. auf in dem gemeinsamen Speicher
SHARED MEMORY gespeicherte Informationen, z. B. Semaphore SEM,
kann sowohl von dem ersten Prozessoren CPU1 als auch dem
zweiten Prozessor CPU2 zugegriffen werden, wodurch die für
eine Synchronisation erforderliche Interprozeßkommunikation
bewirkt wird. In den beiden Prozessoren CPU1, CPU2 sind je
weils ein Register REG und ein mit dem Register REG schal
tungstechnisch verbundenes Zeroflag ZFL vorgesehen. In den
Registeren REG wird eine erste Information INF1, z. B. der Se
maphor SEM1, gespeichert. In Abhängigkeit von der ersten In
formation INF1 wird hierbei durch die schaltungstechnische
Verbindung eine in den Zeroflags ZFL gespeicherte zweite In
formation INF2 derart ausgebildet, daß sie durch einen Wert
"TRUE" anzeigen, daß ein in dem Register REG gespeicherten
Semaphor SEM1 gleich der Zahl "0" ist, und durch einen Wert
"FALSE", daß der in dem Register REG gespeicherte Semaphor
SEM1 ungleich der Zahl "0" ist. Der Betrieb der Einrichtung E
wird durch ein in der Einrichtung E vorgesehenes Betriebssy
stem BS gesteuert - in Fig. 1 durch die Bezeichnung E (BS)
angedeutet. Der Betriebsmodus BM der beiden Prozessoren CPU1,
CPU2 ist während der Ausführung der Prozesse PR1 .. PR3 auf ei
nen nicht privilegierten Betriebsmodus NPM und während der
Ausführung des Betriebssystems BS auf einen privilegierten
Betriebsmodus PM eingestellt.
In Fig. 2 ist beispielhaft dargestellt, in welcher Reihen
folge die einzelnen Teilaktionen der Änderungsaktion CHANGE
ausgeführt werden. Dabei sind immer eine Ladeaktion LOAD
(SEM), eine Bearbeitungsaktion MOD, die entweder als eine Ad
dition ADD (1) oder als eine Subtraktion SUB (1) um die Zahl
"1" ausgebildet ist, und eine Speicheraktion STORE (SEM) er
forderlich. Mit der Ladeaktion LOAD (SEM) wird der Semaphor
SEM1 vom Speicher MEM in ein Register REG des ersten Prozes
sors CPU1 geladen. Mit der Bearbeitungsaktion MOD wird der
Semaphor SEM1 innerhalb des ersten Prozessors CPU1 bearbei
tet, indem entweder jeweils die Zahl "1" addiert oder subtra
hiert wird. Durch die Speicheraktion STORE (SEM) wird der Se
maphor SEM1 von dem Register REG des ersten Prozessors CPU1
in den Speicher MEM zurückgeschrieben. Desweitern sind eine
Sperraktion LOCK sowie eine Entsperraktion UNLOCK vorgesehen.
Mit Hilfe der Sperraktion LOCK wird der Zugriffsbus ZB - und
damit verbunden der Zugriff auf den Speicher MEM für den
zweiten Prozessor CPU2 - durch die Zugriffsbussteuerung ZBS
gesperrt. Mit der Entsperraktion UNLOCK wird der Zugriffsbus
ZB durch die Zugriffsbussteuerung ZBS freigegeben. Die Sperr-
und Entsperraktionen LOCK und UNLOCK sind optional, was durch
eine gestrichelte Darstellung angedeutet ist.
Für das Ausführungsbeispiel wird angenommen, daß der erste
Prozeß PR1 und der dritte Prozeß PR3 zum Ablauf kommen, indem
dem ersten Prozeß PR1 der erste Prozessor CPU1 und dem drit
ten Prozeß PR3 der zweite Prozessor CPU2 zugeteilt ist -
diese Zuteilung ist in Fig. 1 durch die Bezeichnungen
CPU1 (PR1) und CPU2 (PR3) angedeutet. Infolge dieser Zutei
lung ist der erste Indikator FLAG1 in das Zeroflag ZFL des
ersten Prozessors CPU1 und der dritte Indikator FLAG3 in das
Zeroflag ZFL des zweiten Prozessors CPU2 geladen. Die beiden
Prozesse PR1, PR3 beabsichtigen den gleichen Informationsver
arbeitungsschritt 'Drucken einer Datei' auf demselben Be
treibsmittel Drucker - der Drucker ist in den Figuren nicht
dargestellt, da er für die Darstellung des erfindungsgemäßen
Verfahrens unwesentlich ist. Der Zugriff auf den Drucker wird
mit Hilfe des Semaphors SEM1 synchronisiert, der anfangs den
Wert "1" aufweist. Da der Informationsverarbeitungsschritt
'Drucken einer Datei' einen kritischen Abschnitt bezüglich
des Betriebsmittels Drucker darstellt, muß der erste Prozeß
PR1 das Betriebsmittel Drucker zuerst belegen. Dazu wählt er
den Semaphor SEM1 aus, mit dessen Hilfe der Zugriff auf das
Betriebsmittel gesteuert wird. Desweiteren sperrt der erste
Prozeß PR1 den Zugriffsbus ZB mit Hilfe der Sperraktion LOCK,
wodurch der zweite Prozessor CPU2 nicht mehr auf den Speicher
MEM zugreifen kann. Insbesondere wird hierdurch ein lesender
Zugriff, z. B. durch die Ladeoperation LOAD, des zweiten Pro
zessors CPU2 verhindert. Anschließend ändert der erste Prozeß
PR1 den Semaphor SEM1 mit Hilfe der Änderungsaktion CHANGE.
Hierbei lädt in der erste Prozeß PR1 in einem ersten Schritt
den Semaphor SEM1 mit Hilfe der Ladeaktion LOAD (SEM) aus dem
Speicher MEM in das Register REG des ersten Prozessors CPU1.
Das mit diesem Register REG schaltungstechnisch verbundene
Zeroflag ZFL weist zu diesem Zeitpunkt den Wert "FALSE" auf,
da der in dem Register REG gespeicherte Semaphor SEM1 den
Wert "1" aufweist, d. h. ungleich "0" ist. In einem zweiten
Schritt ändert der erste Prozeß PR1 den Semaphor SEM1, indem
er der Subtraktion SUB (1) um die Zahl "1" veranlaßt. An
schließend weist der Semaphor SEM1 in dem Register REG den
Wert "0" auf und das Zeroflag ZFL den Wert "TRUE", da der Se
maphor SEM1 infolge der Subtraktion SUB (1) gleich "0" ist -
d. h. das Zeroflag ZFL wurde automatisch infolge - d. h. in Ab
hängigkeit von - der Änderung des in dem Register REG gespei
cherten Semaphors SEM1 ausgebildet. In einem dritten Schritt
speichert der erste Prozeß PR1 den Semaphor SEM1 mit Hilfe
der Speicheraktion STORE (SEM) aus dem Register REG in den
Speicher MEM, d. h. der Semaphor SEM1 weist in dem Speicher
MEM nicht mehr den Wert "1", sondern den Wert "0" auf. Ab
schließend gibt der erste Prozeß PR1 den Zugriffsbus ZB mit
Hilfe der Entsprerraktion UNLOCK wieder frei, d. h. auf den
Semaphor SEM1 kann wieder von dem dritten Prozeß PR3 zuge
griffen werden.
Nach der Änderung des Semaphors SEM1 bewertet der erste Pro
zeß PR1 den Wert des prozeßspezifischen ersten Indikators
FLAG1. Sofern dieser den Wert "TRUE" aufweist, setzt Prozeß
PR1 seinen Ablauf fort, d. h. er veranlaßt z. B. den Informa
tionsverarbeitungsschritt 'Ausdruck einer Datei' auf dem nun
von ihm belegten Betriebsmittel Drucker. Der dritte Prozeß
PR3 ändert nach der Freigabe des Zugriffsbusses ZB ebenfalls
den Semaphor SEM1, der mittlerweile, d. h. nach der Änderung
durch den Prozeß PR1, den Wert "0" aufweist. Nach Abschluß
der Änderungsaktion CHANGE weist der Semaphor SEM1 im Spei
cher MEM den Wert "-1" auf und der prozeßspezifische dritte
Indikator FLAG3 des dritten Prozesses PR3 zeigt den Wert
"FALSE" an, da der Semaphor SEM1 nach der Änderung ungleich
"0" ist. Der dritte Prozeß PR3 bewertet ebenfalls den Wert
seines prozeßspezifischen Indikators FLAG3. Da der Wert
"FALSE" ist, setzt er seinen Ablauf nicht fort, d. h. er ist
durch den ersten Prozeß PR1 blockiert, wodurch eine Synchro
nisation von dem ersten Prozeß PR1 und dem dritten Prozeß PR3
erfolgt ist.
Bei einer Unterbrechung eines der Prozesse PR1 .. PR3, z. B. des
ersten Prozesses PR1, nach der Änderung, jedoch vor der Be
wertung des Semaphors SEM1 wird der Ablauf des ersten Prozes
ses PR1 gestoppt und die im ersten Prozessor CPU1 gespeicher
ten, für den ersten Prozeß PR1 spezifischen Informationen,
d. h. insbesondere der prozeßspezifische Indikator FLAG1, in
den Speicher MEM in den ersten Prozeßkontrollblock
PCB1 (FLAG1 (TRUE)) geschrieben - dies wird auch 'Verdrän
gung' oder 'Prozeßwechsel' genannt. Der erste Prozeß PR1
wechselt hierbei vom Zustand AKTIV in den Zustand BEREIT.
Nach einer erneuten Zuteilung eines Prozessors CPU1 .. CPU2,
z. B. des ersten Prozessors CPU1, d. h. einem Zustandswechsel
des ersten Prozesses PR1 vom Zustand BEREIT in den Zustand
AKTIV werden die für den ersten Prozeß PR1 spezifischen In
formationen vom ersten Prozeßkontrollblock
PCB1 (FLAG1 (TRUE)) wieder in den zugeteilten Prozessor CPU1
geladen. Insbesondere zeigt somit der Indikator FLAG1 nach
wie vor den Wert "TRUE" an, auch dann, wenn während der Ver
drängungsphase des ersten Prozesses PR1 z. B. der zweite Pro
zeß PR2 ebenfalls den Semaphor SEM1 geändert hat und dieser
im Speicher MEM den Wert "-1" aufweist, d. h. der erste Indi
kator FLAG1 repräsentiert den Wert den Semaphors SEM1 nach
der Änderung durch den ersten Prozeß PR1 und ist unabhängig
vom tatsächlichen Wert des Semaphors SEM1 im Speicher MEM.
Somit wird der erste Prozeß PR1 auch bei einer zwischenzeit
lichen Verdrängung synchronisiert und setzt somit seinen Ab
lauf fort, d. h. er veranlaßt z. B. den Informationsverarbei
tungsschritt 'Drucken einer Datei' auf dem von ihm belegten
Betriebsmittel Drucker.
Die Änderungsaktion CHANGE kann auf den zeitgemäß ausgebilde
ten Prozessoren CPU1 .. CPU2 in Ihrem Ablauf nicht unterbrochen
werden, da sie üblicherweise durch einen einzigen Maschinen
befehl der Prozessoren CPU1 .. CPU2 bewirkt wird. Somit ist in
einer Einrichtung E mit einem einzigen Prozessor, z. B. dem
ersten Prozessor CPU1, sichergestellt, daß die Änderung der
Semaphors SEM1 immer vollständig, d. h. auch im Speicher MEM,
bewirkt wird. In einer Einrichtung E mit mehreren Prozesso
ren, z. B. dem ersten Prozessor CPU1 und dem zweiten Prozessor
CPU2, kann die Änderungsaktion CHANGE dadurch unterbrochen
werden, daß der zweite Prozessor CPU2 mit der Ladeaktion LOAD
(SEM) auf den Speicher MEM zugreift, nachdem der Semaphor
SEM1 in den ersten Prozessor CPU1 geladen ist, jedoch bevor
der geänderte Semaphor SEM1 von dem ersten Prozessor CPU1 auf
den Speicher MEM zurückgeschrieben wird. Dies wird jedoch
durch die beschriebene Sperrung des Zugriffsbusses ZB verhin
dert. Somit ist auch in einer Einrichtung E mit mehreren Pro
zessoren CPU1 .. CPU2 sichergestellt, daß die Änderungsaktion
CHANGE immer vollständig ausgeführt wird.
In einer Variante des Verfahren weist der Semaphor SEM1 an
fangs den Wert "-1" auf. In dieser Variante bewirkt jeder
Prozeß PR1 .. PR3 in dem dritten Schritt der Änderungsaktion
CHANGE anstatt der Subtration SUB (1) die Addition ADD (1) um
den Wert "1", d. h. ein Prozeß, z. B. der erste Prozeß PR1, der
diese Änderungsaktion CHANGE zuerst bewirkt, wird synchroni
siert, da der Semaphor SEM1 nach der Addition ADD (1) den
Wert "0" und folglich der prozeßspezifische erste Indikator
FLAG1 den Wert "TRUE" aufweist.
Claims (9)
1. Verfahren zur Synchronisation von zumindest zwei Prozessen
(PR1 .. PR3) mit Hilfe eines Semaphors (SEM) in einer Einrich
tung (E), in der
- - zumindest ein Prozessor (CPU1 .. CPU2) mit zumindest einem ersten Speicherbereich (REG) zur Speicherung einer ersten Information (INF1) und zumindest einem zweiten Speicherbe reich (ZFL), der mit dem ersten Speicherbereich (REG) der art verbunden ist, daß eine in dem zweiten Speicherbereich (ZFL) gespeicherte zweite Information (INF2) in Abhängig keit von der in dem ersten Speicherbereich (REG) gespei cherten ersten Information (INF1) ausgebildet wird,
- - in den Prozessen (PR1 .. PR3) zumindest ein prozeßspezifi scher Indikator (FLAG1 .. FLAG3) und
- - bei einer Änderung des Semaphors (SEM) durch einen der Pro zesse (PR1 .. PR3) die Speicherung des Semaphors (SEM) in dem ersten Speicherbereich (REG) und des für diesen Prozeß (PR1 .. PR3) spezifischen Indikators (FLAG1 .. FLAG3) in dem zweiten Speicherbereich (ZFL)
- 1. ein Synchronisationswunsch von jedem Prozeß (PR1 .. PR3) durch eine Änderung des Semaphors (SEM) angezeigt wird, und
- 2. die Synchronisation in Abhängigkeit von den bei den Än derungen des Semaphors (SEM) ausgebildeten Indikatoren (FLAG1 .. FLAG3) erfolgt.
2. Verfahren nach Anspruch 1,
dadurch gekennzeichnet,
daß die Änderung des Semaphors (SEM) durch eine nicht unter
brechbare Änderungsaktion (CHANGE) erfolgt.
3. Verfahren nach einem der Ansprüche 1 oder 2,
dadurch gekennzeichnet,
daß der Prozessor (CPU1 .. CPU2) bei der Bearbeitung der Pro
zesse auf einen nicht privilegierten Betriebsmodus (NPM) ein
gestellt ist, in dem er zwischen zwei aufeinanderfolgenden
Maschinenbefehlen unterbrochen werden kann und in dem zumin
dest ein diese Unterbrechbarkeit verhindernder Maschinenbe
fehl nicht ausgeführt werden kann.
4. Verfahren nach einem der Ansprüche 1 bis 3,
dadurch gekennzeichnet,
daß der Zugriff auf ein in der Einrichtung (E) vorgesehenes
Speichermittel (MEM), in dem zumindest der Semaphor (SEM) ge
speichert ist, zumindest während der Änderung des Semaphors
(SEM) auf den die Änderung bewirkenden Prozessor (CPU1 .. CPU2)
begrenzt wird.
5. Verfahren nach einem der vorstehenden Ansprüche,
dadurch gekennzeichnet,
daß der Semaphor (SEM) durch einen ganzzahligen Datentyp re
präsentiert wird.
6. Verfahren nach Anspruch 5,
dadurch gekennzeichnet,
daß die Änderung des Semaphors (SEM) jeweils durch eine Sub
traktion (SUB) um die Zahl "1" bewirkt wird.
7. Verfahren nach Anspruch 5,
dadurch gekennzeichnet,
daß die Änderung des Semaphors (SEM) jeweils durch eine Addi
tion (ADD) um die Zahl "1" bewirkt wird.
8. Verfahren nach einem der vorstehenden Ansprüche,
dadurch gekennzeichnet,
daß der Prozeß (PR1 .. PR3) synchronisiert wird, dessen prozeß
spezifischer Indikator (FLAG1 .. FLAG3) bei der Änderung des
Semaphors (SEM) derart ausgebildet wird, daß er eine Änderung
des Semaphors (SEM) zu der Zahl "0" anzeigt.
9. Verfahren nach einem der vorstehenden Ansprüche,
dadurch gekennzeichnet,
daß mehrere Semaphore (SEM) vorgesehen sind, mit deren Hilfe
unterschiedliche Synchronisationen zwischen den Prozessen
(PR1 .. PR3) bewirkt werden.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE1998157332 DE19857332C1 (de) | 1998-12-11 | 1998-12-11 | Verfahren zur Synchronisation von Prozessen |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE1998157332 DE19857332C1 (de) | 1998-12-11 | 1998-12-11 | Verfahren zur Synchronisation von Prozessen |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19857332C1 true DE19857332C1 (de) | 2000-06-15 |
Family
ID=7890834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1998157332 Expired - Fee Related DE19857332C1 (de) | 1998-12-11 | 1998-12-11 | Verfahren zur Synchronisation von Prozessen |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE19857332C1 (de) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19957594A1 (de) * | 1999-11-30 | 2001-06-07 | Oce Printing Systems Gmbh | Verfahren zum Synchronisieren von Programmabschnitten eines Computerprogramms |
DE10063982A1 (de) * | 2000-12-14 | 2002-07-04 | Ifak Inst Fuer Automation Und | Feldgerät für Automatisierungssysteme |
EP1353496A3 (de) * | 2002-04-09 | 2005-05-04 | Canon Kabushiki Kaisha | Aufzeichnungssteuergerät und dieses benutzendes Steuerverfahren |
-
1998
- 1998-12-11 DE DE1998157332 patent/DE19857332C1/de not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
GILOI, Wolfgang: Rechnerarchitektur, Springer Verlag, Berlin, Heidelberg, New York, 1981, Hei- delberger Taschenbücher, Sammlung Informatik, S. 50-52 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19957594A1 (de) * | 1999-11-30 | 2001-06-07 | Oce Printing Systems Gmbh | Verfahren zum Synchronisieren von Programmabschnitten eines Computerprogramms |
DE19957594B4 (de) * | 1999-11-30 | 2004-08-26 | OCé PRINTING SYSTEMS GMBH | Verfahren zum Synchronisieren von threads eines Computerprogramms |
US7266825B2 (en) | 1999-11-30 | 2007-09-04 | Oce Printing Systems Gmbh | Method for synchronizing program sections of a computer program |
DE10063982A1 (de) * | 2000-12-14 | 2002-07-04 | Ifak Inst Fuer Automation Und | Feldgerät für Automatisierungssysteme |
US7013185B2 (en) | 2000-12-14 | 2006-03-14 | Ifak Institut Fuer Automation Und Kommunikation E.V. Magdeburg | Field device for automation systems |
EP1353496A3 (de) * | 2002-04-09 | 2005-05-04 | Canon Kabushiki Kaisha | Aufzeichnungssteuergerät und dieses benutzendes Steuerverfahren |
US7436529B2 (en) | 2002-04-09 | 2008-10-14 | Canon Kabushiki Kaisha | Recording control apparatus and control method using the same recording control apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2714805C2 (de) | ||
DE69327637T2 (de) | Superskalar-Computersystem | |
DE4104781C2 (de) | Speicherzugriffssteuerung | |
DE69024072T2 (de) | Verfahren und System zur gegenseitig ausschliessenden Betriebsmittelsteuerung | |
DE2411963C3 (de) | Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken | |
DE2722099C2 (de) | ||
DE3611223C2 (de) | ||
DE3508291C2 (de) | Datenverarbeitungssystem | |
DE2629459C2 (de) | ||
DE1900141C3 (de) | HilfsSteuerwerk für eine Datenverarbeitungsanlage | |
DE2030812A1 (de) | Modulare Datenrechnersysteme | |
DE2524229A1 (de) | Datenverarbeitungssystem mit pyramidenfoermiger hierarchie des steuerflusses | |
DE4216871A1 (de) | Ausfuehrungsordnen zum sicherstellen der serienherstellbarkeit verteilter transaktionen | |
DE68924400T2 (de) | Fliessbanddatenverarbeitungsvorrichtung. | |
DE69231174T2 (de) | Verfahren und Vorrichtung für Register zum atomaren Zugriff mit Einzelbit-Setzen und -Rücksetzen ohne programmierte gegenseitige Verriegelung | |
DE3886756T2 (de) | Betriebsmittelzugriff für Multiprozessorrechnersystem. | |
DE4101623A1 (de) | Informationsverarbeitungssystem | |
DE2737353A1 (de) | Verfahren zum testen der adressbildung in einem dv-system und vorrichtung zur durchfuehrung des verfahrens | |
DE69230626T2 (de) | Informationsverarbeitungssystem mit der Fähigkeit zum Betreiben von mehreren Vektorpipelines in zwei unterscheidlichen Wirkungsweisen | |
DE2101949A1 (de) | Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage | |
DE69622301T2 (de) | Konsistenzprüfung einer Instruktionsverarbeitungsfolge für ein Multiprozessorsystem | |
DE2912073C2 (de) | ||
DE69132733T2 (de) | Unterbrechungsverarbeitungssystem | |
DE19857332C1 (de) | Verfahren zur Synchronisation von Prozessen | |
DE69033239T2 (de) | Rechner mit Pipeline-Struktur |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8100 | Publication of the examined application without publication of unexamined application | ||
D1 | Grant (no unexamined application published) patent law 81 | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |