1991 | OriginalPaper | Chapter
Geräte-Prozesse, Nebenläufigkeit und Interrupts
Author : Professor Dr. Niklaus Wirth
Published in: Programmieren in Modula-2
Publisher: Springer Berlin Heidelberg
Included in: Professional Book Archive
Activate our intelligent search to find suitable subject content or patents.
Select sections of text to find matching patents with Artificial Intelligence. powered by
Select sections of text to find additional relevant content using AI-assisted search. powered by
Im letzten Kapitel diskutierten wir Systeme mit mehreren Prozessen und die Simulation nebenläufiger Prozesse auf einem einzigen Prozessor durch Verteilen der Prozessorzeiten auf die einzelnen Prozesse (time sharing). Jetzt betrachten wir die umgekehrte Situation, in der sich mehrere Prozessoren die Ausführung eines einzigen Prozesses teilen. Schauen wir uns der Einfacheit halber einen zyklischen Prozeß an, bestehend aus einem produzierenden und einem konsumierenden Teil. Der Prozeß soll so formuliert sein:
LOOP produce(x); consume(x) END
Nehmen wir an, daß jeder Teil nur von einem speziellen Prozessor ausgeführt werden kann. Wie wir wissen, kann zu einem gegebenen Zeitpunkt nur einer der beiden Prozessoren aktiv sein. Sie müssen synchronisiert werden. Man erreicht dies leicht durch Einführung einer Synchronisationsvariablen s. Sie hat die Bedeutung von, sagen wir “der Verbraucher ist gerade aktiv” (mit Anfangswert FALSE). Jeder der beiden sequentiellen Prozessoren kann nun durch ein eigenes Programm beschrieben werden, das wiederum zyklisch ist.