Exclusión mutua (mutex)

Definición - ¿Qué significa Exclusión Mutua (Mutex)?

Una exclusión mutua (mutex) es un objeto de programa que evita el acceso simultáneo a un recurso compartido. Este concepto se usa en programación concurrente con una sección crítica, un fragmento de código en el que los procesos o subprocesos acceden a un recurso compartido. Solo un subproceso posee el mutex a la vez, por lo que se crea un mutex con un nombre único cuando se inicia un programa. Cuando un subproceso contiene un recurso, tiene que bloquear el mutex de otros subprocesos para evitar el acceso simultáneo al recurso. Al liberar el recurso, el hilo desbloquea el mutex.

Techinfo explica la exclusión mutua (Mutex)

Mutex entra en escena cuando dos subprocesos trabajan en los mismos datos al mismo tiempo. Actúa como un candado y es la herramienta de sincronización más básica. Cuando un subproceso intenta adquirir un mutex, obtiene el mutex si está disponible; de ​​lo contrario, el subproceso se establece en condición de suspensión. La exclusión mutua reduce la latencia y las esperas ocupadas mediante el uso de colas y cambios de contexto. El mutex se puede aplicar tanto a nivel de hardware como de software.

Deshabilitar las interrupciones para el menor número de instrucciones es la mejor manera de hacer cumplir el mutex a nivel del kernel y evitar la corrupción de las estructuras de datos compartidas. Si varios procesadores comparten la misma memoria, se establece un indicador para habilitar y deshabilitar la adquisición de recursos según la disponibilidad. El mecanismo de espera ocupada impone la exclusión mutua en las áreas de software. Está equipado con algoritmos como el algoritmo de Dekker, el algoritmo de panadería en blanco y negro, el algoritmo de Szymanski, el algoritmo de Peterson y el algoritmo de panadería de Lamport.

Se pueden definir lectores mutuamente excluyentes y códigos de clase de mutex de lectura / escritura para una implementación eficiente de mutex.