DE19857332C1 - Verfahren zur Synchronisation von Prozessen - Google Patents

Verfahren zur Synchronisation von Prozessen

Info

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
Application number
DE1998157332
Other languages
English (en)
Inventor
Dieter Esswein
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE1998157332 priority Critical patent/DE19857332C1/de
Application granted granted Critical
Publication of DE19857332C1 publication Critical patent/DE19857332C1/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

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.
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)
vorgesehen sind, wobei
  • 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.
DE1998157332 1998-12-11 1998-12-11 Verfahren zur Synchronisation von Prozessen Expired - Fee Related DE19857332C1 (de)

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)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GILOI, Wolfgang: Rechnerarchitektur, Springer Verlag, Berlin, Heidelberg, New York, 1981, Hei- delberger Taschenbücher, Sammlung Informatik, S. 50-52 *

Cited By (7)

* Cited by examiner, † Cited by third party
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