Volver al temario
Tema 04 · 70 páginas

Comunicación y sincronización

Tema completo Modo estudio
GUÍA DE ESTUDIO · Páginas 2829 Ver PDF

3.1.2. Ejemplo: la exclusión mutua mediante mensajes

Material de estudio basado en la edición de 2014. Borrador pendiente de revisión editorial independiente.

Ejemplo: Exclusión Mutua Mediante Mensajes

Resumen

La exclusión mutua se puede implementar fácilmente utilizando mensajes indirectos (buzones).

Mecanismo

  1. Se crea un buzón con un mensaje de cualquier longitud.
  2. Para acceder a la sección crítica, el proceso ejecuta receive(buzón, mensaje):
    • Si el buzón está vacío → el proceso se bloquea.
    • Si el buzón está lleno → lee el mensaje, deja el buzón vacío y accede a la sección.
  3. Al salir, ejecuta send(buzón, mensaje) para liberar la sección.
receive(buzón, mensaje);   /* entrada exclusión mutua */
/* sección crítica */
...
send(buzón, mensaje);      /* salida exclusión mutua */

Equivalencia

El buzón desempeña un papel equivalente al de un semáforo binario. También sería posible implementar semáforos n-arios permitiendo hasta n mensajes en el buzón.

Ideas clave

  • Los buzones vacíos/llenos implementan exclusión mutua equivalente a semáforos binarios.
  • Un buzón con un solo mensaje actúa como semáforo binario.
  • Permitiendo n mensajes, se obtiene un semáforo n-ario.
Consultar el contenido original