Sistemas operativos · Sección 8

Comunicación entre procesos y señales

Pipes, sockets, memoria compartida, colas, señales y protocolos para coordinar procesos de forma segura.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Conviene haber comprendido Modo usuario, kernel y arranque.

02 / META OBSERVABLE

Al terminar deberías poder relacionar IPC con Señales y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 75 y 120 minutos o divide el laboratorio en dos sesiones.

04 / PREPARA EL LABORATORIO

Puedes leer desde cualquier equipo. Para los laboratorios usa una terminal Linux o WSL en Windows.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan IPC y Señales?

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Aprenderás a elegir un mecanismo de comunicación entre procesos y a diseñar mensajes, señales y fallos como parte del protocolo, no como excepciones improvisadas.

Al terminar podrás
  • Pipes, colas, memoria y sockets ofrecen compromisos distintos
  • Una señal notifica un evento, pero transporta poca información
  • Longitud, tiempo, presión y duplicados forman parte del mensaje
01
Mecanismos de IPC

Pipes, colas, memoria y sockets ofrecen compromisos distintos

Un pipe conecta flujos simples; una cola conserva mensajes; la memoria compartida evita copias pero exige sincronización; un socket funciona localmente o por red. La elección depende de volumen, relación y tolerancia a fallos.

01

Define quién crea, lee, escribe y cierra.

02

Especifica límites, orden y formato de los mensajes.

03

No compartas memoria sin exclusión y propiedad claras.

Comprueba lo aprendido · 01

¿La memoria compartida es siempre más rápida y por eso mejor?

Mostrar respuesta

Puede evitar copias, pero añade carreras, sincronización y recuperación compleja. El costo total incluye corrección, mantenimiento y aislamiento.

02
Señales

Una señal notifica un evento, pero transporta poca información

Las señales pueden pedir terminación, recarga o informar eventos. Llegan de forma asíncrona, por lo que el manejador debe hacer muy poco y delegar trabajo seguro al flujo normal.

01

SIGTERM permite una salida ordenada; SIGKILL no puede manejarse.

02

Bloquea o coordina señales durante secciones críticas.

03

No asumas que una señal equivale a completar una operación.

Comprueba lo aprendido · 02

¿Por qué SIGKILL no permite limpiar archivos temporales?

Mostrar respuesta

Porque el kernel termina el proceso sin ejecutar un manejador. La limpieza debe tolerar restos o realizarla otro componente al reiniciar.

03
Protocolos resistentes

Longitud, tiempo, presión y duplicados forman parte del mensaje

Un canal de bytes no conserva necesariamente fronteras. El protocolo define cómo encuadrar mensajes, validar versiones, aplicar tiempos máximos y responder cuando el receptor no alcanza el ritmo.

01

Usa longitud o delimitadores no ambiguos.

02

Aplica backpressure en vez de crecer memoria sin límite.

03

Diseña reintentos con identificadores idempotentes.

Comprueba lo aprendido · 03

¿Un timeout significa que la operación remota no ocurrió?

Mostrar respuesta

No. Significa que no llegó respuesta a tiempo. La operación puede haber ocurrido, por eso el reintento necesita identidad y consulta de estado.

Resumen de la sección

Tu recorrido en tres ideas

  1. Pipes, colas, memoria y sockets ofrecen compromisos distintos
  2. Una señal notifica un evento, pero transporta poca información
  3. Longitud, tiempo, presión y duplicados forman parte del mensaje
PROFUNDIZACIÓN / LABORATORIO GUIADO

Diseña una cola que no pierda ni multiplique trabajo

Relaciona transporte, límites, sincronización, presión, cierre e idempotencia entre procesos.

CASO

Un productor genera tareas más rápido de lo que tres trabajadores pueden procesarlas.

Procedimiento

  1. Define formato, tamaño máximo, identidad y confirmación de cada mensaje.
  2. Añade límite de cola, presión hacia el productor y cierre ordenado.
  3. Simula trabajador lento, caída tras ejecutar y entrega duplicada.

Evidencia mínima

  • Longitud de cola y edad del mensaje.
  • Estados de recibido, ejecutado y confirmado.
  • Resultado único al repetir la misma identidad.
Mostrar razonamiento modelo

“Entregado una vez” rara vez basta. Un diseño práctico acepta posibles duplicados, conserva una identidad, hace idempotente el efecto y confirma después de completar el trabajo durable.

Para ir más lejos

¿Cuándo preferirías memoria compartida aunque exija sincronización adicional?

CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Compartir memoria sin propiedad ni sincronización.

ERROR 02

Asumir que un timeout prueba que la operación no ocurrió.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Diseña productor, cola y trabajadores con encuadre, presión, cierre, reintento e idempotencia.

Mostrar pauta de corrección
Una respuesta sólida:
  • El mecanismo corresponde al volumen y aislamiento.
  • Define límites y mensajes completos.
  • Tolera proceso lento, duplicado y terminación.