38 - 10.3.1 Semaphor: Mutex [ID:25076]
50 von 156 angezeigt

Nun der Mutex als Ergänzung zum Simaphore. Ein weiteres wichtiges Konzept zum Schutz

kritischer Abschnitte. Mutex, der Name deutet schon ein bisschen an, Mutual Exclusion. Dafür steht

diese Abkürzung. Ist also ein Konstrukt, um kritische Abschnitte zu schützen. Wir wollen

aber hier eine Abgrenzung zum Simafor vornehmen. Wir wollen Gemeinsamkeiten und Unterschiede

zwischen Simafor und Mutex mal kennenlernen. Und bei der Implementierung werden wir dann

sehen, dass wir bei der Implementierung des Mutex uns letztendlich auch auf einen binären

Simafor beziehen werden. Nun, wenn man die beiden Konzepte miteinander vergleicht, dann

können wir für den Simafor nun erstmal als Merkmal festhalten, dass er nämlich von jedem

Prozess freigegeben werden kann. Nun, das ist nicht etwa ein Nachteil, sowas feststellen

zu müssen, denn wir würden ohne solch ein Merkmal sowas wie Bedingungs-Synchronisation,

eine einseitige Synchronisation auf Basis von allgemeinen Simaforen überhaupt gar nicht

realisieren können. Also es ist eigentlich sogar eine Anforderung an einen allgemeinen

Simafor, wenn wir einfach nur das Rollenspiel betrachten. P wird durchgeführt von dem Prozess,

der als Konsument in Erscheinung tritt und V wird nachher dann durchgeführt von dem

Prozess, der als Produzent eines Signals, eines Datums, eines konsumierbaren Betriebsmittels

sozusagen, gilt, wobei dann dieses konsumierbare Betrieb über einen allgemeinen Simafor verwaltet

wird. Für den binären Simafor ist es eine Option, die man halt sehen kann, dass ein

Simafor von jedem Prozess freigegeben werden kann oder auch das negierte, dass man es nicht

möchte, dass ein Simafor von jedem Prozess freigegeben wird, aber bei Weitem nicht zu

erzwingen. Denn hier müssen wir einfach mal differenzieren, wofür der binäre Simafor

denn verwendet wird zum Schutz eines kritischen Abschnitts A und B, um was für eine Art von

Abschnitt es sich handelt. Also ob wir innerhalb des kritischen Abschnitts praktisch einen

Prozesswechsel durchführen oder nicht. Wenn wir einen kritischen Abschnitt ohne Prozesswechsel

haben, dann würden wir sagen, wenn wäre es korrekt, dass eigentlich der Prozess den

Simafor wieder freigeben wird, der den kritischen Abschnitt betreten hat. Wenn wir aber innerhalb

eines solchen kritischen Abschnitts einen Prozesswechsel vornehmen, dann sieht die Welt

schon ganz anders aus, denn kann es eigentlich so sein, dass man fordern muss, dass eben

ein anderer Prozess den Simafor freigeben muss. Und damit sehen wir dann auch, dass

beim binären Simafor es durchaus Fälle gibt, wo es vollkommen korrekt ist zu erlauben,

dass eben jeder Prozess diesen Simafor freigeben kann. Nun, für den Mutex wird eben generell

festgehalten als Merkmal, dass hier nur der jeweilige Besitzerprozess ein solches Objekt

freigeben kann. Also Mutex als Technik um einen kritischen Abschnitt zu schützen, würde

dann bedeuten, dass nur der Prozess, der gerade erfolgreich in diesen kritischen Abschnitt

eingetreten ist, am Ende zur Freigabe dieses kritischen Abschnitts eben den betreffenden

Mutex, den man zum Schutz verwendet hat, denn freigeben darf. Das ist ein Vorteil, zweifelsohne,

aber man gibt es fälschlicherweise als ein Vorteil gegenüber einem Simafor, einem binären

Simafor insbesondere halt immer an. Wobei wir jetzt halt betrachten müssen, was ich

ja gerade in Bezug auf diesen Simafor gesagt habe. Es würde nur dann ein Vorteil sein,

wenn man mit dem Mutex natürlich einen kritischen Abschnitt schützt, wo eben kein Prozesswechsel

drin vorgesehen ist. Würde ein Prozesswechsel in diesem Abschnitt denn stattfinden, hat

man schon Probleme mit dieser Aussage oder mit einer Forderung zu sagen, nur der Besitzerprozess

darf dann diesen Mutex freigeben. Das ist eine Option, wie wir gerade gesehen haben. Auf der

technischen Ebene im Vergleich würde dann eben natürlich eine Prüfung, eine Berechnung

der Berechtigung der Freigabe eines kritischen Abschnitts stehen. Für den allgemeinen Simafor

ist das ungeeignet, so eine Prüfung vorzunehmen. Optional wäre es für einen binären Simafor,

es hängt jetzt davon ab, wie man den denn einsetzt, aber wir würden sagen, es notwendig

für den Mutex. Da müssen wir aber auch beachten, wofür den Mutex gerade nicht eingesetzt werden

sollte. Also notwendig für den Mutex, weil wir ja als Merkmal mit dem Mutex assoziieren,

dass dort überprüft wird, ob denn der Prozess, der jetzt praktisch den Mutex freigibt, also

aus den kritischen Abschnitt heraus gibt, überhaupt dazu autorisiert ist. Das muss der Prozess

Teil eines Kapitels:
10.3 Semaphor

Zugänglich über

Offener Zugang

Dauer

00:15:37 Min

Aufnahmedatum

2020-11-27

Hochgeladen am

2020-11-27 15:48:04

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen