Diferencia entre Mutex y Semáforo
Mutex vs Semáforo
Mutex se utiliza para proporcionar acceso en serie a una sección de código reentrante que no puede ejecutarse en paralelo por más de un subproceso. Un mutex garantiza que solo un código pueda acceder a la sección de control a la vez. Para obtener acceso, se hace que otros códigos esperen hasta que salga el primer código. Puedes considerarlo una llave de tu habitación. La persona que tiene acceso a esa clave 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 al mismo tiempo. A medida que aumenta el número de usuarios que acceden al recurso, el número de semáforos disminuye. Cuando los usuarios comienzan a liberar el recurso, el recuento de semáforos comienza a aumentar nuevamente. Lo utilizan las aplicaciones que requieren sincronización. El número de usuarios simultáneos está limitado según el límite de semáforos. Se puede pensar en un semáforo como un manojo de llaves similar a una cerradura, como una habitación individual, pero estas llaves tienen un número limitado. Las personas con estas llaves pueden compartir la habitación.
Diferencias entre mutex y semáforo:
1. Mutex se usa para la exclusión mutua, pero el semáforo encuentra su utilidad en ambos casos
notificación y exclusión mutua.
2. Mutex proporciona acceso serial a recursos comunes pero el semáforo lo limita
número de accesos simultáneos.
3. Un mutex funciona con un subproceso a la vez, mientras que un semáforo administra múltiples subprocesos
juntos.
4. Mutex tiene un concepto de propietario donde solo el proceso que bloquea el mutex puede
reabrirlo. Ninguno de los otros procesos puede hacer eso. Pero en el caso de un semáforo, tal
no hay restricciones.
5. Un mutex es un mecanismo de bloqueo mientras que un semáforo es un mecanismo de señalización
para sincronizar el acceso a un recurso.
Resumen:
1. Semántica y teóricamente, tanto el mutex como el semáforo son lo mismo. uno puede ser
en efecto usando el otro lado, pero en la práctica los dos 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 dato abstracto que controla el acceso a un recurso común a través de
múltiples procesos en un entorno de programación paralelo.
5. Semaphore encuentra su uso en muchos sistemas operativos como una primitiva de sincronización.
6. Mutex y semáforo son recursos del kernel que se utilizan para este fin.
sincronizado