Gegenseitiger Ausschluss (Mutex)

Autor: Lewis Jackson
Erstelldatum: 8 Kann 2021
Aktualisierungsdatum: 15 Kann 2024
Anonim
Semaphore - Teil 1 Grundprinzip
Video: Semaphore - Teil 1 Grundprinzip

Inhalt

Definition - Was bedeutet Gegenseitiger Ausschluss (Mutex)?

Ein gegenseitiger Ausschluss (Mutex) ist ein Programmobjekt, das den gleichzeitigen Zugriff auf eine gemeinsam genutzte Ressource verhindert. Dieses Konzept wird bei der gleichzeitigen Programmierung mit einem kritischen Abschnitt verwendet, einem Teil des Codes, in dem Prozesse oder Threads auf eine gemeinsam genutzte Ressource zugreifen. Es besitzt immer nur ein Thread den Mutex. Daher wird beim Start eines Programms ein Mutex mit einem eindeutigen Namen erstellt. Wenn ein Thread eine Ressource enthält, muss er den Mutex von anderen Threads sperren, um den gleichzeitigen Zugriff auf die Ressource zu verhindern. Beim Freigeben der Ressource gibt der Thread den Mutex frei.


Eine Einführung in Microsoft Azure und die Microsoft Cloud | In diesem Handbuch erfahren Sie, worum es beim Cloud-Computing geht und wie Microsoft Azure Sie bei der Migration und Ausführung Ihres Unternehmens aus der Cloud unterstützen kann.

Techopedia erklärt gegenseitigen Ausschluss (Mutex)

Mutex kommt ins Spiel, wenn zwei Threads gleichzeitig mit denselben Daten arbeiten. Es fungiert als Sperre und ist das grundlegendste Synchronisierungswerkzeug. Wenn ein Thread versucht, einen Mutex abzurufen, erhält er den Mutex, falls dieser verfügbar ist. Andernfalls wird der Thread in den Ruhezustand versetzt. Der gegenseitige Ausschluss verringert die Latenz und Wartezeiten bei Warteschlangen und Verbindungsschaltern. Mutex kann sowohl auf Hardware- als auch auf Software-Ebene durchgesetzt werden.

Das Deaktivieren von Interrupts für die kleinste Anzahl von Anweisungen ist die beste Möglichkeit, Mutex auf Kernelebene durchzusetzen und die Beschädigung gemeinsam genutzter Datenstrukturen zu verhindern. Wenn sich mehrere Prozessoren den gleichen Speicher teilen, wird ein Flag gesetzt, um die Ressourcenerfassung je nach Verfügbarkeit zu aktivieren und zu deaktivieren. Der Besetzt-Wartemechanismus erzwingt Mutex in den Softwarebereichen. Dazu gehören Algorithmen wie der Dekkers-Algorithmus, der Schwarz-Weiß-Bäckereialgorithmus, der Szymanskis-Algorithmus, der Petersons-Algorithmus und der Lamports-Bäckereialgorithmus.


Für eine effiziente Implementierung von Mutex können sich gegenseitig ausschließende Leser und Lese- / Schreib-Mutex-Klassencodes definiert werden.