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
Presenters
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