¿Qué es un MUTEX?
Un objeto de exclusión mutua, o MUTEX, es un objeto creado para su uso en programas informáticos. La función esencial de MUTEX es hacer posible que un hilo de múltiples programas haga uso de un solo recurso. En general, la funcionalidad de los objetos de exclusión mutua es permitir este uso de un único recurso creando un entorno en el que el acceso al recurso se pase continuamente de un lado a otro entre los diversos aspectos del programa.
El proceso de activación y creación de un MUTEX tiene lugar cuando se abre la aplicación del programa de computadora. Esencialmente, el programa creará el MUTEX y lo relacionará con un recurso específico que se necesita para la función eficiente del programa abierto. A medida que se soliciten los recursos, el sistema operativo asignará un nombre único al MUTEX y lo usará para identificar el proceso mientras el programa permanezca abierto.
Una vez que el MUTEX se activa y se nombra para la sesión, cualquier otro hilo del programa que requiera este recurso puede tener acceso, aunque el recurso ya esté en uso activo por otro hilo. Al indicar la necesidad del recurso, la función MUTEX comenzará a alternar el acceso del recurso de un lado a otro entre los subprocesos. Para el usuario final, este proceso es transparente. A todos los efectos prácticos, parece que dos usuarios o dos hilos nos están haciendo del mismo recurso simultáneamente.
Si bien la velocidad de la transferencia de acceso es tan rápida que ni siquiera es notoria para el usuario final, debe tenerse en cuenta que cada vez que se utiliza un recurso, está efectivamente bloqueado en un hilo en la secuencia. Otro hilo que requiera el uso del recurso emitirá una solicitud que irá a una cola y permanecerá allí hasta que el primer hilo haya terminado con el uso activo. En ese punto, el recurso se desbloquea y la función MUTEX permite el siguiente subproceso en el acceso activo de la cola. Si un tercer subproceso está activo y necesita el recurso, MUTEX también alineará este subproceso en la cola y otorgará acceso de forma rotativa.