Was ist ein MUTEX?
Ein Objekt zum gegenseitigen Ausschluss (MUTEX) ist ein Objekt, das zur Verwendung in Computerprogrammen erstellt wurde. Die wesentliche Funktion von MUTEX besteht darin, die Verwendung einer einzelnen Ressource durch mehrere Programmthreads zu ermöglichen. Im Allgemeinen besteht die Funktionalität von Objekten zum gegenseitigen Ausschluss darin, die Verwendung einer einzelnen Ressource zu ermöglichen, indem eine Umgebung erstellt wird, in der der Zugriff auf die Ressource zwischen den verschiedenen Aspekten des Programms kontinuierlich hin und her geleitet wird.
Der Prozess zum Aktivieren und Erstellen eines MUTEX findet statt, wenn die Computerprogrammanwendung geöffnet wird. Im Wesentlichen erstellt das Programm das MUTEX und ordnet es einer bestimmten Ressource zu, die für die effiziente Funktion des offenen Programms erforderlich ist. Wenn die Ressourcen aufgerufen werden, weist das Betriebssystem dem MUTEX einen eindeutigen Namen zu und verwendet diesen zur Identifizierung des Prozesses, solange das Programm geöffnet bleibt.
Sobald der MUTEX aktiviert und für die Sitzung benannt ist, kann auf jeden anderen Thread des Programms zugegriffen werden, der diese Ressource benötigt, auch wenn die Ressource bereits von einem anderen Thread aktiv verwendet wird. Indem die MUTEX-Funktion angibt, dass die Ressource benötigt wird, wechselt sie den Zugriff auf die Ressource zwischen den Threads hin und her. Für den Endbenutzer ist dieser Prozess transparent. In jeder Hinsicht scheint es, dass zwei Benutzer oder zwei Threads gleichzeitig dieselbe Ressource verwenden.
Während die Geschwindigkeit der Zugriffsübertragung so hoch ist, dass sie für den Endbenutzer nicht einmal spürbar ist, sollte beachtet werden, dass eine Ressource bei jeder Verwendung effektiv an den einen Thread in der Sequenz gebunden ist. Ein anderer Thread, der die Verwendung der Ressource erfordert, gibt eine Anforderung aus, die in eine Warteschlange gestellt wird und dort verbleibt, bis der erste Thread die aktive Verwendung beendet hat. Zu diesem Zeitpunkt ist die Ressource entsperrt, und die MUTEX-Funktion ermöglicht dem nächsten Thread in der Warteschlange den aktiven Zugriff. Wenn ein dritter Thread aktiv ist und die Ressource benötigt, wird dieser Thread auch von MUTEX in die Warteschlange eingereiht und rotierend freigegeben.