Unidad 3: Comunicación y Sincronización

El arte de hacer que los procesos cooperen sin caos.

El Desafío de la Cooperación

Cuando múltiples procesos necesitan trabajar juntos (por ejemplo, compartir datos), surgen dos necesidades fundamentales.

Comunicación

¿Cómo intercambian información los procesos?

Sincronización

¿Cómo se coordina el orden de sus acciones?

Problema: Condición de Carrera

Ocurre cuando múltiples procesos acceden y manipulan los mismos datos compartidos, y el resultado final depende del orden exacto en que se ejecutan sus instrucciones.

Analogía: Dos personas intentando editar el mismo documento de texto a la vez sin coordinación. El resultado puede ser un desastre.

Problema: Abrazo Mortal (Deadlock)

Sucede cuando dos o más procesos se bloquean mutuamente, cada uno esperando un recurso que el otro proceso tiene. Ninguno puede avanzar.

Analogía: Dos personas que se encuentran en una escalera estrecha. Ninguna quiere retroceder para dejar pasar a la otra. Quedan atrapadas.

Mecanismos de Comunicación

Memoria Compartida

El SO crea una región de memoria a la que ambos procesos pueden acceder. Es rápido pero requiere sincronización manual.

Paso de Mensajes

Los procesos se comunican enviándose mensajes. El SO gestiona la entrega. Es más lento pero más seguro y simple de usar.

Mecanismos de Sincronización

Profundizamos...

Son herramientas para evitar los problemas de concurrencia y garantizar el orden correcto.

  • Semáforos: Una variable contador que controla el acceso a un recurso compartido. Permite que un número limitado de procesos accedan a la vez.
  • Mutex (Exclusión Mutua): Un tipo especial de semáforo que solo puede tomar un valor de 0 o 1. Es como una "llave" que solo un proceso puede tener a la vez para entrar en una "sección crítica" del código.