Mutex y semáforo

Anonim

Mutex vs semáforo

Mutex se usa para proporcionar acceso serializado a una parte de un código de reingreso que no puede ser ejecutado en paralelo por más de un hilo. Un mutex se asegura de que solo un código pueda acceder a la sección controlada a la vez. Para obtener acceso, se hacen otros códigos para esperar hasta que salga el primer código. Puedes considerarlo como una llave de una habitación. La persona que tiene acceso a esa clave primero va primero. Hasta el momento en que la persona regrese, nadie más puede acceder a esa habitación.

Semaphore da acceso a un recurso compartido a varios usuarios simultáneamente. A medida que aumenta el número de usuarios que acceden al recurso, el recuento de semáforos se reduce. Una vez que los usuarios comienzan a liberar el recurso, el recuento de semáforos comienza a aumentar nuevamente. Es utilizado por aplicaciones que requieren sincronización. El número de usuarios simultáneos está restringido según el límite del semáforo. Un semáforo se puede considerar como un conjunto de claves similares a cerraduras similares a una sola habitación, pero estas claves son limitadas en número. Las personas que tienen estas llaves pueden compartir la habitación.

Diferencias entre mutex y semáforo:

1. Mutex se usa para la exclusión mutua, mientras que el semáforo encuentra su utilidad en ambos casos.

Notificación y exclusiones mutuas.

2. Mutex proporciona acceso en serie a recursos comunes, mientras que el semáforo pone un límite a

El número de accesos concurrentes.

3. Un mutex funciona con un hilo a la vez, mientras que el semáforo gestiona varios hilos.

juntos.

4. Mutex tiene un concepto de propietario donde el proceso que bloquea el mutex solo puede

reabrelo Ninguno de los otros procesos puede hacerlo. Pero en el caso del semáforo, tales

las restricciones no existen

5. Un mutex es un mecanismo de bloqueo, mientras que un semáforo es un mecanismo de señalización con

Respecto a la sincronización de acceso a un recurso.

Resumen:

1. Semánticamente y en teoría, tanto mutex como semáforo son iguales. Uno puede ser

Implementado utilizando el otro, pero prácticamente ambos son diferentes.

2. Un mutex no es más que un semáforo con un valor de conteo igual a uno.

3. Un mutex es un semáforo con características adicionales como propiedad e inversión de prioridad.

proteccion.

4. Un semáforo es un tipo de datos abstracto que controla el acceso a un recurso común mediante

Procesos múltiples en un entorno de programación paralelo.

5. El semáforo encuentra su uso en muchos sistemas operativos como primitivo de sincronización.

6. Tanto el mutex como el semáforo son recursos del núcleo que se utilizan con el fin de

sincronización.