34 - 10.3.2 Semaphor: Einführung [ID:25072]
50 von 68 angezeigt

Zunächst eine kurze Einführung in den Stoff von heute.

Nun, Leerstoff ist ein grundsätzliches Konzept, also vielleicht das Konzept der

Maschinenprogramm-Ebene überhaupt, nämlich der Simaphor-Technik, um

gleichzeitig Prozesse synchronisieren zu können, mit Primitiven dieser

Maschinenprogramm-Ebene implementiert, im Wesentlichen durch Mechanismen, die durch

ein Betriebssystem bereitgestellt werden. Wir werden einen binären Simaphor von

dem sogenannten allgemeinen Simaphor differenzieren. Für diese beiden

Begrifflichkeiten gibt es auch noch andere Bezeichnungen, so was wie

ausschließenden Simaphor für den binären oder der zählende Simaphor, für

den allgemeinen Simaphor. Dort findet man auch den sogenannten privaten

Simaphor angesiedelt. Im Wesentlichen werden wir uns also auf diese

Hauptbereiche binär allgemein ausschließend zählend denn im Wesentlichen

konzentrieren. Das sind zwei Varianten für bestimmte

Synchronisationsmuster, die wir bereits kennengelernt haben, nämlich die ein- und

die mehrseitige Synchronisation. Wir werden die Simaphor-Typen diesen

Synchronisationsmustern und diesen Synchronisationsarten denn entsprechend

zuordnen. Wir werden sehen, dass die Implementierung

eines Simaphors selbst alles andere als trivial ist. Wir verwenden zum Beispiel

Simaphor unter anderem um kritische Abschnitte, um wettlaufkritische

Aktionen letztlich zu bewältigen, müssen aber feststellen, dass bei der

Implementierung eines Simaphors wir selbst vor dem Problem stehen, diese

Simaphor-Primitiven vor wettlaufkritischen Aktionen zu schützen.

Das heißt, sie sind selbst kritische Abschnitte. Wir müssen also diese

Primitiven der nach ihr Ablaufinvariant auslegen, weil wir sie selbst nicht durch

Simaphore schützen können. Das führt dann dazu, dass wir auf geeignete

Art und Weise eben unteilbare atomare Simaphor-Primitiven schaffen müssen.

Da sehen wir eben ein Beispiel eines typischen kritischen Abschnitts, wie er

denn halt etwa auf einer Betriebssystemebene existieren würde,

wenn man davon ausgeht, dass ein Betriebssystem denn so was wie ein

Simaphor-Konzept zur Verfügung stellt. Bei dieser Implementierung und bei den

Koordinierungsmaßnahmen, die innerhalb eines Simaphors, also innerhalb dieser

Primitiven des Simaphors, durchzuführen sind, werden wir sehen, dass hier die

Bedingungs-Synchronisation eine wichtige Rolle spielt auf Basis von Ereignisvariablen,

um letztendlich den koordinierten Ablauf der Operation oder der Prozesse,

die sich in diesen Simaphor-Operationen befinden, denn herbeiführen zu können.

Wir werden weiterhin den sogenannten Mutex, ein bestimmtes Konzept, was man eben

auch in der Literatur findet zum wechselseitigen Ausschluss, als

Basistechnik kennenlernen kann. Diesen Mutex werden wir eben als eine

bestimmte Erweiterung, eine funktionelle Erweiterung eines binären Simaphors

kennenlernen und zwar in dem Sinne, dass man damit einen sogenannten

autorisierten wechselseitigen Ausschluss durchführen kann.

Wir werden sehen, dass so ein Mutex eben so ein ausschließender oder ein binärer

Simaphor ist, der einem die Kontrolle der Eigentümerschaft über einen solchen

Simaphor denn eben bereitstellt. Auf der anderen Seite werden wir so gewisse

Kritikpunkte, die mit Simaphoren immer genannt worden sind, nämlich die

Tatsache, dass man eigentlich gar nicht genau weiß, welcher Prozess denn gerade

im Besitz eines Simaphors ist und welcher Prozess zum Beispiel einen Simaphor

freigeben darf, dass es gar kein Makel ist, sondern wir werden hoffentlich

erkennen, dass eben diese Eigenschaft wesentlich ist für die Implementierung

eines Simaphors und man dann praktisch diese Fragen der Eigentümerschaften

Teil eines Kapitels:
10.3 Semaphor

Zugänglich über

Offener Zugang

Dauer

00:05:56 Min

Aufnahmedatum

2020-11-27

Hochgeladen am

2020-11-27 13:49:02

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen